PHP, Go, and Braindead Deployment

If you’ve been following my posts recently, you might have noticed that I’ve been working more and more with PHP lately. As someone who was curiously allergic to web dev as a teenager, it has been a strangely healing experience for me. I’d like to say it’s because my experiments with Laravel, the only OSS work of which I can point to is testing the Homestead VM’s compatibility for Shell Bling Ubuntu, convinced me....

September 16, 2024

The highest personal ROI program I have written so far

It would have to be finstem, a simple command-line program I wrote to reduce Finnish words down to their root form. Finnish is a lot like Latin or Russian in that its words often become lumbering behemoths of rewritten consonants, suffixes upon suffixes, and this makes it hard to look up in a dictionary – that is, until you factor in its very regular orthography and the phenomenal efforts of the Finnish programming industry: finstem is basically a very specialized UI for the OpenOffice spell checker, and I have no shame in admitting that....

July 30, 2024

Layers of abstraction for me, not for thee

Consider the problem of “how do I run more than 1 terminal at a time”. At this moment, I have at least 5 different ways I can effectively solve this issue: I can, from a different physical computer, SSH in to a new session. I can, from the same physical computer, switch to a different tty session with … C-S-F2 through 6 or something. (Rare, but sometimes it comes in really handy....

June 18, 2024

Trackballs are great for the mostly-mouseless

I was 100% mouseless back before it was cool. Between dropping out of high school and enrolling in community college, I replaced my laptop with a $80 HP EliteBook I found on eBay; when I discovered its trackpad didn’t work anyway, I went all in on a no-X setup. I eventually concluded that going 90% mouseless got me almost all of the benefits, with almost none of the downsides. It’s almost as if returns are usually diminishing!...

May 26, 2024

Disable your browser history to write better internal docs

Most of us work in companies with something approximating a shared online internal wiki, be it Confluence or MediaWiki or even a searchable, static website custom built for the task. A common problem with these sites is making what you write discoverable to other people on the site. Your chosen title might tell you, a person fully in the weeds of whatever you were just doing, exactly enough to know this is the article you were looking for....

May 14, 2024

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

April 20, 2024

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

March 31, 2024

Speed paint videos for software installations

Shell Bling Ubuntu and finstem now have what I’m calling “speed paints” of how someone, starting from scratch on a standard Ubuntu VM, might install the programs. This came out of me realizing ffmpeg makes speeding up a video recording of a VirtualBox session a one-line operation: 1 ffmpeg -i output.webm -filter:v "setpts=0.1*PTS" -an output-fast.webm When I watched them back, I realized it gave me a really good sense of what the installation should feel and look like, even if I hadn’t actually tried it yet....

December 7, 2023

Art of the dotflag -- `.nojekyll`, `.gitkeep` and their ilk

This weekend I’ve been procrastinating playing the long game by getting some nice workflows set up for my TIL content repository and its associated website (cf Context, below). If all goes well, by the time I hit :wq on this TIL, it should invisibly trigger 2 Git commits, a Hugo build, and then appear on the site fully-birthed. One of the more interesting patterns I noticed was the .nojekyll empty file which I had to build to get GH Pages to stop tussling with my Hugo Action for turf....

November 19, 2023