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. 543 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.
Hey all. TinyKVM was open-sourced this february and since then I’ve been working on some things that are very much outside of the scope of…
When your software team needs to pick a language today, you typically weigh two factors: language performance and developer velocity.
Are you shipping textures to players as PNGs? The goal of this post is to convince you that this is suboptimal, and walk you through a better approach.
What does a relational database designed specifically for local SSDs look like? Postgres, MySQL, SQLite and many others were invented in the 90s and 00s, the era of spinning disks. A local NVMe SSD has ~1000x improvement in both throughput and latency. Design decisions like write-ahead logs, large page sizes, and…
Many products at Cloudflare aren’t possible without pushing the limits of network hardware and software to deliver improved performance, increased efficiency, or novel capabilities such as soft-unicast, our method for sharing IP subnets across data centers. Happily, most people do not need to know the intricacies of…
A very sus sysctl in the XNU kernel.
Over two years ago I installed Acronis True Image for Crucial in order to migrate my data to a new SSD I had just purchased. It worked. I then left True Image installed “just in case”, and what har…
Last week-end, I was invited to the UNIX Social Camp in Dijon, France to talk about the reasons I still use OpenBSD these days and why should others do so; or at least, have a look at OpenBSD . This post is an English transcription of the original French slides that are available here .
This is going to be a long post, but I hope you get value out of it. This wasn’t an easy topic to tackle but it was definitely worthwhile!
Ars Technica mentioned that in macOS Tahoe the venerable old hard disk icons will be replaced with new, more generic, relatively less inte...
I like the Power ISA very much, but there's nothing architecturally obvious to say that the next natural step from the Motorola 68000 family...
Bidding farewell to one of the last kernel address leaks, CVE-2025-53136. Even patches can open new doors for exploitation.
Welcome to Waqas' blog
How we split Feldera into a thousand crates to use every core rustc can get, cutting compile times from 30 minutes to 2.
From the highly eclectic blog of Mark Dominus
I did tell you not to do that.
The table below and notes which follow are a comparison of some of the different standard library implementations available for Linux, with a particular focus on the balance between feature-richness and bloat. I have tried to be fair and objective, but as I am the author of musl , that may have influenced my choice of…
The 2025 TLA⁺ Community Event was held last week on May 4th at McMaster University in Hamilton, Ontario, Canada. It was a satellite event to ETAPS 2025, which I also attended, and plan to write about in the near future. I gave a talk somewhat-hucksterishly titled It’s never been easier to write TLA⁺ tooling! which I…
Learn how memory maps (mmap) accelerate file I/O, reduce latency, and improve app performance in Unix and Go with real-world benchmarks.
Early microprocessors were very slow when operating with floating-point numbers. But in 1980, Intel introduced the 8087 floating-point copro...
Where does JIT-compiled code live? How does Ruby switch between bytecode and native execution? Why does TracePoint slow everything down? This post answers the JIT questions most Ruby developers have but rarely see explained.
The Personal blog and musings of Chris Penner, a designer, developer and future opsimath.