Privacy Policy SdSM | FOLBlog - Pag. 5

Ricerca in FOLBlog

SdSM

Le avventure e le peripezie di un SysAdmin

[SdSM] La Produzione e’…

 Scritto da alle 06:27 del 20/05/2012  Nessuna risposta »
Mag 202012
 

postgres-database

Ritorniamo a parlare di quel branco di programmatroti di cui avevo parlato in questa storia.

Come detto precedentemente il branco di mammalucchi sta passando da un sistema pesantemente basato su Windows ad uno pesantemente basato su postgre. Il che non e’ un male. Cio’ che e’ male e’ che questi insistono a fare sviluppo e testing su un server che apparentemente non mostra mai nessun problema mentre quando l’applicazione viene portata in produzione si incrocchia piu’ si che no.

Io ho gia’ fatto notare che gli ambienti di test e di produzione dovrebbero essere il piu’ possibile identici, altrimenti che "test" e’? Ma pare che tale concetto passi del tutto inosservato al programmatroto di turno.

Comunque sia, un paio di settimane fa c’e’ stato l’ennesimo rilascio di una manica di roba in produzione e adesso pare che il database sia di una lentezza allucinante. Dato che il database non e’ cambiato quello che ho pensato io e’ che forse forse forse e’ il caso di fare un po’ di ottimizzazioni alle query che sono utilizzate.

Ricevo una richiesta del CL di turno di "abilitare il profiling" del database. Hemmm… non c’e’ nessun profiling. Si puo’ abilitare il logging del database e poi analizzare i files di log per vedere cosa si puo’ ottimizzare ma la cosa migliore sarebbe che il programmatroto impari a scrivere le sue query ed utilizzare il database come si comanda e non alla ca$$o come e’ fatto attualmente probabilmente.

Percui oggi mi becco la seguente conversazione con il CL di turno.

CL – …e quindi vogliamo attivare il logging sul database di produzione in modo da avere le informazioni necessarie per il profiling.
IO – Ma siamo sicuri di voler attivare il logging sul databsae di produzione? Quel sistema e’ gia’ lento adesso, se attiviamo anche il logging mi sa che le cose peggiorano di sicuro.
CL – Che impatto puo’ avere sulle performance?
IO – E come faccio a saperlo? Un impatto ce lo avra’ di sicuro, solo per scrivere i dati nel file di log, ma quanto sia questo impatto e’ una cosa su cui non posso pronunciarmi. Non sono io che ho fatto l’applicazione, non ho idea di come il database sia usato.
CL – Ma non siete voi i sysadmin?
IO – Si ma non siamo quelli che hanno scritto l’applicazione. Sono loro che sanno come il database viene usato e come e se le query possono essere ottimizzate. Io sono quasi sicuro che possano essere ottimizzate ma quali e come non e’ affar mio dirlo.
CL – Vabbe’, comunque sia attiviamo il loggin. Si puo’ fare oggi alle 12?
IO – …certo che si puo’ fare, ma io insisto che non bisognerebbe farlo, non sul database di produzione, bisognerebbe fare questi lavori sul database di TEST e poi, eventualmente, riportare le cose in produzione. C’e’ un sistema di test, usiamolo.
CL – Ma il mio programmatroto mi assicura che l’impatto non dovrebbe essere eccessivo e yada yada yada…

E va bene. Do’ un’occhiata al file di configurazione di postgres (standard come da distribuzione) abilito il logging delle query in modo da avere qualche informazione, poi alle 12 fermo tutte le millemila applicazioni, cambio il file di configurazione (facendomi una copia di quello originale), riavvio, faccio ripartire le applicazioni.

Dieci minuti dopo guardo e mi spavento: il file e’ cresciuto di 8 Gb.

Altri dieci minuti dopo mi ri-spavento quando mi rendo conto che le varie applicazioni che scrivono su questo coso sono passate da "lentissimo" ad "abominevolmente lento". Ed infatti altri 5 minuti dopo mi arriva la richiesta del CL di turno di "disattivare il profiling".

Ok, rimetti il file di configurazione come era prima, riavvia eccetera eccetera.

