Newsgroup: it.comp.os.linux.sys
Titolo: [OT] Storie dalla Sala Macchine

Code [re|ab]use
Tempo addietro, uno degli infelici clienti della mia societa' lamento'
problemi nella gestione della lingua giapponese su uno dei siti Web
sviluppati da noi. La cosa mi sfioro' relativamente, perche' l'UL che si 
occupa del cliente mi domando' cosa si potesse fare per risolvere il 
problema ed io gli risposi che l'unica era fare un po' di debug 
all'applicativo e vedere quale era il problema.
Solo che il cliente si gestisce lui la manutenzione del sito, scrivendosi
il codice per cavoli suoi, quindi il debug e' affare suo.
Dopo di che non ne sentii piu' parlare per un bel po', fino a Lunedi',
quando UL (il mio nuovo capo) arrivo' con questa bella notizia...
UL - Quindi lui viene qui' questo giovedi' con il computer di sviluppo
     e noi dobbiamo dargli una mano a trovare il casino.
IO - Guarda che il problema non glielo risolviamo giovedi'. E neanche
     venerdi'.
UL - Perche' no?
IO - Perche' non e' un problema di configurazione, e' un problema di
     programmazione e per risolverlo l'unica e' fare del debug del
     sistema, ed io non so una mazza di come funziona quel sistema.
UL - Ma funziona perfettamente sul server di sviluppo! Si tratta solo
     di prendere i parametri di configurazione del server di sviluppo e
     riportarli in produzione!
IO - Se fosse cosi' lo avremmo fatto da tempo, ma non e' cosi'.
Cosi' giovedi' mi arriva questo tizio, attacco il suo computer e, con 
l'ausilio di CB che ne sa' molto piu' di me di programmazione di questo 
cacchio di $applicationserver, ci mettiamo a guardare la cosa.
Ovviamente UL ha voluto rendere chiaro che era molto interessato alla cosa,
passando ogni 5 minuti a chiedere come andavano le cose...
IO - Senti, qui' possiamo fare due cose: possiamo DIRTI che non stiamo
     facendo niente o possiamo FARE qualche cosa. Scegli.
Dopo di che' UL ha deciso che poteva resistere senza un'aggiornamento
ogni 5 minuti. Abbiamo cominciato percio' con un bel controllo di quale e' 
il "problema".
Questo cacchio di sito ha una parte relativa alla "vendita" di roba,
ogni prodotto ha una descrizione ed altre cose. Apparentemente la
descrizione viene memorizzata nel database o letta dal database in modo
errato perche' i caratteri giapponesi risultano completamente sballati,
mentre un'altro campo sulla stessa maschera risulta perfetto.
Se un campo funziona e l'altro no mi sembra ovvio che non e' un problema
di configurazione. Ci mettiamo percio' a guardare il codice. E qui' 
incomincio a vedere delle cose abbastanza oscene.
Per prima cosa la tabella del database contiene 127 campi...
"Ok, vediamo cosa cavolo mette in quel campo"
SELECT nomecampo FROM tabella WHERE prodotto=idprodotto
NULL
"?? NULL ??? come sarebbe a dire NULL ??"
Controllo meglio e scopro che quasi tutti i campi della tabella sono
nulli... e da dove cavolo li piglia i dati allora?? Cosi' scopro che
le informazioni che sono visualizzate a video vengono imballate in
un'unica hashtable che viene poi serializzata in un unico campo BLOB...
lo stesso campo BLOB viene poi letto e deserializzato per ottenere le
informazioni... per fare cio' l'accrocchio utilizza un Bean. 
Il campo che risulta corretto si trova in tale Blob, mentre quello 
scorretto e' letto dal corrispondente campo VARCHAR del database.
Ok, mettiamo TUTTE le informazioni nel blob allora, modificando il Bean.
Dopo un po' di hacking sembra che le informazioni vengano visualizzate
e memorizzate correttamente. A questo punto facciamo qualche prova e...
non funziona... cioe', nella parte di sito riservata al "back office"
funziona tutto correttamente, mentre nella parte "utenti" continua
a visualizzare le cose sbagliate... WTF???
E cosi' scopro che, per ogni "singola" pagina, c'e' un diverso Bean
per recuperare le informazioni dal database, mentre qualche pagina
addirittura non usa nessun Bean ma legge i dati direttamente...
Inoltre non e' solo quel campo che viene gestito in modo diverso, ma sono
molteplici...
Ma chi cacchio ha scritto questa chiavica di codice??? 
/* Code By Mammalucco Yugoslavo mamma...@yugoslavia.yu */
...ci avrei giurato...
A questo punto torna alla carica UL.
UL - Allora, trovato niente?
IO - Si', ho trovato che questo e' RFUC.
UL - ?? he?
IO - Really Fooled Up Code
UL - E che possiamo fare?
IO - Io vedo solo 3 possibilita'. Assumendo che sulla macchina di sviluppo 
     funziona correttamente. 1) Si piglia la macchina di sviluppo e la si
     mette al posto di quella di produzione, 2) si perde il tempo a
     modificare ogni singola pagina mettendo a posto i vari bean o meglio
     ancora riscrivendo i vari pezzi in modo da avere UN bean e non
     diecimila, 3) si rimanda il tutto agli Yugoslavi che se lo sistemino
     loro dato che le cazzate le hanno fatte loro.
