giovedì 31 maggio 2012

Toglietemi tutto ma non il mio... calcio!

Accettiamo senza battere ciglio una pressione fiscale unica a livello europero. Accettiamo che i giovani possano restare senza lavoro e quindi senza futuro. Oppure che un Renzo Bossi guadagni (sic!) cifre spropositate senza che sappia neppure perché. Che i politici derubino il Paese. Che la meritocrazia sia una parola utilizzata solo come propaganda. Che i reati restino impuniti.

Ma il calcio no! non lo si tocchi! Non lo si pensi neppure di sospendere il calcio per 2/3 anni!
Come faremmo senza? E' una delle cose senza cui non si può vivere!

Questa è l'Italia...decisamente una società dell'informazione!

martedì 29 maggio 2012

Il "buon senso"... di restare in silenzio

Si prega tutti coloro che ritengono di essere gli unici dotati "buon senso" di non usarlo per impartire lezioni su materie in merito alle quali non si ha alcuna competenza tecnica, quanto per capire che in dette circostanze è più dignitoso (e onesto) restare in silenzio - Mr Sneer

lunedì 28 maggio 2012

Quando si parla di formazione, lo Stato sa bene su cosa investire...

Nel periodo 2009/2010 la spesa pubblica per gli stipendi degli insegnanti è calata, ad eccezione di dirigenti scolastici e professori di Religione. A certificarlo la Corte di Conti nella Relazione 2012 Sul Costo Del Lavoro Pubblico.

Senza parole!

Giovani: ecco i lavori in tempi di crisi

La CGIA di Mestre ha effettuato uno studio (su dati ISTAT) per calcolare il tasso di crescita degli ambiti professionali che, nel 2011, hanno offerto il maggior numero di assunzioni tra gli under 35.

Da questo emerge che "Tra i colletti bianchi spiccano gli ingegneri, gli addetti alla segreteria e i cassieri di banche ed assicurazioni. Tra i colletti blu, invece, gli addetti alla pulizia, i facchini e gli autisti". Anche i tecnici informatici, telematici e delle comunicazionisi sono posizionati bene nella classifica.

sabato 26 maggio 2012

Altro che investimento in formazione... il mattone è una certezza...


Beh questi hanno guadagnato un botto!!!... dicono di essere in crisi perché nessuno compra più... Uno di loro dice anche di aver perso 24 milioni di euro in borsa!!!

Certo acquistare una casa di 400-800 mila, con un reddito da neolaureato... la vedo proprio dura, molto dura...


venerdì 25 maggio 2012

Meritocrazia, competenza e formazione

Uno dei più grandi problemi italiani (secondo me) è che il "sistema Italia" non è meritocratico.

Il merito ha come condizione necessaria la competenza e la formazione continua. L'acquisizione delle competenze è un processo attivo che richiede un impegno non indifferente. Tuttavia lo sforzo è ben ripagato: la differenza di prestazioni tra lavoratori con livelli di competenza diversi è davvero significativa (in particolare per le attività intellettuali e per la produzione di innovazione).

Purtroppo la quasi totale mancanza di meritocrazia rende il ritorno sull'investimento in formazione tanto basso da scoraggiarlo a tutti i livelli. Mi riferisco non solo al percorso di formazioni iniziale (laurea e dottorato), ma anche alla successiva formazione richiesta continuamente durante tutta la vita lavorativa (e non).

L'esperienza (diretta e indiretta) mi porta a ritenere che le competenze (nel settore ICT ma non solo), ai fini della carriera e, quindi, della retribuzione nelle organizzazioni (pubbliche e private) contano ben poco... L'anzianità è il più usato strumento per "approssimare" il livello di competenza del personale. Ovviamente molto poco preciso (infatti non è stata rilevata correlazione tra anzianità nel ruolo e competenza).

Purtroppo, se l'investimento in formazione non è economicamente vantaggioso, si innesca un circolo vizioso per cui le aziende sono meno efficienti e possono permettersi meno formazione per i propri dipendenti e retribuzioni basse che disincentivano l'acquisizione di personale qualificato.

