La fondamentale importanza di reinventare la ruota

È un anno che mi sono laureato ma questo vuol dire poco perché quando uno si laurea in cose tipo medicina o ingegneria il puro esercizio teorico non esiste, e quindi nella realtà dei fatti sono a contatto con la cosiddetta industria da un po’ più di un anno, abbastanza da essermene fatto un’idea sufficientemente precisa. E tragica.

Nell’industria, in generale, esiste una serie di regole che, anche se non sono codificate esplicitamente, tutti conoscono e cercano di applicare meglio che possono, condendole con copiose dosi di buon senso quando serve, perché proprio di questo si tratta: le “buone pratiche“. Ora, ci sono buone pratiche note dall’alba dei tempi, tipo che è più saggio costruire un aratro solido invece di continuare a rompere badili come in Minecraft. O tipo che è una cosa stupida reinventare la ruota ogni volta che dobbiamo spostare del materiale: sappiamo già com’è fatta, e probabilmente c’è qualcuno che ha imparato a costruirla di gran lunga meglio di noi. Penso che fino a qui siamo tutti d’accordo [1], le buone pratiche ci risparmiano fatica e in più beneficiamo della conoscenza accumulatasi col tempo a riguardo.

La reinvenzione della ruota

Il mio primo contatto con l’industria informatica del mondo reale è avvenuto facendo siti e applicazioni web. Prima l’avevo soltanto sfiorata e, da quel che ero riuscito a vedere, mi ero abbastanza convinto che ne esistesse una porzione virtuosa che sa quello che fa e agisce in modo ragionevole seguendo, oltre alle regole codificate proprie della disciplina, anche le buone pratiche. Piombatomi a capofitto nelle applicazioni web, il primo indizio che qualcosa non andava l’ho avuto informandomi sulle buone pratiche del campo e su quali strumenti esistono per facilitarsi il lavoro e concentrarsi più sugli obiettivi che sulla manovalanza. Tragicamente ho scoperto che di buone pratiche ce ne sono a montagne, e almeno altrettanti sono gli strumenti tipo application framework, software già pronti, eccetera. Tragicamente perché ciascuno di questi strumenti nasce da un’osservazione fondamentale: “nessuno di questi strumenti fa proprio tutto quello che mi serve, o lo fa in un modo che non mi piace, quindi tanto vale che mi arrangi” e giù a scrivere l’ennesimo rimpiazzo che, se mai verrà pubblicato, a sua volta non farà qualcos’altro o lo farà in modo che a qualcun altro non piace. Ma se questa fosse la parte peggiore…

Dopo aver ricostruito alcuni siti già esistenti, siti appartenenti spesso a piccole e medie aziende e realizzati da professionisti o studi specializzati, mi sono reso conto fino in fondo dell’abisso in cui mi ero cacciato. Ognuno di questi siti era stato costruito secondo la sola regola che “piuttosto che sprecare tempo e fatica a cercare uno strumento che mi aiuti a sprecare meno tempo e fatica, tanto vale che faccia tutto da me”. La giustificazione che di norma veniva usata coi clienti era che “a noi piace avere il pieno controllo su quello che facciamo, così siamo sicuri di consegnare un prodotto senza fronzoli, artigianale, ritagliato su misura attorno al cliente” e giù zeri in fattura. Tralasciando la surreale pretesa di artigianalità quando si suppone di lavorare in quella che invece si configura esattamente come un’industria, concentriamoci sulla lista di alcuni degli orrori che questa mentalità produce.

  • Sicurezza: non esiste. In un solo caso ho visto la bonifica di URL, parametri, e codice HTML per evitare spiacevoli conseguenze. Non dovrei aggiungere che, approfondendo, le funzioni che dovevano mettere in sicurezza queste porzioni critiche erano in realtà degli stub che restituivano liscio il parametro di ingresso.
  • URL significativi: a meno che “front.jsp?p=100&sez=3&a=prodot1″ abbia un significato per vostra nonna… per la mia, no.
  • HTML valido: e sì che basterebbe così poco per evitare problemi quando l’inesperto che aggiorna il sito sminchia l’editor di testo e lascia inavvertitamente un tag aperto.
  • Requisiti sovrumani per la gestione: mi correggo, l’inesperto di cui sopra non esiste. Il sito è aggiornabile solo da non meno di un laureato in informatica. O da chi l’ha fatto, con l’indubbio vantaggio che il cliente è costretto a tornare da voi e pagarvi altri soldi. O che chiunque sia da esso contattato, perché voi nel frattempo avete “rifocalizzato le vostre priorità di business” [2], alzi le mani in tempo zero e proponga di rifare tutto “perché quegli incompetenti non sanno neanche di stare al mondo” e poi, tanto per non farci mancare niente, è tutto rotto come prima (aka è fatto allo stesso artigianale modo, quando non peggio) e il cliente ha perso un’altra fraccata di soldi.
  • Separazione tra logica e contenuti: eh?
  • Usabilità: “ah, sì, ne ho sentito parlare una volta da un tipo che però non sapeva neanche accendere il computer”.

