Claudio Cherubino's blog Life of a Googler

8Sep/080

Songbird, il media player di Mozilla

Chi contribuisce ad un progetto open-source non lo fa, almeno nelle intenzioni iniziali, per ricavarne dei soldi, ma al massimo notorietà o qualche contatto che potrà risultare utile un giorno.

Di sicuro si tratta di un ottimo modo per imparare cose nuove e sperimentare le ultime tecnologie, ed è con questo spirito che personalmente ho dato il mio apporto a MySQL, PHP, WordPress e, più recentemente, Songbird.

Probabilmente conoscerete tutti i primi tre, ma è proprio dell'ultimo che vorrei parlarvi in questa occasione.

Songbird è un media player open-source basato sulla piattaforma XULRunner di Mozilla, in pratica la stessa tecnologia alla base dei ben più noti Firefox e Thunderbird.

Lo sviluppo è arrivato attualmente alla release 0.8pre ma le caratteristiche sono già confrontabili con quelle di iTunes e comprendono anche il supporto per le estensioni (stile Firefox) e i temi, qui chiamati "feathers".

All'interno del sito ufficiale (http://getsongbird.com/) esiste uno sezione dedicata a chi vuole contribuire (http://getsongbird.com/contribute/) che descrive tutte i modi che esistono per supportare il progetto.

Ovviamente il primo tra essi consiste nello scrivere del codice, ma è anche possibile fare la propria parte semplicemente facendo conoscere Songbird o segnalando i bug che si incontrano.

