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

Cómo pedir ayuda para corregir un problema de programación

Estimado amigo/a,

acabo de leer tu descripción del error y petición de ayuda:

«He probado algunas cosas y la aplicación Java me falla siempre diciendo no sé qué error. Ya no sé qué hacer. Ayúdame»

Tengo algunos consejos para poder ayudarte. En concreto 10, que se resumen en uno: especifica el error. Si no describes con más detalle el error que obtienes no sabré ni por dónde empezar a ayudarte. El siguiente decálogo es un mínimo, cualquier otra informacióna adicional contribuirá a que pueda ayudarte con más posibilidades de éxito:

1) Una descripción detallada de lo que quieres ejecutar y cuál es el resultado esperado.

2) Una descripción detallada de lo que tu aplicación devuelve al ejecutarla. El mensaje de error en texto Y si es posible, una captura de pantalla adjunta. Es decir, el resultado obtenido.

3) Una descripción detallada del proceso que has seguido, punto por punto, hasta llegar al mensaje de error.

4) Un programa mínimo, que aísle las líneas de código de tu aplicación que crees que fallan. Ese programa, como te indico, debe ser lo más pequeño posible y debe demostrar la situación de error que quieres corregir. Envíame su código fuente (NO el ejecutable) junto con al menos un caso de prueba (cuantos más casos de prueba, mejor, pero al menos uno que demuestre el error).

5) Para el/los caso(s) de prueba del programa anterior, indica también cuál es el resultado que obtienes y cuál es el que esperabas obtener

6) Especifica el sistema operativo que estás usando en tus pruebas (nombre, versión, idioma). Si tu aplicación requiere a su vez de otras aplicaciones para ser ejecutada (bibliotecas de funciones o navegador o una configuración especial del sistema), indica todos los datos posibles de esas otras dependencias (como mínimo nombre y versión)

7) Especifica la versión exacta de Java que estás usando.

8) Indica qué pruebas has realizado hasta ahora y por qué no han funcionado.

9) Indica, si es posible, cuál crees tú que es la causa del error y qué cadenas de búsqueda has utilizado en Google/Bing/Yahoo para rastrear dicha causa… Si no lo has hecho hasta ahora, no busques sólo en castellano, hazlo también en inglés. Y utiliza portales especializados (p.ej.: StackOverflow.com) y grupos de discusión (Google Groups).

10) No te quedes parado tras pedir ayuda. Informa de avances en tu búsqueda y pruebas. Sigue investigando por tu cuenta. Pregunta en distintos foros siguiendo las normas de lanzar consultas técnicas sobre errores de programación de este mismo decálogo y si encuentras alguna pista más, infórmame de la misma.

Un «bonus» consejo más: cuida tu ortografía, gramática y expresión en los mensajes de texto que envíes. Pero de esos puntos ya hablé aquí en Enero y Diciembre de 2009, así que te recomiendo encarecidamente su lectura.

Quedo a la espera de tu respuesta.