Nathaniel Wright

  • About
  • Contact
  • Blogroll

  • My World of Warcraft Fishing Setup

    I’ve been playing a lot of World of Warcraft now that the Midnight expansion has been out for a little while. There’s been tons to do. The story has been engaging and I’ve found myself enjoying all of the side quests and smaller things to discover in each zone. So much so that I’ve done — read more

    May 4, 2026
  • I had a great time at SCALE

    I drove down to Pasadena last Wednesday to attend SCALE. This was my third time attending so I knew a bit about what I was getting myself into: a 3-4 day (depending on if you can make it to a lot of stuff on Sunday) of workshops, talks, and meeting great people who love open — read more

    Mar 9, 2026
  • There are more ways to customize interop code in C# than I thought!

    There are a couple different ways to get C# to interoperate with other programming languages (usually C and C++). In the past (before I started my programming career) there was a lot of C++/CLI and COM objects that C# could (and still can) interact with. I’m positive that stuff is still out there. I just — read more

    Feb 22, 2026
  • One of the best hidden features of GNOME

    I was fiddling around with GNOME’s settings the other day and I found a really awesome setting in GNOME Tweaks: Emacs Input. It doesn’t look like much, but checking this box has wide-ranging effects on the keybindings used to edit text across every GTK app that I use. So things like Chromium, Terminal, etc. all — read more

    Feb 15, 2026
  • A nice little defer helper class in C++

    There are a bunch of cases where there is cleanup that needs to happen before a function finishes, regardless of the exit path. I’ve talked about how you can accomplish this in C with GNU extensions in the past. Today I want to talk about doing the same thing in C++ (hint: it’s a lot — read more

    Feb 8, 2026
  • How to Handle Resource Cleanup in C Unit Tests

    There’s an interesting design constraint I encountered fairly early on when writing a purely C-based unit testing framework that I hadn’t really thought much about when using testing frameworks in other languages like C++, C#, and Java. How do you design a testing framework where resources are cleaned up regardless of a test passing or — read more

    Feb 1, 2026
  • An interesting bug

    I was working on a string library in otter this weekend and ran into an interesting bug and I probably should have known better. The string structure uses a cool feature in C (as of C99… so recent!) called flexible array members. They allow an “empty” trailing array field in the struct that can be — read more

    Jan 25, 2026
  • Automatic unit test discovery in C

    Another thing that I’ve been working on in my project, otter, is a basic unit testing framework. There doesn’t seem to be a popular and standard unit testing framework in C, as far as I’m aware. It also didn’t feel right to write my source code in C and then using something like Google Test, — read more

    Jan 19, 2026
  • Improving partial recompilation in my custom build system

    As I’ve been using the basic build system I’ve created for otter, there were several annoyances that kept cropping up. The one I want to talk about today is determining when a C file has changed and, therefore, needs to be recompiled. For C (and C++), you can basically think of a single .c file — read more

    Jan 12, 2026
  • Simple build system in C

    I first started my current project, otter, with an interesting premise: can you have a C project that only requires the compiler to build itself? This means having a project that can bootstrap its own build system and then build the rest of itself without needing something like CMake, Meson, or Makefiles. Why do this — read more

    Jan 5, 2026
Next Page→

Loading Comments...