Tondelli di acciaio

Se tutto il problema stesse al livello delle piccole aziende e delle applicazioni web, la cosa sarebbe ugualmente tragica, ma uno potrebbe pensare che magari salendo di livello le cose migliorino. Sbagliato.

Ho fatto numerosi colloqui con aziende di varie dimensioni. La costante, quando il colloquio si sposta sul lato tecnico, è questa: “abbiamo sviluppato un nostro application framework [o qualsiasi altro software] innovativo ed efficientissimo [...]“. Questo è il momento in cui in genere comincio a notare che alle pareti non ci sono quadri, sulla scrivania ci sono due penne e un orologio, e fuori dalla finestra si stende un desolato panorama che varia da “parcheggio aziendale” a “future opportunità d’impresa”, e il torrente in piena di buzzword che escono dalla bocca del mio intervistatore diventa un irritante brusio di fondo.

Una volta mi è stato chiesto se avevo domande e, dato che l’intervistatore mi aveva dato l’idea di essere uno sveglio, ne ho approfittato per chiedere come mai c’è questa ossessione delle grandi software house verso la generazione automatizzata di codice usando strumenti nati per fare tutt’altro: in due parole, UML scaffolding [3]. La risposta è stata, a suo modo, illuminante. Essenzialmente il loro magnifico application framework [4] è tutto un brulicare di funzioni che svolgono più o meno tutte operazioni analoghe. Ora, se produci tondelli di acciaio non è che ti metti a batterli a mano dentro lo stampo di ghisa, compri una macchina che ne fa centinaia al minuto, e su questo penso non ci piova. Il ragionamento sembrerebbe calzare: se devi scrivere decine, centinaia di funzioni tutte praticamente uguali, tanto vale che ne scrivi una e poi la fai replicare al computer, d’altro canto abbiamo inventato le macchine proprio per questo. Il meraviglioso castello dorato però si incrina quando escono le cifre: queste funzioni contano per circa il 5% delle righe di codice. Tutto il resto va comunque scritto a mano.

Per carità, non voglio suggerire che a quel punto tanto vale scrivere a mano anche quel 5% di codice, sarebbe folle e incrementerebbe di migliaia di volte la probabilità di introdurre bug invisibili. Eccetto il fatto che, stando al signore di cui sopra, almeno un 10-20% di quelle funzioni generate automaticamente hanno comunque bisogno di un intervento manuale per casi particolari. Proseguendo nella sua spiegazione–che ad onor del vero mi è sembrata molto più lucida e convincente di tante altre a cui ho assistito da parte dei sostenitori di UML–mi racconta poi che hanno sviluppato un loro linguaggio visuale di documentazione di più alto livello in cui integrano i componenti da loro già sviluppati modularmente in modo da poter essere scaffoldati dentro l’applicazione [5] per cui infine generano il 90% del codice in modo automatico, e così compongono le applicazioni che venderanno ai clienti abbattendo notevolmente i costi di sviluppo. Ok, fin qua mi sembra tutto plausibile, addirittura miracoloso, un po’. Ma tornando ai numeri: 5% di codice generato automaticamente di cui 10-20% dovrà comunque essere modificato. Componenti prefabbricati copiaincollati dentro un’applicazione personalizzata. L’unica cosa che mi viene in mente è: duplication galore! Supponendo che due clienti abbiano bisogno del modulo per accedere al database dei dipententi, avremmo due applicazioni separate con una gran parte di codice duplicato. Se trovi un bug in una poi devi riprodurre le modifiche nell’altra ripetendo tutto il processo che parte da quel linguaggio miracoloso sviluppato per abbattere i tempi di sviluppo. Considerando che di clienti, un’azienda un po’ grossa, non ne ha due, ne ha duecento, penso che cominciate a vedere anche voi le falle in questo piano. A quel punto non era meglio sviluppare un vero framework condiviso riutilizzabile senza rigenerare l’intera applicazione ma solo, eventualmente, le parti sviluppate per quel particolare cliente? Tipo le librerie condivise che si usano più o meno dagli anni ’80? A quel punto si tratterebbe di mettere mano al restante 5% del codice, se mai ce ne fosse bisogno, comunque, perché se l’API è stabile, lo strato esterno non se ne deve proprio accorgere. Non so perché ma sento puzza di artigianato.

