DodgyCoder is a blog on software development and other topics, with programmer interviews, coding lore, and programming jokes.
HN links it for classic programming stories, such as game developers' memory ballast trick, Yoda conditions, and interviews with well-known programmers.
Umm, we have lots of lore in this field. "The Graphing Calculator Story" at Apple, "The Story of Mel", the entire site folklore.org, stories about Gates and the early days of Microsoft, the "IBM visiting Gary Kildall" story, the Ariane V exception, Grace Hopper and the moth stuck in a relay (and her nanosecond wire), the "Steve Jobs at Xerox" story, Stallman's description of why he started the GNU project, Torvald's first posting about Linux, the Torvalds/Tannenbaum exchange, the rumors about the CIA wanting popcount on the Cray and about the backdoor in DES, "Better is Worse", "Reflections on Trusting Trust", "Always mount a scratch monkey", anecdote collections like http://www.dodgycoder.net/2012/02/coding-tricks-of-game-developers.html .
http://www.filfre.net/ is going through the history of ludic games, including discussion of the lore associated with specific games. There are stories about IBM's "Black Team" ("more than one programmer was reduced to tears while having his code evaluated by the Black Team.") Tracy Kidder's "The Soul of a New Machine". Robert X. Cringely's "Accidental Empires: How the Boys of Silicon Valley Make Their Millions, Battle Foreign Competition, and Still Can't Get a Date" shouldn't be read as a history book but a collection of lore about Silicon Valley.
Also, I picked "engineers" and "plumbers" to show real-world examples of non-universal elements. "Architect" is another non-universal.
Regarding naval architects, there's Bushnell's Turtle,…
Oh yeah, this is very common in game development, and I'm pretty sure in other embedded dev too. There's a famous story about a game programmer who saved an entire production when it started crashing something like two weeks before shipping by commenting one line of code. Turned out the line of code was a malloc (of like a megabyte) that he'd added a year earlier, in anticipation of the game running out of memory. My details are probably wrong, but I'm pretty sure I've seen this story linked on HN.
I was in game dev for a decade, and I saw this happen where I worked, the studio technical director adopted the practice of saving some space, because we always started running out of memory near the deadline as artists threw in all their content.
*edit: http://www.dodgycoder.net/2012/02/coding-tricks-of-game-developers.html
Same idea as this game development legend
https://www.dodgycoder.net/2012/02/coding-tricks-of-game-developers.html
> he had put aside those two megabytes of memory early in the development cycle. He knew from experience that it was always impossible to cut content down to memory budgets, and that many projects had come close to failing because of it. So now, as a regular practice, he always put aside a nice block of memory to free up when it's really needed.
> These days I live in NetBeans. It does everything I want, very cleanly simply and efficiently. It’s the nicest environment I’ve ever lived in.
https://www.dodgycoder.net/2012/09/q-with-nine-great-programmers.html
It wasn't XEmacs, but rahter the genesis of Emacs itself (I got that wrong).
https://www.youtube.com/watch?v=IT__Nrr3PNI&t=1642s
https://en.wikipedia.org/wiki/Gosling_Emacs
Got to love all the St. Thomas requests on developer forums.
I love this ballast file idea. It reminds me of a programming story by Noel Llopis[0] where a game developer was working with a strict memory limit and placed static char buffer[1024 * 1024 * 2]; in the code as an insurance policy[1]:
[0] http://gamesfromwithin.com
[1] http://www.dodgycoder.net/2012/02/coding-tricks-of-game-developers.html
This article was posted here a while ago:
http://www.dodgycoder.net/2012/07/old-school-developers-achieving-lot.html
It mentions that Ken Thompson "starts his projects by designing the data structures and then works bottom up".
Adapting this approach solved several problems I was having during development.