HNHacker News
TopNewBestAskShowJobs

williamkuszmaul

591 karma · joined November 19, 2016

submissionscomments
williamkuszmaul··on Explaining explaining: a quick guide on explanatory writing
I like this post. I think it has an important overarching lesson, which is that when you're explaining something that's complicated, it's critical that the structure of the exposition itself is straightforward, that way there's only one complicated thing in the room.

One concrete takeaway for me is: I often lead with the history of a problem in order to give it some gravitas, but maybe I'll try the advice of swapping the order up, and starting with the concrete thing of what it is we're going to accomplish.

williamkuszmaul··on Binary Decision Diagrams (2010)
Another example is locality sensitive hashing (introduced in late 1990s), which can be used as a data structure to efficiently solve the nearest-neighbor problem.
williamkuszmaul··on Binary Decision Diagrams (2010)
I agree. Related to this, sketches (i.e., small data structures that can be used to recover information about large data sets) are also fundamentally new (and most of the techniques are from the 21-st century).
williamkuszmaul··on Binary Decision Diagrams (2010)
No, cache-oblivious B-trees are not a variant of B-trees (although I can see why you might think the name suggests that). I classify them as fundamentally new because they technique they introduce was fundamentally different than past data structures. (Their fractal-like layout allows for them to achieve optimal behavior on an arbitrarily parameterized cache.)
williamkuszmaul··on Binary Decision Diagrams (2010)
For perspective, here are some examples of other data structures in the past 35 years that are fundamentally new. (I am only including data structures that differ significantly from their predecessors)

B-epsilon trees: These allow asymptotic speedups for insert/update/delete operations on search trees in external memory (Introduced in 2002 by the paper, Lower Bounds for External Memory Dictionaries)

Cache-Oblivious B-Trees: This is an external-memory search tree that exhibits optimal behavior on a cache with any (possibly unknown) cache-size and cache-line size parameters. (Introduced in 2000 by the paper Cache-Oblivious B trees)

Fusion trees: This allows for search operations in a small binary tree (i.e., a tree whose size is polynomial in the machine word size) to be performed in constant time, rather than logarithmic time. (Introduced in 1990 by the paper Blasting through the Information Theoretic Barrier with Fusion Trees.)

Cuckoo hashing: This is a hash table design introduced in 2001. In 2009, the paper De-amortized Cuckoo Hashing showed how to make all operations in Cuckoo hashing take truly constant time with high probability. This remains (as far as I know) the only known technique for guaranteeing constant-time operation for a hash table without the use of bit manipulation tricks or the method of four Russians.

These are just examples off the top of my head. I'm sure there are many more.

williamkuszmaul··on Ask HN: Pitch your personal newsletter/blog with a one-liner
Name: Algorithm Soup

One-liner: A bit of math and a byte of computer science.

https://algorithmsoup.wordpress.com/

williamkuszmaul··on There’s plenty of room at the Top: computer performance after Moore’s law
Do you have a reference for Feynman's title being a play on Webster's comment? That would be neat to have.
williamkuszmaul··on BetrFS: An in-kernel file system that uses Bε trees to organize on-disk storage
The website doesn't seem to mention that several of the papers on the filesystem won best-paper awards at major conferences. The paper, Optimizing Every Operation in a Write-Optimized File System, in particular, won best-paper award at FAST '16.
← PreviousPage 2 of 2