I maggiordomi in tutta questa storia

A questo punto un lettore distratto potrebbe vedere questo post come uno dei miei soliti sbrocchi contro i colletti bianchi, ma il punto è che non è così. Non solo. Certo una parte della colpa sta in chi lavora male, per pigrizia, per imperizia (e lo so io quanti incompetenti lavorano in un’industria senza garanzie formali di Qualità come quella informatica) o per mala fede. Ma una parte della colpa sta anche nei clienti.

Nessuno, guardando un tornio o una betoniera, ha dubbio alcuno su come funzionino queste due macchine. La cosa è sotto gli occhi di tutti: nel tornio c’è un pezzo di qualcosa che gira e una lama lo modella, nella betoniera c’è una grande cosa che gira e mescola la malta. È tutto un gran girare di cose, e le cose che girano sono palesi–disse Galileo.

Nei computer non c’è niente che si vede girare, nessun organo in movimento, sono artefatti di pura magia nera, ed è a quel punto che diventa più facile credere al fluido magnetico e smettere di preoccuparsene. Risultato: i clienti non sono in grado di controllare l’operato di chi lavora per loro, e chi lavora per loro si sente quindi autorizzato a lavorare nel modo che ritiene più opportuno, cioè quello che gli fa sprecare meno fatica nel breve periodo. Tanto si sa che l’informatica è un mondo in rapidissima evoluzione, oggi ci sei, domani non lo sai, e tantomeno sai chi sarà il poveraccio che si troverà a dover fare assistenza sul tuo software perché il tuo cliente ti ha mollato dopo l’ennesima fattura troppo salata in relazione al numero di volte che ti ha dovuto chiamare perché qualcosa non andava. Mi pare ovvio: se chiami l’idraulico dieci volte in tre mesi e alla fine c’è sempre qualche guasto nuovo, qualche domanda te la fai.

Il punto in tutto ciò è quindi duplice: clienti che non sanno cosa possono chiedere e cosa no, e che quindi spesso chiedono cose improbabili a un’industria terrorizzata di perdere commesse che si costringe a produrre accrocchi sempre più improponibili pur di accontentare ogni capriccio, pure il più insensato, in nome del “tanto il computer batte l’uomo a scacchi, vuoi che non sappia prevedermi come saranno le vendite di calcestruzzo nel prossimo quinquennio fornendogli i dati delle vendite di mojito nel bar sotto casa di mia suocera negli ultimi sei mesi?”.

La parte più scocciante in tutto questo è quando io cerco, nel mio piccolo, di lavorare secondo coscienza e buone pratiche e mi sento dire “bravo, ottimo lavoro, hai fatto come a scuola”. Cioè ho fatto il compitino? A me pare il minimo sindacale. “Eh–risponde rassegnato–purtroppo non funziona così”.

Allora, vogliamo alzare anche noi un po’ il culo e l’asticella? Qualcuno dovrà pure cominciare, e se aspetti i clienti, specie quelli che si occupano di calcestruzzi…

  1. Lo so, mi illudo, ma l’illusione aiuta a farsi largo nel letame, quindi portate pazienza.
  2. Che poi vuol dire che siete falliti e avete dovuto iniziare a vendere gnocco fritto sulle spiagge per pagare i debiti.
  3. Su UML avrei tutto un discorsone da fare ma me lo tengo per un’altra volta.
  4. In Java, altro argomento su cui ho molto da dire.
  5. Aspe, fammi rivedere cos’è UML… oh, wait.

Riarredare ogni 823 anni

Mi è arrivata la solita email in cui si banfa il fatto che il prossimo luglio avrà cinque venerdì, cinque sabati e cinque domeniche, e che chi provvederà a intasare le caselle email di altre otto persone riceverà fracchi di soldi entro quattro giorni. A ulteriore garanzia della cosa si cita il “Feng Shui cinese”. Sono già in affanno, andiamo con ordine.