Quando dico "abbiamo un sistema di test: usiamolo", perche’ non mi danno mai retta? E adesso voglio vedere chi e’ che se lo analizza questa barcata di roba (15 Gb di log). Qualche cosa mi dice che quel qualcuno saro’ io… e qualche cosa mi dice che le mie raccomandazioni sul come fare o non fare le query verranno semplicemente ignorate. Chi e’ che scommette?

Davide

legenda personaggi

[SdSM] Basta avere le idee chiare

 Scritto da alle 06:27 del 13/05/2012  1 Risposta »
Mag 132012
 

Latest-Updates

Continuano le disavventure mie alle prese con l’ambientino di certa gente ed il loro modo beota di fare i rilasci.

Dopo l’ultima debacle avevamo avuto una franca discussione con l’UL "responsabile" della cosa in modo da mettere i taglietti sulle ‘t’ ed i puntini sulle ‘i’ e migliorare un pelo le cose. Durante il famoso meeting tutti quanti avevano (ovviamente) assicurato una migliore gestione delle cose, per esempio il fornire sempre una versione delle applicazioni completa e non semplicemente i cambiamenti tra una versione e quella precedente ed inoltre il rilascio di versioni in produzione senza "salti". Con questo intendo di non fare 3 rilasci sul sistema di test e poi uno "massivo" sul sistema di produzione.

Ma si sa, i buoni propositi sono quelli che rimangono ignorati subito dopo essere stati presi.

Ed e’ cosi’ che mi ritrovo oggi, il primo giorno dopo le mie ben meritate ferie, con un ticket che richiede un rilascio in produzione. Ovviamente io mi aspetto di trovare un bel file .zip che contenga tutto l’ambaradan. Quello che mi trovo invece e’ la bellezza di 5 (cinque) aggiornamenti incrementali a ben 3 delle maledette applicazioni che girano su sto coso. Ed ovviamente non vi e’ alcuna idea di quale delle precedenti versioni sie quella ‘buona’.

Comincia una tiritera di mail tra me e l’UL in questione riguardo a quale versione sia da considerare "l’ultima" in modo che io possa applicare le varie patch senza inchiodare il tutto, mail che l’UL non fa altro che rigirare al programmatroto di turno che non fa altro che mandarmi altri documenti PDF che contengono istruzioni generiche riferite a 3 o 4 versioni fa.

Poi ovviamente c’e’ da considerare il fatto che le versioni "vecchie" che avrebbero dovuto essere rimosse dai vari servers una volta riportate in produzione non sono mai state rimosse ed una caterva di directory e files vari sono li’ a complicare le cose.

Verso le 15.30 UL manda una mail chiedendo che noi si discuta direttamente con il programmatroto in questione tagliandolo via dal mezzo. Hemmm… Ma non si era detto che tu dovevi essere l’unico responsabile e punto di comunicazione per le cose che riguardano il tuo foxxuto server web? E non si era detto anche che il foxxuto programmatroto avrebbe dovuto fornirci sempre una applicazione completa di tutto e non una caterva di files o le indicazioni di come patcharli? E adesso ti chiami fuori dal casino che tu stesso hai favorito?

Comunque sia, un po’ interpretando i vaneggiamenti del programmatroto, un po’ ravanando nel mezzo dei files che sono sul server di test, un po’ torturando i vari colleghi che hanno fatto gli aggiornamenti nei giorni passati (e non hanno seguito le istruzioni per aggiornare le cose come da documentazione fornita), riesco a ricostruire il da farsi ed a portare a termine la complicata operazione.

Un’oretta dopo o giu’ di li’, mentre sono quasi pronto per andarmene a casina, arriva una ennesima mail dall’UL che domanda a che punto e’ il loro server LDAP… E qui ci va una piccola spiegazione.

Per gestire le login nel loro foxxuto sistema inizialmente veniva usata una semplice tabella ‘utenti’ nel loro database (SQL Server). Solo che poi UL aveva deciso di rifare il tutto usando JBoss (o TomCat, la giuria non si e’ ancora pronunciata sul da farsi) e quindi si stava prendendo in considerazione di avere la gestione degli utenti su LDAP. Poi, per qualche motivo, LDAP era stato scartato dal novero delle possibilita’ e l’attenzione si era concentrata su una semplice tabella nel database (postgre).

Essendo io rimasto alla versione "no ldap ma postgre" casco dalle nuvole e domando… E cosi’ risulta che la decisione e’ stata rigirata durante le mie ferie e non uno ma bensi’ DUE server LDAP sono stati preparati (con copia master/slave dei dati).