UL - Hemmm... c'e' un problema...
IO - Solo uno?
UL - La versione giapponese deve essere in produzione lunedi'...
IO - ...adesso lo dici? In tal caso le soluzioni sono solo due, la 1) di
     prima e la 2) si lascia tutto come sta, il sito in giapponese lo si
     fa funzionare in inglese e si riesaminano le possibilita'.
Davide
15/3/2004

 un'unica hashtable che viene poi serializzata in un unico campo BLOB...
Oh my God... per la serie: prima pensiamo una cosa, poi ne facciamo un'altra
dimenticandoci pezzi sparsi...
Eh, gran brutta cosa!!

 dato che le cazzate le hanno fatte loro.
Seee, quelli se ne laveranno sicuramente le mani.

 Immagino che il "sistema" sia stato fatto da persone differenti...
No, secondo me e' una persona sola, solo che e' schizofrenico...
Davide
-- 
| Virus error:  A virus has been activated in a DOS session. The virus, 
| however, requires Windows. All tasks will automatically be closed and 
| the virus will be activated again.  
| 

 schizofrenico...
ROTFL!!!

You've Got F*ck*ng Voicemail!
Eccomi in arrivo in ufficio all'alba delle 10.30. Noto subito una
lucina sul telefono lampeggiare ferocemente...
Uh-ho... voicemail...
BIIIP! TU HAI...VENTI...TRE...MESSAGGI"O no! Cacchio!"
PREMERE UNO PER...*BIIIIP!*
MESSAGGIO NUMERO...UNO
Hemmm...salve...ho un problema con la posta elettronica..."e chi
diavolo sei?"... mi ritorna un'errore ogni volta che tento di
spedire un messaggio "che errore? chi sei?", ed e' una cosa
un po' urgente perche' devo trasmettere questo documento ad un
cliente e... " chi e' che sei? il tuo nome! dimmi il tuo nome!"
quindi se puoi darci un'occhiata... "il tuo nome!"
ciao e grazie.-click "IDIOTA!"*biiip*
MESSAGGIO NUMERO...DUE
Ciao! Sono CL "almeno questo il suo nome lo sa", ho
portato in ufficio il mio laptop e volevo collegarlo alla rete
"no, col cavolo!", solo che non ho una scheda di rete, cosi'
ho tolto la scheda di rete dal laptop di UL che non e' qui' oggi
"CRETINO! Quello e' un modem ISDN!" solo che il laptop non la 
riconosce "per forza!" comunque ho collegato il laptop staccando uno 
dei due PC che sono al secondo piano "quali pc???", sai quelli che 
sono sotto al tavolo nel corridoio "No! Deficiente! Quelli sono due 
server!!", ma non riesco a farlo funzionare lo stesso "ti spezzo 
le braccine!!!". Puoi venire a darci un'occhiata?" Come no! Aspetta 
che prendo il martello e la perforatrice e poi arrivo" *biiiip!*
MESSAGGIO NUMERO...TRE
Ciao D sono UL2, dobbiamo organizzare una demo per un prodotto e ci
servono una mezza dozzina di pc "una mezza dozzina,
come se io i pc li estraggo dal nulla" nella caffeteria
"non c'e' connessione di rete nella caffetteria! Ok, potrei passare
un cavo attraverso il muro della sala riu..." e dovremmo anche
connetterci con il cosola', il pc di $immensa_societa."vuoi dire
il RAS? mi serve un telefono per que..." Se potresti predisporre
tutto per le 12.30 "di che giorno?", e' molto importante,
"DI CHE GIORNO????" anche perche' stasera alle 18.00 alcuni
devono prendere un'areo per "*NO! CA$$O!! BRUTTA TROTA! T'HO
DETTO UN MILIONE DI VOLTE CHE MI SERVE ALMENO UNA SETTIMANA DI
PREAVVISO PER QUESTE COSE!*"*BI**"*CA$$O!*"
*BIIIIP!*
MESSAGGIO NUMERO...QUATTRO
Salve, sono...hummm..."eccone un'altro che ha scordato il suo nome.."
LQ di...hummm...uno dei vostri clienti "chi accidenti e' sto qui?",
dunque... hemmm... mi chiedevo se non fosse possibile accedere direttamente
al vostro database server per...hemmm "cose' che vuoi fare tu?"
eseguire delle statistiche su... hummm "chi accidenti sei tu???"
la distribuzione dei dati... quindi... se hummm... poteste fornirci
i dati di accesso e le password..."si' come no..." potete inviarmi
le informazioni a 
ute...@hotmail.com
. Grazie."mavadavialcu"*biiip*
MESSAGGIO NUMERO...CINQUE
Sono UL3, mi sono accorto che il server di sviluppo per $societa' non
era piu' raggiungibile "se non pagate le licenze...", cosi' ho
provato a riavviarlo "...come se e' chiuso in sala macchine?",
ma dopo che ho premuto il pulsante ha fatto uno strano rumore
"come accidenti sei entrato in sala... *HAI UNA COPIA DELLA CHIAVE!
*" e non si e' riavviato come supposto, invece mi ha dato una
sfilza di errori "*HAI UNA FOTTUTA COPIA DELLA CHIAVE! TU GRANDISSIMO
FIGLIO DI...* dovro' fare una chiaccherata con SL per questo!
E nuove serrature!" e adesso non so perche' tutti si lamentano che
il tool di pianificazione non si riesce piu' ad usare...
"*hai riavviato il server sbagliato! Idiota!!!!!*"
Ma sicuramente le due cose non sono collegate no?
"sono collegate come il tuo cervello e' collegato al tuo culo!"
*biiiip!*
MESSAGGIO NUMERO...SEI
Sono SUSL "hu-ho...", avremmo deciso di implementare poi quella
connessione privata tra casa mia e l'ufficio "la VPN intendi?",
mi sono gia' messo in contatto con lo specialista per l'installazione
dell'hardware "quello non capisce una beata fava!" che arrivera'
lunedi' "No! Lunedi' non e' possibile!" mentre l'hardware
dovrebbe arrivare al piu' tardi martedi' "E allora l'altro coglione
cosa viene a fare qui'???", se fosse possibile sistemare tutto
per il fine settimana sareb*BIIIIP*
"calmo... respira... insipra... espira... non posso chiamare SUSL
emeritatestadiquiz... lo chiamo dopo... caaaaalmo...."
MESSAGGIO NUMERO...SETTE
Sono sempre CL "Oh No!", sempre per quel laptop "cosa ca$$o hai
combinato adesso?", ho pensato che forse era un problema di connessione
con l'hub "connessione tuo nonno!", hai presente quel piccolo hub
che e' sotto al tavolo no? "certo che ce l'ho presente, cosa gli hai
fatto?" cosi' ho pensato di provare a scambiarlo con l'altro hub
che e' nello sgabuzzino di sotto "quale hub nello sgabuzzino?",
hai presente lo sgabuzzino dove ci sono i fusibili vicino alla porta
dell'ufficio di HRSL? "*QUELLO E' UN ROUTER, TESTA DI CA$$O!!!*"
Cosi' ho preso quell'hub ed ho provato a collegarlo
"*NO! PEZZO DI DEFICIENTE!!!*", ma credo che abbiano qualche
differenza sulle interfacce di rete perche' la lucina della scheda di
rete non si accendeva "*NON E' UNA SCHEDA DI RETE!!!*".
Allora ho pensato che forse dipendeva dall'alimentatore ed ho provato
a scambiarli "*AAAAAAARRRRRRGHHHHH!!!*"
*BI*CRASH*BI*TRONK*FOTTUTOTELEFONO!!!*BIIIIP*
Davide
22/3/2004

 22/3/2004
