~/il-codice-di-marco

Blog

Arena Pattern in Rust: Managing Cyclic References with Indices

There's a rite of passage every Rust programmer must face: writing a doubly linked list. In C++ it's a beginner exercise. In Python it takes three lines of code. In Rust, it's the moment many beginners hit a brick wall: the borrow checker. Suddenly, simple concepts like 'node A points to B and B points to A' become a nightmare of lifetimes, RefCell, and runtime panics. You feel stupid for not being able to write a data structure that a C programmer could write blindfolded in 1985. The good news? You're not the problem — the mental model is. In this article we'll stop fighting the compiler and learn to solve the problem at its root, using the Arena Pattern.

Tmux: Minimal and Productive Configuration

Three windows. No panes. Zero plugins. One for the editor. One for continuous compilation. One for execution and tests. This is my daily setup with tmux. In this article I'll show you how to build a minimal, portable, and productive configuration from scratch.

Rust, C, and C++: Beyond the Language Wars

There's a genre of content that populates the tech web with an almost liturgical regularity: the comparison between programming languages. 'X vs Y: which to choose?', 'Why I abandoned X for Y', 'X is dead, long live Y'. Titles crafted to generate reactions, heated comments, outraged shares. And it works. It works incredibly well. But let's pause for a moment to ask ourselves: who really benefits from this narrative? Certainly not developers, who find themselves trapped in sterile debates where professional identity merges with tool choice. Not companies, which need pragmatic decisions based on real context and constraints. Not the growth of the tech community as a whole.

The Mentality That Makes You a Programmer

Being a programmer doesn't mean remembering every API or formula. It's having an insatiable curiosity, a mind that always processes in the background, and the inability to accept that something 'just works'. It's constructive masochism

The Dependency Pact: When It Becomes a Deal with the Devil

Every cargo add is a pact: convenience today, chaos tomorrow. When one of your 202 transitive dependencies explodes on Friday at 3 PM, you understand the true cost. Because the problem isn't the dependency—it's you not knowing what you've imported

AI in Programming: Tool or Crutch?

AI coding assistants like GitHub Copilot, ChatGPT, and Claude have revolutionized software development, but are we using them wisely? This article explores the critical question: are these powerful tools helping us become better programmers, or are they becoming crutches that prevent us from developing essential skills?

Complete Guide: Neovim 0.11 IDE for Rust on Ubuntu/MacOS

If you're a Rust developer looking for a text editor that's lightweight, fast, and incredibly customizable, Neovim is the perfect choice. Forget heavy traditional IDEs: with this guide, we'll transform Neovim into a modern and productive Rust development environment, tailored to your needs.