Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 3,470 posts.
A Quick Comparison of Nim vs. Rust
Arthur’s thoughts on coding, software engineering, and other interesting things.
Use fast data algorithms (2021)
As an engineer who primarily works with data and databases I spend a lot of time moving data around, hashing it, compressing it, decompressing it and generally trying to shovel it between VMs and blob stores over TLS. I am constantly surprised by how many systems only support slow, inefficient, and expensive ways of…
Literate SQL
Complex queries are hard to read. Literate SQL is about writing queries that are as easy to read as a good novel.
Scaling Postgres with Read Replicas and Using WAL to Counter Stale Reads
Scaling out operation with read replicas and avoiding the downside of stale reads by observing replication progress.
Objectivist C
Although academic computer scientists have generally dismissed Objectivist-C, it has a zealous following among self-taught programmers and college sophomores.
How I Start: Erlang
Erlang releases are a bit like magnets. Everyone who thinks about them shares the same thought: f**king releases, how do they work?
A lock-free ring-buffer with contiguous reservations (2019)
Building a lock free continuous ring buffer
Pg_jsonschema – JSON Schema Support for Postgres
Today we're releasing pg_jsonschema, a Postgres extension for JSON validation.
The most important thing to understand about queues (2016)
You only need to learn a little bit of queueing theory before you start getting that ecstatic “everything is connected!” high that good math always evokes. So many damn things follow th…
An Introduction to Cache-Oblivious Data Structures
If you read my recent post about Postgres you may have noted that Postgres operates primarily with fixed-size blocks of memory called “pages.” By default, Postgres pages are 8KB. This number is tuned to match operating system page sizes which are tuned to match hardware cache sizes. If you were to run Postgres on…
Extramaze: Using Racket, PostgreSQL, AWS, but no ads or JavaScript (2018)
Update: Due to lack of interest/use, in June 2021 this site was shut down and user data (emails, names, search alerts) deleted from all systems and backups. For Extramaze LLC I'm using Racket in a commercial project -- a search engine with email alerts fo...
Asm.js: The JavaScript Compile Target
Like many developers I’ve been excited by the promise of Asm.js . Reading the recent news that Asm.js is now in Firefox nightly is what got my interest going. There’s also been a massive surge in interest after Mozilla and Epic announced ( mirror ) that they had ported Unreal Engine 3 to Asm.js – and that it ran…
A general overview of what happens before main() (2019)
8 April 2019 by Phillip Johnston • Last updated 22 August 2022For most programmers, a C or C++ program’s life begins at the main function. They are blissfully unaware of the hidden steps that happen between invoking a program and executing main. Depending on the program and the compiler, there are all kinds of…
Getting syntax highlighting wrong
Applying human ergonomics and design principles to syntax highlighting
Awk As A Major Systems Programming Language, Revisited (2018)
AWK As A Major Systems Programming Language — Revisited
Composer: Building a fast frontier model with RL
Composer is our new agent model designed for software engineering intelligence and speed.
Security keys are now supported for SSH Git operations
You can now use FIDO2 security keys to authenticate over SSH for remote Git operations, providing a higher level of account security.
Useful algorithms that are not optimized by Jax, PyTorch, or TensorFlow
In some previous blog posts we described in details how one can generalize automatic differentiation to give automatically stability enhancements and all sorts of other niceties by incorporating graph transformations into code generation. However, one of the things which we didn’t go into too much is the limitation of…
Pointers in C (2010)
This document comes with a companion example program, available as one file or as multiple files (zipped) .
Bare-Metal Kubernetes, Part I: Talos on Hetzner
I’ve been running a Kubernetes cluster on a mix of virtual and bare metal machines with Hetzner for about a year now, and while the setup has served me well, being a very exploratory exercise at the time it wasn’t very well documented.
Running FFmpeg on AWS Lambda for 1.9% the Cost of AWS Elastic Transcoder
A guide to building a transcoder using Exodus, FFmpeg, and AWS Lambda.
Writing HTML in HTML
I've just finished the final rewrite of my website. I'm not lying: this is the last time I'm ever going to do it. This website has gone through countless rewrites – from WordPress to Jekyll to multiple static site generators of my own – but this is the final one. I know so, because I've found the ultimate method for…
Euler's Fizzbuzz (2020)
FizzBuzz is a common coding problem asked in technical screenings or interviews. It goes something like this:
Using unwrap() in Rust is okay
One day before Rust 1.0 was released, I published a blog post covering the fundamentals of error handling . A particularly important but small section buried in the middle of the article is named “ unwrapping isn’t evil ”. That section briefly described that, broadly speaking, using unwrap() is okay if it’s in…
Modern CI is too complex and misdirected (2021)
The state of CI platforms is much stronger than it was just a few years ago. Overall, this is a good thing: access to powerful CI platforms enables software developers and companies to ship more reliable software more frequently, which benefits its users/customers. Centralized CI platforms like GitHub Actions, GitLab…
Great Works in Programming Languages (2004)
In September, 2004, I posted a query to the Types list asking people to name the five most important papers ever written in the area of programming languages. This page collects the responses I received. (A few are missing because I am still tracking down bibliographic information.)