Blog
Every bug, build note, and half-finished theory that made it past the daily log and into something worth reading properly.
The Pointer I Never Touched Was Still Undefined Behavior
I argued that a pointer nobody dereferences can't be a bug. The C standard doesn't care what you do with a pointer — only whether you were ever allowed to compute it in the first place.
Why I'm Learning C Before Touching a Framework
Every framework eventually leaks its abstractions. I'd rather know what's underneath before I need it in an emergency.
The Format Specifier That Hid My Own Bug From Me
The exercise existed to prove unsigned integers wrap around correctly. The number on screen said they didn't — and the number on screen turned out to be the only thing in the whole program that was wrong.
What Copying My Own Working Code Taught Me About Copying Code
My singly linked list worked, fully tested. Adapting it into a doubly linked one should have been the easy fifteen minutes of the session. I put three bugs into it instead, all from the same bad habit.
The Missing Parentheses That Turned My Callback Into Something Else
I wrote a function-pointer parameter, minus two parentheses. It compiled without a single complaint — because what I'd actually written was still a pointer, just one aimed at a function with the wrong return type.
The Macro That Took Five Tries to Even Compile
A three-argument max macro should be a two-minute exercise. Mine took five tries just to get the preprocessor to accept it, and two more after that to get the right answer out.