Too hard? Take more steps


I’ve been stuck on a few tasks of late. Where to start, how to finish, what finished even looks like, and thinking that middle part is a murky chasm which reinforces procrastination and self-doubt.

Jessica Joy Kerr proposed a solution that seems so friggen obvious with hindsight:

When something gets a little bit hard, I ask: how can I do this in more steps?

It works in code: more lines, more variable names, easier to read and understand later. Walk my future self through the process.

It works in household tasks: making coffee, the beans are on a high shelf. Get a ladder; get the beans; put away the ladder. Each small step is safer than the single hard step of reaching the beans without a ladder.

As my favourite software lecturer used to say, it’s better to be clear than clever. He was talking about code reviews, but it easily applies to tasks you assign yourself. We all think we’re clever, but “do X” in your task manager feels far less intimidating if it has “do A, B, and C” subtasks underneath.

I’ve applied this thinking to a few personal and work problems again this week, and it’s really helped. It also dovetails beautifully with what Merlin Mann discussed in 2013:

Every time you realise a dependency, you get closer to what you need to do.

Guess who paid off their student debt!


Boom! Though I couldn’t have done it without Clara, thank you :’).

Australia has a government loan system where the Commonwealth pays for your tertiary education, and you pay it back once you reach an income threshold. You either pay it as part of tax, or you can have it withheld from your salary.

It’s a flawed system; education should be free. Even the fiscally conservative acknowledge that qualified people tend to earn more and pay more tax, even if they don’t buy altruistic arguments that everyone should be given an opportunity. Lower-income earners are also far more likely to spend whatever extra money they receive, so it’s better for the economy not to be garnishing this.

The good news is, it’s not counted as a normal loan under most circumstances, and you don’t need to pay anything back if you fall on hard times. It’s also indexed against inflation, rather than attracting a traditional interest rate. That distinction became laughably meaningless this year when it was indexed higher than actual personal loans would have been a year ago! But it’s still better than traditional student loans.

I got an effective pay rise from this, which I’m going to use to invest in my future.

Features every microwave should have


Microwaves are brilliant inventions of brilliance. Food that would an hour to cook in an oven, or twenty minutes in an air fryer, can be rendered into seething, bubbling cauldrons of molten lava within the space of sixty seconds. But that doesn’t mean they can’t be improved upon.

Here are some technically simple, logical, and scientifically feasible additions we could add to these devices to vastly improve their utility:

  • A stirrer for mixing food as it cooks. Not a spinning waveguide, a stirrer that contacts the food and mixes it as the comestible is irradiated. I’m sick of fishing out lumps of ice that could sink a ship alongside steam that could boil the water around a ship. That analogy made no sense.

  • A device that senses the presence of metal, and immediately disengages the device with an audible warning.

  • A window on top of the microwave instead of the side, to permit easier visual monitoring of foods that can rapidly boil over and cause a huge mess.

  • A control to rapidly freeze food instead of cooking it.

  • Funky translucent colours, like the original iMacs. If I’m going to clean up and spend time watching this thing, may as well do it in late-1990s style.

  • The ability to immediately stop that infernal BEEP BEEP BEEP upon opening the door latch. If I’m hurriedly opening the door after the timer has stopped, it’s almost certainly to avoid waking someone up. There is no point LOUDLY telling me to check the food… if I’m already checking the food.

  • While we’re on the subject of beeps, the ability to replace them with a MIDI ringtone. The Spanish Flea might get tiresome after a few times, but that’s why you can program a bank of them for different days, seasons, and temperatures.

If you’d like to implement any of these features, contact me so we may discuss my commission.

Calling git a blockchain to rebrand bad tech


