Back in January I wrote about App::HTTPThis, the tiny web server I seem to reach for whenever I need to share the contents of a directory over HTTP. It’s a deliberately simple tool, wrapping Plack::App::DirectoryIndex in a command-line interface that gets out of your way. This week, thanks to a blog post from Olaf Alders, […]
Choosing the Right Database Abstraction
A question came up recently in the Perl community asking whether, in a Mojolicious application, it’s better to use DBIx::Class or a Mojolicious-specific module like Mojo::Pg. It’s an interesting question, but I think it’s asking the wrong thing. I’ve spent almost forty years moving up the stack of database abstractions. Every few years, someone invents […]
Public Identifiers, UUIDs and a Tiny SEO Fix
Public Identifiers, UUIDs and a Tiny SEO Fix A recent question from my friend and colleague Mohammad got me thinking about the way we identify data in web applications. While working on the DBIC component of a REST API, he came across the term enumeration attack. In this type of attack, an attacker systematically guesses […]
Teaching AI About the British Monarchy with MCP
One of the more interesting additions I’ve made recently to the Line of Succession website is support for the Model Context Protocol (MCP). If you’ve spent any time around AI tooling recently, you’ve probably seen people talking about MCP. It’s often described as “USB for AI”, which is perhaps a little overblown, but the basic […]
The Long Road from CGI to Containers
One of the defining characteristics of a good programmer is an instinct for keeping implementation details in the correct layer of an application. That sounds abstract, but it turns out to explain a huge amount of the progress we’ve made in software development over the last twenty-five years. And nowhere is that clearer than in […]





