A firmware update changes what a device sends, and the usual way to find out what changed is to capture its traffic before and after and stare at hex dumps. EByte 0.5.0 adds ebyte diff , which decodes…
A PNG file is an 8-byte signature followed by chunks, and every chunk ends with a CRC-32 of its type and data. Change one byte of a comment by hand and the image is broken, because that CRC no longer…
EByte 0.7.0 runs in a web browser. The release has a new asset, ebyte-wasm.zip , which is the same Go library compiled to WebAssembly, and the demo page on this site loads it. There’s no server behind…
Every earlier case study ended with the same chore. Change the length of anything and some size field elsewhere in the file goes stale, and you fix it yourself: riff_size in a WAV, the name lengths…
Coding agents run tests all day. Every run prints thousands of lines, and the agent reads all of them, pays for all of them, and then often reads them again after a one-line change. Abbreviatory…
Test runs and logs aren’t the only big outputs a coding agent reads. It reads diffs all day, to review what it changed. It calls APIs with curl and gets back a wall of JSON. It runs find to see what’s…
Something went wrong overnight and the service log is 5.6 MB: 63,369 lines. Most of them are cache hits and request logs. Somewhere in there are the errors, each one repeated hundreds of times with a…
Bootstrapping 0.2 is out. It runs on PostgreSQL now, as well as SQLite, with the same seed files, the same three-way merge and the same ledger. Long lists like countries and currencies can live in a…
Country and currency lists look like the most static data an application has. They aren’t. Croatia replaced the kuna with the euro on 1 January 2023. Turkey asked to be called Türkiye in 2022. Czechia…
Email templates are the reference data customers change most. A self-hosted product ships a welcome email, a password reset and an invoice notice. Each customer’s admin rebrands the subject lines…