Gli "Ospiti" della Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire
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

Programmazione Strutturata

Da qualche settimana sono stato, mio malgrado, distaccato presso $cliente. La cosa non mi piace per niente, perche' $cliente e' una ditta enorme (diretta dipendente da Deutsche Telekom, con tutte le conseguenze del caso!) e, come tutte le ditte enormi, e' burocratica fino alla nausea.

E poi non posso neanche bestemmiare come al solito quando Winscheiße si inchioda. E in piu' ho bisogno di una ChipCard anche per aprire la porta del cesso! (Nota: L'ultimo cliente che ho visto con tutti i PC senza Floppy e CD, e con la ChipCard nella tastiera per accedere al sistema, con controlli ad ogni piano per il tuo tesserino d'identita' e fregnacce varie e' la BfA [l'equivalente tedesco dell'assicurazione pensionistica statale]. Ho poi scoperto che, visto che tenevano tanto alla sicurezza, il SysAdmin accedeva al Server principale in SSH COME ROOT E CON AUTENTICAZIONE TRAMITE IP! Senza password!

L'ultima volta che ci sono stato io in un posto "ultrasicuro", la password di root era 'root'...

E' ora di fare una pensione integrativa!!! Comunque ogni volta che vedo ditte che "tengono alla sicurezza" in questo modo, non posso fare a meno di pensare alla BfA)

L'unica nota positiva e' che sono a 10 minuti da casa, posso dormire un quarto d'ora un piu' e mangiare a casa. E arrivo a casa 10 minuti prima!

In tre settimane che sono qui, per motivi burocratici, ho fatto l'equivalente del lavoro che, da qualsiasi altra parte, farei in una giornata... Vabbe'! Cerchiamo di arrivare a fine giugno, cosi' si torna in sede...

Durante la perdita di tempo di oggi mi e' pero' capitato qualcosa di talmente assurdo che ho pensato di conservarlo per la posterita'.

Stamani entro in ufficio, dopo una settimana passata a letto con 39° di febbre (perche' mi sono beccato una bella influenza durante le ultime festivita'!). Dopo la lettura della posta e della storia settimanale, mi accingo a lavorare. Vado dunque dal collega che mi riassume quanto e' successo la settimana scorsa.

Mi racconta la rava e la fava e perdo la mattinata e parte del pomeriggio per scaricare i nuovi sorgenti (mai avrei pensato di sentire la nostalgia di VSS! E' milioni di volte piu' comodo di Sinergy! E anche TANTO piu' veloce!). Compilo il tutto e comincio a scrivere la mia parte.

Prima di cominciare, pero', mi viene il dubbio... Non e' che quello stordito ha fatto delle modifiche al DB senza dirmi niente? Chiedo e, si!, ha fatto modifiche! OK! Mi spedisce lo script SQL con le modifiche. Lo guardo, vabbe'!, crea le tabelle (poi si scopre che ha dimenticato un campo e dobbiamo rifare tutto capo!) ma non gli mette dentro niente...

IO: Senti, guarda che qua non metti niente nelle tabelle!
CL: Si, lo so! Questi sono gli script generati da Rose per la creazione delle tabelle. I dati ce li devi mettere tu!

E io cosa ci devo mettere che non so quasi neanche cosa devono fare le tabelle? Vabbe', piglio il buon vecchio Toad e comincio a scrivere un Record. Mi blocca!

CL: NO! Non puoi fare cosi'! Devi scrivere uno Script SQL!!!
IO: E perche'? Tanto sono due record delle balle! Non ti aspetterai mica che qualcun altro li usi?
CL: Certo che si! Questi dati li useranno anche gli altri, finche' non arriveranno i dati definitivi!
IO: Scusa, ragioniamo! Sono due stupidissimi record per fare la prova di ricerca per ID! Non hanno senso, questi dati! Ci metto solo lo UUID e il campo Name!
CL: No, no! Devi mettere dei dati di test che abbiano senso!
IO: Ma se sono di test non hanno senso per definizione!
CL: Metti dei dati di test che non siano di test! Cosi' li usiamo tutti!

Vabbe'! Rinuncio ad indagare e metto su dei dati piu' o meno sensati.

Fatto questo, scrivo la mia bella classe Java. Lui intanto e' di dietro che mi osserva interessato (ma non aveva detto che aveva tanto lavoro da fare? E allora cosa stai qua a rompere?). Inizializzo il Manager (dentro un try/catch, perche' non si sa mai!), chiamo la funzione (altro try/catch) e ritorno il valore! Mi blocca subito!

CL: NO! Non devi usare i try/catch! Sono vietati!!!
IO: Eh?!? Cosa vuol dire "sono vietati"?
CL: Non devono essere usati! Devi tornare l'Exception a Enfinity, che poi la gestisce lui!
IO: Vabbe'! Ma se faccio cosi', come faccio poi a far tornare un "ERROR" se la funzione di ricerca fallisce?
CL: Non ritorni un ERROR! Non ritorni niente! La Pipelet va in Exception ed Enfinity fallisce la chiamata!
IO (pensando): E come la prende l'utonto che naviga il sito vedendo una splendida schermata di errore?
Vabbe'! Modifichiamo tutto senza try/catch, compilo e lancio l'Application Server!

Provo ad eseguire la mia bella classe: NullPointerException.

Toh! Questa e' bella! E perche' mai? Vabbe', facciamo un po' di debug... Mmmm... sembra proprio che il Manager non sia stato caricato dal Registry, il Registry mi ritorna null e ovviamente non posso lanciare una funzione in una classe non istanziata! Non ci sarebbe problema se avessi potuto mettere la cosa in un try/catch, ma senza... Beh! Senza l'inizializzazione viene fatta in una funzione che fallisce e ritorna l'Exception a Enfinity che SE NE SBATTE ALTAMENTE e continua per la sua strada cercando di lanciare la funzione e, ovviamente, genera il NullPointerException! Si, ma perche' mai non viene caricato il Manager? Boh, io faccio quello che posso... Se non lo carica, forse non e' stato prima registrato. Il Manager, pero', non l'ho scritto io, ma CL.

IO: Senti, se lancio la classe ottengo NullPointerException. Credo che il problema sia nel Registry che non riesce a darmi indietro l'instanza. Sei sicuro di aver registrato correttamente il Manager?
CL: Il Manager non esiste ancora! Tu hai solo l'interfaccia iniziale!
IO: L'interfaccia iniziale?
CL: Si! Quella con la definizione delle funzioni! Ma le funzioni non le ho ancora scritte!
IO: E quando pensi di farlo?
CL: Forse ce la faccio per la settimana prossima!
IO: Ma adesso siamo a Lunedi! Cosa faccio questa settimana? Scrivo il codice senza neanche poterlo testare?
CL: Si, certo! Proprio cosi'!

OK! Questa settimana potrei anche spegnere il PC e scrivere il codice su carta, non cambia niente! Potro' vedere se ho fatto cazzate solo la settimana prossima! Ma allora perche' ho dovuto smadonnare per cercare di inserire nel DB dei dati sensati? E, sopratutto, perche' non dovrei fare perno sul piede, mandarli tutti a defecare e andarmene a casina?

Hint: perche' ti pagano.

Luca Bertoncello


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 e' composto interamente con VIM

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.
Web Interoperability Pleadge is this a valid html document?

Ultimo aggiornamento: 7 Giugno 2004