Gli "Ospiti" della Sala Macchine |
Cose' sta' roba??? Qualche tempo fa', un po' annoiato, mi sono messo a scrivere quello che succede nel mio ufficio (rimuovendo i nomi ovviamente) sul gruppo it.comp.os.linux.sys. La cosa pare abbia trovato degli estimatori, cosi' ho pensato di "preservare" questi capolavori per i posteri... Un po' di tempo dopo qualcuno ha pensato che poteva inviarmi le SUE storie da pubblicare. Percio' eccole qui'.
|
Nota: i miei commenti (quando ci sono) sono in italico
L'Arrotondamento Quasi per DifettoEro presso un cliente, un istituto molto grosso e importante. Il SL di turno mi richiede una stampa con una lista di pratiche alla quale associare il saldo espresso in milioni e con un decimale. Alla fine della stampa deve apparire un totale. Per qualche ragione in quell'ufficio usano uno strano arrotondamento: Si arrotonda per difetto tranne che per 0.09. Esempio: 123.58 diventa 123.5 e vuol dire 123 milioni e mezzo; 123.59 diventa 123.6 e vuol dire 123 milioni e seicentomila. Chiamiamo questo arrotondamento arrotondamento-quasi-per-difetto.Mi metto a fare il programma, e che ci vuole? Mezza giornata di lavoro. Pensando di far bene, totalizzo i valori veri, stampando il totale arrotondato-quasi-per-difetto. Esempio: 123.456.700 diventa 123.4 234.567.800 diventa 234.5 totale: 358.024.500 diventa 358.0 Ok, l'esempio è di soli due numeri, ma la stampa vera conteneva migliaia e migliaia di pratiche con relativo saldo. Arriva la telefonata.
SL: (convenevoli) abbiamo ricevuto la stampa, ma c'e' un problema. "Attendo il risultato" è detto con una espressione che fa capire, "se questa volta non è giusto ti spenno". Cambio il programma, e stavolta, come richiesto, faccio il totale sui valori stampati, che ovviamente SONO ARROTONDATI-quasi-per-difetto portando ad uno scarto enorme. Insomma, hanno chiesto così, a me che mi frega, basta che il cliente sia contento. Tornando all'esempio di prima produco una stampa tipo: 123.456.700 diventa 123.4 234.567.800 diventa 234.5 totale dei valori arrotondati-quasi-per-difetto: 357.9 Notare, è diverso da prima. Ovviamente trattandosi di migliaia e migliaia di pratiche il totale dei valori arrotondati-quasi-per-difetto è MOLTO DISTANTE dal valore autentico (che è quello che avevo calcolato prima). Telefonata.
SL: (incazzato) la stampa non è ancora giusta! Per chi non avesse capito, SL pretende che 0.13 + 0.14 == 0.10 + 0.10 Per niente turbato dalla sfuriata di SL, penso che c'e' un malinteso, e vado dal mio UL, che è una persona gentilissima.
IO: ho un problema. Insomma, nei tre giorni successivi provano a ottenere l'incredibile risultato, che se raggiunto avrebbe annullato la matematica da Talete in poi. Nei giorni successivi mi godo brandelli di conversazione tra UL e CL (affranti e con la cravatta allentata):
CL: Potremmo totalizzare uno scarto ogni 100 valori e sommarlo al totale. Fine della storia: dopo tre giorni di tentativi UL incarica CL di telefonare a SL, per dirgli che ci sono questioni tecniche, standard da rispettare, fasi da eseguire, bla bla bla... Se ti puo' consolare ho avuto un problema simile quando lavoravo per $immensoproduttorediformaggio, una volta volevano l'arrotondamento per difetto ed una volta lo volevano per eccesso...
Cancellate quelle Chiavi!Un giorno $(importante_istituto) e $(grande_istituto) decidono una sorta di fusione. Tra le altre cose, stabiliscono di sviluppare una nuova anagrafe che contenga i clienti di entrambi. L'applicativo sarebbe stato sviluppato da $(importante_istituto) e poi alimentato e usato da tutti e due.Racconto subito la fine della storia: dopo due anni di lavoro e la messa in produzione del progetto, $(grande_istituto) rifiuta di fornire i dati sui propri clienti a $(importante_istituto) e tutto il progetto viene annullato. Io ero incaricato di coordinare il lavoro di programmazione e mi ricordo questo singolare episodio che vado a raccontare. La nuova anagrafe aveva una interessante funzione di ricerca, per la quale il nome, cognome o ragione sociale venivano scomposti in parole, inseriti in una tabella, detta "tabella delle chiavi", e usati per ricomporre i nomi e fare le ricerche. Un giorno UL se ne esce con una richiesta in apparenza sensata:
UL: Voglio che i clienti estinti non appaiono nei risultati delle ricerche. Dovete sapere che UL era un tizio all'antica che ha visto solo file VSAM e DL1 e considerava SQL una novità per giovanotti che non conoscono la vera informatica. Io ho conosciuto un tizio che pretendeva di programmare i PC con file di input/output come un mainframe... strana gente si trova in giro. Andammo da SL, che poveraccio, comandava meno UL e quindi doveva subirne le decisioni.
IO: UL dice che dovremmo cancellare le chiavi dei clienti estinti. La contesa ando' avanti per parecchi giorni. Il povero SL era inorridito all'idea di cancellare delle chiavi dal database e cercava di convincere UL a non farglielo fare.
SL: ... vedi come SQL permette di fare ricerche con delle condizioni ... Alla fine SL si arrese. Due settimane non bastarono a convincere UL del disastro che la cancellazione comportava. A malinquore facemmo l'infausta modifica e così tutti i clienti estinti rimasero senza nome e irrecuperabili se non col codice cliente. IL GIORNO DOPO, giuro, il giorno dopo del passaggio della modifica, UL si mise a spippolare con l'applicativo. E candidamente fece una domanda... UL: Scusate ho un piccolo problema c'e' questo nominativo di un cliente estinto ma non riesco a trovarlo con la funzione di ricerca ho anche il codice cliente ma mi appare senza nome avete un idea di cosa sta succedendo forse il SQL non funziona bene. SL divento' verde poi nero poi bianco poi rosso, poi farfuglio' qualcosa, provo' a riprendere la calma, prese a spiegare, urlo', poi riprovo' a spiegare, uscì dalla stanza, rientro', si sedette, si rialzo', ando' al suo computer, lo accese ma era già acceso, lo riaccese, partì lo scandisk, mentre UL urlava: "va bene che vi ho fatto cancellare le chiavi ma *IO* le ricerche sui clienti estinti le voglio poter fare". Per fortuna tengo tutte le vecchie versioni dei sorgenti... ...e' una fortuna? Qualche volta l'unico modo per far capire le cose e' farle pagare...
Dinogen
|
Copyright | 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, cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato. |
Questo sito non e' ottimizzato per la visione con nessun browser
particolare, ne' per nessuna risoluzione particolare ne' impone l'uso di
font particolari.
Siate liberi di vederlo come vi pare e piace.
Ultimo aggiornamento: 29 Novembre 2004