Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 4,387 posts.
Remote code execution vulnerability in apt/apt-get
tl;dr I found a vulnerability in apt that allows a network man-in-the-middle (or a malicious package mirror) to execute arbitrary code as root on a machine i...
Multiprocess Firefox
Since this January, David Anderson and I have been working on making Firefox use multiple processes. Tom Schuster (evilpie on IRC) joined us as an intern this summer, and Felipe Gomes, Mark Hammond…
Porting SBCL to the Nintendo Switch
For the past two years Charles Zhang and I have been working on getting my game engine, Trial, running on the Nintendo Switch. The primary challenge in doing this is porting the underlying Common Lisp runtime to work on this platform. We knew going into this that it was going to be hard, but it has proven to be quite…
ZFS for Dummies
As mentioned on previous posts, I have spent the past few weeks dealing with a ZFS crash on my FreeNAS install. Because of that, not only was I forced to learn how to troubleshoot ZFS, but I also had to learn how to setup new volumes and come up with new backup strategies (between a few other things).
How small is the smallest .NET Hello World binary?
Here is a dumb question that you probably never asked yourself: What is the minimal amount of bytes we need to store in a .NET executable to have the CLR print the string"Hello, World!" to the standard output?
Serious Sam handled massive amounts of enemies on 56k modem connections
An analysis of the Croatian classic.
What they don't teach you about sockets
In order to effectively write applications that communicate via sockets, there were some realizations I needed to make that weren't explicitly told to me by any of the documentation I read.
USB for Software Developers: An introduction to writing userspace USB drivers
A basic introduction to USB for people that don't need to know what happens on the wire
Writing an OS in Rust: Async/Await
In this post, we explore cooperative multitasking and the async/await feature of Rust. We take a detailed look at how async/await works in Rust, inclu…
MCP overlooks hard-won lessons from distributed systems
Fool me once, shame on you; fool me twice, shame on me.
Kill Your Dependencies
This post talks about Ruby but it’s true of every language community: Python, JavaScript, Java, etc. The scourge of dependencies spares no one. This is a dependency visualization of every Rails app I’ve ever used. Does any of this sound familiar: Gemfile with 100s of entries. Test gems loading in production. Each…
Why is everything so scalable?
I’m entirely convinced that basically every developer alive today heard the adage “dress for the job you want, not the job you have” and figured that, since they always wear jeans and a t-shirt anyway, they might as well apply it to their systems’ architecture. This explains why the stack of every single company I’ve…
Why Create a New Unix Shell?
Please read this update instead: Why Create a New Unix Shell? (2021) . This page is obsolete!
Measuring Input Latency on Linux: X11 vs. Wayland, VRR, and DXVK
I built a device to measure end-to-end input latency, then used it to find out what actually moves the needle.
A server that wasn't meant to exist
A story from 16 years ago - trust, tech, and a server that had to disappear. They offered me a blank check. I said no.
Did Windows 10 slow down with each feature update?
One of the main reasons some people tend to avoid updating their PCs is that “it makes it slower”. Especially with Windows 10’s Software as a Service approach, where it gets the s…
DuckDB Doesn't Need Data to Be a Database
One of the many enjoyable things about databases is that they generally try to separate how data is represented internally (say on disk) from how it is used. To the point that it has become the norm to not even store the data on the same hardware that is running the queries.
#include </etc/shadow>
This blog is written by Hanno Böck. Unless noted otherwise, its content is licensed as CC0 .
Flipping Pages: New Linux vulnerability in nf_tables and exploitation techniques
A tale about exploiting KernelCTF Mitigation, Debian, and Ubuntu instances with a double-free in nf_tables in the Linux kernel, using novel techniques like Dirty Pagedirectory. All without even having to recompile the exploit for different kernel targets once.
Spectre mitigations murder userspace performance
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.