To shore up their crumbling legitimacy in the face of growing and justified scrutiny, blockchain advocates are on a rebranding exercise that’s as cynical as it is transparent! Some examples of this include:

  • Claiming it might not presently have utility, but boy howdy, it could in the future! I could make such an unfalsifiable claim about my blog. Wait, ouch.

  • Defending the record (such as it is) of one chain over another. Bitcoin is slow, brittle, and expensive, but Etherium is better! No no, not Etherium Classic, the other one we hard-forked to after saying the chain is immutable and decentralised.

  • Piggybacking off the success and credibility of existing tech by drawing tenuous or misleading comparisons.

It’s this latter one that has drawn in git. Like all good red herrings, it sounds superficially plausible. But such a comparison is, at best, disingenuous.

But technical accuracy is the best kind of accuracy!

git employs a Merkel tree structure, and its use is also more centralised in practice than people admit. If that makes it a blockchain, then the sports car downstairs is as practical as a bus on account of its four wheels and a roof.

In reality:

  • git doesn’t have an immutable ledger.

  • git doesn’t have an automated consensus mechanism. This wasn’t an oversight; it was specifically designed for developers to act as the interface.

  • Appending records doesn’t take terawatts of energy consumed performing duplicated effort, or stumping up in a complicated, exclusionary, and non-existent proof-of-stake system its advocates claim is just around the corner every six months.

This isn’t a simple semantic argument; these are critical distinctions its proponents claim make blockchains resilient in a trustless environment, prevent fraud, address financial ills, and why you can’t undo. There’s an Evangelion reference in there somewhere.

Forks are a perfect illustration of the difference. While they’re a desirable feature of git, they’re an aberration to blockchains. Forks in a zero-trust environment introduce fundamental and irreconcilable questions about which is the authoritative branch. This is a disaster for anything claiming to be a currency, or a repository of smart contracts designed to operate without meatspace laws. git’s users and developers make no such claims, perhaps beyond cryptographically signing commits. But equating the two is New York pizza-cheese levels of stretch.

Even if you think git (and ZFS, and…) satisfies a narrow-enough definition to be a blockchain (I’m unconvinced, in case you didn’t notice!), it’s still utterly disingenuous to take credit for the utility of other tech if it doesn’t operate the way yours does. This form of tortured mental gymnastics isn’t half as entertaining as the real thing, and unless you bet on athletics, won’t lose you as much money.

It feels ridiculous that any of this needs to be called out, but that’s what happens when arguing against those acting in bad faith. If only shifting goalposts were their only sin.

A list of games I’ve enjoyed


Marcel in Hamburg made a list of games on his new blog Life-Size Models of the Drama. As an aside, that’s a fantastic name. It inspired me to come up with a bit of a list of my own. I… didn’t realise I had so many, given I spend most of my life in a text editor for fun!

The listed platforms are where I first played them, not necessarily where they first appeared.


  • Commander Keen 1-3 [DOS]
  • Lemmings [DOS]
  • Microsoft Train Simulator [Win32]
  • Minecraft [FreeBSD]
  • Need for Speed: SE [DOS]
  • SimCity 3000 [Mac OS]
  • SimTower [Win16]
  • The Sims 2 [Mac OS]
  • The Stanley Parable [Steam]

