to ship on time
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.
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.
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:
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?
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:
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!)
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?

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.

Sorry, I'll fill in with more text so you can scroll past it.
Outline is a very fast, very pretty notes/wiki system, and I've got my very own now.

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.

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
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.
from @ello@void.ello.tech