2026-01-12

Gestire la cache dei pacchetti su Slackware: Sicurezza senza sprechi

Chi usa Slackware lo sa, mantenere DELALL=off in slackpkg.conf è fondamentale per avere sempre un paracadute e poter effettuare un rollback in caso di necessità. Tuttavia, col tempo, l'archivio locale dei pacchetti può diventare enorme.

Pubblichiamo uno script che risolve proprio questo problema, inserendosi perfettamente nel workflow di aggiornamento standard:

  1. slackpkg update
  2. slackpkg upgrade-all
  3. manage_updates

Cosa fa lo script? Agisce come un garbage collector intelligente per l'archivio locale. Invece di accumulare versioni obsolete all'infinito, lo script applica una policy di conservazione: mantiene solo le due versioni più recenti di ogni pacchetto.

Sicurezza. Hai sempre a disposizione l'ultima versione stabile e quella precedente per un rollback immediato.

Efficienza. Mantieni il controllo dello spazio su disco in modo automatico.

Pulizia. Eviti la rimozione manuale dei vecchi pacchetti `.txz`.

Trovi la documentazione e lo script qui: https://github.com/morinim/documents/tree/master/sysadmin/slackware

2026-01-05

Come dar l'impressione di non sbagliare mai i comandi in Bash! O:‑)


Sei seduto al terminale ed hai appena digitato un lungo e complesso comando. Premi Invio.

ERRORE.

La rabbia ti assale.

Situazione familiare? Bene, la vera arte dello smanettone non è digitare correttamente al primo colpo, bensì far sembrare di riuscirci, sfruttando la cronologia di Bash e confondendo, quando opportuno, eventuali spettatori.

Senza pretendere di scrivere una guida definitiva ed implorando il perdono dei veri maghi della tastiera, ecco qualche suggerimento ricavato da (ahimè) qualche anno di esperienza.

Livello base: le freccette

Quanto segue è per i principianti che hanno ancora la dignità di usare una tastiera fisica.

  • il richiamo (): hai appena digitato cd /usr/bin/pippo/pluto ed hai dimenticato /local/ nel mezzo. Non ridigitarlo! Premi 'freccia su'. Il comando riappare (!). Premi ancora per riesumare ulteriori errori imbarazzanti;
  • il richiamo eccessivo (): sei andato troppo indietro ed hai trovato un comando del 1973. Premi 'freccia giù' per tornare alla realtà e non affrontare il tuo passato.

(si, lo so, tutto questo è imbarazzante... ma si deve pur cominciare) 

Livello intermedio: l'investigatore di basso rango (Ctrl+R)

Ti ricordi solo una vaga parola chiave del tuo comando.

Premi Ctrl R. Compare un enigmatico (reverse-i-search). Inizia a digitare, diciamo che vuoi trovare un vecchio comando git. Digiti "gi" e Bash ti mostra la corrispondenza più recente. Non è quella giusta? Continua a premere Ctrl R.

È come cambiare senza posa il canale TV: scorri velocemente tra la programmazione della tua cronologia finché non trovi il tuo vecchio film preferito. In realtà trovi solo git push --force che non avresti mai dovuto usare.

Individuato quanto cercavi, premi Invio per eseguirlo di nuovo (possibilmente, prima, correggendolo).

Livello pro: sapersi affermare (!)

Se vuoi dimostrare di essere un vero hacker della shell, devi padroneggiare il carattere più prepotente di tutti: il pungolo esclamativo ! (no, questa volta nessun rimando a Wikipedia :-).

SequenzaObiettivo
!!Ripete l'ultimo, comando. Perfetto per una situazione tipo sudo !! quando avevi scordato di non poter far qualcosa senza il permesso.
!nRichiama il comando numero n nella cronologia (server un history preliminare perché nessun essere umano normale ricorda questi numeri).
!gitRifai l'ultima cosa che ho fatto con git (utile per "incasinare" un repository già sull'orlo del collasso).
!$Dammi solo l'ultimo ARGOMENTO usato (scorciatoia: ESC + .). Perfetto se hai appena copiato un file su /usr/local/bin/il-file-con-il-nome-impossibile ed ora vuoi semplicemente farci un ls.

Livello finale: analisi post mortem

