May 14, 2026
Code, corrections, and undead vibes
Pipes, Forks, and Zombies
Old coding lesson sparks typo police, fact-check fights, and zombie jokes
TLDR: The article explains an old but important idea in computing: small programs can work together, and pipes help control when they stop. But the real story is the comments, where readers mocked the mistakes, corrected the history, and argued the explanation was simply wrong.
A dusty old programming lesson about how early computer tools were designed to "snap together" like a garden hose somehow turned into a full-blown comment-section roast. The article tries to explain a classic idea: one program can pass its output to another, making simple tools more powerful when chained together. It also dives into what happens when one program stops reading and another keeps talking, plus a trick for detecting when a child process has ended. But the crowd was far less interested in the lesson than in the article’s chaotic mistakes.
The biggest drama? Readers instantly pounced on the write-up’s mangled section on literate programming, accusing it of butchering both the term and the history. One commenter dryly noted that the article got "Literate Programming" wrong ironically, while another marched in with the correction and an official Knuth page like receipts in a celebrity feud. Then came the second wave: a technical takedown of the article’s explanation of why seq stops when piped into less. In plain English, commenters said the piece’s explanation doesn’t actually match what would happen on a real system.
And because the internet can never resist a joke, one of the most-liked reactions basically said: wait, this isn’t about surviving the apocalypse? Between typo-sniping, historical corrections, and zombie disappointment, the comments turned an old systems lesson into a delightfully nerdy pile-on.
Key Points
- •The article presents Doug McIlroy’s 1964 memo as an early statement of the idea behind Unix pipes.
- •It contrasts Donald Knuth’s literate programming approach with McIlroy’s systems-oriented use of pipes for chaining program output.
- •The article uses `seq` and `less` to illustrate how piped program output is handled and discusses `SIGPIPE` when writing to a pipe with no readers.
- •It explains that `ps aux` and `strace` can be used to inspect process state and system-call behavior in a pipeline.
- •The article shows a code pattern where a parent process blocks on `read` from a pipe until a child created by `fork()` exits, mimicking `waitpid` behavior when exit status is not needed.