Hacker Blogs
Work in progress: 15,409 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #736

N

Nick

Personal blog · blog.notdot.netprogramminghardware

Nick's personal blog at blog.notdot.net covers programming and hardware. Since 2007, 88 different Hacker News readers have linked it 117 times, most often “Damn Cool Algorithms: Quadtrees and Hilbert Curves”. The last post was in 2013, but the archive is still widely read.

Visit the blog
117mentions?
13recommend?
88HN people?
2007–2025first – last linked?
Links on Hacker News per year · peak 16 in 2010

Sometimes recommended · 13 of 40 sampled comments recommend it?

Why HN links it

HN readers link Nick Johnson's blog mainly for its Damn Cool Algorithms series, which explains algorithms such as fountain codes, HyperLogLog, BK-trees and spatial indexing, and for some App Engine posts.

Recommended for · 13 comments
Algorithm posts called must read, very good, incredible and really good explanations; blog called cool

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Damn Cool Algorithms: Quadtrees and Hilbert Curves
    11 people · 11 mentions · first linked 2009-11-09
  2. Damn Cool Algorithms: Levenshtein Automata
    10 people · 11 mentions · first linked 2010-07-28
  3. Build Your Own FPGA (2012)
    9 people · 10 mentions · first linked 2012-11-01
  4. Damn Cool Algorithms, Part 1: BK-Trees
    9 people · 9 mentions · first linked 2010-01-29
  5. Damn Cool Algorithms: Fountain Codes
    8 people · 8 mentions · first linked 2012-01-06
  6. Damn Cool Algorithms: Cardinality Estimation
    7 people · 7 mentions · first linked 2012-09-07
  7. Damn Cool Algorithms: Log structured storage (2009)
    6 people · 15 mentions · first linked 2009-12-15
  8. Damn Cool Algorithms
    6 people · 9 mentions · first linked 2012-12-23
  9. Damn Cool Algorithms: Secure permutations with block ciphers
    3 people · 3 mentions · first linked 2012-08-31
  10. Modeling relationships in App Engine
    3 people · 3 mentions · first linked 2010-10-01

