Reliable UDP & Zig: Part 2.5 - Branching

zudp Series Overview This post is part of a series where I revisit an old university assignment on TCP’s sliding window mechanism by implementing a basic reliable UDP example. The goal of these posts is to refresh my network/socket programming knowledge, learn the Zig programming language, and practice systems-level engineering tools and techniques. You can find part 1 of the series here Investigating the branching improvements from Part 2 Modern CPUs use branch prediction to speculatively execute instructions, but when predictions fail, the performance penalty can be significant. Understanding and optimizing for branch behavior is crucial for high-performance networking code. ...

August 26, 2025 · 14 min

Reliable UDP & Zig: Part 2

zudp Series Overview This post is part of a series where I revisit an old university assignment on TCP’s sliding window mechanism by implementing a basic reliable UDP example. The goal of these posts is to refresh my network/socket programming knowledge, learn the Zig programming language, and practice systems-level engineering tools and techniques. You can find part 1 of the series here Recap In part one, we implemented a minimal Reliable UDP in Zig. ...

August 3, 2025 · 16 min

Reliable UDP & Zig: Part 1

zudp Series Overview This post is part of a series where I revisit an old university assignment on TCP’s sliding window mechanism by implementing a basic reliable UDP example. The goal of these posts is to refresh my network/socket programming knowledge, learn the Zig programming language, and practice systems-level engineering tools and techniques. Reliable UDP Basics Back in university (2012–2015), my instructors taught us that UDP was so unreliable it was essentially unused in modern applications. Since TCP guarantees ordered packet delivery and provides useful features like bidirectional streaming and congestion control, the situation was presented as if the choice between TCP and UDP was settled—there was no reason to use UDP. ...

July 26, 2025 · 11 min

Guide to Japanese Input on Arch Linux

(Very Brief) Guide to Japanese Input on Arch Linux For anyone studying language with a character set other than English, being able to swap back and forth between input languages is important. This kind of functionality may come setup out of the box on Mac or Windows, but we need to do a little bit of work to get this functionality in Linux. IMF vs IME The TL;DR here is a classic client/server architecture, think of X11 vs a window manager. ...

July 1, 2025 · 3 min

2025 Arch Install

<insert "BTW I use arch" meme here> Installation The (Still) Manual Bits In the past Arch Linux was somewhat notorious for its installation experience. It was relatively manual and entirely text based when compared with other Linux distros. I’m happy to report than in 2025, even if you want to dual boot with Windows, is easy. There are however still some manual steps. First, if you’re dual booting I would recommend installing Windows first. This will just make this whole process less error prone. ...

June 28, 2025 · 5 min