Posts
All the articles I've posted.

Kitty Terminfo
If you've started using Kitty as your terminal emulator, you may eventually hit a particularly annoying problem when working over SSH: everything works fine as your normal user, but as soon as you sudo into another account, terminal applications start behaving strangely…

Blume
When MkDocs 2.0 Broke Material, I Took the Opportunity to Try Blume I've been using MkDocs with the Material theme for the documentation for my Novel Codex project for quite a while. It has been a good combination: Markdown files, a simple configuration file, a decent-looking documentation site, and very little to think about. Then…

Travel Router
Building a Travel Router That Doesn't Ruin Movie Night The problem This whole project exists because of one specific holiday. The accommodation's Wi-Fi died completely, for two full days. No terrestrial TV either. Two days of genuinely nothing, in the evenings, on holiday. I count it as a personal engineering achievement that I survived those…

Rotating the Console
I have a 22" monitor that it fixed next to my 32" screen in portrait mode. When using a Linux command line based system it makes reading it a challenge. On a recent build of OpenWRT I was working with I needed to stop cricking my neck to read it properly. For the HDMI console…

Hashed Known Hosts File
To set known hosts to unencrypted save in Ubuntu, you can modify your SSH configuration by editing the ~/.ssh/config file and adding the line HashKnownHosts no. This will ensure that hostnames are stored in plain text rather than hashed. Make sure to back up your existing configuration before making changes.

Nano’s Work Here is Done
You've crossed the final threshold: the moment when opening Nano feels more alien than opening Vim. And :set ff=unix removes one of those occasional reasons for reaching for something else. Add these to the mental toolkit: :set ff? " What line endings have I got? :set ff=unix " LF :set ff=dos " CRLF :set list…

11 Laws of the Universe
These aren't scientific laws, but widely-used mental models and heuristics that help explain behaviour, decision-making, management and problem solving. 1. Parkinson's Law Definition "Work expands to fill the time available for its completion." Coined by historian C. Northcote Parkinson in 1955. Meaning People naturally consume whatever time they are given. Give someone: 2 hours →…

Fish and Python autovenv
I used a plugin for a while to automatically activate and deactivate my Python environments when I change directory. It looks like that's been discontinued. (Fish and autovenv) I took it upon myself to roll my own: ~/.config/fish/conf.d/autovenv.fish function python_venv --on-variable PWD set -l tree (pwd) while test "$tree" != / for myvenv in "$tree/.venv"…

Why I Moved My Biggest Project from React to Svelte
Over the past week I finally took the plunge and migrated one of my most ambitious projects from React to Svelte. It wasn't a decision I made lightly. The project is substantial, and migrating a codebase of that size isn't something you do on a whim. But after spending time building a few smaller applications…

Zed (Editor)
Today I decided to change things up a little. I've been a huge fan of VSCodium for quite a while now and it's served me incredibly well. I've never really had any major issues with it, and it's been my editor of choice for years. That said, it still carries the Microsoft lineage. I know,…