Also Excellent

  • A-Train [DOS]
  • Age of Empires II [Win32]
  • Atelier Ryza [Steam]
  • bsdgames [FreeBSD]
  • Chessmaster [DOS]
  • Chip’s Challenge [Win16]
  • Cities Skylines [Steam]
  • Dovetail Train Simulator [Steam]
  • Dovetail Train Sim World [Steam]
  • Elasto Mania [Win32]
  • Fate/Grand Order [iOS]
  • Flight Simulator 97 [Win32]
  • Flight Simulator 2000 [Win32]
  • Formula 1 Grand Prix [DOS]
  • The Games: Winter Challenge [DOS]
  • GNOME Sudoku [FreeBSD]
  • Humongous Entertainment Franchise [Mac OS]
  • KNetWalk [FreeBSD]
  • LEGO Island [Win32]
  • Microsoft Golf 3.0 [Win32]
  • Midtown Madness: Chicago Edition [Win32]
  • Midtown Madness: San Franciso and London [Win32]
  • Monopoly Deluxe [Win16]
  • nbsdgames [FreeBSD]
  • Need for Speed II [DOS]
  • Need for Speed III [DOS]
  • Need for Speed: Most Wanted [Origin]
  • Pinball Deluxe [Win32]
  • Pipe Dream [Win16]
  • Pokémon Alpha Sapphire [Nintendo 2DS]
  • Pokémon Blue [Gameboy Colour]
  • Pokémon Brilliant Diamond [Switch]
  • PySolFC [Linux]
  • Rodent’s Revenge [Win16]
  • SimCity Classic [DOS]
  • SimCity 2000 [Win16]
  • SimCity 3000 Unlimited [Win32]
  • SimPark [Win16]
  • SkiFree [Win16]
  • The Sims [Mac OS]
  • Spider Solitaire [Win32]
  • Stunts [DOS]
  • Superliminal [Steam]
  • Triazzle [DOS]
  • Where in the World is Carmen Sandiego? [Mac OS]
  • Wii Sports [Nintendo Wii]
  • Worms II [Win32]
  • Worms World Party [Win32]
  • X-Plane 11 [Steam]

Honourable Mentions

  • Brandon’s Lunchbox (first I ever played) [DOS]
  • Emacs Tetris [FreeBSD]
  • Fuji Golf [Win16]
  • JezzBall [Win16]
  • Mavis Beacon (does that count?) [Win32]
  • Microsoft Excel 97 Flight Simulator [Win32]
  • QPascal (I wrote silly games in it) [DOS]
  • Reversi [Win16]
  • SimTown [Win16]
  • Star Trek: Bridge Commander [Win32]


  • Atelier Sophie [Steam]
  • NetHack [*nix]
  • Persona [Steam]
  • Portal [Steam]
  • Stardew Valley [Steam]

A year of using a FreeBSD laptop without a GUI


A year ago I tried an experiment:

This feels very strange, but I’m writing this post from my on-call FreeBSD laptop, without X! I have everything I need here to remotely troubleshoot stuff and write, all without needing a GUI. It’s been oddly fun getting back into all this stuff, so I thought I’d share it.

I explained that once I’d assembled the VPNs and basic tooling I needed, I realised none of it required a graphical environment at all. I uninstalled Xorg, and since then have been using tmux as my “window manager”.

I’ll admit, I left out that I’d eschewed (gesundheit) a desktop environment for my old friend fluxbox first, but even that seemed redundant given I was only using it to spawn a single terminal window with tabs. Removing xorg entirely was the logical next step.

The Panasonic Let's Note CF-RZ6

I’m still using it in this configuration, and it works great! I can add a new Wi-Fi hotspot to wpa_supplicant.conf and restart netif. I put it on standby with zzz. I can edit posts in vim, do a quick web search in links, read email in Alpine, play some nbsdgames sudoku, and quickly test a stack by cloning an ZFS dataset and firing up a jail. The machine is lighter than my iPad, and is in some ways its polar opposite.

But it did something else for me, in what I’m dubbing The Robin Effect after Robin shared a machine they used for focus. It sounds so obvious in retrospect, but not having a wall of distractions in front of your face is fantastic for writing. I’ve made so much more progress in my various silly sci-fi novels, technical writing, and many of the posts I’ve since published here.

Sitting at a coffee shop on a Saturday morning with just an empty console window and a blinking cursor is wonderful.

Machismo fascination with conflict


Johnny Harris:

I feel very against the sort of machismo fascination with conflict, like it’s sort of a cool, good thing. When what we’re talking about are people’s lives. We’re talking about the future of entire societies being ripped apart by a power struggle.

This is not sexy and cool.

This is a nightmare.

Moving forward, with @kiriappeee, @geofftech


This is hard to write, but probably has shown up a few times by now.

