I Wrote My Fastest Hashtable
I had to get there eventually. I had a blog post called “I Wrote a Fast Hashtable” and another blog post called “I Wrote a Faster Hashtable.” Now I finally wrote the fastest…
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 2,232 posts.
I had to get there eventually. I had a blog post called “I Wrote a Fast Hashtable” and another blog post called “I Wrote a Faster Hashtable.” Now I finally wrote the fastest…
Near the end of January I was pointed to a twitter thread where a Windows user with a powerful machine was hitting random hangs in explorer. Lots of unscientific theories were being proposed. I don…
Frameworkism is now the dominant creed of today's frontend discourse, and it's bullshit. We owe it to ourselves and to our users to reject dogma and embrace engineering as a discipline that strives to serve users first and foremost.
A call-by-call look at context switch logging with the Event Tracing for Windows API.
There are many descriptions floating around the internet, trying to explain functional programming in simple terms. Unfortunately, most discuss details only loosely related to functional programming, while others focus on topics that are completely irrelevant. So of course, I had to write my own!
It began when my coworker, despite already knowing how to program, was forced to take the intro level Computer Science course at my university. We joked with...
In my first decade writing Makefiles, I developed the bad habit of liberally using GNU Make’s extensions. I didn’t know the line between GNU Make and the portable features guaranteed by POSIX. Usually it didn’t matter much, but it would become an annoyance when building on non-Linux systems, such as on the various…
In Giving GPT-3 a Turing Test, Kevin Lacker found that GPT-3 does well answering simple factual questions like “Who was president of the United States in 1955?”, but also happily answered absurd qu…
Disclaimer: Most patterns are easy to implement because we use dynamic typing, functional programming and, of course, Clojure. Some of them look wrong and ugly. It’s okay. All characters are fake, coincidences are accidental.
This domain is available for sale. Check out price, information and more on Dovendi.com
Supply chain security is a hot topic today, but it is a very old problem. In October 1983, 40 years ago this week, Ken Thompson chose supply chain security as the topic for his Turing award lecture, although the specific term wasn’t used back then. (The field of computer science was still young and small enough that…
(N.B. The word “fuck” appears multiple times in this post. I recommend that the reader temporarily not consider “fuck” as profanity, as it isn’t used that way here.)
Haiku uses a custom vector image format to store icons. This is surprising both because most OSes consider bitmaps to be totally sufficient to represent icons and because there are plenty of vector graphics formats out this (e.g. SVG). The goal of the Haiku Vector Icon Format (HVIF) is to make vector icon files as…
The original ANSI C standard, C89, introduced the concept of “undefined behavior,” which was used both to describe the effect of outright bugs like accessing memory in a freed object and also to capture the fact that existing implementations differed about handling certain aspects of the language, including use of…
This somewhat widely cited post (I keep seeing it cited, anyway) suggests that dynamic languages and/or languages that represent things more concisely are more token efficient. It seems to be cited enough that LLM search results agree. For example, when I searched for "dynamic vs static language token cost" (no…
Haskell programmers spend a lot of time talking about type safety . The Haskell school of program construction advocates “capturing invariants in the type system” and “making illegal states unrepresentable,” both of which sound like compelling goals, but are rather vague on the techniques used to achieve them. Almost…
These next few posts are a technical write-up of how I created 8088 Domination, which is a program that displays fairly decent full-motion video on a 1981 IBM PC. Before reading further, it might b…
This is the original 1978 source code of Microsoft BASIC for 6502 with all original comments, documentation and easter eggs: M6502.MAC (1978-07-27, 6955 lines, 161,685 bytes) This is currently the oldest publicly available piece of source written by Bill Gates.
This guide aims to introduce newcomers and experienced programmers alike to the beauty of functional programming, starting with the simplest building blocks of software. You’ll need a computer, basic proficiency in the command line, a text editor, and an internet connection. By the end of this series, you’ll have a…
A Bloom filter is a data structure designed to tell you, rapidly and memory-efficiently, whether an element is present in a set.
Almost all mathematical questions one could have about Wordle are settled by now. I summarize here what is known so far.
A series of articles laying out the tools, tips, and techniques I’ve learned over the years I’ve spent helping to write Django’s docs.
This series has been independently translated into Chinese , Russian , Turkish , and Korean , and formatted as an ebook .
Video and transcript of Jimmy Koppel's Compose 2019 talk on defunctionalization, the best refactoring you've never heard of.
In my last blog entry LLand LR Parsing Demystified, we explored LL and LR parsers from ablack-box perspective. We arrived at a model for these parsers whereb...
A couple of days ago I encountered this article: How Shazam WorksThis got me interested in how a program like Shazam works… And more importantly, how hard is...
A static site to link people to when their code is displaying Japanese wrong.