Top all-time · #68
Eli Bendersky
Personal blog · eli.thegreenplace.net · on HN as elibenprogrammingai
Eli Bendersky's personal blog at eli.thegreenplace.net covers programming and ai. Since 2007, 432 different Hacker News readers have linked it 1,091 times, most often “Computed goto for efficient dispatch tables (2012)”. No feed was found, so read it on the site itself.
Sometimes recommended · 14 of 40 sampled comments recommend it?
Why HN links it
HN readers link Eli Bendersky's blog as a go-to for low-level and compiler topics, including futexes, computed goto, parsing, context switching and SICP notes.
- Recommended for · 14 comments
- Called very good, excellent, awesome, informative, a nice writeup and a must-read for beginners
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?
- Computed goto for efficient dispatch tables (2012)20 people · 21 mentions · first linked 2017-10-03
- Why coding interviews aren't all that bad14 people · 15 mentions · first linked 2020-02-08
- Measuring context switching and memory overheads for Linux threads13 people · 14 mentions · first linked 2018-09-04
- The Expression Problem and its solutions (2016)11 people · 13 mentions · first linked 2017-11-29
- Parsing expressions by precedence climbing (2012)9 people · 9 mentions · first linked 2018-02-17
- Co-routines as an alternative to state machines (2009)7 people · 7 mentions · first linked 2009-08-29
- /6 people · 6 mentions · first linked 2012-05-08
- How to JIT6 people · 6 mentions · first linked 2018-10-01
- Asimov, Programming and the Meta Ladder5 people · 8 mentions · first linked 2022-01-23
- Type inference5 people · 7 mentions · first linked 2018-11-14
What Hacker News says?
YAML is kind of like C++: > You like C++ because you're only using 20% of it. And that's fine, everyone only uses 20% of C++, the problem is that everyone uses a different 20% :) https://eli.thegreenplace.net/2009/10/17/the-c-bashing-seaso... The YAML footguns are too numerous to reproduce here, so here are some sources: https://stackoverflow.com/questions/3790454/how-do-i-break-a... https://www.arp242.net/yaml-conf…
Comment linking /2009/10/17/the-c-bashing-season-is-back
on “JSON Canvas – An open file format for infinite canvas data”Submitted Common Pitfalls in Go Benchmarking as a story · 1202 points
HN discussion+1 for https://eli.thegreenplace.net/ - very good!
Comment linking /
on “Ask HN: Favorite Blogs by Individuals?”Submitted Making any integer with four 2s as a story · 368 points
HN discussionCover topics around software development, math, programming languages, and academia: http://stuffwithstuff.com/ https://ericlippert.com/ http://thume.ca/archive.html https://medium.com/@mdwdotla https://faculty.washington.edu/ajko/posts https://computinged.wordpress.com/ https://blog.acolyer.org/ https://blog.sigplan.org/blog/ https://blog.paranoidcoding.com/ https://blog.regehr.org/ https://eli.thegreenplace.net/ h…
Comment linking /
on “Ask HN: Favorite Blogs by Individuals?”Submitted How I went about learning Rust as a story · 347 points
HN discussionAwesome technical and programming related blogs: https://eli.thegreenplace.net/ http://journal.stuffwithstuff.com/
Comment linking /
on “Ask HN: Favorite Blogs by Individuals?”Submitted Go hits the concurrency nail on the head as a story · 284 points
HN discussionIn bytecode interpreter VMs, one often encounters the "computed goto" [1] pattern in use to dispatch opcodes. This is one that tends to be a little faster than a switch statement, enough to matter in the dispatch inner loop. Of course, if you are going to JIT compile the bytecode, that'll usually be a lot faster. But at that point you're changing one form of low-level wizardry for another. [1] https://eli.thegreenpl…
Comment linking /2012/07/12/computed-goto-for-efficient-dispatch-tables
on “Go 2, here we come”Submitted Revisiting "Let's Build a Compiler" as a story · 275 points
HN discussionSee https://eli.thegreenplace.net/2018/go-and-algebraic-data-typ... for more background.
Comment linking /2018/go-and-algebraic-data-types/
on “How I write HTTP services in Go after 13 years”Submitted REST Servers in Go: Part 1 – standard library as a story · 257 points
HN discussionI ran into the exact same problem and wrote up some potential solutions at https://eli.thegreenplace.net/2021/rust-data-structures-with...
Comment linking /2021/rust-data-structures-with-circular-references/
on “It's time to halt starting any new projects in C/C++”Submitted To ORM or Not to ORM as a story · 241 points
HN discussionFrom watching the Ted talk, I think that Linus was using a cs101 example to effectively communicate to a large audience of programmers about good design for system level work such as for an Operating System. His example, I think, can be extrapolated to explain the design of Linux’s “clone” system call for threads, which creates a new process that uses the same virtual address space as the parent process, with a diff…
Comment linking /2018/launching-linux-threads-and-processes-with-clone/
on “Linus Torvalds' good taste argument for linked lists, explained”Submitted Bloom Filters as a story · 240 points
HN discussion> 2. For hundreds of tasks, it becomes less effective. Threads will rapidly go in and out of I/O wait and the scheduler has to balance all of this. Surprisingly, even thousands of threads can often have better throughput than using event loops and non-blocking IO: https://www.slideshare.net/e456/tyma-paulmultithreaded1 > The cost of OS-level context switching is non-trivial On modern hardware it's non-zero but trivi…
Comment linking /2018/measuring-context-switching-and-memory-overheads-for-linux-threads/
on “Websocketd”Submitted Making any integer with four 2s as a story · 238 points
HN discussion> processes and forking are relatively expensive This and "async is always faster" are two things which are no longer true on modern hardware. Forking a process on Linux uses the same clone() syscall as creating a thread so forking a small binary takes only tens of microseconds, leaving plenty of time for <1ms total response times. https://eli.thegreenplace.net/2018/launching-linux-threads-a...
Comment linking /2018/launching-linux-threads-and-processes-with-clone/
on “Websocketd”Submitted Go compiler internals: Adding a new statement to Go as a story · 234 points
HN discussionI agree, I expect programmers will just move up the levels of abstraction. I enjoyed this recent blog post on the topic: https://eli.thegreenplace.net/2022/asimov-programming-and-th...
Comment linking /2022/asimov-programming-and-the-meta-ladder/
on “Competitive Programming with AlphaCode”Submitted Clojure will affect the way you think about programming as a story · 228 points
HN discussionpthreads don't guarantee fairness. futexes, the underlying locking primitive on Linux and the driver of the glibc implementation, don't either. Futexes do support priority inheritance, so you can use process priority safely. You might drop priority after releasing a lock to ensure some other thread gets a go, and as long as you control the priority of the other contenders, that can work well. Basics of futexes are h…
Comment linking /2018/basics-of-futexes/
on “24-core CPU and I can’t type an email”Submitted Building static binaries with Go on Linux as a story · 184 points
HN discussionOn a similar note, I have been watching this[0] project which provides an IR to target and optional optimizations. But I like the idea that the only difference between a JIT and an AOT compiler is optimization choice (assuming we don't include tracing as part of the JIT features). Also, this[1] blog series is a must-read for interested beginners. 0 - https://github.com/stoklund/cretonne/ 1 - https://eli.thegreenplac…
Comment linking /2017/adventures-in-jit-compilation-part-1-an-interpreter/
on “HolyJit: A New Hope”Submitted Monte-Carlo Simulations as a story · 181 points
HN discussionThat is the beauty of this book, there is no need for any extra resources. Install SICP package in Dr. Racket [1] and start reading the book. Try your best to solve the exercises, and don't give up easily on the exercises. Thinking over the exercises and solving them is the best way to assimilate learning from SICP. I read only the first 3 chapters, and relied on notes from Eli Bendersky [2] to check when stuck with…
Comment linking /2007/06/19/introducing-the-sicp-reading-notes
on “Books that changed my career as a software engineer”Submitted Decorator JITs: Python as a DSL as a story · 176 points
HN discussionFor low-level software, these are great: https://eli.thegreenplace.net/ https://travisdowns.github.io/ https://preshing.com/
Comment linking /
on “Ask HN: What are good solo developer blogs that you enjoy reading?”Submitted Intel i7 loop performance anomaly as a story · 168 points
HN discussion