15 junio 2008

Mi primera extensión para firefox

Hace una semanita, comencé los exámenes de la facultad.

Y claro, tal y como sabe todo el mundo, cuando es tiempo de examenes, se sienten unas ganas irrefrenables de programar gilipolleces.

En esta ocasión quise entrar en el mundo de las interfaces gráficas con soporte para web browsers, a raíz de ver el proyecto arora (un navegador desarrollado en C++/Qt con el motor de webkit [el motor de renderizado y javascript que usa safari, fork de kthml]).

Estuve buscando documentación sobre el desarrollo en cualquier lenguaje (C++, Java o python eran mis preferidos) con soporte para webkit, pero encontré escasos recursos.

Parecía que la mejor opción era python, pero digamos que le tengo "tirria". No es por la sintaxis, ni nada de eso. La razón son los cambios en la especificación que sufren diferentes versiones del mismo módulo. Hace poco actualicé una movida de python Qt y dejaron de funcionarme varias aplicaciones que usaban de QtDate. Y no viene de ahora, recuerdo que hace algunos añitos me pasaban los mismos problemas.

Bien, una vez olvidada la idea de usar webkit, decidí buscar información sobre el motor gecko.

Y de casualidad, por un enlace a la wikipedia, ví que existía un lenguaje de diseño llamado XUL para desarrollar interfaces a partir de archivos xml. La funcionabilidad en dichas aplicaciones se realizaba a través de simples scripts javascript.

No conocía el sistema, pero tenía buena pinta. Me encanta javascript y además, tanto firefox como thunderbird o songbird están desarrollados con esta tecnología.

Pues bien, el pasado findesemana me leí la documentación entera de XUL y decidí ponerlo en práctica.

El resultado es una pequeña extensión para firefox, de poquisímas lineas que simplemente añade un icono a la statusbar de firefox.

Al clickar sobre dicho icono, si la web que se está visitando es de algún video de youtube, te abre un popup únicamente con el video que estás viendo, con la intención de que puedas dejarlo sobre las demás ventanas y seguir realizando tus tareas sin que moleste.

Dicha extensión se puede descargar de aquí.

A ver si comienzo algún proyecto algo más serio con esto :)