Ma queste cose ti succedono davvero? :-0
ciao
luca

 Ma queste cose ti succedono davvero? :-0
...qualche volta me lo domando pure io...
Davide
-- 
| There are three possibilities: Pioneer's solar panel has turned away
| from the sun; there's a large meteor blocking transmission; or someone
| loaded Star Trek 3.2 into our video processor. 
| 

E io che mi spavento quando arriviamo già a "bisonti" da 30-40 campi.
Per campi intendete attributi?
Daniele Giglio
-- 
"Non vincere dopo aver colpito,
ma colpisci dopo avere vinto"
Sensei Takano Sakaburo - Itto Ryu

 22/3/2004
Questo è il motivo per cui la mia segreteria è perennemente SPENTA.
-- 
Mario "Reliant" Pascucci
Linux Registered user #327002 
http://counter.li.org/
http://www.geocities.com/ilpettegolo/

 Questo ? il motivo per cui la mia segreteria ? perennemente SPENTA.
Come ti invidio...
Davide
-- 
| If you cannot convince them, confuse them. 
| 
| 
| 

 You've Got F*ck*ng Voicemail!
[snip]
E io che pensavo che i miei utenti fossero il peggio del peggio!!
P.S.
pero' almeno per l'accesso alla sala server ho risolto. Lettore biometrico
e nienti piu' chiavi **di straforo** in giro!!
-- 
ti.orebil@ottedenebid.v