I’ve been in a melancholic funk for a couple of years now, as I’m sure we all have been. I’ve felt rudderless, tired, distant, and depressed to tears. Travel has been out of the question, and it’s been difficult to find joy in the things I usually love. Some days are easier than others, but frankly I haven’t felt it this bad since my mum died, bundled with all the regret that I couldn’t save her.

I’ve avoided talking about it for fear of judgement, and I don’t want to bring people down. But I’m seeing more people I respect and care about discussing their own struggles with this stuff, and I’ve found it both comforting and helpful. I wanted to share a couple of examples here.

Adnan Issadeen

Adnan wrote a lovely review of my writing back in 2020, which was a huge source of motivation. He recently wrote a poignant post where he opened up on his own journey:

It’s been… A difficult year. It’s taken a lot of reflection to come to terms with the fact that it’s actually been years of emotional strain at this point. It’s taken even more reflection to accept that there’s only more of this ahead of us. My heart hurts, and that’s ok. I’m not looking for a cure anymore. I’m not searching for the fix anymore. I’ve accepted that I’m in a tunnel, not a hole, and there’s no light I can see yet, and that’s ok. All any of us can do at this point is to find something to guide us and to let us keep moving forward, come what may.

Adnan lives in Sri Lanka which is dealing with unprecedented economic and political issues on top of these other feelings we’re going through. I feel like I’ve got to know him over the years through his writing, and am confident that if anyone can take on the world, it’ll be him.

His metaphor has been helpful for me over the last few weeks. It’s easy to think we’re stuck in this intractable situation, but it’s important to remember we’re in a tunnel not a hole (or a tarpit, as it’s felt to me). Tunnels are dark and restrictive, but they go somewhere.

Geoff Marshall

This tunnel metaphor leads me to Geoff, who’s delightful smile and enthusiasm have done so much for Clara’s and my mental health during Covid lockdowns. His recent excitement for London’s Elizabeth Line opening was especially infectious. We subscribe to a lot of YouTube channels, but Geoff is one of the precious few we’re completionists about.

Play I've Not Been Happy // USA 2022 Roadtrip 🇺🇸

Geoff recently admitted he hasn’t been happy of late either, and took to making a video about his recent American roadtrip to explore why. It’s the most beautiful video—in every sense of the word—I’ve ever seen on the platform.

At the risk of spoiling the ending, I thought his last lines were perfect. He’s talking about being trapped in nostalgia here, but I think it broadly applies to so much:

Like most things in life, the answer is a complicated balance. And you have to find your way and find your balance, which isn’t easy no matter who you are or what you do.

After two years of trauma, I’m going to crack on loads more. Make some new memories, new good times, which in the future I’ll be able to look back on as part of my nostalgia. Just have to find that tricky balance. Keep on travelling, keep on adventuring, and thanks for watching.

Big love to both of you, and thanks for sharing your strength. Know that by working through your struggles, you’ve helped someone else too ♡.

svnlite(1) removed from FreeBSD base


This was decided a year ago, but still felt like the end of an era in an old VM over the weekend:

The following files will be removed as part of updating to

FreeBSD moved to git starting in 2019. I miss and prefer svn, but I empathise why it was necessary. In some alternate universe, Linus moved to it instead of building git, just as he adopted BSD instead of writing the Linux kernel. One can dream.

A local planter now has a lovely plant


An building I walk past every day either has a new friend, or I’m only just noticing it. Either way, this is great:

Photo of a small plant growing out of mulch on the ground floor of a building.

These concrete alcoves walls seemed to be a fixture of 1980s and 1990s architecture. My school in Singapore had them, as have a few of the apartment buildings I’ve lived in over there and in Australia.

The problem is, they tend not to age well. As people stop maintaining the plants, or the sprinkler systems fall into disrepair, the plants disappear and are replaced with nothing. This leads to concrete voids which end up attracting litter, dust, and echoes (echoes… echoes). Seeing an older building with honest to goodness plants again made me smile.