<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mattia Pirazzi Blog</title>
    <link>https://www.mattiapirazzi.dev/</link>
    <description>Articoli approfonditi su C++23, UNIX, Linux e Systems Programming</description>
    <language>it</language>
    <atom:link href="https://www.mattiapirazzi.dev//rss.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title><![CDATA[Crea il tuo text editor in C++23: setup e struttura del progetto]]></title>
      <link>https://www.mattiapirazzi.dev//blog/01-setup</link>
      <guid>https://www.mattiapirazzi.dev//blog/01-setup</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Prima parte della serie: costruiamo da zero un editor di testo da terminale in C++23, senza librerie esterne. Struttura a cartelle con header, Makefile e un main.cpp pulito.]]></description>
    </item>
    <item>
      <title><![CDATA[Crea il tuo text editor in C++23: raw mode con RAII]]></title>
      <link>https://www.mattiapirazzi.dev//blog/02-raw-mode</link>
      <guid>https://www.mattiapirazzi.dev//blog/02-raw-mode</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Disattiviamo l'eco e la modalità canonica del terminale usando termios, incapsulando tutto in una classe RAII in terminal/raw_mode.hpp.]]></description>
    </item>
    <item>
      <title><![CDATA[Crea il tuo text editor in C++23: disegnare lo schermo]]></title>
      <link>https://www.mattiapirazzi.dev//blog/03-disegnare-schermo</link>
      <guid>https://www.mattiapirazzi.dev//blog/03-disegnare-schermo</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Sequenze di escape VT100, buffer di output, dimensioni del terminale e la prima classe Editor con le tildi stile vim, divisa in header.]]></description>
    </item>
    <item>
      <title><![CDATA[Crea il tuo text editor in C++23: input da tastiera e cursore]]></title>
      <link>https://www.mattiapirazzi.dev//blog/04-input-cursore</link>
      <guid>https://www.mattiapirazzi.dev//blog/04-input-cursore</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Decodifichiamo le sequenze di escape di frecce, Home, End e Page Up/Down in terminal/input.hpp e muoviamo il cursore dentro lo schermo.]]></description>
    </item>
    <item>
      <title><![CDATA[Crea il tuo text editor in C++23: visualizzare un file e scrolling]]></title>
      <link>https://www.mattiapirazzi.dev//blog/05-visualizzare-file</link>
      <guid>https://www.mattiapirazzi.dev//blog/05-visualizzare-file</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Apriamo un file, lo memorizziamo come vettore di righe in editor/row.hpp, gestiamo tab, scrolling verticale e orizzontale e aggiungiamo la barra di stato.]]></description>
    </item>
    <item>
      <title><![CDATA[Crea il tuo text editor in C++23: modificare e salvare]]></title>
      <link>https://www.mattiapirazzi.dev//blog/06-modificare-salvare</link>
      <guid>https://www.mattiapirazzi.dev//blog/06-modificare-salvare</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Inserimento e cancellazione di caratteri, ritorno a capo, salvataggio su disco, barra dei messaggi, flag di modifica e prompt di input in editor.hpp.]]></description>
    </item>
    <item>
      <title><![CDATA[Crea il tuo text editor in C++23: ricerca incrementale]]></title>
      <link>https://www.mattiapirazzi.dev//blog/07-ricerca</link>
      <guid>https://www.mattiapirazzi.dev//blog/07-ricerca</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Implementiamo la ricerca incrementale con Ctrl-F, riusando il prompt con callback: ricerca mentre scrivi, frecce per navigare i risultati, Esc per tornare indietro.]]></description>
    </item>
    <item>
      <title><![CDATA[Crea il tuo text editor in C++23: syntax highlighting]]></title>
      <link>https://www.mattiapirazzi.dev//blog/08-syntax-highlighting</link>
      <guid>https://www.mattiapirazzi.dev//blog/08-syntax-highlighting</guid>
      <pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Ultima parte: highlight.hpp e syntax.hpp per colorare commenti, stringhe, numeri e parole chiave del C++, evidenziamo la ricerca e vediamo dove andare dopo.]]></description>
    </item>
    <item>
      <title><![CDATA[std::pmr in C++: controllare le allocazioni senza cambiare i tipi]]></title>
      <link>https://www.mattiapirazzi.dev//blog/cpp-pmr-allocatori-memoria</link>
      <guid>https://www.mattiapirazzi.dev//blog/cpp-pmr-allocatori-memoria</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Come funzionano polymorphic memory resources, memory_resource e monotonic_buffer_resource, quando sono utili e quali errori di lifetime evitare.]]></description>
    </item>
    <item>
      <title><![CDATA[C++23: gestire gli errori con std::expected]]></title>
      <link>https://www.mattiapirazzi.dev//blog/cpp23-expected-error-handling</link>
      <guid>https://www.mattiapirazzi.dev//blog/cpp23-expected-error-handling</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Un approccio esplicito agli errori in C++ moderno: come funziona std::expected, quando usarlo e come comporre operazioni che possono fallire.]]></description>
    </item>
    <item>
      <title><![CDATA[Costruire un server TCP con epoll su Linux]]></title>
      <link>https://www.mattiapirazzi.dev//blog/c-linux-epoll-event-loop</link>
      <guid>https://www.mattiapirazzi.dev//blog/c-linux-epoll-event-loop</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Dalla socket bloccante a un event loop non bloccante: epoll, readiness, gestione parziale di send e recv, e limiti di un server didattico.]]></description>
    </item>
    <item>
      <title><![CDATA[Processi Unix: capire davvero fork, exec e wait]]></title>
      <link>https://www.mattiapirazzi.dev//blog/c-posix-fork-exec-wait</link>
      <guid>https://www.mattiapirazzi.dev//blog/c-posix-fork-exec-wait</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Come un programma C crea processi su Unix, perché fork non esegue un nuovo programma e come gestire correttamente i processi figli.]]></description>
    </item>
    <item>
      <title><![CDATA[Cosa rende un container un container: namespaces e cgroups]]></title>
      <link>https://www.mattiapirazzi.dev//blog/linux-namespaces-cgroups-containers</link>
      <guid>https://www.mattiapirazzi.dev//blog/linux-namespaces-cgroups-containers</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[I meccanismi del kernel Linux dietro i container: isolamento dei processi, limiti delle risorse e perché Docker non è una macchina virtuale.]]></description>
    </item>
    <item>
      <title><![CDATA[Creare e mettere in sicurezza un servizio systemd]]></title>
      <link>https://www.mattiapirazzi.dev//blog/linux-systemd-service-hardening</link>
      <guid>https://www.mattiapirazzi.dev//blog/linux-systemd-service-hardening</guid>
      <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Dalla unit file ai restart policy: come eseguire un programma come servizio Linux, leggere i log e applicare le direttive di hardening senza rompere il servizio.]]></description>
    </item>
  </channel>
</rss>