A proposito di ciò, Pioneers Of The Inevitable (l'azienda che sta dietro Songbird) ha costituito il gruppo sb_core, costituito da quegli sviluppatori che si occupano di fixare i bug dell'applicazione.

In cambio, ogni sviluppatore riceve una serie di quei gadget che rendono felice la vita di noi geek.

Io faccio parte di questo gruppo avendo chiuso il mio primo bug una decina di giorni fa e proprio oggi ho trovato nella cassetta delle lettere una busta contenente una maglietta e tonnellate di stickers, spille e cartoline.

Ho fatto una foto a questo ben di dio, chissà che non invogli anche voi a contribuire:

I gadget di Songbird

I gadget di Songbird

All'inizio potrà sembrare molto difficile, ma pian piano si scoprono tanti piccoli trucchetti e soprattutto si comincia a padroneggiare una piattaforma complessa come quella di Mozilla.

Se volete una mano chiedete pure, ma vi consiglio di scoprire da soli la soddisfazione di vedere il proprio codice all'interno di un progetto così vasto e importante...

29Nov/070

Fixare i bug di PHP e MySQL

Nell'ultimo periodo ho dedicato buona parte del mio tempo libero allo studio di alcuni dei più importanti progetti open-source esistenti, tra cui PHP e MySQL, in modo da partecipare allo sviluppo.

Devo ammettere che giàla fase di build dei sorgenti ha richiesto del tempo per essere acquisita.
Ogni progetto prevede il proprio sistema di controllo della versione (CVS, SVN o Bitkeeper) e la sua procedura per la configurazione, compilazione e installazione.

Anzi, se pensate che possa interessare, magari potrei provare a scrivere una guida passo-passo per la compilazione di PHP o MySQL su Ubuntu 7.10, che è la piattaforma di sviluppo che ho adottato.

Una volta che si riesce a compilare il sorgente, il passo successivo è trovare un bug da studiare e tentare di fixare.

Niente di complicato, basta visitare il bug-tracker di PHP o MySQL e scegliere uno dei bug ancora aperti.

Identificato il bug si deve cercare di riprodurlo nella propria macchina.

Se il problema si verifica come descritto, allora si passa allo studio del codice per capire dove intervenire e in che modo.

Ovviamente conviene cominciare da qualche bug facile, in modo da cominciare a conoscere il codice, che in progetti come questi è sicuramente complesso.

Nel mio caso, ho scelto un bug di PHP e uno di MySQL, e sono riuscito a chiuderli entrambi.

Volete mettere la soddisfazione personale di vedere il proprio nome nel codice di PHP, come si vede in questo log?

revision 1.656
date: 2007/11/21 02:27:07; author: stas; state: Exp; lines: +2 -2
fix #42866, from Claudio Cherubino

Il bug in questione è il seguente, e riguardava il supporto per UNICODE nella futura release 6 di PHP:

http://bugs.php.net/bug.php?id=42866

Per quanto riguarda MySQL, invece, il bug riguardava la funzione LAST_DAY():

http://bugs.mysql.com/bug.php?id=32770

ed ecco qui la la descrizione della mia patch, compresa di codice e test case:

http://lists.mysql.com/internals/35187

Lo so che si tratta di piccole cose, ma è sempre un inizio, e anche se la comunitàopen-source non mi saràdebitrice a vita, sicuramente il mio orgoglio di informatico se la passa molto bene...

27Nov/070

I miei progetti

Quando per la prima volta mi è stato richiesto un portfolio da sviluppatore sono stato sicuramente preso alla sprovvista, ma non posso negare che la cosa mi ha fatto riflettere.

Se una persona è appassionata di informatica, molto probabilmente avràavuto a che fare con una serie più o meno lunga di progetti di vario genere.

Anche per me è così, e finalmente mi sono messo all'opera per cercare di razionalizzare ciò che ho fatto.

Ho appena pubblicato una nuova pagina su questo blog chiamata Projects, che è raggiungibile dal link in alto a destra, accanto al link che porta al mio profilo o al form per i contatti.

La pagina Projects è scritta in inglese, sia perchè i progetti sono internazionali, ma anche perchè ritengo che debbano essere accessibili a tutti (sono anche open-source).
Inoltre è sempre un modo per farsi un pò conoscere, giusto?

Per adesso la pagina non è assolutamente completa, ho messo solo due progetti ai quali ho partecipato, spero di trovare il tempo per aggiornarla con una certa frequenza.

Il problema è che in molti casi non è facile ritrovare documentazione sufficiente...

27Nov/070

Projects

This page aims to be a central point to group all the projects I'm currently involved or I participated in the past.

I started writing this page because I found out that even if I participated in many projects, I don't have a unique point of access to them.

For each one of them I'll publish links to documentation, source code, links and everything else I can collect on it.

The following list is not complete, I'll try to complete it soon, but for now please accept my apologies.

  1. Project Voldemort Ruby client library
  2. Contributions to open-source projects (PHP, MySQL, WordPress, Songbird)
  3. lib_mysqludf_str - A library of MySQL UDFs for working with strings
  4. AMGA PHP API
  5. Google Gadgets
  6. WordPress Plugins
  7. FSharp.it
  8. Articles and books


Project Voldemort Ruby client library

A pure-Ruby client library for Project Voldemort, a distributed key-value storage system based on Amazon Dynamo.
The library uses ruby_protobuf, the Ruby version of Google Protocol Buffers, as a base for the communication protocol.
For further information please visit the project page on Google Code repository:

http://code.google.com/p/voldemort-ruby-client/


Contributions to open-source projects

This list shows some of the patches and code contributions to open-source projects such as MySQL, PHP, WordPress or Songbird:


lib_mysqludf_str

MySQL UDFs offer a powerful way to extend the functionality of your MySQL database.
lib_mysqludf_str aims to offer a library of string functions which can complement the native one, in order to ease the development of MySQL-based applications.
For further information please visit the dedicated page on The MySQL UDF Repository:

http://www.mysqludf.com/lib_mysqludf_str/index.php


AMGA PHP API

AMGA is the gLite Metadata Catalogue, designed to meet the requirements of the EGEE grid-computing applications. Its implementation uses streaming to communicate between client and server which shows a very promising performance.

Initially, access to AMGA was only possible using C/C++, Java or Python, and this library allows the developers to connect to an AMGA metadata server using PHP.

For further information please visit the AMGA website:

http://amga.web.cern.ch/amga/

The PHP API documentation can be found at:

http://amga.web.cern.ch/amga/php/index.html


Google Gadgets

My experiments with the Google Gadgets API:


WordPress Plugins

My open-source extensions to WordPress:


FSharp.it

A blog devoted to functional programming and F#, Microsoft functional programming language based on the .Net framework.

This blog can be found at fsharp.it and despite the domain extension it is entirely written in English.


Articles and books

My adventures in the technical publishing world:



13Jul/071

GoPHP5

GoPHP5 Logo

La versione 5 di PHP è stata rilasciata pubblicamente 3 anni fa, eppure, nonostante i grandissimi passi avanti rispetto alla versione precedente, ancora la sua diffusione è molto bassa.

Il problema del passaggio a PHP5 non è solo tecnico ma anche "politico", infatti moltissime applicazioni disponibili su Internet non sono compatibili con la nuova versione del linguaggio e i siti di hosting non vogliono rischiare di essere abbandonati dai propri utenti perchè i loro programmi non girano più.

Ci voleva quindi una iniziativa forte che "obbligasse" gli sviluppatori delle applicazioni PHP più diffuse a sforzarsi per renderle compatibili con PHP5, facilitando quindi la transizione ai provider.

Questa iniziativa adesso esiste e si chiama GoPHP5, e propone come scadenza per l'adozione di PHP 5.2.0 (o successivi) il 5 Febbraio 2008.
Hanno già  aderito in molti, ad esempio phpMyAdmin o Drupal.

Io personalmente non posso che essere felice di questo passaggio, da un paio di anni per le mie applicazioni uso solo PHP5, ma sviluppando software custom mi è molto più facile richiedere l'installazione dei pacchetti che mi servono.

E voi? Avete poco più di 200 giorni per adeguarvi...

Tagged as: , 1 Comment
20May/070

Di ritorno dal PHPDay

Ho dovuto puntare la sveglia alle 5 e andare dalla parte opposta del Paese per partecipare al PHPDay, ma ne è valsa sicuramente la pena.

L'evento è stato un grande successo, circa 200 partecipanti, sponsor del calibro di Microsoft, Zend, Yahoo, Codegear e php | architect, e speaker di alto livello, suddivisi in due canali: Developer ed Enterprise.

Tutti i talk del canale Developer sono anche stati filmati e trasmessi in streaming grazie a Ustream.tv, e molti di essi sono disponibili sul sito dell'evento insieme alle slide.

In particolare ci sono stati due talk strepitosi, quello di Jacopo Romei sull'Extreme Programming e quello di Gabriele Lana sul testing delle applicazioni web.

Buona l'idea di organizzare dei Lightning Talks durante le pause, peccato che il tempo fosse poco e comunque la gente ha bisogno di fare delle pause, soprattutto se è sveglia dalle 5 del mattino! :-)

Unica nota negativa della giornata il pranzo al ristorante convenzionato con l'evento, mi sa che la prossima volta bisognerà  trovare una soluzione migliore.

A parte questo, non può che renderci felici l'annuncio dell'intenzione di raddoppiare il PHPDay e organizzare un secondo evento prima della fine dell'anno, speriamo bene!

15May/070

PHPDay 2007

Venerdì 18 Maggio (fra 3 giorni) si terrà  a Verona il quarto PHPDay e io ho già  comprato il mio biglietto aereo per esserci.

L'iscrizione è gratuita, quindi se siete interessati e nelle vicinanze, vi consiglio di passare a dare un'occhiata.
Copio di seguito l'annuncio ufficiale, tratto dal sito www.phpday.it:

Il GrUSP (Gruppo Utenti e Sviluppatori PHP italiani) organizza per Venerdì 18 Maggio 2007 la quarta edizione del PHPDay, giornata interamente dedicata al linguaggio PHP. Saranno presentati argomenti inerenti l’uso di PHP in azienda (percorso Enterprise) e conferenze di taglio più tecnico (percorso Developer). Presenti, tra gli altri, relatori di Zend ed eZ Systems. Le ultime novità  e le modalità  per presentare un proprio argomento o sponsorizzare la manifestazione su www.phpday.it

Le conferenze saranno divise in due canali: Developers e Enterprise.
Per il calendario completo ecco il link.

Tagged as: , , , No Comments
26Apr/073

Sono su Amazon!

Scusate l'autocelebrazione, ma ho scoperto con un certo orgoglio di essere presente come autore su Amazon.

Non credo possa dare la stessa soddisfazione anche a voi, ma se volete unirvi a me ecco il link.

Tagged as: , , , 3 Comments
28Mar/0716

Il “mio” libro su AJAX

Nei mesi passati ho collaborato con un editore inglese specializzato in testi tecnici, Packt Publishing, per la traduzione e la cura dell'edizione italiana del libro "AJAX e PHP: Sviluppare applicazioni web dinamiche".

Oggi finalmente è stata messa online una pagina dedicata a questa edizione, http://www.packtpub.com/AJAX-e-PHP/book, e il libro dovrebbe essere acquistabile nei negozi o via Internet da Aprile.

Ovviamente sono di parte, ma ho scelto di occuparmi di questo testo perchè AJAX è sicuramente la tecnologia del momento e non esistono, a mio parere, libri in italiano che trattano l'argomento con lo stesso approccio di questo. Gli autori, infatti, hanno scelto di spiegare tutta la teoria che sta dietro AJAX partendo dagli esempi ed in maniera molto pratica.

Nei 10 capitoli che compongono il libro si parla quindi di validazione di form, autocompletamento, chat, grafici, feed RSS, drag-and-drop e molto altro.

E non dimenticatevi della migliore edizione italiana di un libro di informatica! :-)

8Mar/070

API PHP per AMGA

AMGA (http://amga.web.cern.ch/amga/) è il catalogo di metadati ufficiale di gLite (http://glite.web.cern.ch/glite/), uno dei middleware per il grid computing più usato al mondo.

Questo servizio fornisce delle API per C++, Java, Python e Perl, e io ho sviluppato recentemente quelle per PHP (http://amga.web.cern.ch/amga/php/index.html).

Proprio oggi ho tenuto un breve talk per presentare queste API al JRA1 All-Hands meeting (http://indico.cern.ch/conferenceDisplay.py?confId=11908), e ho pensato che magari qualcuno potrebbe essere interessato all'argomento.

Se siete fra questi, vi invito a scaricare la presentazione che ho mostrato.

Tagged as: , , , No Comments