Perl School Goes Paperback

Design Patterns in Modern Perl

Back in 2020 I gave a pretty definitive statement of my position on physical books. When brian d foy interviewed me for perl.com, I said, among other things: “I do like a real book. But they take up too much space, so I’ve pretty much completely stopped buying them over the last five years.” That […]

How One Pull Request Took App::HTTPThis to Version 1.0

I *heart* http_this

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

Choosing a 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

The titles (and URLs) of Prince William over time

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

The Line of Succession 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 […]