Gli "Ospiti" della Sala Macchine |
Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register
TB: D. ti presento SurferLuser (SL), capo della $azienda_webdesigner.
IO: Piacere! (stringo la callosa mano al tipo, cercando di non far trapelare il
mio odio intrinseco per il nome $azienda_webdesigner)
Qui ci vuole una spiegazione: e' da quando lavoro qui che bazzica questo nome, $azienda_webdesigner, abbiamo persino sul server centrale una directory sotto i progetti web, loro dedicata. Tuttavia, fino ad un paio di mesi fa, non avevo ancora avuto l'onore -si, sono sarcastico- di lavorare sui loro progetti.
Bene, era marzo ed il mio capo mi da il compito di effettuare modifiche minori, su di un sito sviluppato dal suddetti WannabeWebDeveloper. Un delirio. Basti dire che, l'ho rifatto da capo in una settimana circa, facendolo funzionare decentemente.
Poteva finire li? No! Infatti, da allora, finisco sempre a rimettere le mani nel codice (ASP) di questi mer(d)avigliosi siti, sviluppati da $azienda_webdesigner. Capirete perche', quando ho saputo chi era SL, ci ho visto rosso.
TB: Guarda, c'e' un altro sito da guardare (ecchevvavevodetto)
IO: D'accordo, quale? (Sono oramai pronto a tutto)
TB: Non credo che lo conosci, non l'hanno sviluppato loro.
SL: Infatti, questo sito appartiene a $societa'_di_pulizie_con_nome_assurdo
($cleanme da ora), l'hanno fatto sviluppare da un tipo, che pero' ha litigato
con il proprietario dell'azienda che gli offre hosting. Ora, il sito ha un paio
di problemi, ma la cosa piu' importante e' scaricare il backup del database
perche' vogliono migrare l'hosting.
IO: Ok, che tipo di sito e'?
SL: Una WebApplication scritta in ASP con database Access.
(E c'e' ancora gente che la considera una buona alternativa.)
IO: Vabbe', datemi un account FTP e scarico tutto. In ogni caso, che problemi ci
sono con il sito?
SL: Beh, nella parte di BackEnd, c'e' un opzione di Backup, dove si puo' scaricare
il file Access, ma il proprietario quando ha provato ha notato che il DB arriva
solo al un paio di anni fa, gli ultimi dati non sono inseriti.
IO: Mmm, probabilmente la procedura per la generazione del Backup fallisce, e
l'applicazione ritorna l'ultimo file salvato, che probabilmente risale a 2 anni
fa.
SL: Vabbe', comunque vedi di fare in fretta che fra non molto staccano la
corrente.
IO: ?!?! Come?
SL: Beh, si, l'azienda che fa hosting si sta sciogliendo, gli impiegati se ne
sono gia' andati, e fra non molto il sito verra' spento.
IO: Operlamordidio. E se gli impiegati se ne sono gia' andati con chi parlo io?
SL: Beh, c'e' un tizio, che e' ancora li' fino alla chiusura definitiva, solo che
e' un grafico e di programmazione non sa una mazza.
Alla faccia dell'organizzazione.
IO: Vabbe', al massimo si puo' andare la e fare la cosa noi.
SL: Sisi, il responsabile di $cleanme ha gia' detto che paga tutto lui, ma..
(TERRORE, ODIO quando dicono "ma") L'azienda in questione e' a
$citta'_a_250KM
IO: Ossignur.
Insomma, per arrivare la, erano almeno 2 ore e mezza andare e 2 e mezza a tornare, quindi, dato che non avevo la benche' minima intenzione di perdere mezza giornata per un lavoro che probabilmente mi avrebbe preso 5 minuti, se il PC e' lento, opto per lavorare in remoto. Vabbe', dopotutto si tratta di un fetenzia di sito in ASP con Access. Chiedo al mio capo i riferimenti del responsabile del sito, chiamiamolo CL per non sbagliare e dato che gia' so che se ci parlo mi gireranno i cosiddetti, chiedo alla nostra HR di chiamarlo per farsi dare l'indirizzo E-Mail. Classica mail: sono $povero_pirla da $noi_domineremo_internet.com devo migrare il sito di $cleanme, dietro richiesta di SL, $azienda_webdesigner, avrei bisogno dei dati di accesso al sito. Nel frattempo, mi metto a guardare il suddetto sito. Ok, solita schifezza fatta con i frame. Do un occhiata alla parte di BackEnd, una semplice marchera di Log In. Faccio un colpo di telefono al mio capo: Domanda: Non e' che per caso conosci la password del backend? Risposta: Ma che mi prendi in giro?.
Altra mail al responsabile di $cleanme, e mi metto in attesa che qualcuno mi risponda (per fortuna ho anche altra roba da fare), tuttavia voglio provare una cosa. Ora, tento di mettermi nei panni del tipo che ha sviluppato il sito: sono un luser_designer, con il cervello ripieno di segatura, che username metterei per la parte di amministrazione? "admin"! E, dato che il mio cervello e' sostanzialmente vuoto, qual'e' la password piu' complicata che posso usare, senza temere di dimenticarla? "admin". Click-Click-login-e sono dentro. Mi metto dunque, a studiare un po' questa cosa, vabbe', ci sono tre pannelli per editare alcune tabelle del DB, ed un pannello con la scritta BackUp. Ci clickko sopra. Voglio effettuare un backup? Si! File in Download! Ok, ora ho un bellissimo file .mdb, tutto per me. Vabbe', metti il file nella directory condivisa e vai sulla macchina Windows. Dopo una decina di minuti mi trovo d'accordo con il proprietario del sito, dei dati inseriti ne mancano i due terzi buoni. Scopro anche i dati di accesso del responsabile di $cleanme (password in chiaro nel database, mavadaviail) Tuttavia, i dati sono inseriti e visualizzati nel backend. Ok, vorra' dire che o la procedura di BackUp genera il file in una cartella diversa da quella dove viene scaricato, o che la procedura fallisce. Sto giusto pensando a qualche soluzione BOFHistica (droppare il DB e vedere se almeno la procedura di Restore funziona), quando "Din, you've got a Mail". E' CL che mi passa i dati di accesso alla macchina: host ftp, username, password. Strano a dirsi, c'e' anche il link ad un indirizzo ip con un altro username ed un altra password. Ok, niente panico. Apro il mio client FTP e metto in download (dopo un paio di masturbazioni per capire DOVE sono i file) il sito.
COSSS.. 57 MEGA??? A 20Kb/s??????? Vabbe', sto' scaricando l'universo, dunque mi metto a dare un occhiata all'indirizzo passatomi da SL. E' una WebApplication per la gestione dei Domini, ma la cosa non mi interessa piu' di tanto, il sito lo sto scaricando! Mooolto tempo dopo. Ok, do un'occhiata ai file scaricati. Noto subito un paio di cose che mi piacciono poco: la suddetta procedura di BackUp non crea un nuovo file in una posizione raggiungibile via Web, cancellandolo quando e' stato servito al client, ma, semplicemente, reindirizza il Browser al file .mdb generale che, udite, udite, E' RAGGIUNGIBILE VIA WEB. Cioe', questo pirla che ha sviluppato l'applicazione, ha inserito il DB in una posizione raggiungibile dal Web, cosi' che il primo che apre un browser che ha scaricato il Backup una volta lo ottiene subito, con tutti i dati dei clienti. Comunque, questo non spiega perche' il DB non contiene i dati. a meno che il file spacciato per BackUp, in realta non sia affatto un BackUp. Do un'occhiata alla stringa di connessione al db, nel file delle impostazioni, scoprendo poi 6 stringhe tutte commentate. Quella non commentata e' infognata in mezzo alle altre e questo spiega perche' non l'avessi notata fin dall'inizio: il mio editor non colora il codice (mi ricorda molto http://www.soft-land.org/documenti/pessimo ).
Ed ecco la magagna: la stringa di connessione fa riferimento a - rullo di tamburi - un'istanza di MS SQL! Ok, per fortuna che ho parlato con persone preparate. Telefonata al mio Capo:
IO: Quelli non hanno capito una mazza: c'e' un'istanza di MS SQL che gira sulla
macchina ed e' li' che sono i dati.
TB: Ok, non puoi scaricarlo?
IO: No, bisogna vedere se hanno un programma apposta, perche' dubito che il DB
sia accessibile dall'esterno.
TB: E l'altro link che ti hanno mandato via mail?
Cosi mi metto a guardare questa WebApplication, che si rivela essere una specie di gestionale per la creazione ed il mantenimento di domini internet (tralasciamo che risponde ad una velocita' lumachesca). Dopo una lettura di documentazione presa dal sito dell'azienda che ha sviluppato 'sta roba, svelo l'arcano: quando viene montata un'istanza di un DB (fa l'esempio di PostGre e MySQL), ed un DB viene creato per un dominio nel sistema, automaticamente viene generato un sottodominio per interrogare il DB da remoto (c'e' un bellissimo esempio: mio_dominio.it, creo un DB sotto MySQL, il sistema crea mysql.mio_dominio.it, dal quale si accede ad una specie di MyPHPAdmin).
Tutto, bello, se non che, per il dominio $cleanme.it, sebbene l'applicazione rilevi un bellissimo DB sotto MS SQL, non mi faccia aprire nessun mssql.$cleanme.it (che lui, l'applicazione, mi assicura funziona alla perfezione.)Ora, questo succedeva la settimana scorsa (era martedi'), se vi interessa sapere perche' ci ho messo circa due settimane e che ogni volta scoprivo qualcosa, io lo dicevo al mio capo, lui lo diceva a SL, ed SL lo diceva al responsabile $cleanme, poi la risposta seguiva la stessa via. In questo modo, un lavoro da 30-60 minuti, si trascinava per ore o giorni.Bene, dopo l'ultima scoperta decido che il troppo e' troppo. Ergo, vado a parlare col mio Boss e MB, nostro commerciale, ed insieme decidiamo di chiamare CL, il grafico, per vedere se e' vivo o no. Sorvolo sull'handshaking.
IO: Allora, volevo sapere se e' possibile accedere alla macchina da remoto, via
SSH o RemoteDesktop.
CL: Ehm, no, che io sappia no.
IO: Ok, com'erano gestiti i database
CL: Guarda, il tizo che c'era qui prima blablablabla
Insomma, questo si e' messo a parlare di vita morte e miracoli dell'azienda, comunque da quel che riesco a capire, il WannaBe SysAdmin, ha importato il DB da un altro server, con un bel DUMP - IMPORT, installando MS SQL quando le cosa li' era gia' in piedi. Ok, questo spiega perche' l'Applicazione di gestione dei domini, vede il DB, ma non ha i sottodomini registrati corretti.
IO: Quindi come fate a gestire i DB?
CL: Ah, quello che c'era qui usava $DBManager.
IO: Ok, puoi andare al PC in questione e vedere se si puo' fare un DUMP del DB?
CL: No.
IO: Come "no"?
CL: E' che non sono a $citta'_a_250Km. Sono a $altra_citta'.
IO: E che cappero ci fai li' invece che andare a lavorare?
Ok, non ho detto proprio cosi', ma ho lasciato intendere che volevo spiegazioni, cosi' il tipo si e' messo a raccontarmi la storia della sua vita. Estraggo la frase essenziale:
CL: E' che io non sono un impiegato della ditta di hosting, sono solo un consulente.
Cioe', fatemi capire, 'ste tipi non hanno piu' impiegati ed allora affidano tutto ad un consulente che non sa una beneamata cippa?!?!
IO: Va bene, quando vai in ditta? (ricordo che e' martedi')
CL: Venerdi', forse, al piu' tardi Lunedi'.
IO: Allora ti chiamo Venerdi' per...
CL: Nono, ti chiamo io cosi' non perdi tempo a cercarmi al cellulare (si, lo
stavo chiamando sul cellulare)
IO: Vabbe', ma ti ricordi?
CL: Sissi!
Fast forward to Lunedi'. Venerdi' il tipo non si e' fatto sentire e, dopo un Weekend rilassante, non sono troppo brillante, cosicche' mi rendo conto che CL non si e' fatto sentire solo alle 15.30. D'ho! Chiamo MB, il mio capo non e' in sede, e gli ricordo la cosa, al che lui mi dice che avrebbe sentito CL. Dopo una telefonata, so che il tipo era in ditta fino alle 14.00, ma s'e' dimenticato. Ma assicura che giovedi', sara' a $citta'_a_250km per mezzogiorno!. E' giovedi', sono in ritardo di una decina di minuti, ed il mio capo mi riplacca mentre sto salendo, per parlare del nostro sito aziendale.
TB: Blablabla. E per la storia di $cleanme?
IO: Guarda, io tipo dovrebbe andare giu' oggi, quindi.
TB: mmm, meglio se lo chiami per conferma (leggasi: sai che e' un pirla, quindi
ricordaglielo)
Telefono subito a CL
IO: Salve, sono $mio_nome, chiamo per l'affare di $cleanme.
CL: Ah. (gia' dal tono, capisco che c'e' qualcosa che non va.)
IO: . Che c'e'?
CL: E' che ho avuto un impegno improvviso e non posso proprio andare.
IO: Posso farti una domanda? Mi spieghi che cosa faccio io ora?
CL: (Deve avere inteso che ero sull'orlo di prendere l'auto e venire a
$citta'_a_250km e linciarlo) No vedi, e' che io non sono un impiegato.
IO: Questo lo so.
CL: No, e' solo che. io non lavoro proprio per loro. (detto con QUEL tono,
che tu D conosci molto bene)
chi? io?
IO: Come sarebbe a dire? (Che gia' lo sapevo)
CL: E' solo che, dato che non c'e' piu' nessuno, il titolare qui, mi ha chiesto
di venire a dargli una mano a tenere le cose.
Qui potete tranquillamente immaginarmi seduto davanti al mio PC, con il telefono all'orecchio, in assoluta catalessi ed a bocca aperta. Chiudo velocemente la chiamata, perche' senno' dicevo qualcosa di cui mi sarei potuto pentire. Cioe', questi lasciano tutto in mano ad un grafico (quindi neanche possono dire "Ma e' tanto bravo", perche' per sua ammissione, lui di programmazione non capisce una mazza), che non e' sotto contratto e quindi, se si introia qualcosa, l'assicurazione ben si guarderebbe dal pagare. A questo punto, io stesso avevo paura all'idea di guidarlo via telefono, che se combinava qualcosa, i casini erano miei. Riporto il tutto al mio capo, e scopro che lui lo sapeva gia'. Comunque, mi assicura che avrebbe parlato con SL ed avrebbe messo a posto tutto. Ed arriva Venerdi'. Sono le 10, ed io mio capo mi chiama per dirmi che verso le 12 CL mi chiamera', perche' e' in ditta. Ore 10.40: Drinn. E' CL. Ok, facciamogli cercare l'Enterprise Manager di MS SQL. dopo 20 minuti non e' riuscito a trovarlo, ed io ho valutato che se gli dico di aprirmi il prompt di DOS lui mi chiede se ci voglio le patatine. Ok, apri il suddetto $DBManager che il SysAdmin usava per amministrare il mondo. Dopo una ricerca degna della "Chanson de Roland", riesco a trovare una funzione Export. Tramite una serie di semplici comandi ("Leggimi il campo $nome_Campo", "$dato_che_centra_una_cippa", "Ma che hai letto?", "$campo_che_non_centra_una_cippa", "Ti ho detto $nome_campo", "Ah, $altro_dato_che_non_centra_una_cippa", "Grrr") riesco ad effettuare l'esport in query SQL (quasi compatibili) delle 6 tabelle, me le faccio zippare (almeno quello lo sapeva fare) e spedire via mail. Alla fine della telefonata:
IO: D'accordo, dovrebbe esserci tutto.
CL: Bene, se hai bisogno, io sono qui fino alla due.
IO: (Pensando che non comporrei il suo numero per tutto l'oro del mondo)
D'accordo, ti ringrazio.
Riattacco, alzo gli occhi al cielo, e ringrazio mentalmente San Cosimo per aver tenuto occupato Murphy con una partita a scacchi oggi. Pero' 3 settimane per ottenere il Dump di un database, alla faccia dell'organizzazione.
Daniele C.
16/07/2009 15:50
le storie degli ospiti sono in ordine sparso, quindi 'precedente' e 'successiva' possono portare su storie di altri autori
I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli (io o l'autore della storia) e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.
In aggiunta: se il vostro commento non viene pubblicato non scrivetemi al riguardo, evidentemente non era degno di pubblicazione.
Daniele C. Di Daniele C. postato il 06/10/2008 14:15
Nik Di Nik postato il 25/08/2008 11:12
Paolo C. Di Paolo C. postato il 08/09/2008 08:46
subject Di Riccardo Cagnasso postato il 30/01/2009 14:37
-- Riccardo Cagnasso
-AT- Riccardo Cagnasso Di Daniele C. postato il 30/01/2009 14:54
-- I can only please one person per day. Today is not your day. Tomorrow is not looking good either.
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".