Aprendo un qualsiasi calendario [1] scopriamo una cosa interessante, e pure un po’ matematica [2] e cioè che sette volte quattro fa ventotto, e di mesi con ventotto giorni ce n’è uno solo, per di più neanche tutti gli anni. Gli altri mesi in genere hanno trenta o trentuno giorni. Quindi un mese è formato da almeno quattro settimane, a volte qualche giorno in più. Escludendo febbraio, questi giorni in più possono essere due nei casi dei mesi da trenta giorni, e tre nei casi dei mesi da trentuno giorni. Ora, questi giorni in più da qualche parte dovranno pure uscire. Supponiamo che il mese inizi di lunedì. L’ultimo giorno della settimana sarà quindi domenica, il giorno successivo di nuovo lunedì. Fin qua ci siamo ancora tutti o qualcuno si sta già tenendo la testa sulle ginocchia dondolandosi perso nei terribili ricordi della matematica di prima elementare?

Bene. Se facciamo due conti–oddio, no, fermi, scusate, i conti… vabbè, ho perso metà dei lettori–scopriamo che l’ultimo giorno della quarta settimana di un mese che inizia di lunedì è ancora domenica. E siamo a ventotto giorni. Il ventinovesimo giorno è lunedì. Meraviglia! Abbiamo trovato un mese con cinque lunedì! Ma i mesi da soli ventinove giorni ci sono una volta ogni quattro anni, gli altri sono da trenta e trentuno. Quindi il trentesimo giorno sarà martedì. Meraviglia! Cinque martedì! Se guardacaso poi il mese in questione avesse trentuno giorni, il trentunesimo sarebbe mer–ok, meravigliatevi voi ché io sono un po’ stanchino di fare il mona. Per lo stesso motivo credo sarebbe un insulto troppo grave alla vostra intelligenza ripetervi il ragionamento nel caso il mese iniziasse di venerdì. Il risultato comunque è che avremmo trovato un mese con cinque venerdì, cinque sabati e cinque domeniche. Meravi–un ca.

Ora, circa il fatto che un mese siffatto succeda ogni 823 anni non ho voglia di fare i conti, ma è facilmente sbugiardabile scorrendo il solito calendario, questa volta meglio se motorizzato, fino a marzo 2013. Meraviglia? Se questo vi meraviglia, non trovo affatto difficile credere che vi siate bevuti anche il collegamento col feng shui, che è un’antica disciplina cinese di arredamento che insegna come disporre il mobilio per ottenere certi presunti vantaggi.

Comunque non c’era veramente bisogno di fare tutti questi ragionamenti. Basterebbe scrivere “mese con cinque venerdì” su Google e scoprite subito che vi siete risparmiati la figura dei creduloni, e l’odio di chi si vede intasata l’email dalle vostre scemenze, con un’azione che è durata meno che rigirare l’email a otto (o mille) persone. Ora ve la do io una cosa di cui meravigliarvi: alla prossima email che promette fortuna, soldi facili, o che parla di bimbe affette da una grave e rarissima malattia, o giovani studenti poveri e russi che devono accedere a Internet dalla biblioteca perché non guadagnano abbastanza neanche per pagare le medicine alla mamma moribonda, buttate qualche parola chiave su Google: meraviglia!

  1. Suvvia, ce l’avete tutti se fate doppio clic sull’orologio in basso a destra o se guardate nel cellulare, o… beh, se avete un calendario di qualche sorta.
  2. Oddio, nooo, la matematica, ora iniziano calcoli complicatissimi, io la matematica la odio, in terza elementare… e poi al liceo… gli alieni… le cavallette!

Got a Mac

Grazie soprattutto al decisivo contributo di Loredana, che forse ricorderete come l’unica donatrice del compianto “Give A Mac”, [1] finalmente anch’io ho levato le tende dalle colline erbose [2] e le ho piantate in un frutteto del Trentino, solo gestito da un allevatore di struzzi con un master in Metafisica all’Università di Calcutta. Ma non divaghiamo: mi sono comprato un iMac, uno di quelli nuovi, grande 27” e con quel simpatico processore che si diverte a truffare i suoi utenti facendo finta di avere quattro core più del normale [3]. Questo post, più che a informare voi fedelissimi lettori [4] serve a me per non cadere vittima della mia usuale sindrome da deficit di attenzione. Avete presente il cane di Up quando vede lo scoiattolo, no? Ecco, a me succede coi giocattoli nuovi, e dato che non ho per le mani un computer al passo coi tempi da almeno 8 anni [5], il rischio di venire risucchiato per non meno di una settimana è reale.

