Estos últimos meses he estado trabajando en la dirección de dos proyectos relacionados con el desarrollo de extensiones para Firefox yOpenOffice.org, dentro de una de las tareas autoasignadas en mi empresa Proyelia.
Ambas extensiones permitirán un acceso amigable al sitio web guregipuzkoa.net. Este portal, desarrollado por el departamento de Cultura y Euskera de la Diputación Foral de Gipuzkoa, alberga miles de fotos relacionadas con dicha provincia y recopiladas, catalogadas, geolocalizadas y publicadas bajo distintas licencias Creative Commons por técnicos de la Diputación. Los usuarios del portal pueden actuar como consumidores del catálogo ya existente y/o como productores, dado que pueden subir, etiquetar y clasificar en álbumes sus propias fotos.
La extensión de Firefox permite trabajar con guregipuzkoa.net sin tener que conectarse a dicha web. Es posible buscar una foto con cierto título, o que contenga determinadas etiquetas o que esté publicada bajo cierta licencia. Una vez encontradas las fotos de interés se mostrarán con título, autor, licencia y comentarios. Con un click podremos ver a tamaño completo cada foto. Otra pestaña nos permitirá además planificar en batch (por lotes) los uploads de las fotos, así como su etiquetados y geolocalización. El código fuente de esta extensión se ha publicado por el momento bajo licencia Mozilla Public License 1.1 aquí: http://code.google.com/p/guregipuzkoa/ de tal forma que cualquiera pueda estudiar, modificar y usar el código como y para lo que desee, siempre que lo haga bajo los términos que establece esa licencia libre (aprobada por la FSF) y opensource (aprobada por la OSI) http://en.wikipedia.org/wiki/Mozilla_Public_License
Para el desarrollo de esta extensión hemos contado con dos grandes programadores: Asier Sarasua y Julen Ruiz. Con ambos comencé hace años ya a trabajar en el desarrollo de la Euskalbar (plugin Firefox para la búsqueda concurrente de palabras castellano<-->euskera, francés<-->euskera e inglés<-->euskera en diccionarios online, entre otros), y hoy sigo con estos dos proyectos. Asier y Julen son unos cracks, me han enseñado muchos aspectos de la programación de extensiones Firefox que desconocía y contar con ellos es una garantía de éxito en cualquier proyecto de desarrollo.
Por otra parte, también se ha liberado hoy (realmente hace unos días ya, pero la noticia oficial es de hoy 😉 la extensión para OpenOffice.org que permite buscar e insertar fotos de GureGipuzkoa.net en un documento Writer, Calc o Impress. Muy útil cuando estás redactando un documento y quieres insertar alguna foto bajo alguna de las licencias CC que ofrece el portal sin tener que desplazarte a otra ventana: desde dentro del documento que estés editando puedes buscar por palabras clave y tipo de licencia, hacer doble click sobre alguno de los thumbnail que más te gusten y listo (junto con la foto, se inserta el título, URL hacia la foto+autor y la licencia de la foto).
Para el desarrollo de esta extensión no hemos comenzado de cero. Gracias a $DEITY, en el Google Summer Of Code de 2008, la fundación CreativeCommons llevó adelante un proyecto para la búsqueda e inserción de fotos de Flickr en OpenOffice.org:
http://labs.creativecommons.org/2008/08/12/flickr-image-re-use-for-openofficeorg-new-updates/
Gracias ese trabajo hemos podido terminar el nuestro. Aunque ha sido más complejo de lo esperado. Por un lado, el API de GureGipuzkoa (GG) y el de Flickr, aunque parecidos, no son iguales; para empezar, Flickr hace uso de un sistema de autenticación con tokens y «frobs» y GG no. El XML que devuelve uno no es igual al del otro, etc. Por otra parte, el código de la extensión para Flickr
hacía uso de OOo 2.4 y algunas opciones eran incompatibles con OOo 3.x. La parte de Impress estaba sin terminar, el sistema de updates automáticos no era compatible con el de OOo 3.x, y por otra parte, no estábamos tan familiarizados con el desarrollo de extensiones para OOo como para Firefox. En conclusión, hemos tenido que bucear, programar y depurar código viejo y código nuevo. Unido a todo esto, hemos tenido el problema de que el API de GG era inestable, en el sentido de que hemos actuado «un poco» como conejillos de indias del mismo, y durante el camino, hemos tenido que lidiar con un buen puñado de bugs.
El desarrollo del plugin para OOo ha sido llevado a cabo en NetBeans 6.5 (aunque actualmente estamos ya en 6.7!), ya que este IDE dispone de un plugin para el desarrollo de plugins de OOo,valga la redundancia, que nos ha hecho la vida más fácil (a pesar de los bugs que hacían que el depurador de extensiones se colgara cada dos por tres, sin razón aparente, pero eso es otra historia). La instalación de NetBeans + plugin dev-OOO y el ciclo de desarrollo (SVN+compilación+depurado+creación del .oxt) tiene su miga. Me gustaría poder escribir algunos posts sobre este ciclo, porque creo que son de gran interés para todo aquel al que le pudiera
interesar el desarrollo de extensiones para OpenOffice.org (cada vez hay más, pero aún es muy poco en comparación con los plugins y desarrolladores de plugins para Firefox).
No quiero terminar este post sin nombrar al desarrollador principal de la extensión OOo para GureGipuzkoa: Jon Gárate (MoreNops). Otro crack que domina todos los aspectos del ciclo de vida de un desarrollo software. Desde el diseño de alto nivel hasta la depuración del código de conexión a partir de tramas capturadas con Wireshark 😉
Hoy es el día en el que se ha hecho el commit público de la versión 1.0 de ambos plugins. Esperemos que os gusten, os sean útiles y que, aquellos de vosotros interesados en adaptarlos, mejorarlos o comentarlos, os unáis a la lista de ggplugin@googlegroups.com para hacernos partícipes
de vuestras inquietudes.
Aupa Juanan!
Por matizar un apunte que comentas:
«…hemos tenido el problema de que el API de GG era inestable, en el sentido de que hemos actuado “un poco” como conejillos de indias del mismo, y durante el camino, hemos tenido que lidiar con un buen puñado de bugs.»
El tener esos quebraderos de cabeza es lo que tiene el haber sido los primeros usuarios de la API pública de GureGipuzkoa, lo raro hubiera sido que no los hubierais tenido. 😉
La API pública de GureGipuzkoa.net está disponible aquí: http://www.guregipuzkoa.net/api
Eskerrikasko!
Fue toda una aventura, si señor, la autentica escuela de la vida :-). Asi que aprovecho para mandar un saludo y dar las gracias a todos los compañeros de Proyelia y en particular a ti, Juanan, por darme la oportunidad y estar ahi de apoyo tanto con este tema como con el PFC.
Un saludo a todos y disfrutad (el que pueda) de la compañia de Lorenzo!
@xabi: totalmente de acuerdo, pero si ponía que todo ha sido «rosa», mis compañeros de desarrollo me lo hubieran echado en cara 😉 (las sesiones de wireshark han incrementado nuestro gasto en café)
@jon: espero que tras el verano puedas compatibilizar trabajo y estudios. Ahora, a disfrutar y a achicharrarse con Lorenzo ($deity! Cómo calienta…)