The time has come to replace file systems
The time has come to replace file systems!
Single binary executable packages
In support of software packages that come in the form of a single binary executable (statically linked or portable), that one can just copy anywhere in `${PATH}` and execute, without needing `sudo`, or downloading half the distribution's packages as dependencies.
How Rust 1.64 became faster on Windows
If you are a Rust developer you have most likely celebrated the news that the version 1.64 released on 22/09/2022 is 10-20% faster on…
Asdf Performance
I’ve been a maintainer of asdf for about 6 years now. Most of my work these last several years has been fixing bugs, writing automated tests …
The x86 architecture is the weirdo, part 2
It does everything differently, because of course it does.
What Every Programmer Absolutely, Positively Needs To Know About Encodings (2011)
If you are dealing with text in a computer, you need to know about encodings. Period. Yes, even if you are just sending emails. Even if you are just receiving emails. You don't need to understand every last detail, but you must at least know what this whole "encoding" thing is about. And the good news first: while the…
Things we finally know about network queues (2017)
How big should your queue be, and what should you do when it fills up? Many times, we implement or even deploy a networking system before w...
Linux 6.1 on NanoPi R4S – On fixing SD-card support, Heisenbugs and Rabbit Holes
This little ARM64 single-board computer dragged me into the world of device trees, voltage regulators, and one of the worst Heisenbugs I encountered so far.
How to speed up the Rust compiler in 2022
Between 2016 and 2020 I wrote a series of blog posts called “How to speed up the Rust compiler”. These were mostly about my work on the Rust compiler, plus some updates on the progress on the Rust compiler’s speed in general.
Testing Microsoft's Windows Dev Kit 2023
Last week Microsoft started selling their $599 Windows Dev Kit 2023, formerly known as 'Project Volterra'. I got my hands on one after a little bit of a shipping delay, and promptly started tearing it down to see what's inside. You can click here to browse the entire Twitter thread where I posted pictures of the box…
WebContainers are now supported in Firefox on desktop and Android
WebContainers are now supported on Firefox for desktop and mobile as a result of StackBlitz and Mozilla collaboration! 🥳
Demystifying Database Performance for Developers
For developers, databases are basically magic. Like Penn & Teller, this blog post is set to break the illusion. Databases are just like any other code, they have algorithms and processes. These algorithms and processes are meant to improve performance, but can cause limitations if they are not expected.
A vision of a multi-threaded Emacs
The Threading library Starting in Emacs 26 some very ambitious changes were added. Basic thread support was enabled, laying the groundwork for a future concurrent emacs. The docs layout this possibility: Emacs Lisp provides a limited form of concurrency, called threads. All the threads in a given instance of Emacs…
Quick Look at Rosetta on Linux
Yesterday, Apple did release RosettaLinux as part of the macOS Ventura preview. Let’s take a first quick look…
Where Linux's load average comes from in the kernel
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…
The case of the mysterious --help directory (2020)
For quite some time—as my research will show, March 2016—, I have been annoyed by a directory named --help showing up in my home directory (and sometimes in others).
What every programmer should know about solid-state drives (2014)
This is Part 6 over 6 of "Coding for SSDs". For other parts and sections, you can refer to the Table to Contents. This is a series of articles that I wrote to share what I learned while documenting myself on SSDs, and on how to make code perform well on SSDs. In this part,
Magic-trace: Diagnose tricky performance issues with Intel Processor Trace
Intel Processor Trace is a hardware technology that can record all program execution flow along with timing information accurate to around 30ns. As far as I ...
Faster zlib/DEFLATE decompression on the Apple M1 (and x86)
DEFLATE is a relatively slow compression algorithm from 1991, which (along with its wrapper format, zlib) is incredibly widely used, for example in the PNG, Zip and Gzip file formats and the HTTP, …
Power, frequency, management: how M1 E cores win
macOS manages the loading and frequency of M1 cores according to the QoS set, and rules which differ between the original M1 and the M1 Pro.
Linux Kernel vs. DPDK: HTTP Performance Showdown
A head-to-head performance comparison between the Linux kernel's network stack, and a kernel-bypass stack powered by DPDK.