Appunti tecnici su software, sistemi, strumenti e tutto ciò che trovo utile.
Scrivo di C++, Linux, Android, strumenti open source, sviluppo software, sistemi embedded e altro. I contenuti sono scritti in .org o .md e trasformati in HTML statico durante la build.
Perché lavorare come collaboratore esterno mi permette di essere utile, seguire i progetti da vicino e creare valore nel tempo.
Guida pratica al CRC: che cos'è, come funziona, perché rileva gli errori accidentali, dove viene usato e quali aspetti considerare quando si progetta un protocollo.
Guida pratica alle chiamate RPC tra PC e microcontrollore: contratto, serializzazione, framing, CRC, USB, UART, timeout, versionamento e debug.
Guida pratica al MAX77972: buck charger, ModelGauge m5, USB-C, AICL, THM, inizializzazione, SOC errato, debug e workaround firmware.
Guida pratica al protocollo CAN: segnali fisici, arbitraggio, frame, timing, DBC, diagnostica, CAN FD, CAN XL e sicurezza.
Guida pratica al BLE su ESP32: ruoli, advertising, GATT, MTU, throughput, sicurezza, privacy e parametri di configurazione.
Usare RAII per tenere il rollback vicino allo stato da proteggere.
Distinguere un puntatore obbligatorio da un valore opzionale già nella firma di una funzione.
Usare più lambda come un unico visitor per rendere std::visit più leggibile.
Applicare RAII a file descriptor, socket e handle con ownership esclusiva.
Usare tipi distinti per trasformare errori di dominio in errori di compilazione.
Un esempio per vedere come ranges e views di C++20 rendono più leggibili gli algoritmi sulle collezioni.
Una spiegazione dei concept di C++20: cosa sono, quando servono e come usarli senza appesantire il codice.
La mia esperienza con openSUSE Tumbleweed tra rolling release, KDE, stabilità e piccoli compromessi quotidiani.
Come uso Obtainium per aggiornare app Android open source direttamente dalle fonti ufficiali.
Dopo il passaggio a GrapheneOS ho iniziato a sostituire le app principali con alternative più rispettose della privacy.
Dopo mesi di utilizzo quotidiano, GrapheneOS è diventato il mio sistema operativo preferito per smartphone.
Come ho portato le regole di kill switch da iptables a nftables dentro una configurazione wg-quick.
Perché nftables rende più ordinata la gestione delle regole firewall rispetto a iptables e ip6tables.
Confronto tra header guards e pragma once, con vantaggi e limiti di entrambe le soluzioni.
Differenze tra git revert e git reset quando bisogna annullare l'ultimo commit.
Un modo rapido per controllare la versione di un pacchetto installato senza eseguire direttamente il binario.
Partendo dal modello signal/slot di Qt, costruisco una piccola implementazione moderna in C++.
Una struttura C++ ordinata, con librerie e applicazioni separate e una build più semplice da seguire.
Il primo appunto del sito: perché ho deciso di iniziare a scrivere pubblicamente.
























