04 Nov 2026
Date a post ahead on GitHub Pages and it doesn't appear late, it never appears at all. Two sensible behaviours combining into one silent trap, and the scheduled rebuild that fixes it.
More …
02 Nov 2026
I have written two things that both get called chains, and only one of them is Chain of Responsibility. The difference between them is whether anything in the chain is allowed to stop it.
More …
31 Oct 2026
Both systems issued their own reference numbers, and both had sites with the same two-letter code. Changing a code that customers read means rewriting every row that ever printed it, and that is before trailing spaces quietly mangled a few thousand account codes.
More …
29 Oct 2026
A migration you can only run once is a migration you cannot test. Ours ran against live data as often as we liked and threw it all away afterwards, which is the only reason the real one was boring.
More …
27 Oct 2026
You cannot bring a ledger entry across until its account exists, because until then the account has no new identifier for the entry to point at. The foreign keys decide the running order, and then you write that order down once.
More …