Network Latencies and Speed of Light
In this short post I’m going to attempt to convince you that current network (Internet) latencies are here to stay, because they are already within a fairly small factor of what is possible u…
Topics /
The most popular blog posts about systems & performance on Hacker News. 4,389 posts.
In this short post I’m going to attempt to convince you that current network (Internet) latencies are here to stay, because they are already within a fairly small factor of what is possible u…
i wanted to have a deeper grasp of how compression works, so i wrote a gzip decompressor from scratch. the result is about 250 lines of rust that can decompress gzip from a file or stdin.
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
When I started thinking about writing a post about web font loading my intention was to propose relatively sophisticated ideas that I've...
Paul Hsieh's 6th generation x86 CPU comparision page including K6, P-II and 6x86MX geared towards the high performance software developer audience
Most C++ and Rust thread pools run 10x slower than OpenMP on fork-join workloads. Fork Union closes the gap to 20% with 300 lines, dodging mutexes and CAS.
In the last Jepsen analysis, we saw that RethinkDB 2.2.3 could encounter spectacular failure modes due to cluster reconfiguration during a partition. In this analysis, we’ll talk about Crate, and find out just how many versions a row’s version identifies.
I’m a huge fan of interactive programming (see: JavaScript , Java , Lisp , Clojure ). That is, modifying and extending a program while it’s running. For certain kinds of non-batch applications, it takes much of the tedium out of testing and tweaking during development. Until last week I didn’t know how to apply…
Designing far memory data structures: think outside the box Aguilera et al., HotOS’19 Last time out we looked at some of the trade-offs between RInKs and LInKs, and the advantages of local in…
Yesterday, I discovered an experimental Big Data processing framework written in C++ called Thrill. As most of you surely know, the well-known frameworks of this kind are mostly based on JVM, like …
Updated March 13, 2012 at 10:43PM: I have a list of limitations and known bugs toward the end. Updated March 14, 2012 at 9:30PM: I’ll be on the VMware Community Roundtable podcast at 12:00PM …
Let's explore and deobfuscate the input stack on Linux. Our aim is to understand its components and what each does. Input handling can be divided into two parts, separated by a common layer. We’ll try to make sense of all this, one thing at a time, with a logical and coherent approach.
I started working on Flyaway with the intention of becoming familiar with Wayland, its protocols and extensions, and the wlroots library. Instead, I ended up genuinely liking all three.
Part of my series on countering misconceptions in space journalism. The SpaceX Starship is a game changer for space exploration. It is intended to be far bigger, cheaper, versatile, and available t…
Initially, I wasn’t sure whether to write about this migration project, but when I randomly asked if people would be interested, the response was overwhelming. This was a long, kind of boring, very repetitive, and at times incredibly frustrating project, but I learned a lot, and maybe someone else will learn from this…
How many problem domains require wrapping signed integers or non-wrapping unsigned integers? Can the current undefined case be replaced with a trap and everything else be left intact?
I’ve always wanted an ARM server in my homelab. But earlier, I either had to use an underpowered ARM system, or use Asahi which not only requires expensive Mac hardware but also slowed down in the past few years.
Examining the extent of AVX related downclocking on Intel’s Ice Lake CPU
When a service fails to start up enough times in a row, systemd gives up on it. On servers, this isn’t what I want — in general it’s helpful for automated recovery if daemons are restarted indefinitely. As long as you don’t have circular dependencies between services, all your services will eventually come up after…
To @AndrewHart: “Our app is shit and we know it’s shit”. My life changed forever when a senior exec from one of the world’s largest retailers messaged me on Twitter. This was back in 2017. My outdoor AR navigation demos had just gone viral, and my new open-source project for...
Suppose you’re a savvy C++ developer who knows all about data-oriented design and the importance of optimizing for cache locality if you want a prayer of running fast on modern hardware. Now suppose you want to go beyond basics—”just use std::vector ” is a good starting point, but you want more!
System76 built their first workstation-class Arm PC, the Thelio Astra, and it's marketed for streamlined autonomous vehicle development. But I'm not an automotive developer, just someone who enjoys Linux, Arm, and computing. So I was excited to spend a few weeks (which turned into a few months) testing the latest…
My CppCon 2025 talk, Practical Reflection, is now online, and goes over this example in more detail and more digressions. Check it out!