Notes on Distributed Systems For Young Bloods
Great overview of some real-world lessons from dealing with complex distributed systems. I especially appreciate the focus on how just knowing the theory can lead to problems: “Oh, and Paxos really is very hard to implement; that’s not grumpy old engineers thinking they know better than you.”
I wish I had written this.
(Video) Seeing Whole Systems
Very nice overview of systems thinking. This talk does a great job of exposing the basic principles and terminology but also focuses on using visualizations to model and help us understand complex systems.
Most of the concepts I’ve read elsewhere, but I think Nicky does a great job of pulling them together into a cohesive talk.
Game Engine Black Book: Wolfenstein 3D
Back in the 90s, like many young guys of my generation I wanted to make video games. I had a book, purchased through a “Computer Book Club” that promised to expose the “Tricks of the Game Programming Gurus”. It was complete jibberish to me. I never made any progress. I instead just got good grades and went to college.
BUT, I’ve always a few nagging questions about those days. Now that understand such esoteric concepts such as “pointers” and “interrupts”, how did MS-DOS work? How was Wolfenstein 3D even possible? What were those jumpers I had to configure on my graphics card and modem?
Despite my relative uninterest in modern gaming, this brand new book about the internals of Wolfenstein 3D really struck my fancy. It explains concepts about the internals of 286/386 intel architecture and how MS-DOS worked in a way I never understood back when it mattered. If this book existed when I was in high-school my life may have looked nothing like it does today. That’s not likely a good thing, but interesting to think about none the less.
Different I/O Access Methods for Linux, What We Chose for Scylla, and Why
Back in my day, you had read
and write
, a buffer cache and you liked it. There was a writeup for the Varnish project about how we don’t have to code like it’s 1975 but I hadn’t really thought that much more about it.
This article I caught in my cron.weekly I found a particularly good explanation of some of the newer methods that are available on linux and their tradeoffs. I’m a bit inspired to play with these APIs and get a feel for exactly what it’s like to do disk IO this way.