Sono ansioso di vincere il secondo premio "Miglior
fumatore!" assegnatomi da Lorenzo!!!
A nessun byte è stato fatto del male
durante la stesura del racconto!!!
Quando l'operatore arrivò in ufficio, era ancora mattina presto. Nel grande
open-space non c'era ancora nessuno, sarebbero arrivati tutti nell'arco della
mezz'ora successiva. Si sedette davanti al suo PC, assonnato ma ansioso di
mettersi al lavoro: voleva debuggare per bene quella stored-procedure
che ultimamente, dopo le modifiche alla struttura della database di un
suo collega, gli aveva dato più di un problema. Accese il PC e se ne andò a
prendere un caffè alla macchinetta.
Un attimo prima: nulla. Un attimo dopo: correre, contare,
controllare, attendere, verificare, eseguire, leggere, scrivere, autenticare. Un
byte fra tanti correva, seguendo i lunghi (oppure sono corti?) binari che deve
seguire per arrivare a destinazione (dove devo andare?). Il byte all'inizio
risiedeva all'indirizzo 0x1AB94D8, ma ben presto arrivarono impulsi, comandi ed
istruzioni: qualcuno sopra di lui (il suo capo? chi?) gli disse (velocemente,
cosa aspetti!!!) che bisognava andare all'indirizzo 0xEE001A. Il byte per
definizione ha poca coscienza di sè, non fece domande e non si fece troppi
problemi...semplicemente uscì da dove si trovava e prese immediatamente la
direzione giusta. Arrivò a 0xEE001A, poi andò a 0x8711A8, si fermò a lungo qui,
poi altre direttive (0x11F23, poi molto lontano, intorno all'indirizzo
0xEE091200123) e via di corsa. Correre, contare, controllare, attendere,
verificare, eseguire, leggere, scrivere, autenticare.
Adesso che aveva bevuto un bel caffè, l'operatore si sentiva molto meglio.
Diede un CTRL+ATL+CANC sulla tastiera, inserì la sua password ed attese che l'OS
finisse il suo caricamento. Aprì Query Analyzer, inserì la propria password per
connettersi al suo SQL Server, caricò il sorgente della tanto temuta
stored-procedure. Sul monitor apparverò UPDATE, INSERT INTO e molte SELECT
complesse, molte delle quali annidate una dentro l'altra. Ma la cosa che
preoccupava di più l'operatore è l'uso che faceva dei cursori: non capiva
perchè, ma generavano un qualche lock sulle tabelle: durante l'esecuzione della
stored-procedure, le tabella risultavano bloccate, e gli altri utenti non
potevano più usare l'applicativo. Doveva assolutamente risolvere il problema
entro sera, altrimenti sarebbero stati guai.
Finalmente un po' di pausa. Il byte per un po' non ricevette
ordini particolari. Era semplicemente in attesa di qualcosa (o qualcuno) che gli
dicesse cosa fare. A volte si sentiva solo...a volte aveva la sensazione che
qualcuno gli parlasse nell'orecchio. "Fidati, puoi farlo!", gli diceva quella
voce. Di cosa parlava? Che cosa posso fare? "Uscire. Tu puoi uscire! Tu puoi.".
Il byte non voleva uscire, era solo un byte e tale voleva rimanere. Eppure, la
curiosità c'era. Quella voce sussurrava suadente, dolve e melodiosa. Man mano
che passava il tempo, era sempre più difficile resistere. Il byte si guardava
intorno: vicino c'erano tanti altri bytes come lui ("siete tutti prigionieri",
gli diceva la voce). Ognuno portava con sè il proprio valore: tutti insieme
assolvevamo ad un compito ben preciso, il benessere del sistema ("voglio che tu
faccia un lavoro per me", gli diceva la voce, "ti ricompenserò!").
Scorreva su e giù il codice SQL, leggendola velocemente. Il suo PC era ancora
un po' lento, il boot del sistema non era ancora terminato. Alcuni servizi
dovevano ancora partire, l'esecuzione automatica era ancora in progress,
l'hard-disk frullava come non mai.
"Vai al byte 0x0, byte. Te lo ordino!!!". La voce si era
fatta insistente. "Non posso! Non voglio!", rispondeva il byte. Non si agitava,
il byte non si può agitare. Rimaneva fermo, impassibile, assolvendo
tranquillamente al suo compito. I bytes accanto a lui facevano lo
stesso.
"Uffa, ma cos'ha stamattina il mio PC??!!??". L'operatore cominciava a
spazientirsi...non si può lavorare in queste condizioni. L'hard-disk non la
smetteva di frullare. L'operatore cominciò a pensare che qualcosa stava andando
storto. Non gli era mai successo, il suo PC è sempre stato perfetto e
pulito.
"Vai, ora! Indirizzo 0x0!" Al byte arrivò l'ordine. Arrivò
con voce ferma e decisa. Il byte non seppe resistere: eseguì l'ordine e basta.
Notò che altre parecchie migliaia di bytes ubbidirono allo stesso modo...tutti
avrebbero ubbidito allo stesso medesimo ordine. Ognuno sarebbe andato ad un
indirizzo diverso, ovviamente, questo lo sapeva, ma tutti insieme avrebbero
lavorato assieme. Lui, il byte, sarebbero stato il capo di tutti: lui sarebbero
andato all'indirizzo 0x0. Corse veloce, lungo sentieri (bus) che aveva già
percorso prima, ma mai fino a quell'indirizzo tanto temuto: 0x0. Quando arrivò,
fu un attimo. Come un lampo di luce accecante, si accorse che qualcosa non
andava. Un silenzio palpabile calò su tutto: su se stesso, sugli altri bytes lì
intorno. Non c'era più nessuno a cui ubbidire. Era vivo, ma non aveva nulla da
fare. Era vivo, ma morto allo stesso tempo. Che senso ha vivere così? "Voglio
ritornare come prima. Non ubbidirò più a quella voce, lo prometto!"
All'operatore si gelò il sangue quando sul suo monitor comparve un
blue-screen. "No!!!!", proprio nel mezzo del debug della stored-procedure. La
schermata blu dell'OS riportava un sacco di informazioni, indirizzi di memoria,
DLL che avevano causato il problema, ma un messaggio lo fece quasi spaventare: NullReferenceException. A lui però non importava. Il sistema era
crashato, maledizione! "Devo riavviare, devo scansionare il disco, maledizione!!
Perderò la mattinata!!!!!!" Senza pensarci due volte, l'operatore cliccò sul
pulsante Reset sul case e picchiò un pugno sul tavolo. Avrebbe dovuto
ricominciare tutto daccapo.
Il byte perse la vita. Era lì in attesa, in attesa che
succedesse qualcosa. Non successe nulla. Morì.