William's blog

My writings about things others might find interesting. I'll probably focus on stuff I'm interested in, including software development and free & open-source software.

Linking in C & C++

04 April 2024

Do link errors haunt your dreams? Why do we need header files? Here's an explainer for something that beginners often skip over.

Running NixOS on the Librem 5

03 November 2023

I set up NixOS on my new phone, following a NixCon 2023 talk by Sophie Tauchert.

A Journey into Nix and NixOS

21 October 2022

I chronicle my introduction to and experiments with using a rather radical GNU/Linux operating system on my webserver

Book review: Meditations, Marcus Aurelius Antoninus

13 January 2022

A short review of the personal journal of a Roman Emperor with a strongly Stoic personal philosophy.

Splitting up Liquibase JSON changelogs

09 September 2021

A quick trick to automatically split up large changelogs and group related changesets.

Git from first principles

06 July 2021

A Git tutorial for both beginners and existing users, revealing all the magic by starting from the underlying concepts that are often hidden away

Do an internship

22 February 2021

My internship helped me a lot, and I think more people should consider them

Diagnosing issues with tcpreplay & tcprewrite

23 September 2020

Some issues one can run into when using tcpreplay and friends to replay packet captures on different computers, and how to fix them

Good design patterns: the command palette

06 September 2020

How a simple searchable list of actions is a boon for your user's experience

Domain name hacks

04 August 2020

Why hacky domain names are used and where they can go wrong

Software I use

22 May 2020

A catalogue of software I use, and my ideas for changing things in the future