Il Sole 24 Ore riporta i risultati del rapporto AlmaLaurea in cui è evidenziato un fenomeno molto preoccupante (finalmente! ma c'era bisogno di uno studio per rilevare questo fenomeno e gli effetti negativi che si innescano?!?!) .

Forse è ora che i politici e il personale direttivo di organizzazioni pubbliche e private comincino a pensare un po' di più al reale interesse delle organizzazioni e dell'intera nazione, invece di guardare ai loro interessi personali di breve periodo!

giovedì 24 maggio 2012

Requisiti colpevoli!

Il progetto ha un ritardo di sei mesi perché, nella fase di analisi, i requisiti utente non si sono materializzati (qui la responsabilità è inequivocabilmente dei requisiti) - un Business Analyst, collega di Mr Sneer

mercoledì 23 maggio 2012

Parser STAX e validazione XSD con Woodstox e MSV

Woodstox è un parser particolarmente efficiente che implementa l'interfaccia StAX... un candidato ideale quindi per l'elaborazione di documenti XML di dimensioni considerevoli.

Una caratteristica interessante di questo parser è la sua capacità di interfacciare il Sun Multi-Schema Validator (di seguito MSV) per la validazione dell'XML tramite diverse tipologie di Schema, ad esempio DTD, XML Schema e RELAX NG.

Per la validazione è necessario ricorrere a una estensione specifica di Woodstox che è al di fuori dell'interfaccia StAX. Tuttavia l'utilizzo di questa estensione è abbastanza limitata e non compromette in modo eccessivo la migrazione a altri parser StAX (eliminando la validazione ove questi non la supportino).

Di seguito è descritto un esempio di utilizzo di Woodstox con MSV per effettuare la validazione con XML Schema.

Dopo la creazione dell'istanza del parser tramite la factory XMLInputFactory, si effettua il cast dell'oggetto XMLStreamReader ottenuto (che fa parte dello standard StAX) all'interfaccia XMLStreamReader2 (che è invece specifica di Woodstox) e si associa tramite il metodo validateAgainst() l'istanza dello XMLValidationSchema (ottenuto da un factory XMLValidationSchemaFactory definita in MSV).

Per catturare gli errori di validazione è possibile definire uno specifico ValidationProblemHandler invocando il metodo setter opportuno sull'istanza di XMLStreamReader2. L'handler potrà gestire i problemi di validazione registrandoli in una collection oppure potrà lanciare una eccezione di tipo XMLValidationProblem che sarà restituito al client del parser durante l'elaborazione degli eventi.

Il parser e le librerie MSV possono essere scaricate a partire da questo link.

File inFile = ... // documento
File xsdFile = ... // XML schema 


XMLInputFactory staxFactory = XMLInputFactory.newInstance();       
XMLStreamReader streamReader = staxFactory.createXMLStreamReader(new FileInputStream(inFile));
       
XMLValidationSchemaFactory schemaFactory = XMLValidationSchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
       
XMLValidationSchema schemaGrammar = schemaFactory.createSchema(xsdFile);
 
XMLStreamReader2 sr2 = ((XMLStreamReader2)streamReader);
       
final List<XMLValidationProblem> listOfProblems = new ArrayList<XMLValidationProblem>();
       
if (schemaGrammar!=null) {
  sr2.validateAgainst(schemaGrammar);
  sr2.setValidationProblemHandler(new ValidationProblemHandler(){
     public void reportProblem(XMLValidationProblem problem) throws XMLValidationException {
       listOfProblems.add(problem);
     }
  });
}


// usa lo stream Reader
// streamReader.next();

martedì 22 maggio 2012

Parsing di XML: DOM, SAX, StAX

L'interfaccia di un componente può vincolare pesantemente le sue caratteristiche prestazionali e di usabilità. Un esempio abbastanza significativo è rappresentato dalle tre diverse API che sono state disegnate per il parsing dei documenti XML.

Per l'elaborazione dei documenti XML esistono infatti tre interfacce standard, ciascuna con particolari caratteristiche di prestazione e di usabilità.

fornisce una modalità di navigazione all'interno del documento XML di tipo "ad albero"; il parser, a partire dal documento XML, memorizzato come stream di byte, crea una struttura in memoria (appunto modello a oggetti del documento) che rappresenta il documento in tutti i suoi aspetti. Il programmatore può navigare la struttura ad albero ed accedere in modo diretto (anche usando XPath) ai suoi elementi e attributi.

contrariamente al parser DOM, il parser SAX elabora i documenti in una modalità "a eventi" (streaming parser) senza caricare in memoria l'interno documento. Il parser scorre il documento XML dall'inizio alla fine e, per ciascun elemento XML incontrato e che può essere significativo per l'elaborazione, produce un evento. L'evento è passato a una funzione di callback che il programmatore ha definito prima dell'attivazione del parser.  Questo tipo di parser è detto parser di tipo "push" in quanto gli eventi vengono inviati all'utilizzatore del parser senza che questo possa decidere quando ricevere il successivo evento.
L'elaborazione di documenti XML con un parser SAX richiede la creazione di uno specifico  automa a stati finiti (dipendente sia dalla struttura dell'XML sia dalla logica applicativa) ed è pertanto abbastanza laboriosa da implementare.
Gli unici vantaggi dei parser SAX sono: l'elevato livello di prestazioni e la ridotta quantità di memoria utilizzata, indipendentemente dalla dimensione del documento da elaborare.