Cavalieri dell'Apocalisse
fc (fix command) apre l'ultimo comando (od uno specifico) nel tuo editor di testo predefinito (speriamo non sia vi/vim, altrimenti rischi di rimanerci intrappolato per l'eternità senza ricordare l'arcana sequenza per uscire).

A questo punto puoi modificarlo in modo esteso prima di eseguirlo.

Una importante nota a margine: se hai aperto il comando nell'editor e ti rendi conto che la sua eventuale esecuzione scatenerà l'Apocalisse, NON uscire come se nulla fosse!

Vai all'inizio della riga ed aggiungi il sacro sigillo del non-comando (`#`). Ora (stai sereno) puoi salvare ed uscire senza... evocare i Cavalieri.

2025-12-29

L'incubo della condivisione file su Windows 11: quando un SID duplicato manda tutto in tilt

Può sembrare un'operazione banale: due PC sulla stessa rete, una cartella condivisa, qualche clic e via. 

Eppure, a volte Windows decide che la semplicità è sopravvalutata. Di recente ci siamo trovati intrappolati in una situazione paradossale: due macchine Windows 11 perfettamente configurate che, nonostante tutto, rifiutavano di autenticarsi fra loro.

La soluzione era nascosta in un dettaglio invisibile, ereditato da un'installazione clonata troppo in fretta.

Rimbalzo continuo fra errori incomprensibili

L'ambiente era lineare: due PC con nomi diversi, IP diversi e condivisioni SMB configurate con attenzione. Eppure Windows insisteva con lo scoraggiante messaggio: "Il nome utente o la password non sono corretti".

Richieste di credenziali ripetute all'infinito, come se qualunque password fosse sbagliata per definizione.

Controllati firewall, credenziali, servizi di rete; resettato quel che poteva essere resettato. Nulla.

La rete funzionava: i PC si vedevano, ma l'autenticazione era un muro.

Scavare nei log è uno sporco lavoro... che ripaga

La svolta è arrivata guardando dove Windows parla senza filtri: nel Visualizzatore Eventi.
Sotto `Log di Windows → Sistema` è spuntato l'indizio decisivo: un evento 6167 del servizio `LsaSrv`.

Il messaggio era tecnico ma rivelatore:

"Il fornitore di supporto sicurezza Kerberos ha rilevato una parziale corrispondenza nell'ID macchina… Ciò può verificarsi se l'immagine del sistema operativo di destinazione è stata clonata…"
Quelle due parole, parziale corrispondenza, erano tutto ciò che serviva per capire che il problema non era la rete, ma l'identità delle macchine.

Il colpevole

Tutto risaliva ad una vecchia immagine disco che qualcuno aveva clonato per velocizzare l'installazione (saltando però un passaggio importante, usare `sysprep /generalize`, che rigenera il SID, cioè l'identificatore univoco del sistema).

Il risultato? Le due macchine erano, dal punto di vista di Windows, indistinguibili.

Per anni questo non era stato un problema: Windows tendeva a chiudere un occhio. Ma con gli aggiornamenti di sicurezza rilasciati dopo l'agosto 2025, il controllo è diventato molto più rigoroso. Ora due PC con la stessa identità non vengono più autenticati, neanche in una semplice rete domestica.

Di fatto, ciascun PC diceva all’altro: "Non posso autenticarti, perché… sembri me".

La soluzione è un dilemma

Il modo "ufficiale" per risolvere un SID duplicato è eseguire sysprep /generalize su almeno uno dei sistemi, facendo rigenerare l'identità al PC. Il rovescio della medaglia è che `sysprep` ripristina vari aspetti del sistema e richiede una riconfigurazione quasi completa.

Per evitare questo reset esistono strumenti di terze parti, come SIDCHG, che tentano di modificare il SID. Funzionano ma non sono riconosciuti da Microsoft... quindi bisogna usarli con consapevolezza (qualsiasi cosa significhi :).

Gli errori fatti in fase di installazione possono restare silenziosi per anni, salvo poi riemergere al momento meno opportuno. A volte il vero bug non è in Windows ma in ciò che abbiamo fatto noi molto tempo prima.

2025-12-23

Stiamo confondendo un intelligente pappagallo con un genio?


Negli ultimi anni ci siamo convinti che ChatGPT, Gemini e compagnia (LLM - modelli linguistici di grandi dimensioni) siano una sorta di cervello digitale in rapida evoluzione.

