New
The latest blog posts to take off on Hacker News. 4,390 posts.
Tips for beginning systems and software engineers
From time to time I’m toying with the idea to give a lecture to newcomers in the IT industry (systems or software engineers). Here are some of the points that I would include in it: Human fa…
Our best practices are killing mobile web performance
Web performance rules invented for desktop web access need to be revised for the mobile era.
Understanding consensus and Paxos in distributed systems
A whirlwind tour on acheiving agreement in a distributed system
Size cost of C++ exception handling on embedded platforms
Introduction There is a common stereotype, that C++ exception handling code will significantly increase binary image size ("up to 100kb")...
The Technology Behind Making the Internet Archive into the Worlds Worst DVR
Take a moment to go back in time with me, back to when life was simpler and the biggest threat to humanity was Y2k…
Here's to the systems programmers – Writing Hello World on a home brew CPU
Writing Hello World on a homebrew CPU
Zero size arrays in C
The current structure definition of the ion system heap involves a zero sized array:
PostgreSQL Scalability: Towards Millions TPS
PostgreSQL scalability on multicore and multisocket machines became a subject of optimization long time ago once such machines became widely used. This blog post shows brief history of vertical scalability improvements between versions 8.0 and 8.4. PostgreSQL 9.2 had very noticeable scalability improvement. Thanks to…
When code is suspiciously fast: adventures in dead code elimination
Part of a recent assignment for one of my classes involved calculating the Fibonacci sequence both recursively and iteratively and measuring the speed of each method. (BONUS: For a fun diversion, here is a paper I wrote about using the Golden Ratio, which is closely related to the Fibonacci sequence, as a base for a…
RISC instruction sets I have known and disliked
Experienced professional software engineer based in York, UK
A cache miss is not a cache miss
When writing high performance code, we are careful to avoid cache misses when possible. When discussing cache misses, however, we are usually content with counting the number of cache misses. In this post I will explain why this is not sufficient, as data dependency also make a huge difference.
Moving Past the Scaling Myth
Moving Past the Scaling Myth - Discontinuous Transition in Process and Architecture
Rethinking PID 1 (2010)
Posts and writings by Lennart Poettering
Multithreading in modern C++
With the new C++11 Standard, C++ faces the first time challenges of multicore architectures. The 2011 published standard defines how a C++ program has to behave in the presence of multiple threads. The C++11 multithreading capabilities are composed of two components. This is, on the one hand, the defined memory model…
Elixir RAM and the Template of Doom
I will attempt to convince you, in two lines of code, that Elixir is more interesting than any programming language you’ve ever used.
Gentoo Tesla – T2 Edition
Location Voiture Electrique à la journée, le week-end ou au mois. Dès 50€/jour. Oubliez les agences de location. Assurance tous risques.
The Sad History of the Microsoft Posix Subsystem (2010)
When Windows NT was first being developed, one of the goals was to make the kernel separate from the programming interface. NT was originally intended to be the successor to OS/2 but Microsoft also…
Boosting zopfli performance
Introduction Deflate compression has been around for over 20 years. It's the format used inside most ZIP files. It's used by HTTP to redu...
Why Unix needs a standard way to deal with the file durability problem
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Unix’s file durability problem
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Rust and Nix = easier Unix systems programming
Lately I’m writing lots of Rust , and I’m particularly interested in systems programming on unix. I’ve been using and contributing to a library called nix 1 , whose mission is to provide ‘Rust friendly bindings to *nix APIs’.
Following a Select Statement Through Postgres Internals (2014)
This is the third of a series of four posts based on a presentation I did at the Barcelona Ruby Conference called “20,000 Leagues Under ActiveRecord.” (posts: one two four and video ).