Posts

  • The lost taglines

    Software documentation usually does not include the most important facts you want to know as a beginner. The kind of stuff you might internalise after using something for years, but you could not have learned by reading the documentation. The stuff which should show up as a blinking orange & teal banner on top of the documentation page — the lost taglines:

  • Nightly Rust development with Nix

    This one took a while to get simple enough; enjoy!

  • Git bisect run techniques

    git bisect run lets us find the breaking commit in O(log(N)) time for N commits, by doing a binary search through commits to determine the one which broke things. It is extremely useful, but the thing which often takes a long time is figuring out which command to use to reliably determine whether a commit is good or bad. This article explains some techniques to help with this task.

  • Interactive NixOS tests

    A quick guide to running NixOS tests interactively like you would in other testing framework.

  • Using Linux desktop automation for image download

    Intelerad has developed something called “nuage Patient Portal”, which is used by many clinics to let patients download their scans. It’s an excellent service, especially if you want to have backups of all of your own health records. But it (or at least the version used by my clinic) does have a flaw: it’s cumbersome to download all the images.

  • How to test Renovate configuration changes in GitLab CI

    You’ve changed renovate.json, but of course you want to test the change before merging. There doesn’t seem to be a simple guide to this, so here’s what I’ve cobbled together.

  • Nix shell locale support

    If you need to do anything to do with locales in a Nix shell, you’ll want to add the following to your environment:

  • Nix shell IDE integration

    Most projects involve some CLI tools which can be useful to integrate into the IDE. For example, when using an interpreted language like Python, telling the IDE where to find the python executable means it should be able to find and auto-complete language-specific dependencies, detect any syntax errors based on the exact interpreter version, and run the tests without any extra setup. There’s just one snag: some IDEs require you to specify an absolute path to the interpreter, and Nix store paths are hashed:

  • Nix language-specific dependencies

    The following Nix shell declaration has a common bug:

  • AWS Azure login interactive profile selection function

    I’ve created a wrapper for aws-azure-login to let you interactively select the profile you want before logging in. I have a bunch of profiles, I can never remember what they are called, and some of them have short session lifetimes, so this has been a lifesaver.