Recent Posts

Sold Separately

4 minute read

I typed t.timestamps into a Hanami migration out of twenty years of habit, and it blew up. Declaring the two columns by hand fixed that and fixed nothing, be...

Fresh Forever

9 minute read

Three bugs in the same twenty lines, each one created by the fix before it. The last was the good one: two behaviours that are correct on their own, and toge...

One Layer Thick

4 minute read

I wrote the validations, the database had its constraints, and I assumed the two of them covered the ground between. Then I measured what each one actually r...

Politely Ignored

5 minute read

My MCP server answered tools/list, validated every argument it was handed, and went completely unused. The model preferred its own browser extension, and not...

Declaring belongs_to Changed Nothing

3 minute read

Hanami has belongs_to, and it reads exactly like the Rails one. I declared it, ran my test again, and got a failure identical to the one I had before declari...