Dietro tuo permesso, vorrei trovare una polizza assicurativa vita, RCI
(Responsabilità Penale Informatica, per omicidi tentati o riusciti),
furto e incendio (non si sa mai), e qualche altra cosa che la faccio
uscire di stramacchio, che faccia proprio al caso tuo ...
Prevenire e' meglio che curare ...

 Davide
Ma, piuttosto.. Qui ci sono, sistematicamente, danni anche notevoli. Chi
paga?
Mi viene in mente il "tecnico balena" che ha fatto uno sfracello in sala
macchine (qualche settimana fa), ora il server spento e riacceso alla
CdC che inchioda quel tool, il portatile avvitato sulla scrivania..  
Per gli altri "eventi", la memoria mi falla..
Ma e' sicuro il tuo posto? (nel senso di lavoro) ;-)
Ciao,
-- 
      Ermanno Polli   (INFN-LNF)
    user:      hostname:  subdomain:  domain:  country:
ermanno.polli    N/A        lnf         infn     it

 Ma e' sicuro il tuo posto? (nel senso di lavoro) ;-)
Come no, e' sicuro come stare sul ponte di una portarei nel mezzo di
Pearl Harbour...
Davide
-- 
| One cannot make an omelette without breaking eggs -- but it is amazing
| how many eggs one can break without making a decent omelette. 
| 
| 

 a scambiarli "*AAAAAAARRRRRRGHHHHH!!!*"
Si è fuso tutto quello che era collegato a quegli alimentatori?

 Per campi intendete attributi?
Si.

 Si ? fuso tutto quello che era collegato a quegli alimentatori?
No, e' solo saltato il fusibile dello switch, peccato che e' saldato
alla piastra, peccato che per smontare lo switch ho dovuto usare una
mazza ferrata, peccato che CL era uscito quando ho trovato la mazza
ferrata...
Davide
-- 
| Arithmetic is being able to count up to twenty without taking off your
| shoes. 
| 
| 

 Pearl Harbour...
A pensarci bene quello e' un posto sicurissimo: non c'erano portaerei
quel giorno a PH. ;-)
-- 
Un Ciao in DO Maggiore!
-=) Sbaturzio (=-

 Davide


 era uscito quando ho trovato la mazza ferrata...
Avrà annusato l'odore di pericolo...

ha bisogno di un killer gratis?
mi metto in lizza
