martedì 22 gennaio 2008

Android: mobility opensource

Il nuovissimo sistema operativo opensource Android di Google ha portato una grande ventata di novità e di entusiasmo, esattamente come quella relativa all'uscita delle prime distribuzioni Linux.
La possibilità di poter sviluppare in modo aperto applicazioni direttamente in linguaggio Java e la possibilità di poter deliverare direttamente all'interno di un dispositivo mobile, ha scatenato una specie di felicità mediatica nel mondo degli sviluppatori e delle aziende, tale da prendere in seria considerazione lo sviluppo proprio sulle future generazioni di dispositivi e proprio su questa nuova piattaforma.

Il pacchetto della SDK di Android che viene distribuito è associabile ad un plugin per l'IDE Eclipse: selezionando quindi l'opportuna perspective di Eclipse, permette non solo di eseguire il deployment delle applicazioni direttamente sul dispositivo mobile, o sul relativo emulatore (anch'esso incluso nella SDK), ma permette anche di eseguire il debug delle applicazioni esattamente come in un normale ambiente di sviluppo Java.
Più precisamente è possibile impostare breakpoints per bloccare l'esecuzione dell'applicazione (a runtime) mostrando un opportuno alert sul dispositivo mobile (oltretutto formattato anche molto bene e di gradevole lettura), in questo modo chi sviluppa l'applicazione può andare a visionare lo stato interno delle risorse e fare analisi sul codice.
Sempre attraverso il plugin è inoltre possibile debuggare più applicazioni contemporaneamente sullo stesso dispositivo mobile.
Attualmente Android non è esente da bachi, anzi ne sono presenti diversi, ma proprio in questo periodo Google fa sapere che a breve rilascerà un upgrade importante della SDK con i relativi bugfix delle anomalie più scomode e attese dalla community.

Dopo aver terminato un'accurata sessione di lavoro, protratta anche in seguito allo studio dei tutorial, mi sono reso conto che il mio entusiasmo iniziale, nato dalla sensazione di scoprire un bel giocattolone nuovo, invece che diminuire, è aumentato drasticamente.
Nel momento in cui si inizia a customizzare una qualsiasi applicazione si entra in un tipico loop del tipo: adesso provo quest'ultima modifica e smetto .... ed invece si perpetua nella sperimentazione per notti intere...

La caratteristica più importante, a mio avviso, è la possibilità di gestire direttamente le periferiche del cellulare e le connessioni GSM, UMTS, Wi-Fi e Bluetooth.
La possibilità di interagire direttamente con i driver del dispositivo attraverso lo strato di interfacciamento Linux, credo sia un'opportunità molto importante per lo sviluppo futuro di Android.

Giusto per stuzzicare l'appetito a chi ancora non si è cimentato nello sviluppo di applicazioni su Android eccovi lo schema degli strati applicativi e delle librerie che si possono utilizzare:


Architettura software di Android
Come si può vedere dall'immagine, tutto l'ambiente è basato su un kernel Linux su cui si appoggiano tutte le librerie di sviluppo denotate dal colore verde. Tra queste librerie, è importante sottolineare la presenza di due librerie opensource molto importanti: SQLite è il DBMS per la creazione e la gestione del database delle applicazioni; e WebKit la libreria utilizzata per renderizzare le pagine HTML, utilizzata anche nel browser Safari dell'iPhone.
Al di sopra delle librerie troviamo il framework da utilizzare per creare effettivamente il comportamento delle applicazioni, denotato dal colore blu, ed è essenzialmente basato sul concetto di Activity.
La runtime di Android è una vera e propria macchina virtuale chiamata Dalvik, denotata dal colore giallo, che permette l'esecuzione delle applicazioni, esattamente come avviene per la macchina virtuale Java per il bytecode.
Proprio su Dalvik ci sono state e ci sono ancora molte discussioni in ambito di licenze Java, in quanto in questo modo Google non sarebbe costretta a sottostare ad alcuna licenza Sun, in quanto Dalvik è svincolato da Java e Java MicroEdition, e non necessita di alcuna libreria runtime Java di Sun, infatti le applicazioni compilate per Android non sono compatibili con codice compilato in bytecode Java (anche perché vi è un framework associato che non è possibile separare).

A breve spero di riuscire a fare alcuni post su come si sviluppa un'applicazione in Android andando nello specifico sull'utilizzo delle singole librerie.

martedì 25 dicembre 2007

PiùBlogCamp: l'intervista

Eccomi intervistato da Gabriele Niola, redattore di HTML.it, sulle problematiche della catalogazione e navigazione delle informazioni nel web. L'intervista inizia esattamente come il mio intervento, ovvero dalla mia domanda retorica posta alla platea del PiùBlogCamp riguardo l'utilizzo dei tag.



mercoledì 12 dicembre 2007

PiùBlogCamp: qualche commento

E' chiaro che il PiùBlogCamp non è stato un vero e proprio barcamp a causa innanzitutto della location non proprio idonea allo scopo ed alla difficoltà di organizzare gli interventi di tutti.
Concordo in molte osservazioni fatte da Stefano Epifani e Stefano Mainardi.
In pratica non è stata una non-conferenza, ma una vera e propria conferenza.
Sono convinto che fino a quando non si riuscirà ad organizzare questi eventi in modo più informale, ad esempio mettendoci tutti in una tavola rotonda, esattamente come abbiamo fatto l'ultimo giorno al WaveCamp di Firenze, le cose non potranno cambiare.
Io ho seguito quasi tutti gli interventi, forse ne ho persi uno o due, e devo dire che in ogni caso sono stati tutti molto interessanti, in particolare vorrei segnalare quello di Nicola Mattina riguardo il Corporate Blogging e quello di Corrado Truffi sul sistema per la partecipazione.

Ringrazio inoltre il grande Roberto Galoppini per aver citato all'interno del suo blog Commercial Open Source Software il mio intervento, sembra che sia stato apprezzato, sono quasi commosso.

Al di là delle problematiche organizzative, devo dire che pur avendo fatto conoscenza solo con alcuni, tra cui Antonio Doldo, Stefano Epifani, Lord Zarcon, Sabrina Montanari, Walter Pierbattisti e Nicolò Risitano del LSLUG, è stata un'esperienza notevole a partire dalla +PiùCena.

Arrivederci a tutti all'OpenCamp 2008.

domenica 9 dicembre 2007

PiùBlogCamp: le slides del mio intervento

Come vi avevo promesso già dal precedente post, per chi proprio non resiste alla tentazione, e per tutti coloro che non sono riusciti a fare un salto, ecco a voi le slides che ho presentato proprio quest'oggi al PiùBlogCamp romano per il mio intervento su "I Microformati ed il Web Semantico":



lunedì 3 dicembre 2007

PiùBlogCamp

PiùBlogCampDal 6 al 9 Dicembre al Palazzo dei Congressi dell'Eur a Roma si svolgerà PiùLibri la fiera della piccola e media editoria, e proprio nell'ambito di questa fiera si svolgerà anche l'evento organizzato da PiùBlog con interventi per approfondire e discutere del futuro del blog: il programma.
Il 9 Dicembre inoltre si svolgerà il barcamp PiùBlogCamp in cui si potrà partecipare attivamente alle discussioni, anche presentando un intervento alla bacheca la mattina stessa della manifestazione.
Ho preparato alcune slide per il mio intervento, che renderò disponibili sul mio account SlideShare in seguito alla manifestazione, per cercare di riassumere insieme la situazione attuale sul web semantico. Lo scopo di questo intervento sarà quello di divulgare, anche a chi non è un addetto ai lavori, cosa sia esattamente il web semantico.

giovedì 15 novembre 2007

I Microformati ed il Web Semantico

Come accennato in un mio post precedente, in cui ho trattato come argomento l'utilizzo delle licenze Creative Commons, eccomi quì adesso ad approfondire il discorso su che cosa sono i microformati e perché sono ritenuti così importanti, tanto che nella terza versione di FireFox verrà incluso un visualizzatore proprio per renderli facilmente consultabili.
La scrittura di questo post è stata davvero difficile, la voglia di informare anche chi non è un addetto ai lavori ha vinto rispetto all'irrefrenabile voglia di espletare interamente la tecnologia, reindirizzando a spazi più adeguati i più smaliziati tra di voi che vogliono approfondire questo argomento.

Che cosa sono i Microformati?

I microformati (o microformats) sono informazioni pubblicate in una porzione di codice, create in un particolare formato XML ed immerse (embedded) nella pagina HTML (o meglio XHTML) servita al browser. Il principale obiettivo di questi dati è quello di pubblicare informazioni, che possono anche non essere visualizzate come contenuto sulla pagina, ma sono considerate meta-informazioni (o metadati) interrogabili da remoto.

Attualmente esistono opportuni plugin, ad esempio se utilizzate FireFox, potete installare Operator o Tails Export, con cui è possibile visualizzare tutte le informazioni pubblicate con microformati presenti nella pagina che si sta consultando.

Inoltre con Operator vengono anche classificati in modo opportuno in diverse categorie di informazione: indirizzi, contatti, eventi, percorsi, tag, segnalibri e risorse.

Se provate ad utilizzarli quì su Open4Blog, troverete che Tails Export troverà la presenza di due microformati: uno relativo al mio contatto ed uno relativo alla licenza Creative Commons; mentre Operator renderà disponibili anche le informazioni dei tag dei post.
Possiamo classificare l'utilizzo dei microformati principalmente per due scopi: il semplice Data Web ed il Web Semantico.

Data Web

Le meta-informazioni sono interrogabili direttamente, in modo simile alle informazioni presenti in un database, questa particolare modalità di interrogazione è alla base di ciò che sarà il Web 3.0 ed è nota come Data Web.
L'attuale interesse verso i microformati è essenzialmente basato su questa importante caratteristica: trasformare qualsiasi informazione pubblicata sul web in risorsa reperibile direttamente da remoto, proprio come se fosse immersa in un infinito database gestito da tutti gli utenti.

Web Semantico = Data Web = Web 3.0 ?

Proprio in questi giorni si sta contribuendo a definire cosa sia esattamente il Web 3.0, l'opinione più accreditata sembrerebbe essere quella che avvicina la definizione di Web 3.0 con la definizione di Web Semantico.
Il Web Semantico si serve del Data Web, e quindi dei microformati, per poter interrogare i dati su tutta la rete ma con un particolare ponte di metadati: GRRDL (
Gleaning Resource Descriptions from Dialects of Languages).
Al contrario del Data Web puro, in questo caso i metadati non sono informazioni relative al contenuto in senso stretto, ma sono informazioni che riguardano la semantica del contenuto.
Ringrazio Simone Onofri, che dopo uno scambio di messaggi nella Semantic Web Italian Community mi ha reso disponibile un' eccezionale sintesi di tutto il meccanismo di conversione semantica:

Microformats -> GRDDL [XSLT] -> Web Semantico

Brian Suda e Dan Connolly hanno scritto le prime trasformazioni XSLT per l'estrazione di RDF da microformati. In questo momento altre persone si stanno occupando delle trasformazioni in RDF di altri formati.
Grazie all'interpretazione dei dati presenti nei microformati è possibile dare semantica, inserendo opportuni attributi o asserzioni in triplette: soggetto, predicato e valore.
E' quindi possibile caratterizzare con alcune asserzioni il significato associabile ad un contenuto pubblicato su web, potendolo interrogare e relazionare ad altri contenuti.

Ontologie

Per poter riuscire a far colloquiare tutti i sistemi per l'estrazione dei dati semantici vengono pubblicate le mappe di vocaboli di un determinato dominio di interesse, ontologie appunto, eccovi alcune delle più importanti che è possibile utilizzare adesso:

-RDF (Resource Description Framework): linguaggio di rappresentazione di una ontologia

-RDFS (RDF Schema): linguaggio di ontologia basato su RDF

-DAML+OIL: linguaggio di ontologia orientato agli oggetti (Object Oriented)

-OWL (Web Ontology Language): basato su DAML+OIL, è possibile definire ontologie web-based con maggiore applicazioni descrittive, ad esempio portali web e ricerche su contenuti.
OWL utilizza URI per nominare ed embeddare RDF, in questo modo è possibile aggiungere alcune capacità alle ontologie dando maggiore granularità e scalabilità.