A million ways to die from a data race in Go
I have been writing production applications in Go for a few years now. I like some aspects of Go. One aspect I do not like is how easy it is to create data races in Go.
Topics /
The most popular blog posts about systems & performance on Hacker News. 6,942 posts.
I have been writing production applications in Go for a few years now. I like some aspects of Go. One aspect I do not like is how easy it is to create data races in Go.
Fun with Kermit and ZMODEM file transfers over SSH using Qodem
Modern processors have powerful vector instructions which allow you to load several values at once, and operate (in one instruction) on all these values. Similarly, they allow you to have vector constants. Thus if you wanted to add some integer (say 10001) to all integers in a large array, you might first load a…
A guide to adding Rust to a Java codebase with JNI and the rust-maven-plugin.
Blog posts about GNU Guix.
This is a kind of knowledge base article which resulted from attempts to understand exactly how memory management works in 16-bit Windows. It is not exactly undocumented, but it is also not well documented; even before Windows 3.0 appeared, the assumption was that essentially all application developers were going to…
Recently at Bluecore I ran into a familiar situation: during brief periods of overload, all requests to a server were timing out. It was a catastrophic failure, where the server completely stopped serving. We added more capacity to prevent overload, but we also wanted to fix the server. Instead of exploding, it should…
For an ABI that probably nobody uses.
Explore the C++ memory model and learn about migrating from x86 to ARM architectures. Enhance your understanding of memory management in C++.
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
I partnered up with Mirek (of Mirkotronics / @Mirko_DIY on Twitter) to build the Pi4GPU (or 'PiG' for short): This journey started almost three years ago: almost immediately after the Raspberry Pi Compute Module 4 was launched, I started testing graphics cards on it. First I tried some low-spec cards like the Zotac…
Most people have an inkling of what the load averages mean: the three numbers represent averages over progressively longer periods of time (one, five, and fifteen-minute averages), and that lower numbers are better. Higher numbers represent a problem or an overloaded machine.
Having spent a lot of the last few years worrying about the scalability of data-heavy applications like Rapportive , I have started to get the feeling that maybe we have all been “doing it wrong”. Maybe what we consider to be “state of the art” application architecture is actually holding us back.
The Microsoft Docs at https://docs.microsoft.com are really fantastic lately. ...
The Ultimate OpenBSD Router
There will come a time when you will find yourself asking “What the heck is that process doing?”. To uncover the mysteries behind the behaviour of a process, we have a tool called strace .
AV1 is a new general-purpose video codec developed by the Alliance for Open Media. The alliance began development of the new codec using Google’s VPX codecs, Cisco’s Thor codec, and ...
Keynote at 15th ACM International Conference on Distributed and Event-based Systems (DEBS) , Online (originally planned to be in Milan, Italy), July 2021.