Switching Vim colorschemes based on which keyboard layout I have active

Did you know Vim has a client-server model baked in? Of course it does. If you run 1 vim --servername LOVE , then in another terminal something like 1 vim --servername LOVE --remote-send "<Cmd>colorscheme peachpuff<CR>" , you’ll find your Vim terminal switch to the creamy default theme all true gangsters love - without you actually having to do anything. I frequently flip between a US- and Finnish-based keyboard while doing my language studies....

July 6, 2025

Vibe coding and complementary goods

Peanut butter and jelly are complementary goods, as are cars and gasoline, newer cars and electricity, electricity and basically everything else. We don’t normally think of, say, Docker and Kubernetes as complementary goods in software engineering, because you can get both for the low price of free. Or can you? You still have to invest time in learning both, and as the famous saying goes… Say it takes X hours to learn Docker adequately....

March 12, 2025

Things you should never do: Use Expect to autotype SSH passwords in scripts

Before I moved to Finland, I spent some time in the Hobbesian war of all against all that is Wisconsin1. Men were men back in that less civilized age, and “cybersecurity” a ninny-word dreamt up by social harmony types who honestly thought they had anything worth stealing in their servers. For those of us doing real work, which I must emphasize you should never do, we had Expect. And to SSH automatically into servers where we didn’t have fancy accoutrements like “keys” or “audit requirements”, we did stuff like...

February 26, 2025

PHP and Web Dev Phobia

PHP is, for better and for worse, the Python of web dev in my eyes. It is exceptionally easy to get started, in a way which I think younger developers may not be fully aware of. So here I’d like to make them aware of it! That’s right, this is a Slowstart for people who have never touched PHP or web dev before. Start the way we usually do on this blog, with the “tutorial-in-a-box” by installing Vagrant and Virtualbox so you can create a disposable virtual machine with just a few commands....

September 3, 2024

Software engineers as mental athletes

This week I achieved a modest personal dream of mine I’ve had since I was a high schooler: I purchased a proper standing desk, with a low-profile treadmill underneath. The total cost for a setup here in Finland came out to only about $350, something I can easily afford with a week’s take-home pay. The primary hurdle for me was psychological: How could I justify spending so much money on a more ergonomic setup when I’m not even sure this whole “software engineering” thing will work out for me?...

June 15, 2024

OpenBSD, the computer appliance maker's secret weapon

Between our ESP32 prokaryotic organisms and our 24/7 Internet-enabled megafauna servers, there exists a vast and loosely-defined ecosystem of things the B2B world likes to call computer appliances. Picture a bespoke Pi 4 packaged up neatly with some Python scripts, a little fancy plastic embossing, and maybe a well-guarded id_ed25519.pub in case you end up in hot water during the (long - very long, stable cash flow for generations long) maintenance contract, and you’re in the ballpark....

June 5, 2024

Quickstarts and Slowstarts

A while back I stirred up some controversy on Hacker News by talking about why I liked it when tutorials take you from clean VM to working, installed software. I’ve since taken to calling this the “tutorial-in-a-box” method. When I write them myself, I usually put them under the header Slowstart, a riff on the proverbial Quickstart. Two examples: A gentle introduction to reposurgeon. The Slowstart for selkokortti, some flashcard generating software based around my Finnish language news archive....

June 4, 2024

Doing is normally distributed, learning is log-normal

There are few things I think about more than the essays on gwern.net, and there are few with as satisfying a theoretical payout to contemplate in my orb as his essay on “leaky pipelines”, aka log-normal distributions. The skulk: Say you’re working on a Laravel web app. You’re about 90% sure you know how to start the app. You’re 80% sure you know how to handle the infra you’ll need to get it online....

May 28, 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

Some New Year experiments

Hyvää uuttaa vuottaa! As stated before, my TIL is up and running once more. Some things I’m going to be experimenting with this year: Self-hosted stuff, speficially on the Raspberry Pi. One of those fancy new split keyboards I keep hearing everyone talk about. Coding more, and thinking about coding less.

January 1, 2024