Claude

Why I Use AI

A reader asked whether AI wrote my last post. I answered badly, in a comment, while annoyed. This is the answer I should have given.

I posted my article about chording down to eighteen keys to r/ErgoMechKeyboards. It’s picked up twenty comments so far. Two of them were these:

Did AI write this?

and, in reply to that:

Certainly looks like it. Which is a shame since the post might have been interesting otherwise.

Dosh: Chording Down to Eighteen Keys

This picks up directly from Taipo, which I wrote in early 2024. That post ended with a promise I hadn’t kept yet: that at some point I would have to decide Taipo was good enough to go cold turkey on QWERTY, and that I was revising my 30-key two-row keyboard toward exactly that. This is what happened when I finally did it. The short version is that it worked, that the layout I use is no longer quite Taipo, and that as of today it is genuinely my daily driver.

Summary

The story is easiest to follow as a sequence of shrinking key counts: 42 keys on the board I typed on for years, 30 when I removed QWERTY as an option, 20 when I rebuilt the board around where my hands actually want to be, 16 on a layout that turned out to be a step too far, and 18 on the one I’ve settled on.

That last layout is called Dosh. It is five days old. I named it on Thursday the 3rd, drilled it across a four-day weekend, and today is the first day it feels like it has caught up with where Taipo was — not in raw speed, but in the quality that actually matters to me, which is not having to think about it.

A Latent Upstream Bug, Found and Fixed in About 30 Minutes

I keep seeing arguments about AI coding assistants conducted entirely in the abstract, so here is a concrete one: a real change I made recently, start to finish, including the parts that went wrong. Everything below is a real MCUboot change; the PR numbers are live and you can check my work.

Summary

An automated review of an external contributor’s pull request flagged that the author had quietly disabled a test on one simulated device. Rather than stopping at “you disabled a test”, the model worked out why the test failed — a long-standing bug in MCUboot’s own test simulator that had been invisible for as long as it had existed, and only became observable because this PR raised a configuration limit. The fix was implemented, reviewed, pushed as PR #2808, and then empirically demonstrated to resolve the original author’s problem.

Cost: roughly 30 minutes of my attention, some of it spent doing other things while test suites ran. My honest estimate for doing this by hand is one to two days — most of it spent staring at trailer arithmetic trying to work out why an “oversized” image wasn’t oversized.

The tool was Claude Code running Opus 5.