Daniel Hooper's Avatar

Daniel Hooper

@danielchooper.bsky.social

Graphics/low-level/game programmer. Made www.principle.app. Former Apple Engineer. https://danielchasehooper.com I post more frequently to my x.com/danielchooper account, if you'd rather follow me there.

355 Followers  |  68 Following  |  57 Posts  |  Joined: 06.02.2024  |  1.9617

Latest posts by danielchooper.bsky.social on Bluesky

Preview
I Made A Real-Time Build Visualizer Sometimes software takes a long time to compile just due to how much code it has, like in the LLVM project. But often a build is slower than it could be for dumb, fixable reasons. I’ve had the suspici...

I wrote it for my build profiler, more info and early access here: danielchasehooper.com/posts/syscal...

09.02.2026 22:24 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

I wrote a UI library in C that can lay out 95000 items at 60fps.

The library is 566 lines of C, and the application-specific ui code is 998 lines. Works on mac, windows, and linux.

09.02.2026 22:24 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

in my experience the models small enough to run locally aren't that good. But keeping your code to yourself may be a lost cause if you host your code somewhere like github

12.01.2026 03:29 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks!

Thats one of my most common uses for it. I’m writing a new hash map so I pointed it at the source for several open source implementations to summarize each one’s design

10.01.2026 13:59 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Testing Opus 4.5 For C Programming A grumpy C programmer sees what all the fuss is about

New post: Testing Opus 4.5 For C Programming.

TLDR: it's good, even for curmudgeons like me, but you need to play to its strengths. You don't have to use it like a dumb yolo vibecoder.

danielchasehooper.com/posts/code-a...

09.01.2026 21:19 β€” πŸ‘ 9    πŸ” 1    πŸ’¬ 2    πŸ“Œ 0

I ran into this today with a different button - still no idea what the button does. Just removed it.

19.09.2025 20:59 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
Snooping On Slow Builds (Using Syscalls) Many software projects take a long time to compile. Sometimes that’s just due to the sheer amount of code, like in the LLVM project. But often a build is slower than it should be for dumb, fixable rea...

⭐️ New Article: Snooping On Slow Builds (Using syscalls)
danielchasehooper.com/posts/syscal...

13.08.2025 17:21 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
A Fast, Growable Array With Stable Pointers in C The C implementation is available here. My last post about generic data structures in C was written to set the stage for today’s topic: A data structure that can be used in place of dynamic arrays,…

⭐️ New Post: A Fast, Growable Array With Stable Pointers in C
danielchasehooper.com/posts/segmen...

06.08.2025 16:56 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

The header technique described towards the beginning of my article is effectively that.

09.07.2025 10:08 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

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()

01.07.2025 05:18 β€” πŸ‘ 7    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

Hacked together a weird spiral Mario game prototype

30.06.2025 23:08 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I haven't, thanks for the link.

I used to do that too, but it became problematic in a large, long lived, multi-engineer codebase

30.06.2025 22:00 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

New Post: How I Write Type Safe Generic Data Structures in C
danielchasehooper.com/posts/typech...

30.06.2025 16:37 β€” πŸ‘ 19    πŸ” 3    πŸ’¬ 1    πŸ“Œ 0

As a precursor to public key cryptography, William Jevons said in 1874 "What two numbers multiplied together produce 8616460799? I think it unlikely that anyone but I will ever know"

Modern computers find the answer in 0.004s: primes 89681 and 96079

Cool for the time, just needed bigger numbers!

04.06.2025 16:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

I like this comment in the source of /usr/bin/dtruss. It provides context with a "Hey dorks, don't mess with my code" kind of energy.

03.06.2025 23:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Weird time to be someone that likes making tools

30.05.2025 16:51 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Haha so true!

29.05.2025 01:42 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Not a good sign when fixing a bug requires editing a file with this at the top

21.05.2025 15:32 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

This was written by a filmmaker about color science, but it applies just as well to the software industry's dependency problem

15.05.2025 17:40 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Support Alpha blending in sokol_gl.h by danielchasehooper Β· Pull Request #1266 Β· floooh/sokol sokol_gl's api accepts colors with alpha, so blending should probably be enabled

I ended up doing this: github.com/floooh/sokol...

15.05.2025 02:08 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Github needs this notification option

Tired of getting pinged every time a random person adds their two cents to a Github issue I follow.

14.05.2025 19:58 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I've had that sitting on my games shelf for years but haven't played it, maybe I never will now!

14.05.2025 15:24 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@flohofwoe.bsky.social Is there a trick to get alpha blending working in sokol-gl, or does that require making my own pipeline?

aka:
sgl_begin_triangles();
sgl_c4b(255, 0, 0, 127);
...
sgl_end();

13.05.2025 21:18 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It’s wild that iOS still doesn’t have a β€œlock orientation *except videos*” mode

05.05.2025 15:27 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

That was really nice. I recently realized I haven’t been playing guitar as much I used to, so I’m trying to fix that.

14.04.2025 18:22 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

haha yeah, I wasn’t sure how far to take the meme…could have included micro architecture all the way down to electrons!

14.04.2025 18:04 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

"C is how a computer actually works"

14.04.2025 15:30 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

TIL that CRT "pixels" can have only a portion illuminated, unlike LCD pixels. (Seen on the top and bottom edge of this 'P')

11.04.2025 04:56 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image Post image

Today I bought an old TV for visual reference. Played Balatro to see how the game's CRT emulation compared to a real Cathode Ray Tube. Sadly details aren't legible on a 13" TV, and the emulation's scanline/phosphor pattern isn't realistic, but it nails the chromatic aberration.

11.04.2025 04:56 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Already exists! β€œSpace” toggles pencil. β€œShift + a number” edits pencil digits regardless of pencil mode.

04.04.2025 02:45 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@danielchooper is following 20 prominent accounts