"Null" altro che un blog

at java.lang.NumberFormatException.forInputString(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source)

venerdì 10 settembre 2010

How many Justin Biebers could you take in a fight?
Created by Oatmeal

giovedì 5 agosto 2010

Demotivante

Qualche giorno fa a Catanzaro fui fermato da un ragazzo. Italiano, poteva avere si e no 35 anni, portava un passeggino, dentro al quale vi era una bimba, bellissima. Mi avvicinò e, molto educatamente, con la disperazione e l’umiltà che gli si leggevano in volto mi chiese qualche spicciolo. In cambio offriva quello che poteva: accendini, sacchetti della spazzatura, ombrelli, fazzoletti. Non ho potuto esimermi dall’aiutare quel ragazzo, laureato, disoccupato, senza una moglie, con una bimba a carico. Non era un imbroglione, glielo si leggeva in viso. Tutti quelli attorno a me e non solo seguirono il mio esempio. Non aveva nulla. Solo quella bellissima creatura. E faceva di tutto per darle da vivere. In italia c’è gente che, come questi 2, solo semplicimente per il fatto di essere mentalmente ritardati o parenti di politici hanno tutto, tanto da potersi magari anche permettere di ignorare gente come quel poveretto.

venerdì 18 giugno 2010

Il parcheggiatore (abusivo)

Risulta alquanto curioso quanto una figura professionale giuridicamente inesistente possa racchiudere in se una serie interminabile di aneddoti e curiosità. Parliamo del famigerato parcheggiatore abusivo, oramai considerato un vero professionista del suo settore, un imprenditore di se stesso che offre un servizio tanto utile quanto discusso.
Soltanto in un epoca relativamente recente, con l'affermarsi dell'automobile quale mezzo di trasporto di massa, si è venuta a creare tale figura, che ha velocemente acquisito una valenza quasi mistica racchiudendo un aspetto addirittura mitologico.
Parliamo di un mestiere, se così si può definire, nato dal nulla, o meglio dall'invenzione di qualche mente geniale, probabilmente in qualche grossa metropoli, approfittando della grossa mole di automobili che nell'ultimo secolo hanno invaso le strade dell'intero pianeta. Questo ipotetico inventore di figure professionali avrà probabilmente ben pensato di offrire un servizio di pubblica utilità agli automobilisti preoccupati di lasciare la propria auto incustodita, preoccupati magari di trovarla, una volta ritornati, ammaccata o graffiata. Ed è proprio grazie al forte legame che lega quasi ogni uomo alla propria autovettura, che questa figura professionale ha riscontrato un notevole successo nella nostra società. Egli non ha fatto altro, per anni, che offrire un servizio di pubblica sicurezza a pagamento, ad un costo relativamente basso, magari la cosiddetta "Na cosa a piacere". Dicevamo che è stato grazie al legame quasi affettivo tra un individuo borghese e la sua amata autovettura, che si è scaturita una veloce affermazione di tale figura. Mettiamo caso che fin dal principio, parcheggiare l'automobile per poi ritrovarla graffiata non avesse costituito una fonte di preoccupazione o di disagio da parte dell'automobilista, oppure mettiamo caso che in una civiltà ideale non fosse stato nemmeno immaginabile che qualcuno potesse rubare un'automobile... bene, in entrambi i casi la figura del parcheggiatore sarebbe risultata perfettamente inutile.
Il problema, tuttavia, è che, oltre al fatto che la civiltà ideale sopra citata non sia nemmeno auspicabile al giorno d'oggi, tante altre insidie hanno favorito l'ascesa del famigerato parcheggiatore abusivo nella nostra vita quotidiana, fino a farlo diventare un elemento imprescidibile nelle strade di ogni grande città che si rispetti.
Siamo nel terzo millennio, viviamo in una società in cui si professano buonismi di ogni tipo, in cui si è soliti lamentarci per la cosiddetta "Carta a terra", in cui si scrivono esposti alla procura della repubblica perché nel bagno dell'università manca la carta, in cui si occupano le scuole perché il 15 di Agosto i riscaldamenti non funzionano... E bene si, in una società come questa, riteniamo ancora del tutto normale pagare cifre esorbitanti al "tossico" di turno, per accostare la nostra automobile ai lati di una strada pubblica per la cui manuntenzione noi contribuenti paghiamo le relative imposte. Tradotto in due parole, dobbiamo pagare, a chi non paga le tasse, per avere qualcosa per cui noi paghiamo le tasse, un pezzetto di strada pubblica preso in prestito per poche ore o addirittura minuti.
Stiamo parlando di un reato grave, un reato che tutti i giorni non facciamo che alimentare versando l'obbligatorio dazio, o magari "Na cosa a piacere".

