Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,532 posts.
Clocks and Causality – Ordering Events in Distributed Systems (2022)
In distributed systems, logical clocks play a key role in the ordering of system events. What are the various logical clock designs, and how do they help with event ordering? This article answers these questions.
On the shoulders of the giants
Hands-on technical leader, Rust expert.
New JSON query operators in SQLite 3.38.0
SQLite 3.38.0 introduced improvements to JSON query syntax using -> and ->> operators that are similar to PostgreSQL JSON functions. In this post we...
Can't be fucked: Underrated cause of tech debt
Can’t Be Fucked Aussie slang for not wanting to, or not having the energy and motivation to do something. “Man, i really can’t be fucked changing the channel, let’s just watch Springer.” - Urban Dictionary
Garbage collection for systems programmers (2023)
Yet another programming blog. Thoughts on software and related misadventures.
Regex engine internals as a library
Over the last several years, I’ve rewritten Rust’s regex crate to enable better internal composition, and to make it easier to add optimizations while maintaining correctness. In the course of this rewrite I created a new crate, regex-automata , which exposes much of the regex crate internals as their own APIs for…
Neural Networks in JavaScript with Deeplearn.js
An extensive tutorial on how to implement a neural network in JavaScript with deeplearn.js to perform machine learning in JavaScript. You can bring neural networks to your browser by using the performance benefits of WebGL. Deeplearn.js makes it possible to implement a WebGL powered neural network ...
Useless Use of "dd" (2015)
tl;dr: dd works for reading and writing disks, but it has no "low level I/O" capabilities that make it more suited for this than any other shell utility. Like cat you should use it where it makes sense, e.g. to take advantage of its wide array of options, rather than try to ensure that all disk related commands begin…
Batteries included with Emacs (2020)
Emacs has a reputation for being borderline unusable out of the box, of being bloated but somehow surprisingly bare. This is largely a discoverability problem1. The solution the Internet has settled on seems to be “Emacs distributions” like Doom, Spacemacs or Prelude that glue together dozens (sometimes hundreds) of…
Effective Rust (2021)
A collection of specific ways to improve your use of Rust
Lean proved this program correct; then I found a bug
AI agents are getting very good at finding vulnerabilities in large-scale software systems.
Vale's first prototype for immutable region borrowing
Three years, two states, and one pandemic ago, I wrote about a very weird idea: what if the type system could track which data existed before a pure call, to eliminate its memory safety overhead? 0
Statistical Formulas For Programmers
When someone says “7 is greater than 5”, you declare that they’re really the same.
A Fast 64-Bit Date Algorithm (30–40% faster by counting dates backwards)
Counting years backwards unlocks faster speed. The first date algorithm to use only 4 multiplications, instead of 7+
Let's build a full-text search engine
Full-Text Search is one of those tools people use every day without realizing it. If you ever googled "golang coverage report" or tried to find "indoor wireless camera" on an e-commerce website, you used some kind of full-text search.
A minimal raytracer
How my quest to make a business card sized raytracer got a little out of hand.
Audio Processing for Dummies
In my spare time I’m an emergency services volunteer, and one of the tasks our unit has is to run the radio network and keep track of what’s happening. This can be a pretty stressful job, especially when there’s lots of radio traffic, and it’s not unusual to miss words or entire transmissions. To help with a personal…
On Repl-Driven Programming
Once upon a time, someone with the handle “entha_saava” posted this question on Hacker News :
Pyrefly vs. Ty: Comparing Python's two new Rust-based type checkers
A deep dive into Meta's pyrefly and Astral's ty - two new Rust-based Python type checkers that both promise faster performance and better type inference.
The Biggest and Weirdest Commits in Linux Kernel Git History
We normally think of git merges as having two parent commits. For example, the most recent Linux kernel merge as I write this is commit 2c5d955, which is part of the run-up to release 4.10-rc6. It has two parents: