27 aprile, 2008

Antonio Gomes parla di MicroB, il "Firefox" per i tablet Nokia

di Percy Cabello

Mentre Mozilla sta a poco a poco spostando l'attenzione verso le piattaforme mobili per espandere la propria presenza sul web, c'è un altro progetto, chiamato MicroB, che sta fornendo una soluzione basata su Mozilla per la piattaforma Nokia tablet PC e che è già diventata il browser predefinito per Internet Table OS 2008, l'ultima versione del sistema operativo di Nokia basato su maemo.

Antonio Gomes, uno sviluppatore di MicroB, ci ha gentilmente accordato un'intervista per saperne di più sul progetto e sul suo funzionamento.

Mozilla Links: qual è il tuo ruolo nel progetto MicroB e, in generale, all'interno di maemo?

Antonio Gomes: attualmente sono più attivo in programmi che circondano il progetto MicroB stesso. Il più importante è il progetto Browser Extras, che punta a rendere disponibili per MicroB i componenti di aggiuntivi più famosi per Firefox . Nel tempo libero, mi occupo dell'implementazione di nuove funzionalità per MicroB e della correzione dei bug.

Come sei entrato nel progetto? So che vieni da Manaus... maemo o Nokia sono particolarmente forti in Brasile, oppure è solo una coincidenza?

Non è coincidenza. Nel 2005 abbiamo iniziato lo sviluppo all'INdT [Instituto Nokia de Tecnologia, NdT] di un prototipo funzionante di browser basato su Mozilla/Gecko 1.7 per la piattaforma maemo. Era chiamato MANaOS e aveva alcune funzionalità di base presenti nei più importanti browser per desktop personalizzate per il contesto mobile. Dopo qualche tempo iniziò un progetto avanzato di sviluppo grazie ad una partnership tra INdT e Nokia, che in seguito divenne il prodotto che ora conosciamo con il nome di MicroB. Ecco fondamentalmente come sono entrato.

Credo che, anche se il Brasile non può essere ancora considerato un centro di sviluppo software (se paragonato a paesi come India, Germania e Stati Uniti, ad esempio), in merito a maemo e allo sviluppo per la piattaforma mobile possiamo dire la nostra anche noi. Le attività sono ovviamente più intense nelle zona dove ha sede l'INdT: Manaus, Recife e Campina Grande. A Recife i ragazzi stanno facendo un gran lavoro su progetti come Python per maemo, Canola, Mamona e Carman, mentre qui a Manaus siamo focalizzati maggiormente sullo sviluppo web e su lavori orientati al kernel.

Internet Table OS 2007 uscì con Opera come browser predefinito. Sai perché Nokia lo ha sostituito con MicroB?

Il team di MicroB riceve continuamente delle e-mail da persone che suggeriscono o si lamentano delle funzionalità, che richiedono dei miglioramenti e, addirittura, mi inviano delle patch per risolvere qualcosa che non va. Questa è l'essenza della comunità open source: non ti piace una cosa, la puoi prendere e rimodellare come vuoi tu. Questo accelera lo sviluppo e le pubblicazioni diventano più frequenti. Con Opera non potevamo assolutamente avere questo tipo di atmosfera.

Raccontaci di maemo. Com'è iniziato e com'è organizzato? Il lavoro fatto per maemo è riutilizzabile anche per altre piattaforme mobili?

Maemo è una distribuzione Embedded Linux sponsorizzata da Nokia ed è stata lanciata ufficialmente al LinuxWorld Summit di New York City il 25 maggio 2005, quando fu annunciato il primo Internet Tablet di Nokia.

Da allora, sono uscite diverse versioni del software per tre diversi dispositivi, il Nokia 770, 800 e 810. Nell'ultima edizione del firmware, OS 2008 (Maemo 4.x) si possono notare la maturità, la stabilità e le prestazioni raggiunte della piattaforma rispetto al passato, e sicuramente maemo ora può essere annoverato come una piattaforma di sviluppo "general purpose", basata su componenti per desktop e mobile ampiamente utilizzati (tra gli altri il kernel Linux, D-BUS, GConf, GTK, Mozilla). Tutto va nella direzione di fornire un ricco insieme di applicazioni per rendere ancor più semplice la vita degli utenti mobili.

Un bell'esempio dell'utilizzo di maemo all'esterno di Nokia è l'Ubuntu Mobile Project, nel quale il framework dell'interfaccia è basato sull'Hildon Application Framework.

Al momento, quante persone lavorano allo sviluppo di MicroB?

Non so di quante persone sia composto l'intero team. Innanzitutto, non sto ad Helsinki, dove si trovano i membri principali del team, e non conosco più tutti quelli coinvolti nel progetto. Inoltre, il team si sta sempre più ingrandendo perché stiamo cercando di mettere a disposizione dei nostri utenti gli ultimi e migliori strumenti per il browser. Dunque, vengono lanciati nuovi progetti, nuove persone vengono assunte (compresi i sub-appaltatori come me) e il progetto cresce...

Come viene sincronizzato il lavoro nel trunk di Mozilla con MicroB?

