Storie dalla Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register


Garbage In, Trash Out

CL - Ma guarda questi valori: sono completamente sballati!
IO - Si, che sono sballati siamo daccordo, ma io vorrei capire come li hai ottenuti!

Che succede? Piccola storiella: tempo addietro per gestire il budget di alcuni progetti specifici per $sottodivisione, qualcuno ha avuto la bella (si fa per dire) pensata di creare un software specializzato di gestione progetti. Software che e' poi passato attraverso una serie di estensioni, espansioni, aggiornamenti, rimaneggiamenti, spupazzamenti e cosi' via, fino a divenire una cosa tipo mostro blob da film dell'orrore di serie C2.

Dopo essere passato attraverso le (in)capaci mani di un numero vario di programmatori e sedicenti tali, l'intero mascarpone e' stato mollato a me che dovrei 1) espanderlo e 2) mantenerlo.

Lo scopo ultimo del programma dovrebbe essere di ruzzgrubl, fruzz fruzz rompr@&*! lulalulalula snick snack e quindi ottenere delle stampe con totalizzazioni varie.

Come dite? Non ci si capisce niente? Ecco, appunto.

Dopo un certo tempo passato a ravanare nel codice di questo coso ed essermi fatto una certa idea di come dovrebbe e non dovrebbe funzionare sono stato pure capace di produrre una mini-documentazione tecnica, che tanto nessuno legge ne' leggera' mai, che dovrebbe (nei miei sogni) consentire agli utonti di risolvere i miliardi di casini che questo coso genera quotidianamente senza dover necessariamente attaccarsi al telefono e rompere le scatole a me ogni 2 secondi.

Ovviamente io ho ignorato due fattori essenziali: 1) gli utonti non leggono mai la documentazione e 2) l'effetto "fnord". Cosa e' l'effetto "fnord"? In sostanza si tratta di una parola o frase che, una volta letta dall'utonto in questione, provoca un completo blocco (stile BSOD) del cervello dell'utonto stesso, cosicche' il resto del messaggio, documento o quel che e' rimane completamente ignorato (per ulteriori info vedere gli Illuminatus).

Nel mio caso la frasetta in questione e' "hai provato a...". Non appena processate le 3 paroline di cui sopra il cervello dell'utonto va' in blocco assoluto e niente pare riuscire a sbloccarlo salvo un'hard-reboot (mazzata sul capo).

Cosi' stamani, quando ho ricevuto la mail di CL che mi segnalava un baco in una qualche funzione di reportistica di quel coso, la prima cosa che gli ho chiesto e' se aveva provato questo-e-quello. E lui ovviamente mi ha risposto che "certo che lo aveva provato ma continuava a non funzionare". Eccomi quindi al capezzale di CL a vedere questo fantomatico 'baco'.

CL - Quello che voglio fare io e' ricalcolare il budget del progetto tal-de-tali basandomi sulla schedulazione aggiornata di questo-e- quest'altro ed applicando un'aggiornamento sulla fattorializzazione...

Sorvolo sul resto che tanto e' uguale.

IO - Hemmm... hummm... ok... quindi?
CL - Ecco (manovrando il mouse)... questi sono i risultati che ottengo, ma sono sbagliati.
IO - E come fai a dire che sono sbagliati?
CL - Perche' se faccio i calcoli a mano basandomi sulla tabella di coefficientazione...

Ed e' andato avanti per una ventina di minuti con calcolatrice e penna, ed il risultato che otteneva lui era diverso da quello ottenuto dalla procedura. Parecchio diverso. Talmente diverso da far pensare che il calcolo dell'uno o dell'altro e' completamente sballato.

Cosi', mi sono tuffato nel codice ed ho cercato di capire dove diavolo potrebbe annidarsi questo fantomatico baco. Dopo aver seguito le peripezie dei dati di questo coso dentro e fuori un centinaio di funzioni circa, un paio di smaneggiamenti tra due diversi database ed una mezza dozzina di maschere di input/output, sono arrivato alla conclusione che... non c'e' nessun baco. Una dozzina di prove (e parecchi caffe') dopo, ritorno da CL a chiedere spiegazioni.

IO - Allora, spiegami un po' come fai ad ottenere questi valori.
CL - Dunque, io vado qui', di la', di su', di giu', clicco li', seleziono la', punzono di qui' e lui calcola.
IO - Hemmm... (scrivendo sul blocco)... momento... come diavolo fai a selezionare quel progetto?
CL - Passando di qui e di li.
IO - Okkey... fammi prendere il codice del progetto che ci riprovo.

Cosi' me ne ritorno al mio posto e riprovo a fare quello che CL ha appena fatto. Nada. Non funziona. Il maledetto coso mi dice che il progetto e' in fase operativa e non consente di fare quello che CL ha appena fatto.

Un paio di controllini sul codice dopo mi rendo conto che l'unico modo per cui il programma potrebbe sbagliare e' se passasse da una certa funzione, che pero' non ci si puo' passare perche', date le informazioni di base, di li' non ci si passa. Pero' io ho appena visto CL farlo. Ritorno da CL.

IO - Rifammi un po' vedere come accidenti fai...
CL - Di qui', di li', di la', punzono di su'...
IO - Momento! Non puoi fare cosi' e cosa'! Non su questo progetto almeno!
CL - (ci pensa su un momento) No, di solito no.

Io rimango un po' insospettito da quel "di solito".

IO - E quindi?
CL - Be', volevo fare questo calcolo, quindi ho chiesto a CL2 di modificare lo stato del progetto per permettermi di selezionarlo.
IO - E come diavolo lo ha cambiato lo stato del progetto lui?
CL - Be'... credo che abbia semplicemente modificato il campettino nel database... sai, lui ha l'accesso da superutente...

Non devo stare a dire che un certo CL adesso non e' piu' superutente sul database vero?

Davide
17/01/2009 14:39

Precedente Successivo

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

Nessun messaggio this document does not accept new posts

Precedente Successivo


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gojira