è un parser di tipo "a eventi" (streaming parser) che quindi fornisce le prestazioni e la ridotta occupazione di memoria tipiche dei parser a eventi, ma che punta a offrire una maggiore comodità di programmazione.
Il parser, infatti, una volta invocato su un documento XML, resituisce al suo utilizzatore un "cursore" che rappresenta la posizione corrente nel documento XML durante l'elaborazione.
L'applicazione, quando vuole ottenere ed elaborare il successivo evento (che rappresenta un elemento XML, nodo o attributo presente nel documento), può pilotare il parser facendo avanzare il cursore.
Per questa particolare modalità di interazione con il client, il parser viene detto di tipo "pull"

In sintesi:
XML Parser API Feature Summary (adattata da Oracle)

Feature

StAX

SAX

DOM

API Type

Pull, streaming

Push, streaming

In memory tree

Ease of Use

High

High

Medium

XPath Capability

No

No

Yes

CPU and Memory Efficiency

Good

Good

Varies

Forward Only

Yes

Yes

No

Read XML

Yes

Yes

Yes

Write XML

Yes

No

Yes

Create, Read, Update, Delete

No

No

Yes

domenica 20 maggio 2012

Per la BSA: Italia al secondo posto in Europa nel settore ICT...


Secondo il rapporto "Shadow Market" della Business Software Agency siamo al secondo posto in Europa, a pari merito con Cipro e Islanda, per l'illegalità informatica: il 48% dei software istallati sui PC è illegale.

Il valore commerciale del software illegale in circolazione nel nostro Paese ammonta a 1.398 milioni di euro. Valore che colloca quello italiano all'ottavo al mondo nella classifica dei mercati che perdono maggiori volumi d'affari a causa della pirateria.

Certo sono dati riportati da una fonte non certo "neutrale"... ma forse fornisce un'idea della seria considerazione attribuita al software nel nostro Paese!

sabato 19 maggio 2012

Dirigente Ingegnere Informatico - AUSL Modena

Azienda USL di Modena riapertura termini per presentare la domanda per concorso
Dirigente Ingegnere Informatico

Requisiti:
  1. Laurea vecchio ordinamento in: 
    • Informatica ed equipollenti
    • Ingegneria biomedica
    • Ingegneria delle telecomunicazioni - Ingegneria elettronica
    • Ingegneria gestionale - Ingegneria informatica
    • corrispondenti Lauree specialistiche o Lauree Magistrali;
  2. abilitazione all’esercizio professionale; 
  3. Cinque anni di servizio effettivo corrispondente alla professionalità a concorso;
  4. Iscrizione all’Albo dell’Ordine degli Ingegneri
Questo il link.

Dirigente Servizio "Informatica" in Alto Adige

Al Comune di Rovereto è indetto un concorso per Dirigente del Servizio "Informatica".

Richiesti:
  1. diploma di laurea Informatica o in Ingegneria Informatica o in Ingegneria Elettronica o in Matematica o in Statistica o in Statistica e informatica per l’azienda o in Fisica ovvero diplomi di laurea a questi equipollenti;
  2. esperienza di servizio, adeguatamente documentata, di almeno cinque anni.
Questo il link.

Un CTO con laurea in Scienze politiche

...non voglio ascoltare altre technicalities... Che il sistema implementi le funzionalità necessarie a supportare tutti i requisiti entro la fine di questo mese! - un collega di Mr Sneer

giovedì 17 maggio 2012

Eseguire un Cabbage

Oggi ho imparato a eseguire un CABG (si pronuncia Cabbage). 

Nel seguito descrvo il significato dell'acronimo e le motivazioni per cui è utile tale intervento, illustrando anche la corretta procedura per effettuarlo. Chi è interessato a un approfondimento può accedere (vi prego senza diffonderlo in quanto raccoglie dettagliate informazioni, aggiornate allo stato dell'arte, sui più importanti argomenti tecnici - non a caso i principali utilizzatori sono alcuni miei conoscenti esperti del settore ICT) al seguente link.

Il CABG è un intervento di bypass aorto-coronarico (Coronary Artery Bypass Graft surgery) che serve per superare un condotto vascolare parzialmente o totalmente ostruito al fine di ridurre il rischio di infarto miocardico, eliminando anche l'eventuale dolore retrosternale dovuto a insufficienza del flusso sanguigno attraverso le arterie coronarie.