L'attuale sincronizzazione non è sicuramente così buona come dovrebbe essere, ma c'è un motivo. Lasciate che vi spieghi. Il browser MicroB è una versione patchata del codice sorgente di Firefox 3.0 pre-Alpha 1 [di metà 2007, NdA]. Nello specifico, ci sono oltre 160 patch (sulle patch) applicate su una tarball del trunk Mozilla. Mantenere tutto questo aggiornato con qualunque versione ufficiale di Mozilla non è un compito semplice.

L'ovvio svantaggio di utilizzare una versione vecchia di quasi un anno è che molti "giocattolini" che sono entrati nel CVS Mozilla non sono ancora disponibili per gli utenti MicroB. Tra le altre cose, ci piacerebbero "la frammentazione ridotta della memoria con jemalloc", il nuovo "cycle collector", i miglioramenti nelle prestazioni di JavaScript, le correzioni ai bug di sicurezza e altre cose. Per alcune bellissime funzionalità, come il "vero zoom", ad esempio, il codice è adattato per lavorare con MicroB, così come è stato fatto per altre funzionalità che erano dei "must" per i nostri utenti.

Lavori direttamente con i dipendenti della Mozilla Corporation?

Sono maggiormente in contatto con Doug Turner, Chris Hoffman, Marcio Galli e tutti gli altri dipendenti della Mozilla Corporation che ho incontrato di persona. Tuttavia, dopo essermi spostato con IRC sui canali Mozilla (#mobile e #prism) alla fine mi sono ritrovato a parlare con altri bravissimi ragazzi come Brad Lassey, Mark Finkle e Chris Blizzard.

Lo sviluppo di MicroB è legato a Mobile Firefox?

Sì e no... lasciatemi spiegare. Il "sì" è illustrato dal fatto che sia MicroB che Mobile Firefox (il prodotto) vengono eseguiti su una build XULRunner. Inoltre il fatto che alcune patch sviluppate dal team di MicroB siano infine controllate dal tree CVS (trunk) significa che c'è una collaborazione. Josef Soref, che è un hacker di lungo corso di Mozilla di cui è stato anche dipendente, è la persona con il ruolo di Browser Specialist in Nokia e quindi c'è un collegamento anche qui. Comunque, come ho detto prima, il motore di MicroB non è sincronizzato con l'ultima versione di Mozilla.

E' basato su XUL, Hildon oppure una combinazione dei due?

Maemo all'inizio usciva sui tablet con il browser Opera e questo si affidava al layer dell'interfaccia basata su Hildon, già ampiamente collaudata. Dunque XUL è completamente fuori gioco nelle build di MicroB. Il team ha capito che non c'era motivo di avere due toolkit di interfacce grafiche. MicroB utilizza il backend Mozilla GTK2/Cairo e Hildon/GTK per i widgets, le finestre e le finestre di dialogo. Assolutamente non c'è XUL.

Possiamo attenderci gli aggiornamenti per Firefox 3 disponibili anche per MicroB?

Per la verità, non so quando MicroB verrà sincronizzato con il trunk XULRunner/Firefox 3. Personalmente, spero che questo avvenga il prima possibile. Dopotutto, tutti i miglioramenti di Firefox 3.x saranno disponibili.

Ho visto poche estensioni famose portate verso MicroB. Quant'è difficile creare delle estensioni compatibili con MicroB?

I sistemi delle estensioni e dell'interfaccia di Mozilla sono progettati per consentire agli sviluppatori di aggiungere nuove funzionalità e applicazioni basate su queste oppure consentire a funzionalità esistenti di essere modificate. I componenti aggiuntivi (come vengono anche chiamati) permettono di solito questo modificando il "chrome" della loro applicazione di riferimento. Quando i componenti aggiuntivi di Firefox si spostano verso MicroB, che ha un'interfaccia Hildon e nessun XUL, il porting richiede che tutto il chrome e tutta la roba "a monte" che si affida a XUL venga sostituita. Inoltre, l'interfaccia di MicroB è un insieme statico di binari che non possono essere estesi da altri livelli, e quindi è difficile implementare un meccanismo per gli utenti per interfacciarsi con altre funzionalità dei componenti aggiuntivi.

Per GreaseMonkey, ad esempio, dovevamo creare un'applicazione standalone per il setup di Hildon che funzionasse come la finestra predefinita per l'installazione su Firefox. Il porting si è rivelato più difficile del previsto perché Gecko 1.9 pre-Alpha 6 utilizzato su MicroB aveva dei fastidiosi bug che, tra le altre cose, richiedevano al motore di riavviarsi due volte per avere la registrazione e il funzionamento corretto dei componenti aggiuntivi appena installati.

Ho visto che il supporto per RSS è stato recentemente migliorato. Che cosa possiamo aspettarci in futuro?

Come detto prima, non so esattamente quando avverrà questo aggiornamento. L'unica cosa che posso dire è che porterà nuove bellissime funzionalità all'esperienza Internet degli utenti maemo.

Nessun commento: