Tu propio servidor Moodle gratuito en la nube OpenShift

¿Recuerdas que ya hablamos en DiarioLinux sobre la plataforma OpenShift Express? Efectivamente, es el servicio en la nube de RedHat que te permite montar – por el momento  – tu propio servidor Linux online de forma gratuita. Pues bien, vengo con novedades. La primera es que, gracias a este reciente podcast de FLOSS Weekly, nos enteramos de que  OpenShift usa internamente instancias AWS (Elastic Cloud Computing, EC2) de Amazon. Así que RedHat está apostando muy fuerte por su servicio PaaS (Platform as a Service) cuando ofrece gratuitamente algo que a ellos les estará costando un buen puñado de dólares. Como bien comentan en el propio podcast, esto es temporal (lógico), hasta conseguir una masa crítica de usuarios.

Pero la novedad que da título a este post consiste en la posibilidad de montar tu propio servidor Moodle online usando OpenShift. Para ello seguiremos las instrucciones dadas por burningTyger, el autor original de la receta.

En resumidas cuentas, lo primero es instalar las herramientas rhc para conseguir controlar OpenShift desde la línea de comandos (o ¿debería decir «de órdenes», para no pecar de indocumentado? 😉 Este paso lo dejamos bien descrito en el artículo anterior de DiarioLinux, por lo que vuelvo a remitirte a su lectura. Lo siguiente es clonar el repositorio de Moodle que burningTyger tiene en GitHub.

  git clone git://github.com/burningTyger/os_moodle.git

Esto nos creará en el directorio os_moodle una copia del servidor Moodle especialmente preparado para ser ejecutado en OpenShift.  Situados en os_moodle, lanzamos los siguientes comandos:

rhc-ctl-app -a moodle -e add-mysql-5.1 -l tu_login
git remote add openshift tu_url_git_openshift

La primera línea indica que queremos montar una nueva aplicación sobre OpenShift, a la que daremos e nombre de moodle y, a continuación, añadirle un servidor mysql-5.1. «tu_login» es el identificador de usuario que diste en OpenShift (normalmente tu dirección email). La segunda línea indica que al repositorio moodle que acabas de crear en tu disco, quieres añadirle una referencia al repositorio que tienes en OpenShift. La dirección de este último es lo que tienes que poner en el campo «tu_url_git_openshift». Esta url la puedes obtener listando tus aplicaciones desde la línea de comandos (ops… otra vez 😉

$ rhc-domain-info -l tu_login_openshift -p tu_password

Verás algo así:

 Git URL: ssh://xxxxxxabc123def456xxxxx789abcxxx@moodle-tudominio.rhcloud.com/~/git/moodle.git

Ya está todo en orden. Ahora sólo hace falta «subir» a OpenShift (hacer un push) lo que tienes en tu disco duro:

   git push -f openshift master

¡Fin! Tu instancia Moodle estará lista para ser configurada (nombre, cursos, alumnos…) desde la URL de tu aplicación (la que se ve en la Git URL)

http://moodle-tudominio.rhcloud.com

Probablemente te interese activar el soporte cron de OpenShift para lanzar el proceso cron de Moodle periodicamente. Para ello, debes especificar que quieres hacer uso de cron:

$ rhc-ctl-app -a moodle -e add-cron-1.4

A continuación, crea el directorio moodle/.openshift/cron/hourly y dentro, crea un script llamado reloj.sh con el siguiente contenido:

#!/bin/bash
/usr/bin/php  ${OPENSHIFT_HOMEDIR}/app-root/repo/php/admin/cli/cron.php >/dev/null

No te olvides de asignarle permisos de ejecución (chmod +x ./reloj.sh). A continuación, nos situamos nuevamente en moodle/ y añadimos el script recién creado al conjunto de ficheros gestionados por git (add+commit) y subimos los cambios a OpenShift (deploy).

$ git add .openshift/cron/hourly/
$ git commit -a -m "add reloj.sh hourly cron script"
$ git push

Un detalle final: dado que Moodle suele publicar actualizaciones periódicas, es recomendable descargarlas y mantener actualizado tu servidor. Este punto también está pensado. Basta con que descargues los updates del repo Git original y los subas a tu servidor en OpenShift:

$ git pull origin master
$ git push openshift master

En mi grupo de investigación estamos usando OpenShift como alojamiento para la demo del plugin Babelium para Moodle https://moodle-babelium.rhcloud.com . Como ves, OpenShift admite también direcciones https. Anímate a publicar ahí tu vídeo-respuesta 🙂

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