Uncategorized

  • Deciding not to split a service, and writing down why

    The reporting module is slow, memory-hungry and occasionally takes the application down, which is a real argument for extracting it and not a sufficient one. The revisit condition…

  • A trait with a constant, and why I still avoid traits

    Constants in traits arrived in 8.2 and the first thing I did with the feature was decide not to use it. The method conflict rules have an escape…

  • A benchmark that measured the benchmark

    A microbenchmark showing one implementation four times faster than another, where the difference was the loop. Three separate errors in six lines: an unused result, a shared warm…

  • The log line that contained a token

    A debug log of an outbound request, including headers, including the authorisation header, retained for ninety days. A deny list is the wrong shape and is what everybody…

  • Moving a fifteen-year-old site into the site editor

    A theme first written in 2008, 61 template files, and an editor who cannot change a footer without a deploy.

  • Container queries, and the sidebar that stopped needing a class

    A card that needed a –compact modifier wherever it appeared in a narrow column, applied by hand at every call site. The component now responds to the space…

  • An event log that is not an event store

    Wanting to know what happened to an order without adopting event sourcing. A support question that takes twenty minutes and three tables.

  • Debian 12 on a host that had been on 10

    Two major versions in one jump, which the documentation says not to do and which is what the situation actually was. A rebuild is the honest test of…

  • A remote state lock held by a run that was cancelled

    A pipeline cancelled during an apply leaves the lock held, and every subsequent run fails with a lock ID and a timestamp. Step two is the one people…

  • The N+1 that only appeared in production

    An endpoint at 40 ms locally and 2.1 seconds in production. Nine hundred queries on one request, and three on the same request in a test.