Tales from the Machine Room |
Ah, ho gia' detto che il mio piano consisteva nel fare due giorni di ferie giovedi/venerdi? Il che mi lascia sostanzialmente 3 giorni prima della dipartita di K.
Ok, lunedi' e' passato con le modifiche al programma di conversione del database, martedi' mattina mi metto di buona lena, installo una ennesima macchina virtuale, ci installo tutte le librerie necessarie per far funzionare questi script e comincio a guardarmeli. E subito mi scontro con la dura realta': non posso da qui' collegarmi al database. Acchiappo subito T per fare i cambiamenti sul firewall. Lui nicchia. Io gli dico chiaramente che o mi apre il firewall o i cambiamento sugli script se li fa da solo. Il firewall viene aperto.
Comincio a controllare come funziona la cosa, allora lo script vecchio fa' una join su questa-e-quella tabella, poi cerca, sfrucuglia, smazza, flippa e sfruppallazza... perche' i dati nel db vecchio sono sparpagliati su 5 o 6 tabelle diverse. Tanto per dirne una, c'e' una tabella 'DOMINI', una tabella 'CONFDOMINI' ed una tabella 'SPAMDOMINI', con relazioni 1-1, la tabella DOMINI contiene il nome del dominio e poco altro, la tabella CONFDOMINI contiene le informazioni relative al server SMTP di destinazione e la tabella SPAMDOMINI cosa dovresti farci con lo spam trovato per il dominio (delete, forward, addheader, changesubject). Quindi 3 tabelle per informazioni che potrebbero essere semplicemente su una. Ed infatti nella struttura nuova c'e' UNA sola tabella che contiene tutte le informazioni. Meglio. Solo che questo mi obbliga a riscrivere praticamente da capo tutto lo script.
Mi metto percio' di lena. La cosa si rivela piu' ardua di quello che sembra, perche' ogni 10 minuti (pare a me) qualcuno arriva a domandare qualche cosa, tipo "perche' il cliente X riceve ancora spam anche se hanno sottoscritto il nostro abbonamento?" risposta: perche' se il loro MX continua ad essere il loro server di posta la posta non passa da noi e noi non possiamo controllarla. Poi e' la volta di DaBoss che ha altri patemi relativi al maledetto CRM, poi arriva Bart che vuole che io guardi come mai il MS SQL Server cluster di $notacompagniatelefonica non funziona (??? io ho abbandonato SQL Server alla versione 6.5, 10 anni fa!), varie ed eventuali.
Dopo un bel po' ho una versione 'aggiornata' di ogni script. A questo punto alzo gli occhi dalla tastiera e vedo T che si infila la giacca.
IO - E dove stai andando adesso?
T - (indicando la finestra) Dato che sono le 6 di sera me ne vado a casa,
perche'?
Io guardo fuori: buio pesto! Ma come???? Che fine ha fatto la giornata!!
Fast-forward a mercoledi'. Oggi e' la giornata dei test di questi script. Ma la giornata comincia subito male perche' K arriva a chiedermi se posso fare dei cambiamenti sul database usato dall'applicazione.
IO - Come sarebbe a dire "dei cambiamenti"?? Quel foxxuto database dovrebbe essere
stabile come una roccia! Dovremmo mettere in produzione l'arnese alla fine di
questa settimana!
K - Si ma ho fatto alcuni aggiustamenti sull'interfaccia e mi servono alcuni
cambiamenti, poca roba... allora nella tabella XYZ il campo "datacreazione" e'
diventato "data_creazione", il campo "modificatoil" e' diventato "modificato_il",
il campo "nomedominio" e' diventato "nome_dominio" e...
Ed e' andato avanti cosi' per un bel po'. Dopo averlo stramaledetto faccio i cambiamenti sul database, sullo script di conversione e (naturalmente) su tutti i maledetti script che ho corretto ieri.
Comincio percio' a fare i test, eseguo il primo script "vecchio" sul vecchio db, eseguo lo script nuovo e controllo i risultati. Lo script genera l'elenco degli indirizzi di white-list per ogni dominio. Ok, lo script vecchio ha generato un elenco di 975321 indirizzi, lo script nuovo 834632.. eeeeeh???? Che cappero di fine hanno fatto gli altri 140000 (e rotti)? Riprendi in mano lo script e controlla. E cosi' scopro che circa 1200 domini non sono nel database nuovo. Perche'? Ricordate cosa avevo detto di quella struttura dati? Bene, pare che circa 1200 domini della tabella 'DOMINI' non hanno un record di 'SPAM' o uno di 'CONF' corrispondente, ragion per cui la conversione non li riporta. Cerca di capire perche'. Perche' qualcuno (H) ha fatto dei cambiamenti "volanti" sul database senza passare dall'interfaccia. Metti insieme uno script per verificare se questi domini dovrebbero essere nel nostro database oppure no, scopri che sono dei record "morti" e non servono ad un tubo. Zappali via dal vecchio database, riprova. Successo! I due file prodotti sono uguali.
Arriva DaBoss.
DB - Hai dieci minuti di tempo per guardare se il modulo tal-de-tali funziona
con la nostra versione del CRM?
IO - Vuoi mettere sta' merda di applicazione in produzione questa settimana
oppure no? Se la risposta e' "si" pussa via.
Si ri-appropinqua K.
K - Avrei bisogno di altri due o tre cambiamenti sul database...
Ripetete il tutto per una ventina di volte...
Ad un certo punto Bart mi compare accanto. No, in effetti era li' da un po' che cercava di attirare la mia attenzione, solo che ero troppo concentrato per guardarlo.
Bart - E' pronto il server per l'applicazione? Cosi' domani vado in co-lo ad
installarlo.
IO - Pronto e' pronto. Solo che non sono sicuro di quali indirizzi IP dovrebbe
avere.
Bart - Be', se lo sistemiamo lo metto in auto cosi' domani vado la' direttamente.
IO - Ma non possiamo farlo dopo?
Bart - Guarda che sono le 5.40...
Mortacc... corri a cercare l'indirizzo ip giusto, riconfigura il coso, scrivi il tutto nel malefico database di configurazione, spegni tutto e molla il server nella mani di Bart.
Se non altro, K e DaBoss se ne sono andati a casa e non possono piu' rompere. Finisco il tutto alle 20.25, lascio un messaggio a T sul quali sono gli script giusti, aggiorno la copia in subversion e me ne vado a casa. Secondo me quella cosa non va' "live" venerdi'... Io comunque per non saper ne' leggere ne' scrivere spengo il cellofono.
Davide
01/06/2009 08:00
Comments are added when and more important if I have the time to review them and after removing Spam, Crap, Phishing and the like. So don't hold your breath. And if your comment doesn't appear, is probably becuase it wasn't worth it.
Primo?!?!?!?!
By Vlad - posted 01/06/2009 08:38
-AT- Vlad
By Davide Inglima - posted 01/06/2009 10:01
-AT- Vlad
By argaar - posted 01/06/2009 10:15
-AT- argaar
By Davide Bianchi - posted 01/06/2009 10:26
-AT- Davide Bianchi
By argaar - posted 01/06/2009 11:27
-AT- Vlad
By Nausicaa - posted 01/06/2009 12:04
deja' vu
By anonymous - posted 01/06/2009 08:44
stress, cosa l'e'???
By Matteo Jurman - posted 01/06/2009 08:48
SQL Server
By A. Tortella - posted 01/06/2009 08:56
Modifiche al DB
By Luca Barba - posted 01/06/2009 15:00
quello succede anche a me
By Riccardo Cagnasso - posted 01/06/2009 15:51
consolati
By camillo - posted 01/06/2009 17:35
Script
By Luca - posted 02/06/2009 04:11
-AT- Luca
By Davide Bianchi - posted 02/06/2009 08:08
Domandina ...
By kallsu - posted 02/06/2009 12:05
-AT- kallsu
By Davide Bianchi - posted 02/06/2009 12:21
il lavoro
By Simone - posted 03/06/2009 08:44
ah... le ferie...
By Daniele - posted 03/06/2009 17:22
This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.
This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.
This site isn't optimized for vision with any specific browser, nor
it requires special fonts or resolution.
You're free to see it as you wish.