Rispondo pertanto che il server sarebbe anche pronto ma che il database e’ vuoto. Segue altro panegirico di mails tra il programmatroto, l’UL e noi sul modo migliore di "migrare" il database utenti… modo che alla fine risulta essere la creazione di una tabella nel database postgre e la successiva importazione della stessa tabella in LDAP.

Ed ovviamente le modifiche alla base dati LDAP probabilmente seguiranno la stessa procedura: prima modifiche al db postgre e poi riporto in LDAP. Rendendo ldap stesso completamente ridondante.

Ma basta avere le idee chiare no?

Davide

legenda personaggi

[SdSM] Failsafe

 Scritto da alle 06:27 del 06/05/2012  Nessuna risposta »
Mag 062012
 

safe

Tanto tempo fa, c’erano i computers, che erano quelle cose complicatissime e costosissime che richiedevano una frotta di tecnici in camice bianco sempre a svolazzare intorno ed aggiustare o ritoccare cose per farli funzionare. Poi il mito della "infallibilita’" si e’ sparso ed oggi abbiamo i peesee che sono quei cosi che funzionano quando ne han voglia loro ed i cui proprietari continuano ad aggiustare e ritoccare nel tentativo di farli funzionare. Ed abbiamo i server che sono come i peesee, ma (di solito) se ne occupano i sysadmin, che sono quegli esseri leggendari che si narra vivano in un qualche antro sperduto nei sotterranei del palazzo e nessuno ha mai visto in persona.

Che si fa per evitare che un… qualcosa si rompa con facilita’? Semplice: lo si rende fail proof. Che e’ come dire "inaffondabile" nei riguardi di una nave. Un modo molto fantasioso per dire "quando qualche cosa va male preparati ad una catastrofe".

Un sysadmin intelligente sa che il miglior sistema e’ quello di avere dei backup, anche nei riguardi dell’hardware. Questo e’ quello che si chiama "evitare i Single Point Of Failure", che in termini meno tecnici significa "evitare che quando UN COSO si guasta provochi una catastrofe". I vari SL ed UL hanno opinioni contrastanti in genere. Fa’ tanto figo da dire nelle riunioni, ma quando cominciano a vedere i costi lievitare per "dispositivi di backup" e "ridondanza del sistema" cominciano a strillare di "sforamenti di budget" et similia.

Poi ci sono i casi estremi… come quello che mi e’ capitato questa settimana con $noivendiamolibri, che e’ una ditta specializzata nel vendere, comperare, riciclare e rivendere libri di testo scolastici ed altre cose cosi’.

Tempo addietro avevano un sistema composto da due server di produzione collegati ad un database server dietro ad un load-balancer. Il load-balancer ed il db server erano gli unici elementi che potessero dare dei problemi.

Poi, per qualche strano motivo, digestione difficile probabilmente, l’SL di turno si e’ fatto intortare dal marketdroide di turno ed un nuovo fiammante sistema e’ stato implementato. Il nuovo sistema si basa su numero UN server di produzione (dovrebbero essere due ma il secondo risulta non operazionale), un server LDAP (Il cui scopo e’ tutt’ora ignoto), un server di indicizzazione e due server di ricerca (di cui uno dei due e’ sempre non operazionale e no, non e’ nemmeno ‘standby’), un server di database con ennemila istanze per gestire il tutto e ben 3 load balancer. Uno attaccato al server di produzione, uno per il server di ricerca ed uno per il server LDAP. Ora, che senso abbia un load balancer con UN solo backend e’ tutto da discutere, ma questo e’ quanto.

Il risultato e’, come feci notare quando l’intero ambardan venne presentato, che il numero di ‘single point of failure’ e’ aumentato a sette (!) in quanto ogni singolo server sembra essere ‘essenziale’ per il funzionamento dell’intero sistema e se qualche cosa va male, l’intero accrocchio cessa di funzionare. Non solo ma, come scopriamo rapidamente, il malfunzionamento di uno dei componenti provoca errori a catena che sono molto difficili da tracciare al "vero" colpevole.

