Four short links: 15 July 2020
Being a Good Programmer, Algorithms I Use, Verifiable Data Structures, and Audio Spy Detector
- Fixing Bugs Properly — Why did a fix that seems so simple when looking at the changes made take two days to complete? Good programmers leave things better than they found them.
- Data Structures and Algorithms I Actually Use — This article is a set of real-world examples where data structures like trees, graphs, and various algorithms were used in production. It’s good to see them used outside interviews.
- Trillian — Trillian implements a Merkle tree [cryptographically-verified tree] whose contents are served from a data storage layer, to allow scalability to extremely large trees. On top of this Merkle tree, Trillian provides two modes: An append-only Log mode […], An experimental Map mode that allows transparent storage of arbitrary key:value pairs derived from the contents of a source Log.
- LeakyPick: IoT Audio Spy Detector — Our proof-of-concept is a LeakyPick device that is placed in a user’s smart home and periodically “probes” other devices in its environment and monitors the subsequent network traffic for statistical patterns that indicate audio transmission. Our prototype is built on a Raspberry Pi for less than USD40 and has a measurement accuracy of 94% in detecting audio transmissions for a collection of 8 devices with voice assistant capabilities. Furthermore, we used LeakyPick to identify 89 words that an Amazon Echo Dot misinterprets as its wake-word, resulting in unexpected audio transmission.