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....

May 4, 2024

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....

April 29, 2024

Vagrant lets you wrap VDI images

At work I’m currently experimenting with using Vagrant to automate getting an entire local network of our tiny embedded Linux systems running all on my local box. Alas! One of our devices uses a custom Yocto distribution! But wait, we have scripts to run these as VDI images, and apparently that’s enough for Vagrant to get to work! 1 vagrant package --base my-virtual-machine Further reading materials for future me: Creating a Base Box, and the Box File Format....

December 5, 2023

traceroute uses UDP by default, not ICMP

At least on Linux. Don’t believe me? Run tcpdump -nn -i <interface> 'host example.com' in one shell and traceroute example.com in another. tcpdump will pick up all 3 of {ICMP, UDP, TCP}, and on my machine the pattern is clear: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20:58:47.187086 IP 1.2.3.4.41369 > 93.184.216.34.33434: UDP, length 32 20:58:47.187160 IP 1.2.3.4.39830 > 93....

November 29, 2023

One problem with user-scoped `systemd` timers

I’ve discovered one big downside of [putting systemd times into ~/.config/systemd/user/][1]: They stop running when you log out. Two ways around this problem: Bite the bullet, and install the timers into /etc/systemd/. This means giving up chezmoi version control, making the overall system more snowflake-y. I’m not crazy about it. Remote in with tmux, instead of ever logging out, just use C-b d to detach from the session. I’m going with #2....

November 26, 2023

A good place to symlink local builds

I’ve been a big fan of both spaced repetition in general and the Anki spaced repetition system in particular for a long time now. So today, after a fresh new install and blinging out of Ubuntu 23.10, I decided to take the next step, as I often do with programs I use a lot, and try to build and compile it myself. This turned out to be pretty easy! The docs warn that ....

November 18, 2023