New
The latest blog posts to take off on Hacker News. 4,389 posts.
96-core ARM supercomputer using the NanoPi-Fire3
Building a high performance supercomputer for under £100 (£550 including twelve Fire3s). Parts list, benchmarks and downloadable plans for laser-cutting the acrylic case.
OpenBSD on a Laptop
A guide to a secure and streamlined installation of OpenBSD 6.4 on a laptop.
RHEL is deprecating KDE
By a strange coincidence the news broke this morning that RHEL is deprecating KDE. The real surprise here is that RHEL supported KDE all. Back in the 90s they were entirely against KDE and put lots of effort into our friendly rivals Gnome. It made some sense since at the time Qt was under a not-quite-free licence and…
Modeling Message Queues in TLA+
I recently did a corporate TLA+ workshop and some people asked what TLA+ specs look like in practice. If you looked at the most common public examples, you’d probably come away thinking that people only used it for critical consensus algorithms. This is a problem for two reasons: first, it makes it harder to learn…
Introducing Zink: OpenGL on Vulkan
For the last month or so, I’ve been playing with a new project during my work at Collabora, and as I’ve already briefly talked about at XDC 2018, it’s about time to talk about it to a wider audience.
The hidden cost of QUIC and TOU (2016)
Some new proposed protocols will encrypt the transport layer headers. Encryption is good, so more encryption must be better, right? Unfortunately there's going to be a huge hidden cost that'll be paid by anyone troubleshooting networking problems.
Two Objects Not Namespaced by the Linux Kernel (2017)
Covers two Linux primitives that are not namespaced by the current set of Linux kernel namespaces.
Using parallel sequential scan in PostgreSQL
Parallel sequential scan is the first parallel access method in PostgreSQL and is introduced in version 9.6. The committer of this featu...
Global Kernel Locks in APFS
Over the past several months, a handful of people had been complaining that Mercurial's test harness was executing much slower on Macs. But this slowdown seemingly wasn't occurring on Linux or Windows. And not every Mac user experienced the slowness!
A fun optimization trick from rsync
From the highly eclectic blog of Mark Dominus
Systemd is bad parsing
Systemd has a remotely exploitable bug in its DHCPv6 client . That means anybody on the local network can send you a packet and take control...
Towards fearless SIMD
SIMD is a powerful performance technique, and is especially valuable in signal and image processing applications. I will be using it very extensively in my synthesizer, and also it’s increasingly used in xi-editor to optimize string comparisons and similar primitives.
Writing an OS in Rust: Hardware Interrupts
In this post, we set up the programmable interrupt controller to correctly forward hardware interrupts to the CPU. To handle these interrupts, we add …
Validating UTF-8 bytes using only 0.45 cycles per byte (AVX edition)
When receiving bytes from the network, we often assume that they are unicode strings, encoded using something called UTF-8. Sadly, not all streams of bytes are valid UTF-8. So we need to check the strings. It is probably a good idea to optimize this problem as much as possible. In earlier work, we showed that ……
Systems, not Programs
We need programming, but do we need the program?
Making Windows Slower Part 2: Process Creation
Windows has long had a reputation for slow file operations and slow process creation. Have you ever wanted to make these operations even slower? This weeks’ blog post covers a technique you can use…
Vectorized Emulation: fuzzing at 2 trillion instructions per second
This is the introduction of a multipart series. It is to give a high level overview without really deeply diving into any individual component.
Using /proc to get a process' current stack trace
Check out how you can use the proc filesystem to retrieve the kernel stack trace of a given process
Arguing against using protobuffers
I’ve spent a good deal of my professional life arguing against using protobuffers. They’re clearly written by amateurs, unbelievably ad-hoc, mired in gotchas, tricky to compile, and solve a problem that nobody but Google really has. If these problems of protobuffers remained quarantined in serialization abstractions…
Bpftrace for Linux 2018
bpftrace (DTrace 2.0) for Linux 2018: the bpftrace front-end