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

Summarising a Month of Git Activity with Perl (and a Little Help from AI)

Summarising Git commits

Every month, I write a newsletter which (among other things) discusses some of the technical projects I’ve been working on. It’s a useful exercise — partly as a record for other people, but mostly as a way for me to remember what I’ve actually done. Because, as I’m sure you’ve noticed, it’s very easy to […]

Writing a TOON Module for Perl

Writing a TOON Module for Perl

Every so often, a new data serialisation format appears and people get excited about it. Recently, one of those formats is **TOON** — Token-Oriented Object Notation. As the name suggests, it’s another way of representing the same kinds of data structures that you’d normally store in JSON or YAML: hashes, arrays, strings, numbers, booleans and […]

Treating GitHub Copilot as a Contributor

Issues that Copilot has worked on

For some time, we’ve talked about GitHub Copilot as if it were a clever autocomplete engine. It isn’t. Or rather, that’s not all it is. The interesting thing — the thing that genuinely changes how you work — is that you can assign GitHub issues to Copilot. And it behaves like a contributor. Over the […]