Blog

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

Using the QMK Leader Key for Fancy Keyboard Functionality

QMK keyboards are keyboards where the functionality can be customized. Customising keyboard functionality goes hand in hand with non-traditional keyboards, like ortholinear or split keyboards, which seek to improve upon the traditional keyboard’s pretty awful design. (I’ve designed a few such keyboards). There are some QMK features where it’s fairly clear how to make effective use of the feature, such [...]

Posted at June 16, 2024 | read more

Further Notes on Gym Going

I have continued going to the gym in the time since I wrote a blogpost with thoughts about going there for six months.
That post logged that I’d made good progress on fat loss goals, enjoyed going to the gym, thought some of the machines in the gym were neat. Since then, I’ve paid more attention to resistance training. [...]

Posted at June 12, 2024 | read more

Bridgerton Season 3

Finished watching Bridgerton Season 3. I don’t know why it’s 4 episodes. Season 1 and 2 had 8 each.
I guess they’re moving away from 1 season = 1 book. This time, we see the romance primarily between Colin Bridgerton and Penelope.
It also features, to a lesser degree, romance between Francesca Bridgerton & Lord Kilmartin. What It [...]

Posted at May 27, 2024 | read more

Getting MounRiver Studio to Run on NixOS

In the previous post, I walked through a few different ways of how to get a pre-compiled binary running on NixOS. In this post, I’ll share some notes on what it took to get MounRiver running on NixOS. The basic idea is the same, but in practice it felt much more difficult. (MounRiver Studio is an IDE used for WCH [...]

Posted at May 23, 2024 | read more

Subscribe

Entries RSS/Feed

Categories

argument (43),
games (44),
meta (8),
narrative (19),
politics (3),
posts (10),
programming (105),
romance (17)

Tags

aboutassholes action activists analysis anime anzac day armchairphilosophy author.jane austen author.katherine ashe author.liana kerzner author.lisa kleypas author.maya rodale author.miranda neville author.rasalvator author.sherry thomas book.at the billionaire's wedding book.at the duke's wedding book.devil in winter book.emma book.for such a time book.pride and prejudice book.scandal in spring book.seducing mr knightly books bullying character community conflict conflictresolution coop cs3216 debugging discourse diversity elitism email feminism firmware.fak firmware.keyberon firmware.kirei firmware.qmk first person shooter fyp game design game.atom zombie smasher game.battlefield game.call of duty game.chrono trigger game.crysis game.far cry game.faster than light game.final fantasy game.gta game.if my heart had wings game.just cause game.minecraft game.orcs must die game.patapon game.pixeljunk monsters game.rainbow six game.saints row game.sky rogue game.skyrim game.starbound game.terraria game.tomb raider game.valkyria chronicles game.xcom gamergate games.future cop games.men of valor hacker culture identity international-womens-day internet.facebook internet.goodreads internet.twitter ivorytower keyboards keyboards.bm40 linkdump media media.ex machina media.inside out media.jane austen book club media.lego media.lizzie bennet diaries media.pacific rim media.rick and morty media.rwby media.south park media.the righteous mind media.the wire media.zootopia meta music narrative new zealand notetaking nzpol office365 onenote opinion organising outrage persuasion politicallycs politics presentation programming programming.ai programming.antlr4 programming.arch programming.arduino programming.atom programming.atomdsl programming.c programming.c++ programming.ch32x programming.ch58x programming.ch59x programming.chef programming.chocolatey programming.dotfiles programming.eclipse programming.editors programming.elastic tabs programming.elm programming.emacs programming.embedded programming.exceptions programming.fish programming.fp programming.fugitive programming.git programming.github programming.go programming.gpg programming.gradle programming.hakyll programming.haskell programming.helix programming.hg programming.ios programming.java programming.javascript programming.just programming.lime programming.linkdump programming.linux programming.log-style programming.make programming.mercurial programming.mounriver-studio programming.mutt programming.neovim programming.nickel programming.nix programming.nixos programming.nodejs programming.oop programming.openstack programming.org-mode programming.osgi programming.osx programming.powershell programming.provisioning programming.python programming.ruby programming.rust programming.sbt programming.scala programming.scalatest programming.tabs vs spaces programming.terminal programming.terraform programming.tmux programming.tools programming.vim programming.yi project.c-worksheet rant readers recommendation reflection righteous mind roguelike romance singapore sjw society sorry status451 steam test-automation videogames wet-shaving whyiwrite windows womenintech writing yubikey