Exposing the Wayland lie (2018)
Hi, people of the future! Did you know that I wrote a follow-up article to this one, called “Further Thoughts on Wayland”? This original article was written in a more combative tone tha…
The latest blog posts to take off on Hacker News. 498 posts.
Hi, people of the future! Did you know that I wrote a follow-up article to this one, called “Further Thoughts on Wayland”? This original article was written in a more combative tone tha…
Not all instructions on modern processors cost the same. Additions and subtractions are cheaper than multiplications which are themselves cheaper than divisions. For this reason, compilers frequently replace division instructions by multiplications. Roughly speaking, it works in this manner. Suppose that you want to…
Explore technical topics, solutions, and resources for building with Twilio – and beyond.
For some time Elfeed was experiencing a strange, spurious failure. Every so often users were seeing an error (spoiler warning) when updating feeds: “error in process sentinel: Search failed.” If you use Elfeed, you might have even seen this yourself. From the surface it appeared that curl, tasked with the…
How do you debug an application, library or an entire system with multiple processes? One answer: tracing. An introduction into bpftrace, and an overview of the Linux tracing ecosystem (DTrace, eBPF, uprobes, etc).
Dash knows your context, your team, and your work, so your team can stay organized, easily find and share knowledge, and keep projects secure, all from one place.
Suppose you’re a savvy C++ developer who knows all about data-oriented design and the importance of optimizing for cache locality if you want a prayer of running fast on modern hardware. Now suppose you want to go beyond basics—”just use std::vector ” is a good starting point, but you want more!
You're reading the original article in English. You can as well read the translation in Russian .
In the last post , we described a protocol that should satisfy the requirements and invariants established in the first post . Today we will look at formal verification with TLA+. Formal verification is just another (niche) tool in the toolbox. Some tools require more skill than others to use. So
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…
This post explains techniques to make the physical page table frames accessible to our kernel. It then uses such a technique to implement a function t…
CockroachDB's consistency model fits somewhere between serializability and linerarizability. We're proposing a new marketing phrase for CRDB's guarantees: no stale reads.
When considering the panel to discuss concurrency, you’d be pushed to find a higher calibre than Sir Tony Hoare, Joe Armstrong, and Carl Hewitt.
Tracing the x86 context switch in Linux throughout time
Ah, C. The best lingua franca we have… because we have no other lingua francas. Linguae franca. Surgeons general? C is fairly old — 44 years, now! — and comes from a time when there were possibly more architectures than programming languages. It works well for what it is, and what it is is a relatively simple layer of…
tl;dr I found a vulnerability in apt that allows a network man-in-the-middle (or a malicious package mirror) to execute arbitrary code as root on a machine i...
Practical development throughout the evolution of Windows.
Advanced Mac Substitute is an API-level reimplementation of 1980s-era Mac OS. It runs 68K Mac applications in an emulator without an Apple ROM or system software .
During me being at my parents over the holidays (Christmas 2017) I had the usual IT-support stuff to do, that always happens to tech sa...
After diving into the C language through K&R, and then studying portability (see C Portability Lessons from Weird Machines ), my next challenge was to take a systematic look at the standard library. To do this I worked through P. J. Plauger’s book The Standard C Library (ISBN 978-0131315099) where he examines an…
The Pixelbook and four other fairly new Chromebooks have the special flag to enable GPU acceleration, making these the first to get the new feature for Linux. This should bring the Android emulator and improved gaming capabilities to Project Crostini.
CockroachDB uses RocksDB for its storage engine because of RocksDB's rich feature set, which is necessary for a complex product like a distributed SQL database.
Otherwise known as “wait, you mean I can use the TLA toolbox from the command line?”
We open-sourced a fault injection tool, KRF, that uses kernel-space syscall interception. You can use it today to find faulty assumptions (and resultant bugs) in your programs. Check it out! This post covers intercepting system calls from within the Linux kernel, via a plain old kernel module. We’ll go through a quick…