No-Panic Rust: A Nice Technique for Systems Programming
Can Rust replace C? This is a question that has been on my mind for many years,as I created and now am tech lead forupb, a C libraryfor Protocol Buffers. Th...
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 4,389 posts.
Can Rust replace C? This is a question that has been on my mind for many years,as I created and now am tech lead forupb, a C libraryfor Protocol Buffers. Th...
Some days ago I noticed that on a Mac, doing snprintf calls from multiple threads shows curious lack of scaling ( see tweet ). Replacing snprintf with {fmt} library can speed up the OBJ exporter in Blender 3.2 by 3-4 times . This could have been the end of the story, filed under a “eh, sprintf is bad!” drawer, but I…
My homepage now runs on OpenBSD with httpd(8) and Let's Encrypt via acme-client(1) . I previously hosted it on GitHub Pages and then eventually moved to Cloudflare Pages because both options were free and easy. Free and easy is cool, and I understand that writing software full-time leaves us wanting absolutely nothing…
Introduction When modeling a Postgres database, you probably don’t give much thought to the order of columns in your tables. After all, it seems like the kind of thing that wouldn’t affect storage or performance. But what if I told you that simply reordering your columns could reduce the size of your tables and…
In the previous post, I mentioned that buildcache has some unique properties compared to ccache and sccache. One of them is its Lua plugin system, which lets you write custom wrappers for programs that aren’t compilers in the traditional sense. With Bug 2027655 now merged, we can use this to cache Firefox’s WebIDL…
Ten years ago (around the year 2001) I wrote a simple x86 protected-mode OS just to find out how operating systems work. That was really gr...
If you don’t work in computers, you probably haven’t spent much time thinking about how data gets stored on computers or in the cloud. I’m…
💻 Casino brand Royal reels casino 🎯 Alternative names Royal reels, Royal reels casino Australia, Royal Reels pokies, Royal reels online casino 📅 Launch year 2021 🔗 Royal reels mirrors 17, 18, 19, 21, 22, 23, 24, 26 🌐 Supported regions Australia and most international markets, excluding restricted jurisdictions under…
Years ago, while taking a numerical methods course, I wrote some code to calculate the expected number of shared birthdays in a group. The code is very simple: each attempt constructs a vector of N birthdays, then counts the duplicates. The outer loop runs millions of attempts, and calculates the mean number of shared…
Another reason for optimizing compilers: It allows us to write simple and obvious code expecting that the compiler will do the optimization. This both reduces the initial defect count and makes the code more maintainable in the long-run. Note that these are also often the simplest optimizations (e.g. a calculation…
Last year, I bought my 87-year-old grandfather an iPad 2 to replace the who-knows-what PC that was frustrating him constantly. He only used the PC for email and playing music, so it was a no-brainer.
#NodeJS : A quick optimization advice Can you spot the difference between these two files : that can explain a 50% performance gain : If you don’t, it’s normal, you try to read the code …
The story of these attacks starts in late 2004. I had submitted my doctoral thesis and had a few months before flying back to Oxford for my defense, so I turned to some light reading: Intel's latest "Optimization Manual", full of tips on how to write faster code. (Eking out every last nanosecond of performance has…
Deep-diving on the load performance of F1 websites.
From pure Python to AVX-512 assembly, optimizing cosine similarity reveals a 2,500x speedup through SIMD, FP16, and VNNI instructions on modern Intel CPUs.
A few months ago, I got given a laptop with a very interesting condition. The BIOS setup menu was supposedly inaccessible, and nothing apart from the default boot option works. Time to investigate to see what is actually happening and what we can do about it.
Disclaimer: An earlier version of this post claimed the structure is wait-free, this is incorrect. Being wait-free requires that failure or suspension of any thread can’t cause failure or suspension of another thread. This queue in fact does not fulfill that requirement. The main section which discusses the wait…
Introduction
This post assumes some basic C skills. Linux puts you in full control. This is not always seen from everyone’s perspective, but a power user loves to be in control. I’m going to show yo…
I think simple ultra-high speed lossy (or near-lossless) image codecs, built from the new generation of fast LZ codecs, are going to become ...
Buy an RTX 5090, the fastest consumer GPU money can buy, and you get 104.8 TFLOPS of FP32 compute. Ask it to do double-precision math and you get 1.64 TFLOPS. That 64:1 gap is not a technology limitation. For fifteen years, the FP64:FP32 ratio has been slowly getting wider on consumer GPUs, widening the divide between…
This is basically an expanded explanation of what I did after reading this tutorial by Marwan Burelle and then sitting down and trying to write my own implementation, so the steps are going to be fairly similar. The main implementation differences are that my version is simpler and more vulnerable to memory…
I’m very excited to announce that today I’m open-sourcing atool I’ve been working on for several months at Google.It’s called Bloaty McBloatface, and it lets...
The story behind how LinkedIn created Apache Kafka
A guide to a full-featured modern desktop FreeBSD installation