Daily Nitpickings - 2025
March
March 16
The Lost Art of Logarithms
An unexpected link on Hacker News led to an online book-in-progress by Charles Petzold's (author of [9]): The Lost Art of Logarithms. Looks like an interesting book in its own right, but some of the comments on the Hacker News post were even more interesting.
Specifically, one comment highlights the so-called Genetic method of teaching mathematics:
The genetic method is a method of teaching mathematics coined by Otto Toeplitz in 1927. As an alternative to the axiomatic system, the method suggests using history of mathematics to deliver excitement and motivation and engage the class.
The method above is exactly what I've had in mind in terms of an effective way of going about teaching mathematics. One of my favorite math classes was the history of mathematics — it's very interesting when technical content is taught with a view towards the cultural influences at the time of its development. It's also good to simply have historical context in terms of what the original thinkers were up against.
Another commenter notes a remark from the famous mathematician, Felix Klein: "On a small scale, a learner naturally and always has to repeat the same developments that the sciences went through on a large scale."
It would be interesting to see such a teaching method applied to computing (e.g., in what contexts were various data structures and algorithms invented, etc.).
IO devices and latency
A Hacker News post on IO devices and latency was highly regarded — the linked post contains a lot of interesting visuals. Something to check out in more detail soon.
Recursion kills
A Hacker News post highlights an article that explores how recursion was to blame for a bug in Expat (an XML parser written in C). The author ends the post by asking the reader to please tell your friends:
Please leave recursion to math and keep it out of (in particular C) software: it kills and will kill again.
This particular story is neat, especially in light of preparing for coding interviews and having to become very comfortable with recursion (e.g., dynamic programming, backtracking, DFS, etc.). Lots of problem-solving strategies use recursion, but recursion can be the source of all sorts of issues in actual software, particularly security problems. See the billion laughs attack for an interesting DoS attack aimed at parsers of XML documents.
March 17
Tiny pointers (data structure)
Came across a very interesting article in Wired that points to the following paper on arXiv: Optimal Bounds for Open Addressing Without Reordering. From the abstract:
In this paper, we revisit one of the simplest problems in data structures: the task of inserting elements into an open-addressed hash table so that elements can later be retrieved with as few probes as possible. We show that, even without reordering elements over time, it is possible to construct a hash table that achieves far better expected search complexities (both amortized and worst-case) than were previously thought possible. Along the way, we disprove the central conjecture left by Yao in his seminal paper "Uniform Hashing is Optimal". All of our results come with matching lower bounds.
It would be good to revisit the Wired article and linked academic papers when possible.