AOC 2024 Postmortem: What I Actually Learned Throughout 50 Stars
“It’s fine, I’ll just implement a quick DFS and call it a day.” — Me, 30 minutes before discovering that Day 16 required bidirectional search and completely restructuring my approach for the third time. The Setup: Another July Adventure I have a confession: I started Advent of Code 2024 in late July, just like I did with AOC 2023 (which I tackled in August 2024). There’s something liberating about approaching these puzzles without the December time pressure, when the rest of the world is frantically debugging race conditions while battling holiday shopping deadlines. ...
Rust Handshake Challenge #4: The Postmortem
Where we look back at our journey from simple greeting exchanges to high-performance async servers – and ask the hard questions about learning, complexity, and whether it was all worth it. Source: https://moslehian.com/posts/2023/1-intro-async-rust-tokio/ The Journey’s End Three weeks ago, I embarked on what seemed like a simple Friday night project: implement a 3-way handshake protocol in Rust. What started as curiosity about network programming became an odyssey through the depths of concurrent systems design. ...
Rust Handshake Challenge #3: Event-Driven Handshaking
Where our thread pool server meets its match, and I discover that sometimes the best way to handle thousands of connections is to pretend threads don’t exist. (Source: https://berb.github.io/diploma-thesis/community/042_serverarch.html) The Tantalizing Promise Fresh from the victory of my thread pool implementation, I felt invincible. My server could handle hundreds of concurrent connections with predictable resource usage. Thread creation was under control, context switching was manageable, and memory consumption was reasonable. ...
Rust Handshake Challenge #2: Threading the Needle of Concurrency
Where our simple single-threaded server meets the harsh reality of concurrent clients – and how I learned to think in threads. Source: https://commons.wikimedia.org/ One Server, But More Than One Clients Last week’s victory almost felt complete as my handshake server seemed to work flawlessly – until concurrency kicks in. Unless there are only single server and single client (too strong assumption!), we always have to take multiple clients into consideration. ...
Rust Handshake Challenge #1 Simple Single Threading
The tale of how I went from basic Rust knowledge to implementing a custom 3-way handshake protocol – and what I learned about both networking and Rust along the way. Source: https://commons.wikimedia.org/ The Beginning: A Simple Goal Everything began suddenly and whimsically yesterday – just like many of my curiosity-seeking journeys. Disclaimer: While the story I introduce in this post reflects the real development experience, I’ve intentionally dramatized certain moments to deliver the developer journey in more engaging ways. The actual process was indeed smoother than portrayed – this small project falls well within what the community calls “easy Rust” territory. ...
Quest for Better Blogging: #3 Building the Actual Blog
From architectural insights to working implementation – the complete journey from frustration to functional publishing platform (source: https://blog.viktoradam.net/2019/03/28/netlify-hugo/) The Final Implementation After understanding the architectural foundations that make static site generators so powerful, it was time to build the actual system. This final episode documents the complete process – from installing Hugo to deploying on Netlify – with practical insights from actually building and launching my new technical blog. ...
Quest for Better Blogging: #2 The Architecture of Better Publishing
Understanding why some tools fight you while others amplify your thinking (source: https://www.cosmicjs.com/blog/static-site-generators-explained-in-5-minutes) The Rabbit Hole Begins After documenting the frustrations and systematic failures of my copy-paste workflow, I found myself staring at a deeper puzzle. I understood what was breaking – LaTeX equations becoming image files, code blocks losing syntax highlighting, semantic structure collapsing into visual formatting. But I had no idea why these specific things kept breaking in such predictable ways. ...
Quest for Better Blogging: #1 Why I'm Evolving Beyond Medium
A personal journey from platform acceptance to technical rebellion (source: https://www.netlify.com/blog/2020/04/14/what-is-a-static-site-generator-and-3-ways-to-find-the-best-one/) The Unquestioned Years A decade ago, I lived in blissful ignorance of better alternatives. Windows was my operating system, Microsoft Office was my document suite, and whatever blog platform provided was my publishing tool. I wrote movie reviews, game critiques, and random thoughts about life – mostly text with occasional images. The web editors worked fine because my needs were simple. ...
The Other Path: Population-Average Models and GEE
When we need population-level insights without the distributional baggage of random effects Picture this: We’ve just finished implementing that elegant mixed effects model from last week’s deep dive, and the hospital executives are thrilled with our patient length-of-stay predictions. But then the epidemiologist on our team asks a different question: “What’s the average effect of this new treatment protocol across all our hospitals?” Our mixed effects model gives us subject-specific predictions – how much longer will this particular patient stay at this specific hospital? The policy question requires population-average inference – if we implement this protocol system-wide, what’s the expected change in average length of stay across the entire health system? ...
Inside Mixed Effect Model
When your neural network treats every hospital the same, but your statistician intuition screams that they shouldn’t be Picture this: You’re building a model to predict patient length of stay across 200 hospitals. Your gradient boosting model achieves impressive metrics on your test set, but something feels off. Hospital A consistently shows longer stays than predicted, while Hospital B always runs shorter. Your model treats every hospital identically, missing systematic patterns that could unlock better predictions and deeper insights. ...