Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 14,540 posts.
Show HN: Domain-tailored CRDTs for collaboration without server involvement
An in-depth exploration of a new class of expressive, performant, and intuitive CRDTs, together with macOS and iOS sample code.
Machine Learning Cheat Sheet (for scikit-learn)
As you hopefully have heard, we at scikit-learn are doing a user survey (which is still open by the way). One of the requests there was t...
Tracking down a memory leak in Ruby's EventMachine
At Stripe, we rely heavily on ruby and EventMachine to power various internal and external services. Over the last several months, we’ve known that one such service suffered from a gradual memory leak, that would cause its memory usage to gradually balloon from a normal ~50MB to multiple gigabytes. It was easy enough…
Branchless code sequences
David Thomas's website.
Python 3, Pygame, and Debian Bookworm on the Miyoo A30
What if I told you you can get a full Linux computer with WiFi and a GPU in a small, pocket form factor for about $30 USD on AliExpress ? You might say “but what about the new tariffs?” and I’d say “oof, oh right, okay who knows, but it’s probably still pretty cheap!” (Edit: looks like you can get one for about $40…
What it's like building a real website in Node.js
Tech Nerd. CEO.
Lean, Coq and other proof assistants: Visualising proofs as trees
This week we (me & Anton Kovsharov) published Paperproof, a Gentzen-tree-like proof interface for Lean 4. In this post I'll review proof visualisations from o...
Linkers and Loaders (1999)
The text in these files is the unedited original manuscript. M-K has fine copy editors, who have fixed all the minor typos, spelling, and grammar errors in the printed book, but if you come across factual errors I'd still appreciate help getting all the details of linking and loading as complete and correct as…
Dealing with Timezones in Python
The problems with timezones and Python’s datetime object and how you would properly use them.
0x7FDE623822FC16E6: A magic constant for double float reciprocal (2011)
EDIT: I never expected this post to garner so much interest. Just to be clear, using the constant is a very bad idea in almost every situation I can think of. Even instructions like RCPSS should only be used by people who are convinced that the tradeoffs are worth it (or don’t have any other choice). Subtracting from…
Building a database buffer pool in Zig using io_uring's new fixed-buffer mode
In this post, we will explore how to build a high-performance database buffer pool in Zig using io_uring's new fixed-buffer mode.
Incremental Learning – A continuous learning approach (2018)
A few days back I read an article about how Bitcoin’s price can be sufficiently explained by Metcalfe’s law. As you read through the post, resist the temptation to click the links to learn more about Bitcoin, Metcalfe’s law etc. (Maybe you should read about Bitcoin if you have not heard of it). I have provided all the…
Understanding SAT by Implementing a Simple SAT Solver in Python (2014)
SAT is often described as the "mother of all NP-complete problems." This post goes over what SAT is and why it is considered to be so important. A simple SAT solver is implemented using Python in the process.
KVM host in a few lines of code
Trying to figure out how KVM-based virtual machine hosts work by implementing one from scratch.
Fantastic summary of some of the math pertinent to theoretical computer science.
This web page is a revised and extended version of Appendix A from the book Conceptual Structures by John F. Sowa. It presents a brief summary of the following topics for students and general readers of that book and related books such as Knowledge Representation and books on logic, linguistics, and computer science.
Django project optimization guide – Part 1
Django is a powerful framework used in many great projects. It provides many batteries, that speed up development and therefore reduces the price of it. When a project becomes large and is used by many users you inevitably will run into performance problems. In this guide, I will try define potential problems and how…
A new faster algorithm to compute 64-bit signed floor division
The missing chapter of Hacker's Delight
How I ended up writing opensnoop in pure C using eBPF
opensnoop in pure C using eBPF
Finding memory leaks
Over lunch last week Mikhail Naganov (creator of the DevTools Heap Profiler ) and I were discussing how invaluable it has been to have the ...
Summary of all the MIT Introduction to Algorithms lectures (2009)
As you all may know, I watched and posted my lecture notes of the whole MIT Introduction to Algorithms course. In this post I want to summarize all the topics that were covered in the lectures and point out some of the most interesting things in them. Actually, before I wrote this article, I had started writing an...
Stacked Diffs with git rebase —onto
Using git `rebase --onto` workflow to work with stacked diffs
Writing an app is like coding for LaserDisc
11 years ago to the day, I was at a tech conference. It was 3 year after the iPhone had launched its app SDK. Those of us who had been in the mobile game a while had already spent years developing apps for Symbian, BlackBerry, Windows CE, and at least a dozen other OSes which I've since scrubbed from my memory. But…
Things You Should Never Do, Part I (2000)
Netscape 6.0 is finally going into its first public beta. There never was a version 5.0. The last major release, version 4.0, was released almost three years ago. Three years is an awfully long tim…
Ditching tmux
This week I started an experiment. I wanted to know whether I would be able to completely ditch tmux. Don’t get me wrong here, I absolutely love how tmux makes terminal multiplexing transparent for me. I’m also very used to <C-b>c, <C-b>1-0 and so on. I also have a custom set of keymaps and plugins I use frequently…
Don't write clean code, write CRISP code
“Clean code” is so over: all the cool kids are switching to CRISP code . I’ll show you how to achieve it in five catchy, T-shirt-friendly slogans.