Common interface for Linux NIC statistics
In Linux 5.13 ethtool gains an interface for querying IEEE and IETF statistics. This removes the need to parse vendor specific strings in...
The latest blog posts to take off on Hacker News. 6,947 posts.
In Linux 5.13 ethtool gains an interface for querying IEEE and IETF statistics. This removes the need to parse vendor specific strings in...
We are fortunate that so many people choose Chrome as their browser to get things done, which is why we are continually investing in making ...
TL;DR I set out to build the smallest container image that I could that was still able to do something useful. By taking advantage of multistage builds, the scratch base image, and a tiny assembly-based HTTP server, I was able to get it down to 6.32kB!
A year ago at BUILD 2020 we introduced our goal to bring Linux GUI applications to the Windows Subsystem for Linux (WSL) to run Linux GUI applications. We
BGP is the glue between all of the thousands of border routers that make up the internet (you can find this post (battleships) and this post (EvE) as a crash course on how BGP works).
id Software’s DOOM has become one of the most-ported games in history. It felt like a perfect project to port to Compute, built on our serverless compute environment, to experiment with different applications of the product.
Erik Bernhardsson
Here’s a sentence I find myself saying several times a week: …or we could just box it. There’s two remarkable things about this sentence. The first, is that the advice is very rarely heeded, and in...
Recently my friend Lars Hupel and I had a discussion on why formal methods don’t compose well. You can read the conversation here. We focused mostly on composing formally-verified code. I want to talk a little more about the difficulties in composing specifications. This is half because it’s difficult for interesting…
The MirkoPC is so far the closest thing to a full-fledged Raspberry Pi desktop computer: Based on the Compute Module 4, it has a full-size M.2 M-key slot, allowing the Pi to boot from reliable and fast NVMe SSD storage, a built-in headphone amp and line out, 4 USB 2.0 ports, gigabit Ethernet, two HDMI ports, and a…
After a few weeks of investigating the Apple M1 GPU in January, I was able to draw a triangle with my own open source code . Although I began dissecting the instruction set, the shaders there were specified as machine code. A real graphics driver needs a compiler from high-level shading languages (GLSL or Metal) to a…
How I reduced Rust incremental debug build times on macOS from 14 seconds down to 4 seconds.
It’s been almost a year that Keivan Beigi shut down the AppGet project in response to shenanigans by the Windows App Model team. Microsoft…
This article is the sequel to A Universal Async Abstraction for C++ , in which I talk about the Executor proposal targeting C++23. Quite a bit happened since then.
The covers a brief history of DNS on Linux systems and what steps Tailscale is taking to ensure it is configured consistently.
The name SQLite is a nice name, but the "lite" part is misleading, it sounds like it is only useful for tiny things - which is very wrong. SQLite should be named AwesomeSQL, because that is what it is. SQLite is probably the only database you will ever need in most cases.
disclaimer: this is a technical post aimed at developers being somewhat aware of the problem space. There will be a concluding ‘the day of…’ post aimed at end users where some of …
This is my main computer, a Thinkpad T410 with a 1st generation Intel Core i5 and 8 GB of RAM. It runs Arch Linux with Xfce.
People appear to enjoy the blog posts about me porting different compilers to OpenBSD . What I would like to do for the next couple of posts beginning with this one is to take a step back and de-complexify these programs. Both the D compiler and the GNU Modula-2 compiler are highly complex pieces of software. But at…
It all started with the big bang! We nearly lost 33 of 36 disks on a Proxmox / Ceph Cluster; this is the story of how we recovered them.
Please note that this is not an endorsement or criticism of either of these languages. It’s simply something I found interesting with how LLVM handles code generation between the two. This is an implementation quirk, not a language issue. Update (April 9, 2021): A bug report was filed and a fix was pushed! The LLVM…
Discover more about what's new at AWS with AWS Lambda@Edge changes duration billing granularity from 50ms down to 1ms
Building Brainf∗ck interpreter for the 21 century, with all the best systems design practices in mind. Think of Brainf∗ck-as-a-service cloud solution!
Adventures in leveling up our API rate limiting infrastructure
Retrocomputing and other indulgences
We successfully deployed ThreadSanitizer in the Firefox project to eliminate data races in our remaining C/C++ components.
I have an affinity for performance optimization and making software as efficient as possible. Over the years, I've encountered specific instances and common patterns that make software or computers slow. In this post, I'll shine a spotlight on some of them.