Reading Notes: The Architecture of Open Source Applications II
More from qqrs.github.com
What is it? Doorbot is an Internet-connected door unlocker that I built for a community space. It allows people to enter the space without needing to be buzzed in. System Architecture The Doorbot system consists of: servo motors to actuate the door buzzer button ESP8266 microcontroller with built-in Wi-Fi NodeMCU firmware for ESP8266 lua...
This post is a short overview of what is required for a minimal, download-only BitTorrent implementation. Earlier this year, I wrote a BitTorrent client as an excuse to practice concurrency and networking concepts. But the resources and documentation I found while researching the protocol felt scattered, so I’m distilling my understanding here as...
A conversation with a coworker turned me on to the fact that a surprising range of operations in Python are atomic, even operations like dictionary and class member assignment. This wasn’t something I would have anticipated, given the number of machine language instructions that must ultimately be performed to complete an operation like hash...
While re-reading The Architecture of Open Source Applications, Volume II, a line in the chapter on git caught my eye: if two objects are different they will have different SHAs. This was surprising, as there should always be be some very very small but nonzero chance of a hash collision. Either the book is simplifying for ease of explanation,...
Inspiration The first time I remember seeing a time fountain was a blog post by Nate True from 2006 (archive.org). Operation The time fountain works by using flashes from UV LEDs to illuminate falling drops of fluorescent dye. If the drops fall at a consistent rate, the UV LEDs can be flashed at the same frequency as the drops are falling so that...