E cosi’ arriviamo ad oggi. Sabato mattina. Ore 3.45. Si’, significa un quarto alle quattro del mattino. Quando il malefico guinzaglio-cellofono comincia a suonare per avvisarmi che l’intero ambaradan e’ fuori servizio. Il che significa che UNO QUALUNQUE di quella montagna di servers potrebbe avere dei problemi.

Ok, silenzia il coso, verifica via browser e trovo la paginetta di "fuori servizio", il che significa che il load balancer che dovrebbe essere davanti ai vari server di produzione funziona, vediamo un po’ come funziona il server di produzione. Ed un login dopo scopro che il server sta funzionando ma scrive errori su errori lamentandosi che non riesce a connettersi con il famoso server di ricerca, il quale sembra a sua volta funzionare ma non riesce ad aggiornare i dati dal server di indicizzazione, il quale a sua volta sembra funzionare ma non riesce a leggere salca$$ocosa dal server di database, il quale a sua volta… Il tutto condito da bestemmie ed imprecazioni perche’ niente mi ispira di piu’ che l’essere svegliato alle 4 del sabato mattina da un cellofono isterico. Nyaaaaahhhhhh!

Dopo una manica di stop, start, stop, stop, muorifottutobastardo, start, check, re-check e cosi’ via, traccio il problema in un crash silenzioso del server ldap. Il che significa che il servizio LDAP pare funzionare ma non ritorna nessun risultato. Ovviamente non basta riavviare il servizio, occorre manualmente lanciare una riparazione del database, fermare e riavviare il servizio, aspettare che sia avviato e poi riavviare tutti i foxxuti servizi su tutti i foxxuti servers!. Con l’eccezione dei load balancer e del server di database che sono solo dei passacarte.

E meno male che il branco di dementi che hanno proposto questo setup lo hanno promosso come "fail-safe".

Davide

legenda personaggi

[SdSM] L’esperimento

 Scritto da alle 06:27 del 01/05/2012  Nessuna risposta »
Mag 012012
 

ampolle

Ci sono due macchine del caffe’ nel mio ufficio. Sono identiche. Vengono caricate con la stessa qualita’ di caffe’ (spesso dallo stesso sacchetto), l’acqua che usano e’ la stessa. In sostanza, il caffe’ che producono e’ praticamente identico.

Un po’ di tempo fa ho messo due etichette sulle macchine, una delle due dice "Forte", l’altra (prevedibilmente) "Debole". Il 98% dell’ufficio usa la macchina ‘Forte’. La macchina ‘Debole’ e’ usata solo da me e pochissimi altri. Un mesetto fa circa ho scambiato le etichette. Prevedibilmente, l’uso delle macchine si e’ spostato in accordo.

Ci tengo a precisare che ho solo scambiato le etichette, non ho fatto altro. Il caffe’ prodotto e’ sempre lo stesso.

Ora, io sono praticamente certo che se facessi delle analisi chimiche risulterebbe che il caffe’ prodotto e’ assolutamente identico. Il che mi lascia una sola teoria: la gente e’ scema.

Davide

legenda personaggi

[SdSM] Prima aggiustalo

 Scritto da alle 06:27 del 25/04/2012  Nessuna risposta »
Apr 252012
 

Schermo_di_Windows_rotto

Ho gia’ descritto, molto a grandi linee, un certo ambiente ed i programmatroti che se lo gestiscono. Devo’ pero’ dire che i programmatroti non hanno sempre tutta la colpa. Qualche volta mi sa che il ciellismo si spande attraverso le linee telefoniche ed infetta anche la nostra parte.

Tempo addietro, nel tentativo di frenare l’effetto-rincoglionimento e fare un po’ d’ordine in quell’ambiente, avevo modificato la documentazione relativa al rilascio di quel coso istruendo di rinominare la directory contenente la roba teste’ installata aggiungendo un ‘FATTO’ alla fine, in modo da avere una chiara idea di cosa fosse stato installato e (piu o meno) quando.

Ma capita che la gente non legga mai la documentazione e spesso le cose vengono fatte di getto. Ed il fatto che i server di quella gente sono Windows invece che Linux fa’ si che scrivere script di installazione non sia una cosa cosi’ immediata e, sempre per via del fatto che la gente non legge la documentazione, finiscano per non essere usati.

