Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 21,822 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…
Arm64 on GitHub Actions
GitHub Actions now offers Arm-hosted runners with images built by Arm for developers to begin building on the latest and most sustainable processors on the market.
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!
An Even Easier Introduction to CUDA
A quick and easy introduction to CUDA programming for GPUs. This post dives into CUDA C++ with a simple, step-by-step parallel programming example.
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
Loro: Reimagine state management with CRDTs
Loro, our high-performance CRDTs library, is now open source. In this article, we share our vision for the local-first software development paradigm, why we're excited about it, and the current status of Loro.
Go Concurrency Patterns: Pipelines and cancellation
How to use Go's concurrency to build data-processing pipelines.
Textmate 2 on Github
Today I am happy to announce that you can find the source for TextMate 2 on GitHub .
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.
Welcome to C# 9.0
Note: This post is out of date. Now that C# 9.0 has been released, an updated version can be found here. C# 9.0 is taking shape, and I’d like to share our thinking on some of the major features we’re adding to this next version of the language. With every new version of C# we […]
Strings Just Got Faster
In JDK 25, Strings used as keys in immutable Maps can be much faster.
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.
Crystal in Production: Diploid
At Diploid, we have been using Crystal for quite some time now. We would like to share our experience in this interview, answering questions relevant to companies wanting to use Crystal for production.
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.