Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 6,947 posts.
Service mesh use cases (2020)
Service mesh is a blazing hot topic in software engineering right now and rightfully so. I think it’s extremely promising technology and I’d love to see it widely adopted (in cases where it truly makes sense). Yet it remains shrouded in mystery for many people and even those who are familiar with it have trouble…
Building a high performance JSON parser
JSON is important, damn near everything that we do as programmers or operators involves JSON at some point. JSON decoding is expensive, if your product talks JSON then performance of marshalling data in and out of JSON is important. This is a talk about designing an efficient replacement for encoding/json.Decoder .
Emulating x86 on X64 on Aarch64
Emulating win32 on Mac using Apple's x64 emulator.
SIMD for Collision
In a previous post SIMD Matters I discussed the big wins I got from graph coloring to make the contact solver faster. That same approach exists in Box3D. I like to call this approach “wide SIMD”. The idea is to process multiple work units at the same time. In the contact solver this means solving four contact points…
TCP is an underspecified two-node consensus algorithm
I recently found myself dealing with TCP load balancing for a project and I've come to think that generic TCP proxies can't be implemented without substantial pain and how it makes TLS terminating proxies a bad idea.
Thinking in Actors – Challenging your software modelling to be simpler
Challenging your software modelling techniques to be simpler
Unit testing a TCP stack (2015)
Thoughts on how to write automated tests for a TCP implementation.
Scalable Stream Processing: A Survey of Storm, Samza, Spark and Flink
(At the bottom of this page, you find a BibTeX reference to cite this article.)
How Uploadcare Built a Stack That Handles 350M File API Requests per Day
Discover the tech stack used by Uploadcare. Explore 45 tools across 4 categories.
Ledger: Stripe's system for tracking and validating money movement
Technical details on how Stripe built Ledger, a state-of-the-art money movement tracking system, including how teams at Stripe interact with the data quality metrics that underlie our payment processing network.
ReactOS 0.4.12
ReactOS is a free, opensource reimplementation of windows
Reading and writing are less symmetric than you (probably) think
I am talking about the I/O operations as used in computing here. A typical example of how this kind of thing is exposed are the POSIX syscalls read(2) and write(2), which have the following C funct…
Formatting Is Unreasonably Expensive for Embedded Rust
As a (late) part of the #rust2020 request, I wanted to talk about one of the paper-cuts that has become decently problematic for new and experienced users of Embedded Rust: The size costs of formatting in Rust today are unreasonably expensive for users of Rust on bare metal embedded systems. In particular there are…
Static Allocation, Constant Work
In reply to this email:
Impala: Scalable Distributed Deep Reinforcement Learning
Deep Reinforcement Learning (DeepRL) has achieved remarkable success in a range of tasks, from continuous control problems in robotics to playing games like Go and Atari. The improvements seen in these domains have so far been limited to individual tasks where a separate agent has been tuned and trained for each task.
Latency Sneaks Up on You
As systems get big, people very reasonably start investing more in increasing efficiency and decreasing costs. That’s a good thing, for the business, for the environment, and often for the customer. Much of the time efficient systems have lower and more predictable latencies, and everybody enjoys lower and more…
How to Write a Computer Emulator
I wrote this document after receiving large amounts of email from people who would like to write an emulator of one or another computer but do not know where to start. Any opinions and advices contained in the following text are mine alone and should not be taken for an absolute truth. The document mainly covers…
A look at LLVM: comparing clamp implementations
Please note that this is not an endorsement or criticism of either of these languages. It’s simply something I found interesting with how LLVM handles code generation between the two. This is an implementation quirk, not a language issue. Update (April 9, 2021): A bug report was filed and a fix was pushed! The LLVM…
Tokyo Cabinet DB: Beyond Key-Value Store
It took Ruby some time to go from an infant research project by Matz to a language we've all come to know so well. Now, another Japanese developer ( Mikio Hirabayashi ) has all the potential to repeat this cycle with his new database project: Tokyo Cabinet . Developed and sponsored by Mixi Inc . (Japanese Facebook)…
Bringing up 802.11ac on FreeBSD
I've been chipping away at bringing up 802.11ac on FreeBSD. I've been meaning to write this post for a while, but you know, life got in the ...
The One Second Dash
The Amazon Dash is a $5 WiFi button that summons a truck to deliver you water or other stuff. Want your Dash to do something else? The popular approach is to sniff its ARP requests. This requires that Dash connect to your network, putting you perilously close to having some DUDE delivered with your IoT mood lighting.
On Layout and Web Performance
Outside of initial page load problems, “layout thrashing” is the most common performance problem I see in dynamic web applications. This is particularly true for Single Page Applications which build and destroy views on the fly. However, I’m often amazed by the number of web developers I run into who are unaware of…
Writing a Hypervisor in 1k Lines
Writing a Hypervisor in 1,000 Lines
An Introduction to Vectorization
Your CPU has a 32-bit addition instruction that computes the sum of two 32-bit integers x and y, producing a 32-bit result. (The 33rd bit of the sum, the "carry bit", is usually thrown away.)
Leaving No Pixel Behind: Three Years in Xenia's GPU Emulation
xenia is a BSD licensed open source research project for emulating Xbox 360 games on modern PCs.