04 Dec 2025
#privacy#data-ownership
In this post, we examine the growing divide between Microsoft’s increasingly restrictive Windows ecosystem and Valve’s open, user-focused approach with Linux and SteamOS. We explain how Windows is turning core tools into monetized, cloud-dependent products, while Valve invests in open technologies that give users freedom and control. We highlight how Linux is rising not just because it’s improving, but because the alternatives are becoming more limiting. Ultimately, the post frames the future of the desktop as a choice between control and freedom.
03 Dec 2025
#rust#programming#error-handling#tokio#async
A small async Rust project shows how to run multiple HTTP requests in parallel, apply timeouts, isolate panics, and clearly classify errors. The focus is not just speed, but building predictable, meaningful concurrency in real-world systems. True async isn’t about writing code — it’s about understanding how to give structure to simultaneous work.
29 Nov 2025
#fibonacci#rust#python#algorithm#recursion#programming
This post explores two different approaches to the Fibonacci problem — the naive recursive method and the optimized memoized version — to show how a simple sequence reveals deep lessons about complexity, structure, recursion, and algorithmic thinking. The naive version demonstrates exponential growth and wasted computation, while the memoized version shows how adding memory transforms recursion into a powerful and efficient tool. Ultimately, Fibonacci becomes a metaphor for the essence of programming: making the right choices.
19 Nov 2025
#terminal#permissions#linux#sysadmin
what the id command shows in Linux, how to view a user’s UID, GID, and groups, and which options are most useful. It also highlights where id helps in real situations—like fixing permission errors, checking user access on a server, or validating script execution.
15 Nov 2025
#rust#async#error-handling#tokio
The post explains how to handle errors properly in Rust async code. It shows why async errors are harder to debug, how to add useful context with anyhow, when to use structured errors with thiserror, and how to apply real patterns like timeouts, retries, JoinSet, select!, and tracing. It all comes together in a small CLI tool, leen-health, which checks multiple endpoints and outputs a clean JSON health report.
In this post, I talk about how discovering assembly language as a teenager completely changed the way I think about code. Even though I only wrote one simple assembly program in my life, understanding how the CPU actually works gave me a new perspective on loops, variables, memory, and performance. Assembly became a voice in my head—a technical conscience that reminds me to write cleaner, smarter code. I might never use it in real projects, but its influence is always with me.
01 Sep 2025
#degoogle#privacy#security#self-hosted#raspberry-pi#data-ownership
In this post, I explain why I decided to degooglize my life. Because I care about my privacy and want real ownership of my data, I gradually replaced Google services with my own self-hosted tools like Nextcloud, Vaultwarden, and MailWizz, all running on a Raspberry Pi 5. The process was time-consuming and not always as convenient as Google, but now I feel much more in control and far more independent. I also encourage anyone who wants to do the same to start small and take it step by step.