What Hacker News says?

  1. The BK-Tree, which allows fast querying of "close" matches, such as Hamming distance (number of bits different). http://blog.notdot.net/2007/4/Damn-Cool-Algorithms-Part-1-BK... I wrote a Python library implementing them a number of years ago: https://github.com/benhoyt/pybktree

    Comment linking /2007/4/Damn-Cool-Algorithms-Part-1-BK-Trees

    on “Ask HN: What are some cool but obscure data structures you know about?”
  2. Submitted Damn Cool Algorithms: Fountain Codes as a story · 306 points

    HN discussion
  3. Just for fun: http://blog.notdot.net/2012/10/Build-your-own-FPGA

    Comment linking /2012/10/Build-your-own-FPGA

    on “I decided to make a graphics card for my Amiga 2000”
  4. Submitted Damn Cool Algorithms: Log structured storage (2009) as a story · 296 points

    HN discussion
  5. bjkchoy · 2021-01-18Recommends
    There is a very clever and beautiful algorithm that only uses the xor operation. It's the Luby Transform code, the simplest implementation of a Fountain Code. A Fountain Code lets you transmit a file over an unreliable connection (packets can be unordered, and even lost), with just a unidirectional communication. And this can be done just by xoring a random number of blocks from the file over and over! A very good e…

    Comment linking /2012/01/Damn-Cool-Algorithms-Fountain-Codes

    on “That XOR Trick (2020)”
  6. Submitted Damn Cool Algorithms: Homomorphic Hashing as a story · 234 points

    HN discussion
  7. eternalban · 2014-04-01Recommends
    Nick's blog is a must read for these sort of algorithms. See his original writeup on the HLL here: http://blog.notdot.net/2012/09/Dam-Cool-Algorithms-Cardinali...

    Comment linking /2012/09/Dam-Cool-Algorithms-Cardinality-Estimation

    on “Redis new data structure: the HyperLogLog”
  8. Submitted Damn Cool Algorithms: Cardinality Estimation as a story · 233 points

    HN discussion
  9. So I think this is roughly what antirez is talking about with 'registers' for a counter. From the article: The standard error of HyperLogLog is 1.04/sqrt(m), where “m” is the number of registers used. Redis uses 16384 registers, so the standard error is 0.81%. My understanding is that the error is very small because you're averaging over 16,000 registers. Edit: also, I think you want the mean because it'll give you…

    Comment linking /2012/09/Dam-Cool-Algorithms-Cardinality-Estimation

    on “Redis new data structure: the HyperLogLog”
  10. Submitted Build Your Own FPGA (2012) as a story · 216 points

    HN discussion
  11. If you store data onto 50 DNA strands, can you always read back all the data from all 50 strands, or does one need to store multiple copies of each in case the sequencer can't "find" a particular strand? If one does need multiple copies, it would seem that this method suffers from the coupon collector's problem [1] (i.e. to collect all 50 strands requires collecting 225 random strands on average), and that the retri…

    Comment linking /2012/01/Damn-Cool-Algorithms-Fountain-Codes

    on “Harvard cracks DNA storage, crams 700 terabytes of data into a single gram”
  12. Submitted Damn Cool Algorithms: Levenshtein Automata as a story · 208 points

    HN discussion
  13. Here are a couple of articles about a homebrew FPGA (only one logic cell, but it's step in your direction). https://hackaday.com/2012/09/20/homebrew-fpgas/ http://blog.notdot.net/2012/10/Build-your-own-FPGA

    Comment linking /2012/10/Build-your-own-FPGA

    on “IBM scientists say radical new ‘in-memory’ architecture will speed up computers”
  14. Submitted Damn Cool Algorithms, Part 1: BK-Trees as a story · 177 points

    HN discussion
  15. csense · 2012-08-28Recommends
    Read up on fountain codes. A good starting point is the previous post on the same blog [1], actually linked in the first sentence of the article. The basic idea is that, instead of sending N blocks in the content file f, you have a block generator gen_block(f) which can create an infinite number of blocks as random combinations of input blocks (plus a little "magic"). A peer who downloads any 1.01N or so blocks can…

    Comment linking /2012/01/Damn-Cool-Algorithms-Fountain-Codes

    on “Damn Cool Algorithms: Homomorphic Hashing”
  16. Submitted Levenshtein Automata (2010) as a story · 172 points

    HN discussion
  17. Yes, you're right. We're not using SQL queries at the moment as that would be very inefficient, it was just as an example for a small dataset. I'm currently researching MVP's and reading on VP-trees, BK-trees [1], GNAT [2] and HEngine [3]. Do you have any advice? [1] http://blog.notdot.net/2007/4/Damn-Cool-Algorithms-Part-1-BK... [2] http://www.vldb.org/conf/1995/P574.PDF [3] https://www.cse.msu.edu/~alexliu/publica…

    Comment linking /2007/4/Damn-Cool-Algorithms-Part-1-BK-Trees

    on “Detecting duplicate images with Python”
  18. Submitted Damn Cool Algorithms: Quadtrees and Hilbert Curves as a story · 137 points

    HN discussion
  19. Levenshtein distance is a metric [1] and discrete metrics can be indexed with BK trees, taking advantage of the triangle inequality. For a detailed explanation, see [2]. I know of no real world implementation of this, however. [1] https://en.wikipedia.org/wiki/Metric_(mathematics) [2] http://blog.notdot.net/2007/4/Damn-Cool-Algorithms-Part-1-BK...

    Comment linking /2007/4/Damn-Cool-Algorithms-Part-1-BK-Trees

    on “Levenshtein Distance”
  20. Submitted Damn Cool Algorithms: Levenshtein Automata as a story · 118 points

    HN discussion
  21. Agreed re: the quality of Frank McSherry's posts - they're all great fun and push the technical envelope! I'm glad you brought up Hilbert ordering. It's fascinating but I rarely see it. I usually see Z-order curves in their place - simpler and more intuitive but also less effective. Does anyone know of large scale databases with Hilbert ordering out of the box? For anyone who hasn't seen them before, or why they hel…

    Comment linking /2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves

    on “One trillion edges: graph processing at Facebook scale [pdf]”
  22. Submitted Build your own FPGA as a story · 112 points

    HN discussion
  23. Vaguely related technique with similar goals (but I love the one posted here) http://blog.notdot.net/2007/9/Damn-Cool-Algorithms-Part-2-Se...

    Comment linking /2007/9/Damn-Cool-Algorithms-Part-2-Secure-permutations-with-block-ciphers

    on “UUIDv47: Store UUIDv7 in DB, emit UUIDv4 outside (SipHash-masked timestamp)”
  24. Submitted Damn Cool Algorithms: Spatial indexing with Quadtrees and Hilbert Curves as a story · 107 points

    HN discussion
  25. Space-filling curves can also be used for spatial indexing. Nick Johnson wrote a nice introduction to the technique on his blog: http://blog.notdot.net/2009/11/Damn-Cool-Algorithms-Spatial-...

    Comment linking /2009/11/Damn-Cool-Algorithms-Spatial-indexing-with-Quadtrees-and-Hilbert-Curves

    on “A practical use for space-filling curves”
  26. Submitted Damn Cool Algorithms: Levenshtein Automata as a story · 99 points

    HN discussion
  27. billwashere · 2018-09-04Recommends
    Everyone this cool website gets posted I point them to this - http://blog.notdot.net/tag/damn-cool-algorithms

    Comment linking /tag/damn-cool-algorithms

    on “Levenshtein Automata (2010)”
  28. Submitted Damn Cool Algoritms: BK-Trees as a story · 96 points

    HN discussion
  29. There are a couple: http://blog.notdot.net/2012/10/Build-your-own-FPGA https://news.ycombinator.com/item?id=24252737 https://github.com/haojunliu/OpenFPGA https://www.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-4...

    Comment linking /2012/10/Build-your-own-FPGA

    on “AMD Is in Advanced Talks to Buy Xilinx”
  30. Submitted Build your own FPGA (2012) as a story · 95 points

    HN discussion

Search all of HN for blog.notdot.net

Linked by the same people?