Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,540 posts.
Parsing Protobuf like never before
Historically I have worked on many projects related to high-performance Protobuf, be that on the C++ runtime, on the Rust runtime, or on integrating UPB , the fastest Protobuf runtime, written by my colleague Josh Haberman . I generally don’t post directly about my current job, but my most recent toy-turned-product is…
Bloom Filters by Example
A Bloom filter is a data structure designed to tell you, rapidly and memory-efficiently, whether an element is present in a set.
Fast-Paced Multiplayer (Part I): Client-Server Game Architecture
Client-Server Game Architecture | Client-Side Prediction and Server Reconciliation | Entity Interpolation | Lag Compensation | Live Demo
All Programmers Are Self-Taught
When I was a teenager I played high caliber baseball. I’m competitive to a fault and when I decide I want to be good at something, results usually follow. Now I’m a third year undergrad…
Yahoo Logo ASCII Animation in 462 bytes of C (2011)
[ Update 10/21/2015: Changed the title from "six lines of C" to "462 bytes of C" to avoid endless arguments about what constitutes a line of C code.]
The best way to use text embeddings portably is with Parquet and Polars
Never store embeddings in a CSV!
Triangle Grids
Grids are great for tactical gameplay of turn-based games because they allow discrete movement steps. That means that you can bind positioning to other resources such as movement points, action points, food, etc. Grids divide the infinite variety of movement options into a few specific ones, which can be considered…
Reviving Old X Code
I've taken the week between Christmas and New Year's off this year. I didn't really have anything serious planned, just taking a break from the usual routine. As often happens, I got sucked into doing a project when I received this simple bug report Debian Bug #974011
Understanding the .NET ecosystem: The evolution of .NET into .NET 7
In this article, previously part of my new book, we look at the introduction of .NET Core, why it was created, and how it has evolved into .NET 7.
Major standard library changes in Go 1.20
The second part of a three part look at new features in Go 1.20.
Bad TypeScript Habits
TypeScript and JavaScript have steadily evolved over the last years, and some of the habits we built over the last decades have become obsolete. Some might never have been meaningful. Here's a list of 10 habits that we all should break.
Using attrs for everything in Python
Use attrs. Use it. Use it for everything.
The category design pattern
A programming design pattern inspired by category theory
I wrote the least-C C program I could
As a fun afternoon challenge, I decided to write a C program that looked nothing like C. Not necessarily obfuscated, though there is a competition for that if you are so inclined.
Don't classify, hallucinate
A useful pattern for LLM classification at scale is to let it hallucinate plausible, fake entities. Then resolve to real ones.
Wordle-solving state of the art: all optimality results so far
Almost all mathematical questions one could have about Wordle are settled by now. I summarize here what is known so far.
Against Essential and Accidental Complexity
In the classic 1986 essay, No Silver Bullet , Fred Brooks argued that there is, in some sense, not that much that can be done to improve programmer productivity. His line of reasoning is that programming tasks contain a core of essential/conceptual 1 complexity that's fundamentally not amenable to attack by any…
Clean your codebase with basic information theory
Cut out everything that's not surprising.
Compiler bug? Linker bug? Windows Kernel bug
See the end of the post for an October 2018 bug fix update, or read the whole story: Flaky failures are the worst. In this particular investigation, which spanned twenty months, we suspected hardwa…
Lvalues, rvalues, glvalues, prvalues, xvalues, help (2018)
Did you use to have some sort of intuition for what “lvalue” and “rvalue” meant? Are you confused about glvalues, xvalues and prvalues, and worry that lvalues and rvalues mi…
Lessons from Writing a Compiler
Collected tips from building the Austral compiler.
Tensorflow 2.0: models migration and new design
Tensorflow 2.0 will be a major milestone for the most popular machine learning framework: lots of changes are coming, and all with the aim of making ML accessible to everyone. These changes, however, require for the old users to completely re-learn how to use the framework: this article describes all the (known)…
Comparing SQLite, DuckDB and Arrow with UN trade data
This is not a competition, is just to show how to use the hardware with relative efficiency, being the idea is to show something collaborative rather than competitive.
How to make a damn website (2024)
A lot of people want to make a website but don’t know where to start or they get stuck. That’s in part because our perception of what websites should be has changed so dramatically over the last 20 years.
O(x)Caml in Space
On 23 April, Borealis booted in orbit on DPhi Space's ClusterGate-2: a pure-OCaml CCSDS protocol stack with end-to-end-encrypted command and control and post-quantum key rotation. OxCaml is what comes next.
I made a multiplayer shooter game in Lisp, here is my journey
Developing a multiplayer third-person shooter game as a solo developer is a journey filled with challenges and rewards. I embarked on this adventure to create Wizard Masters, a web-based multiplayer game where players battle as mages wielding elemental spells. Built using Clojure, a Lisp dialect, this project pushed…