Parlano bene, rispondono in fretta e non si lamentano mai: come non considerarli intelligenti?

Dal punto di vista della neuroscienza, stiamo facendo un clamoroso errore di prospettiva: stiamo scambiando la capacità di mettere insieme frasi con la capacità di pensare. Il punto è semplice, un LLM non ragiona, prevede. Ogni frase che produce è solo la scelta statistica del prossimo token più probabile. È un po' come quando ricicliamo frasi o battute soltanto perché le leggiamo ovunque: il modello fa qualcosa di simile ma in versione estrema e completamente automatica.

La mente umana, invece, usa il linguaggio come strumento, non come materia prima del pensiero. Le persone con gravi lesioni linguistiche continuano a ragionare; alcuni che non parlano affatto hanno un'intelligenza perfettamente integra. Insomma: per noi il linguaggio è un mezzo, per i modelli è tutto ciò che hanno.

Molti sostenitori dell'AGI raccontano che basterà "scalare" i modelli: più dati, più GPU, più tutto... et voilà l'intelligenza generale. È come sostenere che se alleni un pappagallo a memorizzare abbastanza frasi, prima o poi diventerà un filosofo. I neuroscienziati ricordano che l'intelligenza umana non è fatta solo di parole: è radicata nel corpo, nei sensi, nell'esperienza, nelle percezioni, nell'intuizione.

Un LLM non ha nulla di tutto questo. Ha soltanto testo, tanto testo (tanto, tanto, tanto!).

Nonostante tutto gli LLM sono strumenti eccellenti per usare il linguaggio: scrivere, riassumere, tradurre, rispondere in modo simpatico e disinvolto. Il problema nasce quando pretendiamo che facciano ciò che non possono fare: capire davvero il mondo, ragionare come un essere umano, prendere decisioni sensate in contesti imprevisti. Sono ottimi imitatori, ma pessimi filosofi.

La cosa più intelligente che noi possiamo fare è ricordarcelo.


Per approfondire il tema un ottimo punto di partenza è l'articolo: Large language mistake - Cutting-edge research shows language is not the same as intelligence. The entire AI bubble is built on ignoring it di Benjamin Riley.
Correlato è lo storico esperimento mentale della Stanza Cinese di John Searle.

2025-12-19

Aggiornamento normative: ventilazione dei corrispettivi

L'ipotesi preliminare di abolizione dell'IVA ventilata, a partire dal 1° gennaio 2026, non ha avuto seguito.

La situazione è confermata:

  • dall'assenza di pubblicazione nella Gazzetta Ufficiale di una norma di legge in tal senso;
  • dalle indicazioni fornite dalle aziende produttrici dei registratori di cassa;
  • dalle comunicazioni delle organizzazioni di categoria come Federfarma nazionale e Comufficio.

Tuttavia, non si può escludere che la normativa venga ripresa nel corso del prossimo anno. Per questo motivo consigliamo di iniziare a predisporre la configurazione dei reparti, sul gestionale Sistema F Platinum, in modo che risulti già compatibile con un'eventuale futura gestione dell'IVA puntuale.

Continueremo a monitorare l'evoluzione normativa del settore farmaceutico e forniremo tempestivamente tutte le indicazioni necessarie per garantire l'allineamento alle esigenze operative.

2025-12-15

Perché gli SSD possono perdere dati quando restano scollegati


Gli SSD hanno ormai soppiantato gli hard disk meccanici nella maggior parte degli scenari quotidiani. Sono veloci, silenziosi, consumano poca energia e sopportano senza difficoltà enormi volumi di scrittura. Molti "consigli di ottimizzazione", come disattivare l'indicizzazione, spostare il file di paging o ridurre la generazione di log, considerati essenziali un decennio fa, non hanno oggi la stessa importanza di allora. Le moderne unità a stato solido gestiscono senza fatica carichi di lavoro molto superiori.

Esiste però un limite strutturale spesso ignorato: la memoria NAND può perdere gradualmente i dati quando l'unità rimane non alimentata per lunghi periodi. Non si tratta di un difetto, bensì di una conseguenza diretta del modo in cui funzionano queste memorie.

Perdita di carica, il punto debole della NAND

