11 March 2024

37 links · Monday

Unlocking Kafka's Potential: Tackling Tail Latency with eBPF

At Allegro, we use Kafka as a backbone for asynchronous communication between microservices. With up to 300k messages published and 1M messages consumed every second, it is a key part of our infrastructure. A few months ago, in our main Kafka cluster, we notic…

Putting Atlantis At Risk

Warning: A long story that has a lot of technical details – and a moral. Reflecting on my career as a Space Shuttle Flight Director, there were many difficult decisions to make and sometimes …

smeso - Memory ordering and atomic operations synchronization

Every time I need to play with atomic variables and I try to be clever and optimize them as much as possible I need to re-learn what the various memory ordering options do. It doesn't help that memory ordering is easily one of the most complex topics I ever wo…

Learning is Compression

In this blog post, we explore how compressing data is equivalent to learning data distributions. Not in the sense that neural networks are compressing data in their weights, but in an information theoretic sense. Following up on Shannon's work, we use a GPT-2 …

The complete story of Gödel (in)completeness. [290 views]

The famous mathematician Kurt Gödel proved two “incompleteness” theorems. This is their story. By the 1930s logicians, especially Tarski, had figured out the semantics of predicate logi…

My Frustration With Tech - Chris Wiegman

I’ve written about it before but I still say that, for all its faults, the best computing stack I ever had was when most of our data was in Google. Others have come close but that was, by far, the most convenient combination of features and access. I realize m…

Stop Fearing Incidental Findings

We have two options for the next hundred years of healthcare: gather as much data as possible and make healthcare better, or – don’t – because we’re afraid that people will get scared and act unwisely when they see an incidental finding.

Words are Worse than Weights

January 12, 2024 — For decades I had a bet that worked in good times and bad: time you invest in word skills easily pays for itself via increased value you can provide to society. If the tide went out for me I'd pick up a book on a new programming language so …

What is Value Streaming?

Technical excellence is more satisfying for developers than delivering customer value? This is where value streaming comes into play.

JSON Canvas

An open file format for infinite canvas data.

The Best Essay

Despite its title this isn't meant to be the best essay. My goal here is to figure out what the best essay would be like.

General Performance Tip: Retrieving the Current Thread Id

There are two methods to obtain the current thread ID in C#: using the Thread class or System.Environment. Benchmark results show both methods have similar performance and allocate no memory.

Comparing Raw ASP.NET Request Throughput across Versions

When I set up a new machine I usually use a small ASP.NET test project to get a feel of performance of the machine and when that happens I also take a moment to compare performance across recent versions of .NET to see how things are improving - and improved t…

bUnit v2 - The Blazor unit testing library vNext

Next to the big release of .NET 8, we also released the first preview bUnit v2. This release is a major release, with a lot of new features and improvements. In this post, I will highlight some of the most important changes. This includes new features but also…

A primer on transaction management in Entity Framework

Whenever you are doing work within Entity Framework, there is (almost) no chance that you are doing it without transactions - whether you are aware of it or not. If you are aware of it, you'll likely not need this introduction. If you are not, stay with me for…

Inside Git Stash

illuminate git internal on object model via a `git stash` implementation, including push, apply, pop, drop, list and clear, all with isomorphic-git

Model based testing in C#

In my continuous journey to design and write better code I try and experiment with multiple testing techniques. A while ago I wrote a whole ...