giovedì 18 febbraio 2010

Ingegnere? Lo dici a tua sorella.

Ecco cosa ne pensa un informatico di un ingegnere.

L'origine dell'odio feroce tra ingegneri del cazzo e noi informatici
risale alla seconda metà degli anni sessanta quando a Pisa il rettore,
il matematico Faedo (pace all'anima sua che anubi lo strabenedica)
ebbe l'intuizione di creare un corso di laurea per questa nuova
scienza sulla base delle esperienze del primo calcolatore elettronico
creato in Italia, il CEP, Calcolatore Elettronico Pisano.
Il rettore Faedo voleva creare un corso "ibrido" dove per le materie
"hardware" fosse coinvolta la facoltà di ingegneria e per le materie
matematiche legate al software venisse coinvolta la facoltà di scienze
matematiche, fisiche e naturali.
Il preside della facoltà di ingegneria gli rispose che non erano
interessati perché quella "nuova scienza" chiamata informatica secondo
lui non aveva futuro.
Quindi il corso di laurea in "Scienze dell'Informazione" fu istituito
a Pisa nel 1969 nella sola facoltà di Matematica e Fisica, dove è
ancora oggi col nome mutuato da qualche anno in "Informatica".
E negli anni successivi si diffuse oltre che a Pisa anche in altri
atenei a partire da Torino, Udine, Bari, Salerno e nel 1985 anche a
Milano.
Orbene nei primi anni novanta (il periodo dei primi browser mosaic,
l'HTTP etc.) le facoltà di ingegneria italiane si "risvegliarono" e
si accorsero che la "nuova scienza" non era poi così tanto da
sottovalutare.
E quindi istituirono il corso di Informatica anche nelle facoltà di
ingegneria, col nomignolo di "Ingegneria Informatica".
Praticamente la copia di qualcosa che esisteva già nelle facoltà di
matematica e fisica di vari atenei italiani.
Era in pratica lo stesso corso con poche variazioni del cazzo che solo
gli ingegneri potevano inventare.
Non contenti di ciò gli ingegneri cosa fanno?
Pochi anni dopo istituiscono l'albo degli informatici, riservato ai
laureati in ingegneria informatica e impedendovi l'accesso agli
informatici laureati nella facoltà dove era nata questa scienza.
E tentano a livello politico di legittimare questa estromissione
cercando di creare una situazione nella quale solo gli iscritti
all'albo possono firmare progetti per le pubbliche amministrazioni,
partecipare a concorsi per informatici etc.
Una lobby del cazzo fatta di teste di cazzo immani.
Che però alla fine ebbero partita persa dopo che più volte è stato
riconosciuto l'accesso a questo albo del cazzo anche ai laureati in
"informatica vera", cioè quelli del corso di laurea in Informatica e
non solo a quelli di Ingegneria Informatica che ne è una copia-
surrogato.
A livello politico (in parlamento e nelle varie commissioni) gli
ingegneri del cazzo erano ammanicatissimi soprattutto nei partiti del
cazzo (Forza Italia, Lega e AN) mentre gli informatici non avevano
referenti se non quei politici che presero a cuore la faccenda
trattandola per quello che era, e cioè un clamoroso abuso di una lobby
di potere. Ricordo uno splendido intervento di Tonino Di Pietro al
Parlamento Europeo che ebbe degli effetti concreti ed immediati.

Ecco.
Questa è la spiegazione dell'odio cieco che hanno gli informatici
verso gli ingegneri.
E questo è il motivo che la mia risposta anche sul lavoro a chi mi
chiama anche per sbaglio "ingegnere" è sempre e solo "Ingegnere lo vai
a dire a tua sorella".
(Giuro che rispondo sempre così). 


fabmind

mercoledì 17 febbraio 2010

Da Java a XML e ritorno: un problema frequente

Il linguaggio XML, con l'affermarsi del web orientato ai servizi ed un uso sempre più massiccio del cosiddetto Web semantico, è diventato oramai uno standard imprescindibile all'interno della programmazione web, specialmente lato server.
Questa presenza sempre più costante nelle applicazioni web ha reso necessario uno sviluppo di appositi framework per la gestione dei file XML e le relative lettura e scrittura.
Risultano anzitutto necessari i cosiddetti parser XML, utilizzati esclusivamente nella fase di analisi (parserizzazione) del flusso di byte costituenti il file XML. Tra questi si distinguono due famiglie distinte, da un lato SAX(Simple API for XML), un'interfaccia che permette di interpretare dei file XML mediante una lettura basata su eventi, dall'altro la DOM(Document Object Model), che implementa le stesse funzionalità di SAX, ma lo fa costruendo un albero in cui ogni nodo rappresenta un elemento del file analizzato.
Per una applicazione web scritta in un linguaggio orientato ad oggetti, come ad esempio Java, una procedura molto utile risulta essere quella di mappare il contenuto del file XML in corrispondenti oggetti, in modo da manipolare i dati in maniera agile, come appunto dei veri e propri oggetti.
Per mappare la struttura dei documenti XML all'interno di apposite classi Java risulta molto comodo l'utilizzo del framework Castor, sviluppato del gruppo Exolab.
Questo framework è in grado di generare automaticamente, a partire da un XML Schema Definition, delle classi Java complete di costruttori e metodi per associare ad ogni elemento previsto dall'XSD un determinato valore.
Le classi generate, oltre alle property get/set, presentano caratteristiche molto interessanti. Ogni classe rappresenta un diverso tag descritto nell'XSD, e tale classe prevede un metodo marshall ed un metodo unmarshall che effettuano le operazioni di traduzione da XSD a codice Java e viceversa.
Il marshalling del documento, ovvero la traduzione del codice Java in linguaggio XML viene eseguito su un OutputStream, il quale corrisponderà al flusso mediante il quale si vuole trasportare il file XML generato.
Per quanto riguarda l'unmarshalling vengono generati metodi che permettono di popolare l'oggetto a partire da un InputStream, ovvero il flusso di dati in ingresso corrispondenti al file XML da mappare all'interno delle classi Java.
Ogni classe generata contiene inoltre un ulteriore metodo validate, che esegue un controllo su tutti gli attributi della classe in base ai vincoli definiti nello schema, ed un metodo booleano isValid che ritorna True se l'oggetto presenta una struttura corretta rispetto all'XSD.
Nel caso in cui un oggetto non è stato costruito correttamente, ad esempio un tag non è stato riempito, il metodo marshall lancerà una MarshallException e non costruirà l'elemento XML.

Mostriamo di seguito un esempio di codice Java generato dal framework Castor, tale esempio è relativo ai metodi isValid, validate e marshall della classe che mappa il tag , radice di un file XML descritto da un opportuno XSD.
 
public boolean isValid(){
try {
validate();
}
catch (org.exolab.castor.xml.ValidationException vex) {
return false;
}
return true;
}
public void marshal(java.io.Writer out) throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException{
Marshaller.marshal(this, out);
}

public void setPage(Page page)
{
this._page = page;
}
public void setPage(Page page) {
this._page = page;
}
public static Pages unmarshal(java.io.Reader reader) throws org.exolab.castor.xml.MarshalException,org.exolab.castor.xml.ValidationException
{
return (Pages) Unmarshaller.unmarshal(Pages.class, reader);
}

public void validate()throws org.exolab.castor.xml.ValidationException {
org.exolab.castor.xml.Validator validator = new
org.exolab.castor.xml.Validator();
validator.validate(this);
     }
 }