Best of 2023

The blog posts Hacker News loved most in 2023. 1,136 posts.

Software Engineering
271

Text showdown: Gap Buffers vs. Ropes

I have been working on a hobby project to reimagine the C core of Emacs in Rust. On this journey, I reached the point where I needed some way to represent the text of a buffer. The simplest approach is to just use a large string or array of lines. However these each suffer from poor performance as either the size or…

273

Moving from Rust to C++

Note to readers: this is an April Fools post, intended to satirize bad arguments made against Rust. I have mixed feelings about it now, as I think people who understood the context appreciated the humor, but some people were confused. That’s partly because it’s written in a very persuasive style, and I mixed in some…

274

Deleting System32\curl.exe

Let me tell you a story about how Windows users are deleting files from their installation and as a consequence end up in tears. Background The real and actual curl tool has been shipped as part of Windows 10 and Windows 11 for many years already. It is called curl.exe and is located in the … Continue reading deleting…

283

Now I can just print that video

It all started with Instagram Reels showing me too many yummy cooking videos. I wanted to try some recipes out myself. But I didn’t want to have to keep my phone in the kitchen, and I didn’t want to have to keep unlocking it to see the next step. I wanted to print the recipe out, and have it on the counter while I was…

284

My First Impressions of Nix

Nix is a tool for configuring software environments according to source files. I’ve been hearing more and more about Nix on Hacker News and Twitter. The idea of it appeals to me, so I’ve been tinkering with it over the past few weeks. My history with infrastructure as code Ten years ago, I discovered Salt, a tool that…

290

Thread-per-core

I want to address a controversy that has gripped the Rust community for the past year or so: the choice by the prominent async “runtimes” to default to multi-threaded executors that perform work-stealing to balance work dynamically among their many tasks. Some Rust users are unhappy with this decision, so unhappy that…