Parse, Don't Validate, in Rust
Validation throws away what it learned. Parsing returns it. In Rust, that moves invariants into the type system, where both developers and coding agents have to respect them.
Recent content in Posts on RD Blog
Validation throws away what it learned. Parsing returns it. In Rust, that moves invariants into the type system, where both developers and coding agents have to respect them.
After upgrading to Postgres 18 in Docker, my named volume sat empty while data went to an anonymous volume. No errors, no warnings, just initdb on every restart.
A background task in Claude Code silently grew a single .output file to 324 GB in 16 minutes on my Mac. I went through the session logs to understand why. Turns out others have seen up to 740 GB from the same unbounded output files.
The 12 books that shaped my thinking in 2025, from logic and Rust to Dostoevsky and nutrition.
I went back to basics to rebuild my math foundation, and 50 days in, I’ve finally started in the right place.
How I brought my Synology NAS back to life. Starting with quick checks, discovering a hidden debug tool, and finally fixing the network issue.
Using K-Means clustering for image compression in Rust. A visual and practical way to explore this classic machine learning algorithm.
Getting familiar with the Zig programming language by implementing and visualizing the Mandelbrot Set from scratch.
A mind map that breaks down the core ideas of machine learning, including types of learning, core techniques, and commonly used tools.
A closer look at the Leaky Bucket algorithm, how it works, when to use the queue-based variant, and how to implement it in Java.
A hands-on look at the Token Bucket algorithm, how it handles bursty traffic, why refill strategy matters, and how to build it in Java.
A practical look at the Sliding Window rate limiting, how it handles rolling time windows, its memory-optimized version that scales better.
A hands-on breakdown of the Fixed Window rate limiter, how it works, where it is fast and effective, and where it falls short.
An overview of core rate limiting concepts, common use cases, and how different strategies help control system load and ensure fair usage.
How to move files from one Git repository to another without losing commit history. Covers the most common scenarios and clean ways to do it.
A look at how shared static fields can introduce unpredictable behavior in concurrent tests and how to avoid it.
What Telegram bots are, how they work behind the scenes, and what you need to build your own from scratch.
How PostgreSQL handles disk space after DELETE operations and what you can do to actually free up storage and keep things efficient.