It's OK to Let Go

· 8 min read · #go & #open-source

So, I’m a sucker for wordplay and puns. Anyway… There’s a line in my shell history that goes back to 2022: go get github.com/wilhelm-murdoch/go-collection. For years it was the first dependency into …

I Added Variable Block Support To Glazier

· 8 min read · #go#hcl#tmux & #glazier

I knew the moment I thought about potentially adding variable definition blocks as a first-class feature Glazier it was going to bother me until I went about implementing it. So, as expected, a week later, here we are. I …

Why I Built Glazier

· 8 min read · #go#tmux#hcl & #glazier

I live in tmux. I typically have an editor here, a dev server there, logs tailing in the corner or a spare pane for poking at things. The trouble is that this little world is frustratingly ephemeral. Rebooting my machine …

Let Me Show You My Bits

· 4 min read · #hugo#css#tailwindcss & #wilhelm.codes

A while back, in Reading Between the Posts, I wired up the home page so the quiet gaps between articles would narrate themselves - “1 bit and 41 changelog events in between”. There was just one tiny problem …

Reading Between the Posts

· 4 min read · #hugo & #css

The front page of this site has always been a plain list of articles. Which would be fine if I wrote longer-form articles a bit more often. I do, however, make code commits to this site far more frequently. I’m …

A Changelog That Builds Itself

· 6 min read · #hugo#github & #api

This site has a changelog page. It’s not one I write by hand as it builds itself from my activity on GitHub every time the site deploys. I think it’s a neat little trick. It also spent a solid afternoon …

Printing Ordinal Numbers in Hugo

· 4 min read · #hugo & #snippets

I’ve been having such a good time building up this website and Hugo has been incredibly fun – and relatively simple – to work with. Though, from time to time, I find myself scratching my head at the absence of a …

My Blog Publishing Setup & Workflow

· 7 min read · #obsidian#hugo#bash & #cloudflare

Late last year I parted ways with Hashnode as the platform of choice for my blog. They pivoted a bit too far into the generative AI space which — to me for a blogging platform — made little to no sense. What? You write …

Breaking Up Log Output Using Bash

· 2 min read · #bash#snippets & #tutorials

I tend to look at a lot of log output throughout the day as part of my role as platform engineer. This obviously extends to any backend, or ops-related, role. One little niggle that always gets to me is tailing output …

Why I Built Plant Smart

· 5 min read · #svelte & #plantsm.art

Simply put, I love plants and I love animals. I can’t count how many times I’ve been to a plant nursery and had to stop and do a Google search to see if something was safe enough to bring home and keep around …

Learning Bash Through Pointless Fun

· 6 min read · #bash

Responding to company chat messages in a mocking and sarcastic tone is one of my favourite past times. Classic engineer snark as it were. We’re all in on the joke. However, the artful nuances of snark via online chat …

Filtering Docker Containers with jq

· 6 min read · #docker#js#json & #bash

As is the case with any seasoned DevOps engineer, I have a set of tools in my kit that I simply cannot live without. If I had to distill them into a top-5 list it would be the following.

Why Can't I Hold All These Slack Emojis?

· 4 min read · #slack#emoji#bash & #api

Previously, last blog post I wrote covered how to make a quick escape with your precious hoard of custom Slack emojis. It was fairly well-received, but didn’t quite cover the next step in the migration process; how do …

Liberating Custom Slack Emojis

· 8 min read · #emoji#api & #bash

As is stupid tradition, whenever I start at a new company, one of the first things I like to do while getting settled in is upload my favourite emojis to whatever real-time messaging platform is in use. I know it’s …

Messing Around with TXT Records

· 3 min read · #dns#devops & #networking

If you’ve spent any time in an ops-related position, you’ve had to add these records when using custom domain names while integrating with some 3rd-party service. Especially, if you’ve ever wanted to …