Incubando huevos al estilo Apache

Me gusta aplicar herramientas y técnicas que aprendo en la ingeniería de grandes proyectos de software opensource en la gestión y trabajo diario de los Proyectos Fin de Carrera que dirijo (ahora, Trabajos Fin de Grado). Realmente creo que estas técnicas se pueden reutilizar tamb ién y de forma bastante directa en el ámbito empresarial, pero eso lo dejo como tema de discusión para otro día. Ahora quiero centrarme en exponer brevemente, de forma muy resumida, cómo funciona la incubadora de proyectos de Apache.

Apache ofrece cobertura técnica (infraestructura, servidores, listas de correo, espacio en disco…) y legal a los nuevos proyectos que acoge, aparte de permitir asociar su marca, Apache (muy reconocida en el mundo tecnológico) al nuevo proyecto. Éste, a cambio de pasar a formar parte de la incubadora de la fundación (a ser un podling), debe empezar a cumplir ciertos requisitos.

No es fácil llegar a formar parte de la incubadora, hay un largo camino que recorrer, pero una vez que lo consigues y tu proyecto obtiene una dirección en la incubadora Apache, entras, como hemos dicho, en la zona de Podling. Aquí tendrás resposabilidades y mucho trabajo por hacer. Entre otras cosas:

* generar un informe de seguimiento. Uno al mes durante los primeros 3 meses y uno cada 3 meses a partir de ahí.
Puedes ver esta planificación de informes general, o uno en particular (mes de Marzo de 2012)

* mantener actualizada una página con un resumen del estado del proyecto. Por ejemplo, ésta de OpenMeetings.

* atender las listas de correo

* generar novedades en el proyecto. Estas novedades serán recogidas y documentadas de forma automática. Si cada proyecto de la incubadora es visto como un huevo, el nido de huevos sería el clutch de Apache. Y las novedades en el clutch están monitorizadas.

¿Qué se monitoriza? Entre otros datos, los días de incubación, la última fecha de commit en SVN, la última fecha de actualización de la página de estado, el número de nuevos commiters,

Como todo huevo bien cuidado por sus progenitores, eclosionará en algún momento, pasando a ser un potencial proyecto Top Level de Apache (digo potencial porque deberá ser aprobado por votación)

Como ves, la política de incubación es interesante y puede ser aplicada fuera del entorno Apache (en empresas de desarrollo software, en proyectos fin de carrera, trabajos fin de grado…). Lo que está claro es que requiere mucha dedicación y esfuerzo a los responsables del proyecto, así que ahora entenderás mejor porqué algunos proyectos no se deciden a dar el paso de entrar en la incubadora (aparte de que algunos proyectos no quieran usar ni los servicios ni la licencia Apache).

Zotero, un gestor de referencias bibliográficas libre

Zotero es un gestor de referencias bibliográficas libre. Resumiendo rápidamente: permite almacenar referencias en la nube Zotero e insertarlas cómodamente como citas en cualquier documento desde LibreOffice. Una vez terminadas de insertar las citas, también permite generar con un sólo click la lista completa de referencias usadas en el estilo de citas que necesites. Esto, que parece sencillo, es una auténtica tortura si tienes que hacerlo a mano.

Las primeras versiones sólo podían ser usadas como plugin de Firefox pero desde hace un tiempo (Enero de 2011) ya tenemos la opción de ejecutar Zotero como aplicación independiente. Además, hay plugin de Zotero para Chrome y como he dicho, también para LibreOffice y OpenOffice.

Por otra parte, Zotero permite compartir las referencias bibliográficas entre un grupo de personas (muy útil cuando redactas un artículo junto a otros autores). Además, si alguno de los autores modifica una referencia, ésta queda sincronizada a los pocos segundos y de manera automática en todas las instancias Zotero.

Esta aplicación contiene también un webscraper que permite capturar y parsear la información de los artículos o libros que encuentre mientras visualizas una página web. Algo muy, pero que muy útil cuando estás navegando por Google Scholar, las páginas de Thomson, Springer… y encuentras algún artículo cuya referencia te interesa guardar en Zotero (con todos sus campos bien cumplimentados: título, autor, año de publicación, editorial, doi, etc.)