Quindi a questo punto ho deciso di segnarmi le cose da fare e farle.

  • Metterlo in condizioni di lavorare include la necessità di due cose come minimo: installare Xcode, Photoshop e relativi amichetti [6].
  • Poi c’è anche da trasformare il leopardo delle nevi in un ambiente di lavoro per normodotati, cioè aggiustare il terminale con SIMBL, TerminalColors e Visor, e riconfigurare i tasti funzione per scopi più nobili che far apparire le previsioni del tempo e l’ora di Cupertino, CA.
  • Immediatamente dopo bisognerà scoprire come sostituire gli Apache, PHP, MySQL, Ruby e tutte cose che vengono apparentemente di default con Mac OS+Xcode, e questo sarà anche il momento per installare Portage e vivere felici.
  • Contestualmente dovrò installare crossdev, generare una toolchain per i686, e installare distcc nel porto, perché dopo oltre cinque anni di onorato servizio un premio se lo merita anche lui.

Poi ci sono altre cose da fare che però non sono immediate.

  • Mettere in funzione Logic, recuperare un numero congruo di microfoni per registrare la batteria, e diventare una rockstar.
  • Verificare la toolchain di default e metterla in condizioni di compilare normalmente C, C++, Qt, e roba di sistema, ché le mie radici [7] non me le sono mica dimenticate.
  • Installare Blender3D, reimparare ad usarlo, e realizzare alcune sciocchezze che ho in mente da un po’.

Sì, insomma, di roba da fare ce n’è, tipo procurarsi un condizionatore da 100m3, perché perfino il vecchio iMac da 21.5” con i3 scalda come l’inferno.

  1. Richard aveva invece donato per il Donate A Drumkit, ma quella l’ho comprata da mo’ anche grazie al generoso prestito a tasso zero di Elena :P
  2. … sotto cieli color ruggine, armati di railgun, come diceva il Poeta.
  3. L’i7, dotato di quattro core con Hyper-Threading, per chi ne capisce.
  4. Siete sempre i soliti quattro stronzi, lo so, e vi voglio bene per questo.
  5. Perfino il porto era quasi vecchio quando l’ho comprato ma faceva bene quello per cui mi serviva e quindi andava bene.
  6. BWAHAHAHA, FINALMENTE posso programmare e usare programmi di grafica degni senza riavviare! Ok, Xcode fa schifo per quello che non è Objective C, e anche per quello non è che brilli, ma c’è pieno di IDE a questo mondo…
  7. Che sono fatte anche di tOfuS.

Recap

Dal due febbraio è passato più di qualche fiume sotto i ponti e altrettante cose sono successe. Una di queste, probabilmente la più inutile di tutte dato lo stato delle cose, è che mi sono abilitato come ingegnere e proprio ieri sono andato a gettare un po’ di soldi in direzione dell’Ordine. Sullo stato penoso del terzo settore dell’ingegneria avrei alcune cose da dire ma me le tengo per un altro post.

Poi è successo che ho trovato questo lavoro in cui faccio guadagnare altri soldi ad Apple scrivendo applicazioni per iOS. Ecco, una cosa la devo dire ma non finisce qui e i dettagli li tengo per un altro post: scrivere app per iOS è un inferno. Ora, per cominciare c’è una notevole differenza tra “scrivere applicazioni” e “programmare”, nel senso che la prima attività rappresenta quel sottoinsieme stretto e triste della seconda che a volte dà qualche effimera soddisfazione e solo occasionalmente presenta sfide intellettuali un minimo interessanti. Ma vabbè, tutti usiamo applicazioni e il mondo non andrebbe avanti senza, quindi è giusto fare anche il lavoro delle scimmie ninja, a volte. Il problema resta l’inferno: sono giunto alla conclusione che l’unica cosa che convince gli sviluppatori ad affrontare una spesa iniziale notevole (un Mac e uno o più iDevice), una quota annua (79 €), e il pizzo sulle vendite dall’app store (il 30% sulle app a pagamento resta ad Apple) è la base di utenti che ha acquistato iCosi e che è formata da gente che spesso è disposta a pagare ancora, e aziende che, pur di non mancare la Mela, sono disposte a spendere più soldi di quanti sarebbero necessari. Oh, io dico una cosa: se la gente chiede di essere fregata, perché dovremmo farci scrupoli?

