Blog

Review of Elizabeth Boyle's "Tempted by the Night"

I have to write a review of Elizabeth Boyle’s “Tempted by the Night”. I loved reading this book, and I searched reviews online, and saw the other reviews didn’t do a good job of it.
I mean, the other reviews just said “it’s a historical romance book with paranormal elements, and it’s okay I suppose”. Pfft.
I’m fine [...]

Posted at June 9, 2026 | read more

Bridgerton S4 is Really Good

Bridgerton Season 4 is really good! Season 4 is primarily Benedict Bridgerton’s story.
He meets a mystery lady at a masquerade ball, falls for her; but it turns out she’s not suitable to marry… Lots of flirting and angst ensues before the happily-ever-after. It’s fun! After watching Season 4, I was so enthralled that I decided to re-read book [...]

Posted at March 15, 2026 | read more

Org Babel is an Underappreciated Tool

Emacs Org mode’s source code blocks and the complementary org babel are underappreciated tools. Emacs is a highly customisable text editor. Org Mode is a broad set of functionality for org markup files.
Functionality ranges from todo list management & note taking, agenda management, to spreadsheets and document exporting/publishing. Org mode’s support for source code allows blocks of source [...]

Posted at October 26, 2025 | read more

Rewriting smart-keymap's Key Storage Implementation

I recently finished a big rewrite of how the keys were stored in my smart-keymap keyboard firmware. Smart Keymap In case you’ve found this blogpost and aren’t familiar with smart-keymap: smart-keymap is a library for building keyboard firmware by declaring keymaps in Nickel, powered by Rust. A ‘smart keyboard’ is a keyboard with additional bells and whistles, such as alternate [...]

Posted at September 18, 2025 | read more

Brothers in Arms

I recently played through the “Brothers in Arms” videogame series. I played through the first game, “Brothers in Arms: Road to Hill 30” (which I hadn’t played before), and replayed through its two sequels, “Brothers in Arms: Earned in Blood” and “Brothers in Arms: Hell’s Highway”. If you’ve never come across these before, then the quickest way of describing them [...]

Posted at September 2, 2025 | read more

Factorio Space Age

I completed a playthrough of Factorio Space Age. Here are my thoughts on it: Factorio Space Age is an expansion-pack for Factorio. Factorio is a game which involves constructing automated systems which mine resources, and move/assemble these resources until ultimately constructing a rocket. Factorio stimulates the same creativity that programming or other engineering involves.
It’s an enthralling game to [...]

Posted at July 21, 2025 | read more

Example of How Rust Can be Confusing, Iteration and Refs

I recently tripped up over this when writing Rust: Consider this example, which features a few different ways of iterating over arrays/vectors in Rust:

let a: [u8; 3] = [3, 7, 5]; let v: Vec<u8> [...]

Posted at May 19, 2025 | read more

Announcing a new Smart Keymap Library

For the last few months, I’ve been working on a new “smart keymap” library. The code is published over at: https://github.com/rgoulter/smart-keymap. This post is to introduce this, go over what it is, and why I’ve found it exciting to work on. “Smart Keymap” By “smart keymap”, I mean the keymap behaviour for “smart keyboards”. And by “smart keyboards”, I mean [...]

Posted at May 6, 2025 | read more

Debugging Kirei with UART

Kirei is nascent keyboard firmware, which at the time of writing supports CH58x and RP2040 microcontrollers.
It uses the same declarative approach to keyboards/keymaps that fak uses; albeit, Kirei’s one step further around the configuration complexity clock as it embeds a DSL into Nickel. CH58x (and CH592) are MCUs which are both cheap and provide BLE (Bluetooth) functionality. For [...]

Posted at July 6, 2024 | read more

Indicating Success on QMK Keyboards

In the previous post, I discussed ways of using QMK leader key sequences in QMK keymaps. One of the downsides with this is that QMK leader key sequences are handled only after a timeout (i.e. enter the key sequence, then wait a moment). One way of improving the UX of this is having the keyboard provide some feedback when a [...]

Posted at June 23, 2024 | read more