Per effettuare l'intervento è sufficiente effettuare un'incisione longitudinale sul torace, attraverso lo sterno in modo da accedere al cuore e all'aorta. Si deve quindi suturare a valle del restringimento un tratto di vena safena o di arteria mammaria prelevata dal paziente stesso. Successivamente si collega l'altra estremità a monte del restringimento o dell'occlusione. In questo modo il sangue avrà un passaggio per aggirare l'ostacolo.

E' possibile evitare l'approccio tradizionale che prevede il collegamento a una macchina cuore-polmone in favore di un più recente intervento a cuore pulsante che in genere comporta minori rischi per il paziente.

Dopo l'intervento è importante monitorare le condizioni generali del paziente e in particolare che non vi siano sanguinamento postoperatorio o infezioni.

mercoledì 16 maggio 2012

martedì 15 maggio 2012

Esportare le dipendenze di un progetto maven

Per il build dei progetti Java, in particolare per progetti open source con un'ampia comunità di sviluppatori, ci si ritrova spesso a lavorare con il tool Maven.

Maven è un tool di build che utilizza file XML (pom.xml) per la descrizione sia dei passi richiesti per le diverse fasi di build, sia della struttura del progetto in termini di moduli e relative dipendenze (anche verso componenti esterni).

Così un progetto che dipenda, ad esempio, dalla libreria Hibernate, può semplicemente dichiarare tale dipendenza e Maven provvederà in fase di build a recuperare (eventualmente da Internet) il jar di Hibernate e tutte le librerie richieste da Hibernate stesso (effettuando il download quindi di tutte le librerie che costituiscono la chiusura transitiva del grafo delle dipendenze del progetto). Le librerie scaricate da Internet, sono memorizzate in una cache locale dell'utente in modo da essere utilizzate nelle successive fasi di build.

In alcuni casi (ad esempio per importare il progetto in un tool che non supporta Maven) è utile ottenere tutte le librerie necessarie per la build del progetto. Poichè Maven è basato su un sistema a plugin, ed è disponibile uno specifico plugin che effettua proprio questo compito, per ottenere il risultato desiderato è sufficiente una piccola modifica al file pom..xml del progetto.

Nella sezione project/build/plugins si può aggiungere il seguente plug-in di Maven:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.4</version>
    <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
          <goal>copy-dependencies</goal>
        </goals>
        <configuration>
         <outputDirectory>${project.build.directory}/depLibs</outputDirectory>
         <overWriteReleases>false</overWriteReleases>
         <overWriteSnapshots>true</overWriteSnapshots>
         <excludeTransitive>true</excludeTransitive>
       </configuration>
     </execution>
    </executions>
  </plugin>


La configurazione del plugin descritta sopra è tale eseguire la copia delle librerie durante la fase di pacakge. In questo modo, durante l'esecuzione del comando mvn package oltre al build, Maven provvederà a esportare tutte le librerie da cui il progetto dipende (direttamente e non) nella cartella depList (posizionata nello stesso folder in cui sono prodotti gli artefatti derivanti dal processo di build).

venerdì 11 maggio 2012

IBM Italia licenzia 26 dirigenti Global Business Services

Il Sole 24 Ore comunica che, fonte ANSA, Ibm Italia licenzia, senza preavviso, 26 dirigenti della controllata Global Business Services che fornisce servizi interni di consulenza. I dirigenti hanno un'età media tra i 40 e i 50 anni e sembra rientrino nella fascia di stipendi più alta.

Hostageware: poveri utenti

Hostageware: apps that you have to use because there is no valid or realistic alternative but which are so buggy and such crap that they drive you insane - Kevin Burton

giovedì 10 maggio 2012

Legge del know-how, delle responsabilità e della retribuzione

Internamente alle organizzazioni italiane che operano nel settore ICT, valgono le seguenti proposizioni:

1) la somma del know-how e del livello gerarchico (responsabilità dell'unità organizzativa, del processo ecc) è costante al variare del lavoratore (per quasi tutti i lavoratori);

2) la retribuzione è proporzionale al livello gerarchico.

In formule:

KH + LG = K
R  ~  LG

dove:
  • K è una costante che dipende dalla specifica organizzazione O considerata; il dominio di O è l'insieme delle organizzazioni italiane che operano nel settore ICT;
  • KH, LG e R rappresentano rispettivamente il Know-how,  il Livello Gerarchico e la  retribuzione di L, con L che varia nell'insieme dei lavoratori appartenenti a O.
