New
The latest blog posts to take off on Hacker News. 458 posts.
Message-Oriented Programming (2017)
Managing complexity within an application is one of the key challenges for any software developer. Cleanly reconciling new features with existing architectures is something we strive for.
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.
Booting Windows NT 4 on a DEC Multia
The Multia feels to me like Digital’s take on a high-end “legacy-free” (at introduction in late 1994) desktop. Its spec sheet includes features unheard of in its contemporaries:
Linux Raw Sockets
Recently I did a userspace implementation of the Host Identity Protokoll (HIPv2, RFC 7401) with the upcoming Diet Exchange (HIP DEX, IETF draft 6) . Doing so, I've learnt a lot about raw socktet programing under Linux and here I want to share a few things with you.
A Usable C++ Dialect That Is Safe Against Memory Corruption
Quote: we DID get a perfectly usable C++ dialect which is also 100% safe against memory corruption and against memory leaks. Another Quote: we can (and often...
Atomic Commit in SQLite (2007)
An important feature of transactional databases like SQLite is "atomic commit". Atomic commit means that either all database changes within a single transaction occur or none of them occur. With atomic commit, it is as if many different writes to different sections of the database file occur instantaneously and…
Stateful Experiments on AWS Lambda
In January 2017, we presented results to the European Commission on a FP7project called SyncFree, where we were tasked with a large-scale evaluationof the Lasp programming system. In this evaluatio...
Anna: A Fast, Scalable, Flexibly Consistent Key-Value Store
There’s fast and there’s fast. This post is about Anna*, a key/value database design from our team at Berkeley that’s got phenomenal speed and buttery smooth scaling, with an unpr…
Symbolic Execution: Intuition and Implementation
In this article I give a brief tour of a program analysis technique called symbolic execution. As the title indicates, I aim to explain both the intuition behind the technique, and also the details of a simple implementation. My intended audience is professional programmers who have no background in program analysis.
HTTP Analytics for 6M requests per second using ClickHouse
One of our large scale data infrastructure challenges here at Cloudflare is around providing HTTP traffic analytics to our customers. HTTP Analytics is available to all our customers via two options:
Why DNSFilter replaced InfluxDB with TimescaleDB
Stay informed with the latest updates, trends, and insights on DNS and content filtering. Get useful tips and best practices in network security.
Jepsen: Aerospike 3.99.0.3
Aerospike , formerly Citrusleaf, is a distributed, sharded document store designed for high-throughput, low-latency applications. Each record is a map of keys to values, which may be either primitive types (integers, strings, bytes, etc.) or nested collections like lists and maps. Secondary indices are also available…
Continuing frequency deviation in the Continental European Power System
The Continental European (CE) Power System -a large synchronized area stretching from Spain to Türkiye and from Poland to Netherlands; encompassing 25 countries- is experiencing a continuous system frequency deviation from the mean value of 50 Hz, and this since mid of January 2018.
Progressive Locks: fast, upgradable read/write locks
Context A few years after I created the Elastic Binary Trees (ebtree) , I started to get some feedback from users who needed to use the...
A new storage engine for PostgreSQL to provide better control over bloat
In the past few years, PostgreSQL has advanced a lot in terms of features, performance, and scalability for many-core systems. However, o...
The Mystery of the Slow Downloads
A few months ago, a complaint started popping up from users downloading or updating our apps: “Geez, your downloads are really slow!”
Nerd Sniped by BINFMT_MISC
How to script in any language thanks to rootless containers and BINFMT_MISC.
Doom as a tool for system administration (1999)
As I was listening to Anil talk about daemons spawning processes and sysadmins killing them, I thought, "What a great user interface!" Imagine running around with a shotgun blowing away your daemons and processes, never needing to type kill -9 again.
A researcher’s tale of defeating traps, tricks, and complex virtual machines
Office 365 Advanced Threat Protection (Office 365 ATP) blocked many notable zero-day exploits in 2017. In our analysis, one activity group stood out: NEODYMIUM. This threat actor is remarkable for two reasons: FinFisher is such a complex piece of malware that, like other researchers, we had to devise special methods…
Bandaid – Dropbox service proxy
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.
Should you Rust in embedded yet?
A transcript of the talk I given in 2018 about the state of embedded programming in Rust.
Why Is It Taking 20 Minutes to Mine This Bitcoin Block?
You have just made a Bitcoin transaction and you are eager to see if it appears in the next block. You know that the expected time between Bitcoin blocks is 10 minutes. You check the log of your Bitcoin node. It has been 7 minutes since the previous block. You recall that blocks occurrences in Bitcoin are a Poisson…