Soluzioni Pronte

Ricette Pratiche & Casi d'Uso ("Come fare per...")

Scenari reali del lavoro quotidiano risolti con comandi mirati, puliti e commentati.

Git

Come clonare solo uno specifico branch con cronologia minima (shallow clone)

Scenario / Problema:
Devi scaricare un repository pesante per fare una modifica rapida o in una pipeline CI/CD senza scaricare gigabyte di vecchi commit.
Comando Risolutivo
$git clone --single-branch --branch <NOME_BRANCH> --depth 1 <URL_REPO>
Spiegazione: Il flag `--single-branch` scarica unicamente il ramo indicato, mentre `--depth 1` limita il download all'ultimo commit riducendo il tempo di clone del 95%.
Docker & Compose

Come avviare un database MySQL/MariaDB in Docker con dati persistenti e porta esposta

Scenario / Problema:
Vuoi avviare rapidamente un ambiente di database isolato senza installare pacchetti sul sistema host e senza perdere i dati al riavvio.
Comando Risolutivo
$docker run -d --name local-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=rootpassword -e MYSQL_DATABASE=app_db -v db_data:/var/lib/mysql --restart unless-stopped mysql:8.4
Spiegazione: Il comando avvia in background il container MySQL, mappa la porta standard 3306, crea automaticamente il database `app_db` e salva i dati nel volume permanente `db_data`.
Linux & Bash

Come trovare ed eliminare file di log o temporanei più vecchi di 30 giorni

Scenario / Problema:
La partizione del server si sta riempiendo a causa di vecchi log o file temporanei non ruotati.
Comando Risolutivo
$find /var/log/app/ -type f -name "*.log" -mtime +30 -exec rm -f {} \;
Spiegazione: Find cerca tutti i file regolari che terminano per `.log` la cui data di modifica supera i 30 giorni e per ciascuno esegue la cancellazione forzata.
MySQL & MariaDB

Come creare un backup dump compresso al volo di MySQL senza bloccare le tabelle

Scenario / Problema:
Necessità di fare un backup immediato di un database in produzione senza provocare timeout o bloccare gli utenti.
Comando Risolutivo
$mysqldump --single-transaction --quick --routines -u root -p nome_database | gzip -9 > backup_$(date +%Y%m%d_%H%M%S).sql.gz
Spiegazione: Utilizza `--single-transaction` per leggere le tabelle InnoDB in modo consistente e invia i dati direttamente a `gzip` per un file compresso e leggero.
Linux & Bash

Come scoprire quale processo sta bloccando una determinata porta TCP (es. 80 o 3306)

Scenario / Problema:
Ricevi l'errore "Address already in use" all'avvio di un web server o servizio.
Comando Risolutivo
$sudo lsof -i :8080 -P -n
# oppure:
sudo netstat -tulpn | grep :8080
Spiegazione: `lsof` interroga i socket attivi sulla porta 8080 mostrando PID e nome del processo colpevole, consentendo poi di terminarlo con `kill -9 <PID>`.
Flutter & Dart

Come compilare un APK Flutter frazionato per architettura CPU (riduzione dimensione)

Scenario / Problema:
L'APK universale supera i 50MB e vuoi generare binari separati per architetture ARM64, ARMv7 e x86_64 per ridurre la dimensione del download.
Comando Risolutivo
$flutter build apk --split-per-abi --obfuscate --split-debug-info=./debug_symbols
Spiegazione: Il flag `--split-per-abi` genera 3 APK distinti di circa 15-20MB ciascuno, mentre `--obfuscate` protegge il codice sorgente da reverse engineering.