L'uguaglianza va interpretata come valida quasi ovunque. Sia rispetto a L, sia rispetto a O.

mercoledì 9 maggio 2012

Vuoi trovare lavoro? Diventa ingegnere informatico

"Prima d’iscriversi all’università sarebbe il caso di fermarsi a riflettere un attimo. E guardare al futuro. ... un ingegnere informatico che progetta, sviluppa e gestisce software e hardware è la migliore professione possibile. Lo stipendio medio annuo supera gli 88 mila dollari (oltre 67 mila euro), la domanda di lavoro è in costante crescita e sono poche probabilità di rimanere a spasso... I maghi del computer sono al top delle professioni".

Questo il tono di diversi articoli che si leggono nelle ultime settimane su Internet.

Tutti prendono spunto da una ststistica di CareerCast.com, sito diricerca di lavoro USA.

Com'è la situazione in Italia? Beh a mio avviso abbastanza diversa... un neolaureato in Ingegneria che comincia a lavorare nel settore dello svilupo software non guadagna (a Roma) più di 1200 Euro al mese ed è assunto con contratto a progetto. Certo è meglio che nulla... però tale importo va confrontato con il costo per l'affitto di un appartamento: ci si rende immediatamente conto che è abbastanza difficile viverci decentemente (a meno di non avere casa di proprietà).

La domanda è: con l'esperienza e (l'ampliarsi delle competenze) quanto aumenta lo stipendio? Purtroppo non molto...

Qual'è la vostra esperienza?

sabato 5 maggio 2012

Tanta esperienza e permalosità

Cosa?!?!? Pensi non sia usabile?!?! Come ti permetti!!! Lavoro nel settore della telefonia da quasi 40 anni... progetto telefoni da prima che tu nascessi... vuoi che non sappia come deve essere l'interfaccia di un telefono!?!?! - Un collega di mr Sneer

Immagine da  documentazione Apple

venerdì 4 maggio 2012

Non ha il pensionamento lo stesso effetto nelle aziende?

A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it -- Max Planck

martedì 1 maggio 2012

Lo smanettone

Smanettone di turno: non funziona la stampante? hai provato a spegnerla e riaccenderla? sì? hai provato a spegnere e riaccendere il PC? si? ma hai aspettato qualche minuto prima di riaccendere il PC e la stampante? e hai anche provato a togliere anche la spina di alimentazione e il cavo USB? ah... non avevi provato... ora funziona!?!? eh sì... ok ti ho risolto il problema! perché si è verificato? beh....ogni tanto lo fa!

Credo che tutti abbiano partecipato o assistito a un dialogo di quel tipo tra uno smanettone e un normale utilizzatore di un computer. Il normale utilizzatore si aspetta dal computer una qualità paragonabile a quella di tutti gli altri prodotti (elettronici e non) a cui è abituato.... invece i malfunzionamenti quasi casuali (dovuti generalmente a una cattiva progettazione e implementazione) sono quasi attribuiti alla sua incapacità/inesperienza nell'utilizzare lo strumento informatico.

Smanettone. Un termine che ancora oggi (almeno in Italia!) racchiude l'idea comune di un esperto nel settore informatico. Lo smanettone è generalmente un ragazzino (o poco più grande) che, senza particolare formazione, ma solo grazie a facoltà innate o trasmesse (dai suoi amici smanettoni - una elite) riesce, quasi entrando in trance di fronte al computer con cui interagisce, a creare un ponte tra le energie digitali e quelle umane. Un canale che gli permette di piegare la rigidità dello strumento elettronico alla propria superiorità, ottenendo i risultati desiderati e che può in seguito vantare con la collettività. Lo smanettone, in breve, si avvicina molto all'idea di uno sciamano informatico!

Purtroppo nel settore ICT c'è ancora troppa gente che pensa che quello sia il profilo dell'esperto di informatica (ma poi esperto che vuol dire?!?!?). La cosa ancora più triste è che la stampa (generalista ma a volte anche specialistica) continua a alimentare questo falso mito dello smanettone.

Scena dal film WarGames

I media, infatti, continuano a propinarci notizie relative a casi di smanettoni cercando di fare audience tramite il fascino per il genere WarGames: un appassionato di informatica e abile e promettente hacker, riesce a raggiungere un supercomputer del Pentagono studiato per rispondere ad un attacco missilistico...

Esagero? Cosa ne dite di un titolo "Specializzato in informatica, 15 anni, aiuta la polizia a ritrovare il pc rubato" che negli ultimi giorni si è fatto spazio tra molte importanti testate giornalistiche? Provate a cercare su google...