Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 3,470 posts.
PEP 557 – Data Classes
This PEP describes an addition to the standard library called Data Classes. Although they use a very different mechanism, Data Classes can be thought of as “mutable namedtuples with defaults”. Because Data Classes use normal class definition syntax, y...
What science can tell us about C and C++'s security
There are not a lot of very strong empirical results in the field of programming languages . This is probably because there’s a huge amount of variables to control for, and most of the subjects available to researchers are CS undergraduates. However, I have recently found a result replicated across numerous codebases…
Modern garbage collection
A look at the Go GC strategy
Choosing properties for property-based testing
Or, I want to use PBT, but I can never think of any properties to use
bliki: Test Pyramid
Write most of your tests at a low level (unit tests) with a few broad-stack tests, eg via UI. UI tests tend to be fragile and slow.
Functional options for friendly APIs
What follows is the text of my presentation, Functional options for friendly APIs that I gave at dotGo this year. It has been edited slightly for readability.
Subresource Integrity Addressable Caching
A small number of popular JavaScript frameworks and libraries account for a substantial portion of the network, battery, and time budgets of users of the contemporary Web. Many applications include these libraries even if they only use a small portion of the functionality they provide. Large improvements seem possible…
jQuery file size
Note: The gzipped and Zopflinated file sizes refer to the total byte size of the file after compressing it using gzip or Zopfli with the default settings . For gzip, this boils down to gzip -6 file.js — the default compression level is 6 on a scale from 1 (fastest, but less compression) to 9 (slowest, but best…
GameBoy Emulation in JavaScript: The CPU
In the first of this series of articles, I'll look at how a CPU can be emulated through JS, and start building an emulation core for the GameBoy console.
bliki: Anemic Domain Model
If you use an object-oriented domain model, and you don't put behavior in your objects, you're missing out on most of the benefits of that pattern.
Schelling's Model of Segregation
Racial segregation has always been a pernicious social problem in the United States. Many factors have contributed to segregation including prejudice, zoning laws, housing discrimination, and loan discrimination. Although much effort has been extended to desegregate our schools, churches, and neighborhoods, the US…
T Project
It occurred to me recently that The T Project had no coherent presence on the web. There's Olin's history , but I thought something a bit more calm and dignified is in order.
Introducing ChatGPT and Whisper APIs
Developers can now integrate GPT‑3.5 Turbo and Whisper models into their apps and products through our API.
How to C in 2016
This is a draft I wrote in early 2015 and never got around to publishing. Here’s the mostly unpolished version because it wasn’t doing anybody any good sitting in my drafts folder. The simplest change was updating year 2015 to 2016 at publication time.
Zero-cost futures in Rust
One of the key gaps in Rust’s ecosystem has been a strong story for fast and productive asynchronous I/O . We have solid foundations, like the mio library, but they’re very low level: you have to wire up state machines and juggle callbacks directly.
Fish 4.0: The Fish of Theseus
A smart and user-friendly command line shell
Taking PHP Seriously
Slack uses PHP for most of its server-side application logic, which is an unusual choice these days. Why did we choose to build a new project in this language? Should you? Most programmers who have only casually used PHP know two things about it: that it is a bad language, which they would never use if…
Computer Graphics from Scratch
Behind the beautiful imagery of the latest animated movie and the realistic environments of popular videogames lie some mysterious algorithms. Computer Graphics from Scratch aims to demystify these algorithms and shows you that computer graphics can be surprisingly simple.
“Clean” code, horrible performance
Many programming "best practices" taught today are performance disasters waiting to happen.
TypeScripting the technical interview
An homage to Aphyr's Typing the technical interview
We Can Do Better Than SQL
The questions we often hear are "Why create a new query language?" and "What's wrong with SQL?". This blog post contains answers to both.
Fixing for loops in Go 1.22
Go 1.21 shipped a preview of a change in Go 1.22 to make for loops less error-prone.
My LLM codegen workflow
A detailed walkthrough of my current workflow for using LLms to build software, from brainstorming through planning and execution.
Memory safe ‘curl’ for a more secure internet
tldr: work has started to make Hyper work as a backend in curl for HTTP. curl and its data transfer core, libcurl, is all written in C. The language C is known and infamous for not being memory safe and for being easy to mess up and as a result accidentally cause security problems. At … Continue reading rust in curl…
On Abandoning the X Server
There's been some recent discussion about whether the X server is abandonware. As the person arguably most responsible for its care and feed...
On Repl-Driven Programming
Once upon a time, someone with the handle “entha_saava” posted this question on Hacker News :