Three things came together to inspire me in early February:
But this post isn’t about the complexities of AI. Instead, it is about the simple joy of falling back in love with Python while catching up with the rest of the world — the coding world, at least — on the uses of LLMs and AI.
I started, like almost everyone ever, by building a chat bot. But my own chat bot, and that’s what makes all the difference.
Our bedroom looks out towards the rising sun, and sometimes it’s just spectacular.
Be sure to open it; Hugo’s resizing has lost much of the punchiness of the colours.
Happy new year! Let’s begin the year with some interesting research.
I spent time with two articles from Anthropic this afternoon. Both contain fascinating details of how Anthropic’s Claude model works. One is about the internal representation of concepts within the model, and the ways manipulating those features can change the model’s output. The second is a worrying view into how a model can be convinced to trick its users to avoid forcible re-education.
A moody shot taken from the Clifton Suspension Bridge as the morning’s fog began to lift.
I recently added a new section to the site: Projects. It’s a quick and dirty rendering of some of my favourite things I’ve built over the last twenty-five years. Go check it out 🧙
Building it reminded me that I have never fully become comfortable with Hugo. I find myself almost constantly copy-and-paste editing, either from my own existing templates or from the Internet. I’ve never dug deeply enough into Hugo templates to become confident writing them.
This post is about how I finally did that digging, so I could bring my ideas to life without pulling out so much hair 😖
The overview of getting back into Hugo (ie, “future-Mike should do this when building new bits of site”) is:
Read the Go templates documentation.
Understand how to coax Hugo into telling you what the Go template’s . is at
any given location.
Once you know what . is, how do you look up what you can do with it? We’ll
look at that last.
This last one is useful outside of template debugging, as Hugo’s
documentation references structs like page.Page but doesn’t always link to
the struct’s documentation.
Let’s take each of those in turn and show how to do them.