Daniel Hooper
@DanielcHooper
Graphics, low level, and game programmer. I made http://principle.app. Former Apple engineer.
New Post: How I Write Type Safe Generic Data Structures in C danielchasehooper.com/posts/typechec…

A programming trick I use *all the time* is to quickly undo and then redo to teleport back to where I was last typing. I haven't seen anyone else talk about this, but I can't be the only one, right?
Is a build profiling tool something that people would be interested in? I've been working on one for myself, and I'm trying to decide if it's worth making nice and releasing. Works on any language/build system. Checks for issues like under utilized hardware, files compiled…

It is so annoying when a project's build instructions are more than: git clone <repo url> cd <repo> ./build.sh Just encode your crazy long instructions in script form! Download the dependencies! Do whatever it takes, just build it!
Whoa, Ninja builds are *way* more efficient than make. The recursive make invocations really screw up parallelism This is the llvm project getting compiled. Make on left, ninja on right


I recently switched from the Discord native app to the web app because it launches so much faster – thanks to not doing ~11 delta updates every launch! Why doesn't Discord switch to a full update if delta updates will take longer? Why can't it update itself at close instead of…
the parallel/concurrent computing concepts are poorly named: dictionary defines “concurrent” as “happening at the same time”, but that’s not what it means in computing! “Interleaved” and “Simultaneous” make more sense
Threads are a unit of concurrency. Physical CPU cores are a unit of parallelism.
So I realized you can store number data in C's type system using array lengths...enables some interesting things. Working on first draft of blog post now...

Feels possible that I might regret not selling Principle to Figma a few years ago. 😆
Sharing an update on @figma: we publicly filed our S-1 with the SEC today, and have applied to list on the New York Stock Exchange under the symbol “FIG.” figma.com/blog/s1-public
Confused by engagement numbers these days. A year ago I could count on getting hundreds of likes on my posts, but now it seems like non of my followers are active?? Anyone else experiencing this?
Ok, here's the new way I recommend to do type safe generics in C. It's cleaner compared to my old function-pointer-cast approach, avoids the undefined behavior everyone is so paranoid about, and doesn't require typeof()

Just thought of a way to use the ternary operator to get the compiler to check that two types are the same - it removes the need to typecast functions, and works on compilers that don't support typeof()...updating the article now.
New Post: How I Write Type Safe Generic Data Structures in C danielchasehooper.com/posts/typechec…
WebGPU enabled by default in Safari 26. Long time coming.
