New
The latest blog posts to take off on Hacker News. 4,387 posts.
Apple CPU Architecture Through the Ages
Learn how CPUs work, and discover Apple’s underrated competitive advantage.
The costs of microservices (2020)
An application typically starts its life as a monolith. Take a modern backend of a single-page Javascript application, for example - it starts out as a single stateless web service that exposes a RESTful HTTP API and uses a relational database as a backing store. The service is composed of a number of components, or…
All GB/s without FLOPS – Nvidia CMP 170HX Review
This article contains a basic Nvidia CMP 170HX performance overview, a performance lockdown workaround, a hardware teardown, a watercooling installation guide, and a repair log.
Everything I've learned building the fastest Arm desktop
This is the fastest Arm desktop in the world, yes, even faster than the M2 Ultra Mac Pro. And today, I made it even faster. I upgraded everything: Faster RAM, 128 core CPU, 40 series GPU, I did it all, and we'll see how much we can obliterate the M2 Mac Pro. 128 cores—that's five times more cores, I'm also going to…
Unpacking Elixir: Observability
Elixir supports the usual supects of observability. Open Telemetry (OTel), log handlers, capturing metrics. And it does it well. This post will mostly focus on the observability you have on the BEAM that is either incredibly rare to see elsewhere or possibly entirely unique.
Not knowing the /proc file system
Overview Edit: this post was discussed on hacker news Some of the comments contained valuable reviews of the C code listed below. I’ve appended some edits after the original listing. I’ve been working quite with files and file systems on Linux recently. Mostly from the vantage point of either a shell or a python…
How does macOS manage virtual cores on Apple Silicon?
Code run in a lightweight Virtual Machine can’t take advantage of the Efficiency cores of the host Apple silicon Mac. How then does Sonoma handle its threads?
Building a unikernel that runs WebAssembly – part 1
Hackweek 22 took place last week. During this week all the SUSE employees are free to hack on whatever they want. This one of the perks of working at SUSE 😎.
The heaviness of maintaining systems
Our systems and ourselves
NVMe SSD boot with the Raspberry Pi 5
In my video about the Raspberry Pi 5, I mentioned the new external PCIe port makes it possible to boot the standard Pi 5 model B directly off NVMe storage—an option which is much faster and more reliable than standard microSD storage (even with industrial-rated cards!). Enabling NVMe boot is pretty easy, you add a…
We have used too many levels of abstractions
A big percentage of so-called experts today only know how to configure tools, but they understand nothing about how things work at the deeper level. This is a real challenge and a big problem for the future.
Recent adventures in performance optimization with Rust
How to hash, index, profile, multi-thread, and SIMD your way to incredible speeds.
"<ESC>[31M"? ANSI Terminal security in 2023 and finding 10 CVEs
This paper reflects work done in late 2022 and 2023 to audit for vulnerabilities in terminal emulators, with a focus on open source software. The results of this work were 10 CVEs against terminal emulators that could result in Remote Code Execution (RCE), in addition various other bugs and hardening opportunities…
Localization Failure: Temperature Is Hard
The Guardian is one of my favorite news sources. I’m a subscriber (support news organizations!) and I read it daily. But it is not immune to errors, as this headline shows:68 °F above average is a …
Making CRDTs More Efficient
State-based CRDTs grow monotonically, but that doesn't mean they can't be efficient. We'll learn how to compress the pixel editor state by 98%.
Should you be scared of Unix signals? (2016)
Should you be scared of Unix signals?
Escape analysis hates copy elision (2021)
Yesterday Lauri Vasama showed me this awesome Godbolt: struct S { static std::unique_ptr<S> make() noexcept; ~S(); static std::unique_ptr<S> factory() { std::unique_ptr<S> s = S::make(); return M(s); } }; void take_ownership(S*) noexcept; void test() { std::unique_ptr<S> p = S::factory()…
Learn Wayland by writing a GUI from scratch
Wayland is all the rage those days. Distributions left and right switch to it, many readers of my previous article on writing a X11 GUI from scratch in x86_64 assembly asked for a follow-up article about Wayland, and I now run Wayland on my desktop. So here we go, let's write a (very simple) GUI program with Wayland…
Implementing a GPU's programming model on a CPU
SIMT The programming model of a GPU uses what has been coined "single instruction multiple thread." The idea is that the programmer writes t...
Using OpenBSD Relayd(8) as an Application Layer Gateway
I was lucky enough to attend to EuroBSDCon 2023 and offered the opportunity to talk about one of my favorite OpenBSD stock daemon: relayd(8). The talk was recorded and made available on the EuroBSDCon YouTube channel. . One may check the EuroBSDCon 2023 program for more material. This post attempts a reboot of the…
Going faster by duplicating code
This function doesn't know the value being multiplied until it is called. The compiler (gcc, O2) emits a generic integer multiply instruction in its loop body.
ECC RAM on AMD Ryzen 7000 Desktop CPUs
Getting ECC memory working on desktop CPUs.
789 KB Linux Without MMU on RISC-V
A guide on building a tiny Linux (only 789 KB) that requires no MMU and deploying it on a RISC-V system, with custom userspace code.
Text showdown: Gap Buffers vs. Ropes
I have been working on a hobby project to reimagine the C core of Emacs in Rust. On this journey, I reached the point where I needed some way to represent the text of a buffer. The simplest approach is to just use a large string or array of lines. However these each suffer from poor performance as either the size or…
Sonoma's log gets briefer and more secretive
In Sonoma, some healthy Macs are unable to retain complete logs for 24 hours because of the frequency of entries, and even when privacy is removed, some content is censored.
ChromeOS is Linux with Google’s desktop environment
Between the Material You design and move to break apart the Chrome browser from ChromeOS, now more than ever, ChromeOS is Linux with Google's desktop environment.
Where does my computer get the time from?
This week I was in Rotterdam for a RIPE meeting . On Friday morning I gave a lightning talk called where does my computer get the time from? The RIPE meeting website has a copy of my slides and a video of the talk; this is a blogified low-res version of the slides with a rough and inexact transcript.
Windows NT 3.1 on Dec Alpha AXP
As I was preparing the Windows NT RISC exhibit for VCF west , I realized that I’m missing a rather important piece of the history. While I was showing the potentially last DEC Alpha Windows build ever – AXP64 2210 , I don’t have anything earlier than NT 3.51. It would be nice to showcase the very first RTM version …