Blogs / Personal blogs

Eli Bendersky

eli.thegreenplace.net

One of the most wonderful aspects of math is how deep we can get by studying seemingly trivial questions. Consider the roots of unity, where "unity" simply means the number 1.

Popular posts
57
Total points
8,409
HN comments
3,933
Rank
#106 personal

Visit eli.thegreenplace.net → RSS feedOn Hacker News Apr 2008 – Oct 2026

Software Engineering 51Programming Languages 23Systems & Performance 17Math & Algorithms 9Web & Frontend 3Life, Learning & Writing 3

32

Go HTTPS Servers with TLS

This post is a basic introduction to running HTTPS servers and clients in Go using TLS. It assumes some familiarity with public-key crypto. Feel free to check out my earlier posts about RSA and the Diffie-Hellman Key Exchange ; TLS uses the elliptic-curve version of Diffie-Hellman. I won't be covering how the protocol…

33

Basics of Futexes

The futex (short for "Fast userspace mutex") mechanism was proposed by Linux contributors from IBM in 2002 [1] ; it was integrated into the kernel in late 2003. The main idea is to enable a more efficient way for userspace code to synchronize multiple threads, with minimal kernel involvement.

38

A Faster Lexer in Go

It's been a while since I've last rewritten my favorite lexical analyzer :-) That post is the last in a series implementing a lexer for the TableGen language in a variety of programming languages, using multiple techniques. The last lexer written, in Go, was very fast indeed - processing 1 MiB of source in about 20…

40

The Expression Problem and its solutions (2016)

The craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data [1] . Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since…

42

Where the top of the stack is on x86 (2011)

I've noticed more than once that some programmers are confused about the direction in which the stack grows on x86, and what "top of the stack" and "bottom of the stack" mean. It appears that this confusion is caused by a basic mismatch in the way people are used to thinking about stacks, and in the way the stack on…

50

The context sensitivity of C's grammar

Context free grammars (CFGs) are a valuable theoretical tool on which the modern compilation theory relies for parsing the code of programming languages. For example, the most popular tool used for parsing – YACC , generates parsers for CFGs. What most people don’t know 1 is that the vast majority of programming…

51

Computed goto for efficient dispatch tables

Recently, while idly browsing through the source code of Python, I came upon an interesting comment in the bytecode VM implementation ( Python/ceval.c ) about using the computed gotos extension of GCC [1] . Driven by curiosity, I decided to code a simple example to evaluate the difference between using a computed goto…