Puedes descargar la versión standalone de Zotero y los plugins para LibreOffice y tu navegador. También puede que te interese conocer la lista de los 2030 estilos de citas que Zotero sabe tratar.

Otro gestor de referencias bibliográficas multiplataforma recomendado es Mendeley. También el propio LibreOffice dispone de un gestor de bibliografia bastante completo, sin necesidad de plugins. !Tienes dónde elegir! 🙂

Acceso a MySQL remoto vía Android y SSH tunneling

Otra receta, esta vez para poder acceder desde nuestro dispositivo Android a una DB MySQL remota protegida por un firewall que impide la conexión directa. Necesitaremos realizar 3 pasos:

1) Instalar Connect Bot (para la parte SSH que explicaré a continuación) y MySQL Connect (de Javier Romero).

2) Generar un túnel SSH que permita conectar el puerto 3306 del dispositivo Android al puerto 3306 de la máquina remota (vía túnel SSH, porque el puerto 3306 remoto, recuerda, está filtrado por el firewall)

Para ello, en Connect Bot mantenemos pulsada la conexión SSH que queremos tunelizar y en el menú contextual elegimos «Editar redirección de puertos». Ahí configuramos una nueva redirección así: (la traducción del primer campo está mal, debería poner ‘nombre del túnel’ o algo similar, no nombre del usuario)

Conectamos ahora normalmente con Connect Bot (como si de una conexión SSH normal se tratara). Internamente estará abriendo el túnel.

3) Abrir una conexión con protocolo MySQL desde el cliente Android (la aplicación que haga esto en principio no sabe que el puerto 3306 local es realmente un extremo del túnel SSH. Para la aplicación Android ese puerto corresponde a una BD MySQL local!) En la imagen adjunta, «tester» es el nombre de usuario MySQL que tengas configurado en la DB remota.

¡Listo! Ya puedes ver y editar tuplas y esquemas de tus tablas cómodamente desde tu tablet Android (desde tu móvil también, pero no tan cómodamente 😉

Ya está aquí la World Plone Day 2012

Desde CodeSyntax nos cuentan:

Ya está aquí la cita anual que pretende dar a conocer Plone, la World Plone Day. El 25 de abril se organizarán multitud de eventos en todo el mundo para publicitar las características y ventajas de este gestor de contenidos de software libre. Desde CodeSyntax nos sumamos a la iniciativa de la Fundación Plone con una serie de charlas. Pero estas charlas las impartirán clientes nuestros que utilizan Plone en su día a día; el objetivo es dar a conocer este CMS desde la óptica de los gestores de contenido y los usuarios.

Podremos conocer de cerca tres experiencias distintas: una empresa enfocada en internacionalizarse (Ulma Packaging), un sitio web mantenido por multitud de editores (Mondragon Unibertsitatea) y el sitio web de una Agencia Europea, con la complejidad que ello implica (EU-OSHA, European Agency for Safety and Health at Work).

Cuándo

25 de abril, miércoles, de 10:00 a 12:00.

Dónde

En las oficinas de CodeSyntax

Programa completo e inscripciones

Receta rápida: evitar desconexión por timeout en ssh

Problema: El servidor ssh al que te conectas cierra la conexión cuando detecta inactividad del usuario. Como tienes varias ventanas y tareas abiertas a la vez, ese timeout hace que la sesión ssh se quede bloqueada cada dos por tres.

Solución: crear un fichero ~/.ssh/config con el contenido que indico a continuación. Ese fichero se leerá cada vez que iniciemos una conexión ssh con cualquier host. Lo que indicamos es que queremos lanzar un paquete a modo de señal cada 120 segundos (2 minutos), haciendo saber que seguimos conectados y que no queremos que nos corte la conexión. Si por cualquier razón el servidor no respondiera tras 3 intentos de envío de señal (2*3 = 6 minutos), se cancelará la conexión.

cat ~/.ssh/config 
Host *
    ServerAliveInterval 120
    ServerAliveCountMax 3