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 […]

The Long Road from CGI to Containers

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 […]

Stop using your system Perl

Choose a direction

Recently, Gabor ran a poll in a Perl Facebook community asking which version of Perl people used in their production systems. The results were eye-opening—and not in a good way. A surprisingly large number of developers replied with something along the lines of “whatever version is included with my OS.” If that’s you, this post […]