Distributed Erlang
I'm a two hit wonder
The latest blog posts to take off on Hacker News. 4,387 posts.
I'm a two hit wonder
Challenging your software modelling techniques to be simpler
To test if a display interface works we often don't want to use a huge framework like GTK or Qt. This article shows an easy way on how we can use a framebuffer directly on a DRM graphics driver under Linux.
In a previous post, I’ve shown how to use the rayon framework in Rust to automatically parallelize a loop computation across multiple CPU cores.Disappointingly, my benchmarks showed that this only provided a 2x speedup for my workload, on a computer with 8 CPU threads.Worse, the total “user” and “system” times…
Please refer to How Much Memory Do You Need in 2024 to Run 1 Million Concurrent Tasks? - Take 2 to check the latest result.
A Pretty Map of the European Power Grid
The Raspberry Pi Compute Module 5 is smaller than a credit card, and I already have it gaming in 4K with an eGPU, running a Kubernetes cluster, and I even upgraded my NEC Commercial display from a CM4 to CM5, just swapping the Compute Modules! The Compute Module 4 was hard to get for years. It launched right after the…
I moved my projects from Kubernetes to Google Cloud Run because I did not want to pay for cluster operations, idle capacity, and job-running infrastructure.
Update: This article was discussed on Hackernews Much has been written and a lot of analysis performed on the global BGP table over the years, a significant portion by the inimitable Geoff Huston.
This is directly inspired by Engineering for Slow Internet. I figured I’d give running with dogshit internet on my desktop and phone a go to see how poorly (or well!) specific applications behave. This is not an in-depth review of the behavior, but just my general impressions running for a few hours on 200kbit…
I was studying the silicon die of the Pentium processor and noticed some puzzling structures where signal lines were connected to the silico...
At the beginning of the year, I wrote a bunch of articles on the various tricks DOS played to overcome the tight memory limits of x86’s real mode. There was one question that came up and remained unanswered: what were the various “models” that the compilers of the day offered?
This blog post is meant to an iteration on the tutorial and introduction to garbage collection implementation presented in this classic blog post . We are still working with simple garbage collectors, but this time another one with a bit more complexity.
Low level software usually has lots of .cc or .rs files. Even lower-level software, like your cryptography library, probably has .S containing assembly, my least favorite language for code review.
Hi all! I'm starting a new article series here. This one is going to be about Unix utilities that you should know about. The articles will discuss one Unix program at a time. I'll try to write a good introduction to the tool and give as many examples as I can think of. The first post in this series is going to be…
Using a full-featured RPC framework for IPC seems like overkill when the processes run on the same machine. However, if your project anyway exposes RPCs for public APIs or would benefit from a schema-based serialisation layer it makes sense to use only one tool that combines these—also for IPC. Microservices for…
One of the Erlang ecosystem's spiciest nerd snipes are hot code updates. Because it can do it. In ways that almost no other runtime can. I use Elixir which builds on Erlang and has the same capabilities.
Musings about async await again and why I think virtual threads
This colorful series walks you through the networking basics in just a few thousand words! It also offers hands-on labs to practice the obtained knowledge.
Update Nov 30: I've added a version 2, which makes the benchmarks and design overview section in this article outdated. See the github repo for updated benchmarks.
A bug, most probably in the early part of kernel boot in guest macOS, prevents M4 Macs virtualising macOS prior to 13.4.
There are two main aspects to compile times that matter to developers. Cold build times, when building from scratch and warm build times when you’ve already built and you’re rebuilding following an edit. This article focuses on warm build times, which for rapid iteration during development is what generally matters…
When doing systems programming we often need to wait for something to happen. Common examples might be waiting for some data to come through a socket or waiting on a lock. We also often want to wait on any of several conditions to become true. A web server might be handling many sockets at once, waiting for any number…
I tried everything but couldn’t turn this Raspberry Pi 5 into the World’s Fastest Pi 5. Unfortunately, we can’t quite claim that title.
I had to pause some of my work getting a current-gen AMD graphics card running on the Pi 5 and testing a 192-core AmpereOne server to quickly post on the M4's efficiency. I expected M4 to be better than M1/M2 (I haven't personally tested M3), and I hoped it would at least match the previous total-system-power…
Revisiting the timeless von Neumann Architecture