Blog
I read the question my support bot had fluffed, gave the correct answer off the top of my head, and was wrong. The docs had fooled the person who wrote them.
I wanted an FFmpeg that couldn't touch my disk. Building the interface to get one accidentally produced something considerably more useful.
Every FFmpeg progress bar I've seen scrapes the CLI's stderr. afmpeg has no CLI to scrape, so progress had to become part of the API instead.
The issue tracker is full of answers, which is exactly why my support bot isn't allowed to quote it. An issue can point at the docs, but it never gets to be the answer.
An hour to compile and 170GB of artefacts to clean up afterwards. Rust has a built-in answer to that, and I only used half of it.
Eleven variants of one shell script, on hundreds of laptops, launching pods into production. The language was never the problem, and it wasn't the fix either.
I'd built this exact thing by hand, years ago, pixel perfect. So why was I sitting here shouting at a screen while a machine got it wrong three times?
Two configs for one tool, the user's and the project's, and no rule anywhere about which one wins. Twenty minutes to make one a layer of the other and keep a straight answer about where every value came from.
go/mcp puts a Go CLI, HTTP service or gRPC service on the Model Context Protocol with three discovery tools instead of one per command, so a model carries a lantern rather than the whole catalogue.
One of them was from me, testing it. I'd still publish the key, and the reason isn't cryptographic.