Niklas Gray

RSS Podcast

A Debugging Story

I’ve been wanting for some time to write something about debugging. I think it’s a really important topic that’s often overlooked. It’s not really taught in computer science classes (except to the extent you learn it by debugging your own programs). There aren’t many good books about it. Etc.

More »

...

Dig Shallow Graves

Recently I’ve been trying to help our interns with API design and I figured I should write something about it.

If I have expertise in anything, it’s probably API design. This is kind of frustrating because it is not very tangible. Like if someone is good at optimizing microcode for x86 processors or something like that, you can point to it and say look, this is what she’s good at. But API design is so much fuzzier. What even is a good API?

More »

Step-by-step: Programming incrementally

One thing that has really benefited my productivity (and also my general sanity), has been learning how to take a big task and break it down into smaller, more manageable steps. Big tasks can be frightening and overwhelming, but if I just keep working on the list of smaller tasks, then somehow, as if by magic, the big task gets completed.

More »

...
A Debugging Story Dig Shallow Graves Step-by-step: Programming incrementally Prototypes in The Machinery Recording Statistics — An Exercise in Minimalism Writing a Low-Level Sound System — You Can Do It! Time Tracking In 2020 Data Structures Part 3: Arrays of arrays Data Structures Part 2: Indices Data Structures Part 1: Bulk Data Syncing a data-oriented ECS with a stateful external system Referencing Objects: Names vs GUIDs Localization in The Machinery’s UI The Story behind The Truth: Designing a Data Model A Tale of Two Bugs Making the move/rotate/scale gizmos work with any component Implementing drag-and-drop in an IMGUI The Document Model and The Machinery Minimalist container library in C (part 2) Minimalist container library in C (part 1) Should entities support multiple instances of the same component? Virtual Memory Tricks Multi-Threading The Truth Keyboard Focus and Event Trickling in Immediate Mode GUIs Moving away from GitFlow DLL Hot Reloading in Theory and Practice One Draw Call UI Defaulting to Zero Little Machines Working Together (Part 2) Little Machines Working Together (Part 1) One-button source code builds Physical Design of The Machinery