Posts

Day 19: The Mask

Section 2.7, bitwise operators, and why the same 8 bits mean different things depending on who's reading them.

Day 18: Why 'A' Is Not A Character

Closed the overnight question on why character constants are int, worked through sections 2.3 through 2.5, and wrote exercise 2-2 — the one where short-circuit evaluation turns out to be a security guarantee.

Day 17: The Break Day That Wasn't

Took a day off from K&R and spent it getting a dead 3D printing lab alive. Turns out debugging firmware and tracing undocumented wiring is just hacking with different stakes.

Day 015 The Chapter 1 Test

Testing everything from Chapter 1. Feynman gauntlet, code tracing, security connections, and closing gaps I did not know I had.

Day 014 The Parser's Dilemma

Finishing Chapter 1 with the two hardest exercises. Comment stripping, bracket matching, and why parsers that don't understand context create entire vulnerability classes.

Day 013 Lucky Number

K&R exercises 1-20 through 1-22. Tab expansion, tab compression, line folding. A bug that hid in plain sight.

Day 012 Two Counters

Exercises 1-16 through 1-18. Dual counters, GDB investigations, and what happens when zero means two things.

Day 011: The Quiet Byte

K&R 1.8 and 1.9. Call by value, character arrays, and the single byte that holds all of C together.

Day 010: The Memory Next Door

K&R 1.6 and 1.7. Arrays, character arithmetic, functions. And the first time I watched a bug disappear into memory that wasn't mine.

Day 009: Shortcut Tax Repaid

Rebuilding ten exercises from scratch on a different machine. No peeking. No shortcuts. Proof of ownership.

Day 007 Earning It Clean

Rebuilding exercise 1-10 from scratch, word counting with state machines, and threat modeling a 20-line program.

Day 006 The Shortcut Tax

Line counting, state tracking, and the cost of reaching for someone else's answer.

Day 005 The Program Listens

C stops printing and starts listening. getchar, putchar, and the precedence trap that has ruined code for fifty years.

Day 004 What They Didn't Know

K&R section 1.4. Symbolic constants. The preprocessor. And the realization that every layer was built by people who could not see what was coming.