E cosi’ all’alba delle 8 del mattino mi becco l’odierno ticket che chiede un rilascio in produzione di "tutto quello che e’ stato aggiornato nell’ambiente di test negli ultimi tempi". Come se io sapessi che cosa e’ stato aggiornato nell’ambiente di test. Un controllo sul server di test mi dice che ci sono 19 directory relative ad installazioni, nessuna delle quali ha il suo ‘FATTO’ nel nome e non ho idea di cosa sia necessario fare per installarli. Rispondo domandando istruzioni dettagliate.

Le istruzioni dettagliate si riferiscono ad un rilascio standard (copia di file da una directory all’altra e poco altro). Io chiedo conferma che l’unica cosa da fare sia l’installazione dell’ultima versione ma pare che chi si occupa di solito dei rilasci presso $ditta non sia disponibile ed il nuovo CL sia particolarmente CL.

Vabbe’, alle 12 (chissa’ perche’ sempre all’ora di pranzo) comincia la giga. Metti la pagina di ‘manutenzione in corso’, ferma tutto, backup, copia, avvia… pare tutto ok. Va bene, missione compiuta (?).

Alle 16.30 (chissa’ perche’) cominciano ad arrivare i problemi. Pare che tutta una serie di funzionalita’ non siano piu’ tanto funzionali. Ravana un po’ e sembra che la versione installata sia piu’ veccchia di almeno 3 mesi rispetto a quello che doveva essere installato. In effetti la directory che avrebbe dovuto essere l’ultima si chiama ‘release-datagiusta’, ma la data dei files dentro e’ mica quella…

A questo punto scoppia il mezzo finimondo, con tutti quanti che cominciano a correre intondo urlando molto a lungo e molto forte.

CL – Ma come e’ possibile??
IO – Io ho domandato se la versione era…
DaBoss – Ma che e’ successo??
IO – La directory ci ha il no…
CL – Ma come e’ successo?
IO – La di…
DaBoss – Perche’ non e’ stato verificato?
IO – Il file di log aumenta di 10 mega al minu…
CL – Come mai e’ stato rilasciata una versione precedente??
IO – Le tue istruzio…
DaBoss – Ma come e’ possibile??

Ripetete quanto sopra quante volte volete. O meglio, ripetetelo finche la rotazione dei miei testicoli non ha raggiunta la potenza di un uragano ed il fumo non ha cominciato ad uscirmi dalle orecchie.

IO – (esplodendo) Senti! Vuoi le mie fottute dimissioni? OK, ce le hai. Adesso vogliamo piantarla con questi piagnistei e rompimenti di cazzo del "chi ha la colpa" e passare alla fase "metterla a posto" ?? Che possiamo andare avanti all’infinito se proprio non hai niente di meglio da fare ma credo che risolvere il fottuto problema dovrebbe venire prima del dare la colpa a qualcuno!
DaBoss – Ma io non incolpo te e’ che…
IO – E allora perche’ siamo qui’ a parlare invece di risolvere il problema?
DaBoss – E’ che vorrei capire …
IO – HO COPIATO LA FOTTUTA DIRECTORY SBAGLIATA PERCHE’ IL NOME ERA QUELLO GIUSTO! Quale parte non hai capito?
DaBoss – Ah bhe’… allora sarebbe meglio spiegarlo a CL…
IO – E’ un’ora che ci sto provando, ma secondo me prima delle spiegazioni dovrebbe venire la riparazione dell’arnese. Possiamo procedere a rimettere in funziona questa chiavica?

Finalmente, dopo un lunghissimo tira-e-molla, il CL responsabile dei rilasci viene rintracciato, e salta fuori che l’installazione richiede anche una batteria di aggiornamenti al database, aggiornamento che non erano noti a nessuno. Poi salta fuori che il file di configurazione di questo e quest’altro servizio e’ sbagliato e deve essere modificato a mano, modifiche che erano state fatte sull’ambiente di test da un mio collega al telefono con il programmatroto ed ovviamenta mai riportate nel file originale ne’ documentate da nessuna parte.

Poi risulta che una DLL deve essere rinominata altrimenti entra in conflitto con una preesistente… insomma, un patema.

Dopo 3 ore di madonne e ravanamenti finalmente il tutto e’ aggiornato e funziona correttamente, o almeno non riporta errori peggiori di prima. E straordinariamente CL ammette che la mancanza di chiara documentazione o di una chiara procedura e’ probabilmente la causa principale del macello. E straordinariamente (probabilmente nevichera’) si rende disponibile per una discussione sul come migliorare la procedura di rilascio di quella chiavica.

Ma perche’ per far capire le cose bisogna che capiti un macello?

Davide

legenda personaggi

[SdSM] DaBoss

 Scritto da alle 06:27 del 22/04/2012  Nessuna risposta »
Apr 222012
 

ImTheBoss

Entro nell’ufficio Sviluppo Web con passo baldanzoso, il laptop ed un fascio di fogli sotto al braccio.

IO – (rivolto al PhProgrammatroto di turno – CL1 per gli amici) Ora del meeting!
CL1 – Eh? Huh? Quale meeting?
IO – Molla minecraft e cammina.

Prossima fermata: l’ufficio WebDesigners, dove stacco un paio di DesignersTroti da MineCraft (CL2 e CL3) e trascino tutti in sala riunioni.

IO – (attaccando il lapdog al proiettore) Alura, come sapete, dato che sono stato nominato ProjectLader per questa roba, mi sono anche auto-nominato Quality Insurance and Beta-Tester. Il che significa che ho passato un paio di giorni tortur…cioe’ provando quella chiavica di sito web. Siamo qui riuniti per vedere a che punto e’ ed i problemi e come si puo’ risolvere.
CL1 – Ma che problema c’e’, tanto andiamo in produzione in due settimane…
IO – Ed il che significa che abbiamo una settimana di tempo per risolvere gli eventuali problemi, che non sono tanto eventuali.
CL2 – E noi che c’entriamo?
IO – Dato che voi avete disegnato la veste grafica del sito, c’entrate e come. Adesso se chiudete la bocca 5 minuti vi spiego.

Attivo il lapdog ed accedo al sito interdet. Che si mostra in tutta la sua spettacolarita’ con font microscopici.

IO – Punto primo (toccandmi gli occhiali) io son cecato. ‘Un vedo ‘na mazza, quindi devo ingrandire i caratteri, ma se lo faccio (ingrandisco il font, tutti i testi cominciano a sovrapporsi uno con l’altro, il "menu" scompare parzialmente sotto le immagini, le colonne si sballano) non si capisce piu’ un tubo ed il sito diventa uno schifo inusabile.
CL2 – Ma il font e’ scelto per apparire ordinato, se si cambia ovviamente si sballa tutto.
IO – Ordinato e’ ordinato ma a me un font che non riesco a leggere sembra meno utile di un font disordinato ma utile. Percui, punto uno: ridisegnare sta cosa in modo che io possa ingrandire il testo e continuare ad usarlo.
CL2 – Ma il CSS e’ fatto cosi’…
IO – Ottimo, quindi cambiare il CSS, se non si puo’ cambiare eliminarlo.
CL3 – (inorridisce) eliminare il css???
IO – A me non me ne frega niente di come fate, sistemate sta cosa.
CL3 – Ma non e’ possibile.
IO – Allora, non ci siamo capiti, ricominciamo tutto da capo… Salve, io sono D, sono il vostro capo. Il che significa che io vi dico cosa fare e voi trovate come farlo e non ditemi che non si puo’ fare perche’ putacaso io l’ho fatto e quindi so anche che e’ possibile. Adesso andiamo avanti.

Riduco il font finche’ le varie cose non appaiono sempre sballate ma almeno usabili.

