I'm turning 30 so naturally I'm switching to OpenBSD
I’m kidding, I’m switching to OpenBSD because I like security or code quality or something. It’s totally not because the inexorable march of aging is starting to show its effects on my ability to down necessary-evil trivia like me and my friends used to down forties in the Ahhhnald after dark, and so I’d like to settle down with a software ecosystem I can study in real depth once without feeling like 20% of what I absorb in year X will be deprecated by year X+10....
PHP is Web Shell
One of the cooler things about working in a firm founded and run by a lot of dyed-in-the-wool Linux hackers like my current place is that there is a lot of Bash lying around, accumulated over a good 25 years or so. For all their faults, pure shell solutions still set the silver standard for programs which appear almost entirely immune to bit rot. But you know what? So does vanilla PHP....
Language learning treated as breadth-first search
I am, emphatically, not the language learning type. I’ve done enough of it over my life to know this. It’s certainly one of the better hobbies out there: You can do it for free (in principle), you can sink as many hours as you care to into it, and if you get good enough at it you get to reap some unique cultural and economic1 benefits. But there’s a reason I picked up Python when 14 year old me decided he wanted to get ahead in life instead of (say) German....
Most "life lessons" you hear are about scaling back
I Robert Anton Wilson was, is, and always will be a fascinating and hiliarious writer to me. I first read The Illuminatus! Trilogy when I was 13, and while it was coincident with a total and suffocating blackout of meaning, I no longer think reading it actually caused that to happen in any significant sense. Au contraire: Teen me found refuge in his absurdity - it felt bedrock nihilstic, sure, but a far more artfully and deeply buried nihilism than I was able to find elsewhere at the time....
Check my math - NixOS vs the Most Complicated Program on Earth (MCPOE)
Imagine you had the Most Complicated Program On Earth (MCPOE), with 1,000,000 dependencies. Every dependency must be build correctly exactly right or the MCPOE will fail to compile. MCPOE’s 10x dev team chose their packages so that each dependency has only a 1/1,000,000 chance of having something go wrong when you’re installing them - maybe a whitespace character snuck into the wrong build script, maybe solar wind hit the build computer....
Beware those who promise increasing marginal returns
The law of diminishing returns needs no introduction. Your second slice of pizza is less satisfying than your first. Your second million dollars is less valuable to you, personally. If you think econ 101 has any life wisdom to impart, it deserves being elevated to the status of “life heuristic” - especially because, unlike some other concepts in econ 101 (comparative advantage anyone?) it feels true in a boring way, not in an actively counterintuitive way....
The 10 sentences heuristic for foreign vocabulary acquisition
In order to learn a word, we need to come across it several times. It seems that the minimum amount of times we need to meet a word is somehwere around 7 or 8 meetings, but it's very hard to put a figure on it. -- Paul Nation, [2020 Victorial University of Wellington](https://www.youtube.com/watch?v=FlJj8vpJxfE) He’s right, but that never stopped me. I say 10 sentences in a specific practice: When you come across a word you don’t know enough times for it to bother you,...
The unreasonable effectiveness of VMs in hacker pedagogy
Here’s a secret. If you have Vagrant and VirtualBox installed, and your colleague does too, then you can both bring up an near-totally identical blank slate Debian 12 Linux VM by running 1 2 3 4 5 6 mkdir tutorial/ cd tutorial/ vagrant init debian/bookworm64 vagrant up vagrant ssh . This works regardless of whether you or they are on Linux, Mac1, BSD, or even Windows. (Through the magic of aliasing, mkdir and cd even work in PowerShell....
fd + xargs + bat = quick document review
I’ve been on vacation this week, and part of what I’ve been up to is fixing up the Selkouutiset Archive. Like most of my websites these days, SA is powered by Hugo, which means handling a lot of Markdown documents, which means I opted to use an intermediate Git repo as a submodule to actually store the custom-processed documents. After a few tweaks here and there, I found myself wanting to quickly flip through all of the Markdown documents I had generated for each news day....
wall: Broadcast message all Linux users
1 wall "Hello, world!" will send a message that looks like 1 2 3 Broadcast message from root@localhost (pts/0) (Sat Feb 1 14:50:14 2024): Hello world! to every user currently logged in to the system. When might this be relevant? When you’re working in a small team, by remoting into custom hardware, and constantly reflashing the device, to give everyone a heads up, for instance: 1 wall "Device will be reflashed in 5 minutes" && sleep 300 && ....