Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 14,540 posts.
Rooms and Mazes: A Procedural Dungeon Generator
Several months ago I promised a follow-up to my previous blog post about turn-based game loops in my roguelike . Then I got completely sidetracked by self-publishing my book , Game Programming Patterns , and forgot all about it. I totally left you hanging.
Pwning the Ladybird Browser
Ladybird is a relatively new browser engine originating from the SerenityOS project . Currently, it’s in pre-alpha and improving quickly. Take a look at the website and the GitHub for more information!
I use C when I believe in memory safety
I am using C for a professional project. I believe in memory safety. Yes, I'm a hypocrite, but please, let me explain.
Rust is a hard way to make a web API
It is not just the borrow checker
Abandon your DVCS and return to sanity
I’ve pretty much always been a DVCS apologist. I know quite a few people who’ve been using DVCSes since Mercurial and Git, and a few who go back to BitKeeper , but I can totally out-hipster you. I was there for Monotone . I actually remember struggling to grok tla , and being happy that someone took the time to write…
Why Lisp Syntax Works
On uniform vs. specific syntax.
When to Use TypeScript – A Detailed Guide Through Common Scenarios
Strap yourself in. In this guide, we compare when it's absolutely vital to be using TypeScript, the strictly-typed programming language, and when it makes sense to stick to vanilla JavaScript.
.NET 6 vs .NET 5 speedup
A year ago I wrote a post comparing .NET 5 performance with its predecessor on Fusion performance tests, and honestly, I was quite…
Erlang's not about lightweight processes and message passing (2023)
I used to think that the big idea of Erlang is its lightweight processes and message passing. Over the last couple of years I’ve realised that there’s a bigger insight to be had, and in this post I’d like to share it with you.
How to Make an RPG
The How To Make an RPG book teaches you what you need to know to make your own computer role-playing game. Pick it up and start making your game today.
I Wrote a WebAssembly VM in C
For the last 6 months, I’ve been spending my (limited) free time on evenings and weekends writing a WebAssembly VM in C. After repeatedly throwing away small side-projects, this was an extremely productive experience for me as an engineer. I’m writing this in order to put together some take-aways and organize my…
Measuring mutexes, spinlocks and how bad the Linux scheduler is
This blog post is one of those things that just blew up. From a tiny observation at work about odd behaviors of spinlocks I spent months trying to find good benchmarks, (still not entirely successf…
Writing a file system from scratch in Rust
A file system is responsible for organising and providing an abstraction over the storage devices where the data is physically stored. In this post, we will learn more about the concepts used by file systems, and how they fit together when writing your own.
My Python code is a neural network
This post translates a Python program to a recurrent neural network. It visualizes the network and explains each step of the translation in detail.
I Made Stable Diffusion XL Smarter by Finetuning It on Bad AI-Generated Images
And then telling it to not generate those images!
Write a time-series database engine from scratch
It covers how to make a time-series database engine from scratch
Why don't more developers “use the platform”?
For years, advocates for web standards, performance, and accessibility have implored web developers to “use the platform”. I’ve often been one of those…
TypeScript is terrible for library developers
We spend a disproportionate amount of time on types
I don't need your query language
Seriously, I don't. I'd prefer SQL.
Coroutines for Go
This post is about why we need a coroutine package for Go, and what it would look like. But first, what are coroutines?
Should you normalize RGB values by 255 or 256?
Let’s say you’re writing an image processing program. The program takes in an image, converts it to floating point, does some processing and finally saves the modified pixels to disk as 8-bit colors. The question today concerns how exactly the integer-to-float conversion should be done. There are two approaches which…
Improving the security of your SSH private key files
Update (July 2015): This post is now rather outdated, and the procedure for modifying your private key files is no longer recommended. A better solution is to use ssh-keygen -o .
Concurrent Programming, with Examples
Mention concurrency and you’re bound to get two kinds of unsolicited advice: first that it’s a nightmarish problem which will melt your brain, and second that there’s a magical programming language or niche paradigm which will make all your problems disappear.
A distributed systems reading list
An old document I surfaced with my quick tour of distributed systems theory fundamentals