Poi è successo anche che questo lavoro lo faccio a Verona, in zona industriale, un posto improbabile collegato da pochi, radi e scomodi autobus. Mettendoci anche le coincidenze artistiche di Trenitalia e la sua proverbiale gestione fantasiosa delle tabelle di marcia, sono costretto ad alzarmi alle 6:20 ogni mattina. Ora, uno di norma direbbe “trasferisciti” senza tenere conto di alcuni fatti fondamentali: primo, costa un sacco di soldi; secondo, lavorando in un settore equiparabile al lusso [1], non sono i clienti che corrono dietro a te ma sei tu che devi correre dietro a loro, e dato che questi sono spesso in posti ancora più improbabili della ZAI di Verona, bisogna avere un mezzo di trasporto personale. Solo che qua la ciccia manca (tranne che sul di me addome) e quindi niente.

Altra cosa che non è ancora successa ma probabilmente succederà a breve è che aprirò partita IVA, ma non per evadere le tasse, semplicemente perché la prima cosa che un’azienda mi chiede, prima ancora di “fammi uno sconto” o “e se togliamo l’accessibilità ai disabili mi fai uno sconto?”, è “ma la ritenuta d’acconto è detraibile?”, quindi almeno se gli faccio fattura si spera che sappiano cosa vuol dire e mi risparmino una domanda che sono stufo di sentirmi rivolgere, tipo “come si diventa scrittori?” per uno scrittore. Cazzo, leggi libri, prendi una penna e ti metti a scrivere, no? Non è che c’è la formula magica. Cioè, c’è, ma nessuno te la dirà mai e tu devi avere un culo spropositato per trovarla, oppure ti metti di lena e fai del tuo meglio come tutte le persone oneste, perché ognuno ha la SUA formula magica e copiare quella di un altro non ti porterà da nessuna parte. O almeno da nessuna in cui valga la pena essere. Ma sto divagando.

Altra cosa che è successa è che sto imparando a suonare la batteria. “Ma come–dice–non la suonavi già?”. Sì, ma tra suonarla e saperlo fare c’è un abisso. Io mi ci sono appena buttato e ora Elaine è scesa con la corda per… chiedermi cosa ci faccio lì. Vabè, sta andando tutto abbastanza bene, mi sembra di essere tornato ai tempi delle medie, quando avevo quasi paura di far male alle pelli, ma è un bella sensazione e qualche risultato si sta già vedendo. Insomma, buttarsi nel jazz senza salvagente serve.

Poi ho qualche anticipazione. Primo, ho il permesso di ripubblicare gli articoli che scrivo per Linux&C dopo sei mesi dall’uscita su carta, quindi appena finisco di metterli insieme e tradurli in tre lingue (-.-) pubblico quelli di Inkscape. Poi in questi giorni dovrebbe uscire il primo di tre articoli che sto scrivendo su Drupal, sempre su Linux&C, quindi fate la posta alle edicole e accattatevi il numero :) e se la trovate a Vicenza fatemi sapere dove. Per fine aprile dovrei avere pronto il secondo ma nulla so sui tempi di uscita in edicola: Linux&C ha una periodicità piuttosto aleatoria :) tenete d’occhio oltrelinux.com.

Secondo, forse sono in dirittura d’arrivo con un progetto a cui lavoro da parecchio ma che vorrei tenere ancora un po’ nell’ombra. Doveva essere pronto per febbraio ma sono successe cose. Ora forse sarà pronto nel corso di maggio, o forse giugno, dipende da quanti dindi riesco a mettere da parte. Ma se il giochino esce bene potrebbe addirittura essere un modo interessante per arrotondare.

Bon, il treno è in arrivo a Verona Porta Vescovo, la prossima fermata è la mia: sono pochi km, dovrebbe essere questione di 5 minuti, ma evidentemente il software di controllo non è stato scritto in Ada (e chi ha fatto Sistemi Operativi a Ingegneria a Padova sa di cosa sto parlando :)

EDIT: sette minuti dopo stiamo ancora sopra l’Adige -.-

  1. Anche questo sarebbe opinabile, ma qua la gente non l’ha ancora capita che siamo nel 2011 e che gli affari non si fanno più sulla parola e che il mondo è più grande di una volta e…