ello learns

I wrote this a year and a half ago and it's been languishing in my drafts since then, forgotten. Please enjoy the learnings of past-ello.

I was contemplating how we create stuff today — more specifically, how we decide stuff is done.

Read more...

I'm annoyed to admit that a generative language model helped me figure this one out. Don't worry, I'm more disappointed in myself than you are.

I have a weird hybrid hosted/self-hosted situation for my email right now, where some of it gets forwarded and some of it doesn't, and I ended up with a weird filtering requirement:

  1. Incoming mail to certain recipients gets forwarded elsewhere, but
  2. a copy of the mail stays on the server, but
  3. if it's bulk mail, it stays on the server in a different folder

I run @MailInABox@fosstodon.org, which bundles RoundCube with the managesieve plugin, and I wanted to avoid manually writing raw Sieve rules. How do I do all three things, without repeating the condition from 1 in 2 or 3?

Read more...

This morning I was reading someone explain why “soft-blocks” (blocking someone to stop them from following you, then unblocking them so it's hard for them to see what you did) don't work right now on #Bluesky, because a “block” and a “follow” are both things that are owned by individuals. I can block you, and I own (and publicly declare) that block, but I can't impact your “follow”. You own that, and I can't touch it.

So that was all very interesting but it made me realize I don't actually know how blocks work in a Masto-alike (or #ActivityPub generally) network, so I started bopping around looking stuff up. Almost immediately, I found this Understanding ActivityPub series from @crepels@mastodon.social. It's a great series, but the test instance is spectacular. Here's how blocks and follows interact between two #Mastodon instances:

Read more...

My friend and old boss likes to say, “The best way to find a new job is to never apply for a new job.” He means the best way is to use your network: Talk to friends, family, current and former colleagues, randos who follow your socials. Use your network to see what's available and who might like to have you on their payroll.

I agree with him, not least because he was in my network ten years ago when I was hunting. Before that, I'd been working through another network buddy. I've been working as a software engineer on and off since about 2000-ish, and I'd sat through exactly zero technical interviews.

I know. I know! This is what I'm saying! Jobs from your network are the best!

But your network's not always available. Maybe you don't have one because you're young or inexperienced or shy. (I think you probably still have one, but it can be hard to see in those conditions.) Maybe you're switching careers, and your network is useless to your new field. Maybe you don't want to broadcast that you're hunting and your network is chatty.

😐

So anyway, a little over a year ago, October 2023, I started hunting without a network, and I learned some things. (Or maybe I have survivorship bias. Follow my advice and let's find out together!)

Read more...

There's been a neat resource making the rounds in my socials recently that lists a bunch of European alternatives to popular cloud-adjacent tooling. I was browsing it the other day, clicked the AWS category because it's at the top and I'm basic like that, and had a minor epiphany:

wait couldn't I use one of these s3-compatible object storage services for my @MailInABox@fosstodon.org backups?

Read more...

Discord screenshot

You feel it, right? The immediate weight of obligation, the spike in blood pressure, the dread of the inevitably laggy and not-quite-right navigation of conversational history. And that's a screenshot, so you can't even click Mark As Read to make it go away. It'll just hang there, taunting you. Guilting you.

Discord screenshot

Sorry, I'll fill in with more text so you can scroll past it.

Read more...

Outline is a very fast, very pretty notes/wiki system, and I've got my very own now.

Outline screenshot

Read more...

Julia Evans (@b0rk@jvns.ca), one of my most favorite internet people, recently did a lil' #fediverse survey asking us all what we found confusing about #git. I love it when she does this because it always turns into a blog post or a zine and I learn so much. Anyway, the resulting blog is indeed great and I did indeed learn things and you should go read it.

yours or mine?

Willem Dafoe meme with the text I'm something of a git myself

Read more...

Me (bleary after waking up): You know how the Moon makes the tides @bananabull@scholar.social (not through his first cup of coffee): 🤨 Sure... *Me: Does it do anything to atmosphere? Benjamin: ...Why are you thinking about this [you weirdo]? Me: I don't know

Read more...

I use fail2ban as my server watchdog. Among the sensible defaults it hands me is a file path pattern that uses a wildcard to hoover up my nginx access logs:

nginx_access_log = /var/log/nginx/*access.log

Super convenient, except that pattern gets evaluated when fail2ban starts up, and never again. If your server starts writing more logs that match the pattern — say if you launch a new site and direct its logs to a new file — your fail2ban jails that use the nginx_access_log path variable won't see them until it restarts. And then you'll be looking at the server logs and the ban logs and testing things with fail2ban-regex and have no idea why people doing bannable things are not getting banned.

Anyway restart fail2ban sometimes. You know, just in case.

#fail2ban #nginx #sysadmin

from @ello@void.ello.tech