Recent Posts

I Gave My App a URL

6 minute read

A form, a URL, a page title. I built a small Hanami importer to examine what that ordinary feature lets somebody ask of a server. The interesting part starts...

Nowhere to Put the Current User

6 minute read

Adding authentication meant answering a question the first post in this series had only raised: if the action is a frozen object shared across requests, wher...

Green, and Injectable

6 minute read

I wrote a test for the one thing I had never thought to check, and it failed. Nothing my application rendered had ever been escaped, on any page, while every...

Everything Before the Click

5 minute read

Every tool my agent had until now could be run twice with no consequence. Adding one that puts something in my actual Amazon cart changed what the code aroun...

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...