IO – Allora, io vedo gli eventi che sono pubblicizzati, questo mi sembra interessante, clicco qui’ per avere le informazioni, mi sembra interessante, allora voglio prenotarlo… come ca$$o si fa’?
CL1 – Bisogna andare nelle ‘prenotazioni’ e…
IO – Hai intenzione di telefonare a casa o visitare di persona tutti quelli che usano il sito per spiegarglielo a voce? Perche’, se si, sappi che non intendo pagarti le spese di viaggio.
CL1 – …bhe no.. ma mi pare ovvio che…
IO – A te pare ovvio. A me pare ovvio che se io sono su un evento e voglio prenotarlo non dovrei ritornare indietro e schissare su prenotazioni, ma andiamo avanti, allora io ritorno indietro e schisso su prenotazioni, a questo punto lui mi domanda una caterva di roba, mettiamo il caso che io voglia sapere quanto costa… come si fa? Risposta: devo compilare un bordello di dati (che probabilmente sono memorizzati in un database) poi devo scegliere l’evento e guarda caso per sceglierlo devo sapere il suo codice… che e’ riportato sulla pagina dell’evento, quindi o mi apro un altro browser e ri-cerco l’evento o sono fregato.
CL1 – Ma la descrizione…
IO – La descrizione non e’ univoca. Il che significa che ci possono essere ‘n’ eventi con la stessa descrizione. Chi e’ che ha progettato il database? Appunto, lo supponevo. E’ chiedere troppo avere un link "prenota questo evento" sulla stessa pagina dell’evento?
CL1 – …bhe no.. ma…
IO – E’ chiedere troppo avere una informazione di quanto costa la prenotazione dell’evento prima di dover immettere un bordello di dati?
CL1 – …hemmm…
IO – Ma andiamo avanti. Ok, supponiamo che io mi ricordi il codice dell’evento cosi’ posso prenotarlo. Allora ci sono i vari ‘elementi’ dell’evento… workshop, demo e cosi’ via… Io seleziono quello che voglio, poi devo confermare i dati che ho gia’ immesso prima (perche’?). Adesso supponiamo che io voglia prenotare per 2.
CL1 – Allora, una volta selezionato l’evento ed immessi i dati prima di confermare c’e’ il link "invita" che…
IO – Che mi ripropone l’intera sboba. Se voglio invitare qualcuno ovviamente quel qualcuno dovrebbe essere interessato agli stessi elementi che ho selezionato io, perche’ non mi propone semplicemente una domanda "per quante persone stai prenotando" fin dall’inizio cosi’ evito di dover rifare tutto enne volte?
CL1 – Ma la prenotazione e’ personale e c’e’ la mail di conferma…
IO – E che problema c’e’ ad inserire due nomi e due e-mail, o ‘n’ nomi ed ‘n’ e-mails in un colpo solo?
CL1 – Ma…
IO – Allora (prendendo i fogli ed aprendo un sito ‘locale’ sul mio PC che riporta la mia idea) mettiamo il caso che io abbia un link ‘prenota questo evento’ sull’evento stesso (indico il link), clicco qui ed ottengo una maschera fatta cosi’ che dice "per quante persone vuoi riservare?" io scelgo 2. Adesso mi presenta due campi ‘nome’ ed ‘email’. Poi posso selezionare gli elementi che mi interessano dell’evento e poi posso andare al pagamento.
CL1 – Ma mettiamo che ognuno voglia pagare per se…
IO – In tal caso sono due persone separate e possono prenotare separatamente, oppure posso semplicemente fare click su questo check-box che dice "conti separati" e l’altra persona ricevera’ una mail che riportera’ un link per completare il pagamento. Altre domande?
CL1 – Hemmm.. come mai non c’e’ il numero di telefono nella maschera?
IO – Perche’ ho gia’ l’e-mail che e’ sufficiente per altro quanta gente immette il loro vero numero di telefono invece di 0123456789 ?

IO – (rivolto a CL2 e 3) Oh, a proposito…

Ingrandisco il font del sito una dozzina di volte, tutti gli elementi si spostano e scorrono riaggiustandosi in funzione del font)

IO – Ok, adesso e’ talmente grosso che devo scorrere da una parte all’altra per vederlo tutto, ma e’ tutto visibile ed usabile, quindi non ditemi "non si puo’ fare".
Nei fogli che vi ho dato ci sono gli altri problemi che ho incontrato usando il sito, la stessa roba e’ stata inviata via mail, adesso avete fino a lunedi’ per mettere a posto sta roba. beep boop Il che significa che poi io avro’ un paio di giorni per trovare altri bachi BEEP BOOP e dopo un altro ciclo di correzioni dovremmo essere sufficientemente pronti BEEEEEP BOOOOOOP per andare in produzione in due settimane FSCKING BEEEEEEEP BOOOOOOOOOO…

Aaaghhh !! Aiut.. la sveglia.. mannagg.. che incubo meravigliosoorrendo… deve essere stato il troppo tempo passato a cercare di prenotare quel foxxuto seminario.. urgh.. maledetti programmatroti e disegnatroti.

Davide

legenda personaggi