Ogni cella NAND conserva i bit intrappolando elettroni in un piccolo isolante. Con il passare del tempo la carica tende a dissiparsi ed il fenomeno accelera con l'aumento della temperatura. Più elevata è la densità di dati per cella, minore è il margine di sicurezza:

  • SLC: una sola informazione per cella, grande stabilità;
  • MLC: due bit per cella, margine più ristretto;
  • TLC: tre bit per cella, maggiore vulnerabilità;
  • QLC: quattro bit per cella, stabilità molto ridotta.

Il progresso verso unità sempre più capienti ha quindi un prezzo: la retention, ossia la capacità di mantenere i dati senza alimentazione, cala sensibilmente. Un vecchio SSD SLC poteva conservare le informazioni per molti anni; un SSD QLC usurato può iniziare a perdere dati già dopo pochi mesi di inattività.

Gli standard JEDEC confermano la tendenza: gli SSD consumer garantiscono un anno di retention da spenti, mentre quelli enterprise, pensati per restare sempre accesi, solo tre mesi.

Accendere l'unità non basta, serve leggere tutto

Un aspetto poco noto è che collegare l'SSD dopo un lungo periodo non è sufficiente a "risvegliarlo". Perché il controller possa rilevare i bit deboli e riscriverli, è necessario leggere l'intera unità. Molti controller eseguono refresh solo al verificarsi di errori correggibili; ciò significa che aprire un singolo file non protegge i dati già memorizzati.

Procedere periodicamente con una lettura completa, ad esempio tramite un comando di copia verso `/dev/null` (dd if=/dev/sdX of=/dev/null su Linux) od uno scrub del file system, è l'unico modo per attivare i meccanismi di correzione.

Firmware più aggressivi e guasti improvvisi

Un ulteriore rischio deriva dai firmware moderni. Se il controller giudica alcuni blocchi troppo degradati, può dichiarare l'unità "FAILED" e bloccare completamente l'accesso ai dati. In tal caso il recupero è possibile solo dissaldando fisicamente i chip di memoria e ricostruendo manualmente il contenuto, operazione riservata a laboratori specializzati.

Le unità più datate (SLC e MLC fino al 2013 circa) risultano paradossalmente più longeve. Le generazioni successive, nate per aumentare la capacità, si affidano a celle più piccole e instabili e a firmware molto più complessi, con un uso intensivo di algoritmi LDPC per compensare la perdita di carica.

Un problema per l'archiviazione, non per l'uso quotidiano

Nell'uso giornaliero gli SSD non presentano rischi: la continua riscrittura mantiene le celle stabili ed il controller può correggere tempestivamente eventuali errori. Il problema riguarda l'archiviazione a lungo termine senza alimentazione, situazioni tipiche per: fotografi che conservano progetti conclusi, ricercatori e professionisti con dataset storici, chi usa SSD come copie offline anti-ransomware, chi ripone vecchi SSD pensando che "durino per sempre".

Il ruolo cruciale della strategia 3-2-1

La regola del backup 3-2-1 resta lo standard di sicurezza più affidabile: tre copie dei dati, su almeno due supporti diversi ed una copia offsite. Usare solo SSD, persino due di marche differenti, non rientra in questo modello, perché il limite fisico della NAND è identico.

Combinare SSD, hard disk tradizionali e soluzioni cloud riduce i rischi legati alla retention, al firmware e ad eventuali eventi disastrosi come incendi, furti o attacchi ransomware.

2025-12-09

Slackware - Installare una versione aggiornata di GCC/CLANG

GCC e LLVM

Rendiamo disponibili, nel nostro repository su GitHub, gli script per utilizzare una versione aggiornata di GCC e/o CLANG su una Slackware stable (si tratta comunque di POSIX script, quindi ragionevolmente compatibili con altre distribuzioni).

L'installazione, conformemente al Filesystem Hierarchy Standard, avviene nella directory /opt. In genere questa è una buona scelta per i compilatori dal momento che permette:

  • di evitare interferenze con /usr/bin/gcc e /usr/bin/clang;
  • di non sovrascrivere librerie già installate con la distribuzione Linux;
  • di effettuare semplici scelte a livello di utente (export PATH=/opt/gcc-XX.Y.Z/bin:$PATH);
  • il supporto di versioni multiple;
  • una semplice rimozione (rm -rf /opt/gcc-XX.Y.Z).

I collegamenti diretti sono: