Ikasten.IO
Learning, Aprendiendo

Compilando phantomjs para ARM 21 Febrero, 2017

Solución: Crear un fichero de SWAP https://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/

y seguir compilando siguiendo la guía de la propia web de Phantomjs.

Done! Puedes descargar el binario desde este repositorio GitHub.

No hay comentarios en Compilando phantomjs para ARM
Etiquetas: ,
Categorias: Cloud

Lynckia: vídeo conferencias en HTML5 (look ma! no plugins) 16 Marzo, 2013

lynckia Lynckia (plataforma de comunicaciones de código abierto) permite realizar comunicaciones en tiempo real desde tu navegador usando la tecnología WebRTC. Aunque hasta hace poco sólo el navegador Google Chrome disponía de una implementación avanzada de WebRTC, desde el 4 de Febrero de este año podemos usar también el navegador Firefox. El 6 de Marzo (es decir, hace exactamente 10 días!) Google anunció el soporte WebRTC también en la versión de Chrome para Android.

Aún queda mucho trabajo por hacer (poder capturar streams RTMP y que formen parte de la videoconferencia, poder codificar los streams de los usuarios en uno sólo y no uno por cada usuario, ampliar la base de ejemplos…) pero los avances realizados hasta el momento por el equipo de Lynckia son impresionantes. Como decían en HTML5Spain:

Lynckia nos ha parecido uno de los proyectos más interesantes que han aparecido en escena a nivel internacional a lo largo de este año

Lynckia se puede probar online siempre que uses una versión moderna de Chrome o Firefox, sin necesidad de instalar nada manualmente (ni tener ningún tipo de plugin instalado).

Si quieres tener tu propio servidor Lynckia, su instalación para el caso de Ubuntu 12.04 es sencilla. Basta con ejecutar los scripts paso a paso. En mi caso, con Ubuntu 12.10, instalé las dependencias Node.js, Nodejs-dev y nmp desde el repositorio oficial de Ubuntu (sin usar el PPA de Chris Lea como indican las instrucciones) y pude compilar y probar la demo básica sin problemas. En la demo básica se lanza un servicio Lynckia en el puerto 3001 de tu máquina local. Abriendo esa url en Chrome, te pedirá permiso para acceder a la webcam y al micrófono. En cuanto concedas permisos, verás tu imagen en pantalla (y oirás lo que digas por el micro). Si abres otra pestaña en el navegador y repites el proceso, verás que debajo de la imagen original se abrirá otra más, a modo de videoconferencia (contigo mismo en esta demo, pero se entiende el objetivo, no? 😉

1 comentario en Lynckia: vídeo conferencias en HTML5 (look ma! no plugins)

Tu propio servidor Moodle gratuito en la nube OpenShift 25 Junio, 2012

¿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.

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:

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 😉

Verás algo así:

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

¡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:

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

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).

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:

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 🙂

No hay comentarios en Tu propio servidor Moodle gratuito en la nube OpenShift

Openshift: computación gratuita en la nube de RedHat 25 Enero, 2012

OpenShift Express es una plataforma (PaaS) gratuita para el despliegue de aplicaciones en la nube proporcionada por RedHat. En ella podremos desplegar aplicaciones Java, Perl, PHP, Python y Ruby.  Además, permite la instalación (también gratuita) de un servidor de bases de datos como MySQL, Postgres o MongoDB.  El procedimiento es bastante simple: al abrir una cuenta, OpenShift te generará una URL única para tu aplicación y un repositorio git asociado.  Tus desarrollos se guardarán en git de tal forma que al hacer git push , automáticamente, aparte de subir tus cambios al repositorio remoto, estarás dando una orden de despliegue de la aplicación (internamente lo hace a través de hooks o ejecución de scripts ante eventos como un git push)

Dejo esbozados aquí los pasos necesarios para crear una cuenta, desplegar tu propia BBDD MySQL y subir un pequeño script PHP que hace uso de dicha base de datos:

1) Darte de alta en OpenShift Express (existe otra modalidad de pago, llamada Openshift Flex, para usuarios con necesidades más avanzadas)

2) Entrar en el panel de control de Express

3) Crear un namespace (la URL de tus aplicaciones siempre serán del tipo  nombreaplicacion-namespace.rhcloud.com). En la imagen superior he creado un namespace = babelium

4) Crear una aplicación de tipo Java, PHP, Python, Ruby o Perl. En mi ejemplo el nombre de la aplicación es “demo” (tras mucho estrujarme los sesos 😉 y se trata de una aplicación PHP.

Como puede verse en la imagen, tras el paso 4 se creará un repo git en la dirección ssh://xxxxxx@demo-babelium.rhcloud.com/~/git/demo.git/

5) Opcional: para poder acceder por ssh a nuestra instancia (sí! tenemos acceso ssh gratuito!) subimos la parte pública de nuestra clave RSA ( normalmente la tendrás situada en  ~/.ssh/rsa_id.pub )

6) Clonamos el repo git del paso 4

Bien… ¿me sigues? Ok, los pasos que he comentado hasta ahora (crear namespace, nombre de aplicación, asociar la aplicación a un entorno PHP, etc. se puede hacer desde la línea de comandos. Para ello, debes instalar las utilidades rhc (RedHat Cloud) que son scripts en Ruby (gemas) para control remoto de las aplicaciones en Openshift. Desde Ubuntu basta con que hagas:

Ojo con el path, igual en tu máquina las gemas rhc no se instalan exactamente en la misma ruta, ¡échale un vistazo antes!

¿Por dónde íbamos? Ah! sí, por el paso 7 🙂

7) Bien, vamos a instalar soporte MySQL en nuestro entorno. Para ello, ahora sí desde la línea de comandos, porque el panel de control por ahora no ofrece la opción de hacerlo vía point&click:

Olé! MySQL 5.1 instalado por la patilla… y ¿qué es eso de que incruste phpmyadmin? No me digas que también lo tengo por el mismo precio! Pues así es amigos… 🙂 De hecho, tengo varios cartuchos (cartridges le llaman en RHC) disponibles:

Olé y olé… jenkins… mmmmmhhh… eso lo dejo para otro día 🙂 Por ahora vamos a instalar phpmyadmin.

Acabamos de enganchar a nuestra aplicación demo un phpmyadmin-3.4 . Para los que se acuerden de artículos anteriores de DiarioLinux, esa sintaxis le sonará al entorno juju de Ubuntu. El login y pass será el mismo que te han dado para MySQL. La URL de acceso también la tendrás al ejecutar el comando anterior.

Nota: teniendo phpMyAdmin, crear las tablas en la BBDD es trivial. Pero existen otras formas de hacerlo (sin usar phpMyAdmin). Una de ellas en entrar por ssh a tu instancia y crear las tablas desde la línea de comandos mysql, pero otra forma más elegante es usar un hook de git. En concreto, en tu repo tendrás un directorio .openshift, y dentro del mismo un subdirectorio llamado action_hooks. Lo que hay ahí son scripts que se ejecutan en distintos momentos tras hacer un git push. El script deploy es el más adecuado para generar tus tablas y poblar con tuplas las mismas. Edita ese script (/opt/demo/.openshift/action_hooks) así (gracias a schabell.org por enseñarnos a hacerlo):

Como ves existen algunas variables de entorno predefinidas: $OPENSHIFT_DB_HOST (dirección del host que alberga tu MySQL), $OPENSHIFT_DB_NAME (nombre de la base de datos de tu aplicación), etc. Como digo son variables predefinidas, ya tienen el valor correcto asignado sin que tú hagas nada. El script bash anterior, lo que hace es comprobar que tienes mysql instalado en OpenShift (y en caso de no tenerlo lo instala), que tienes la BD instalada (si no, la crea también) y que la has cargado con tuplas (y si no, la carga, leyendo del dump baby.sql situado en el mismo directorio que el script). El dump baby.sql lo tienes que crear previamente, claro, con instrucciones SQL de creación de tablas e inserción de tuplas. Por ejemplo:

Tus scripts en PHP serán como siempre han sido, no hay ningún cambio salvo las variables de entorno predefinidas que en un entorno php “normal” no existen y en Openshift sí. Por tanto, en la carpeta /opt/demo/php podrías crear un script php para conectar con tu BBDD:

Ahora, desde la línea de comandos lanzas un “git push” y verás como el servidor despliega tu aplicación, ejecuta el script de creación de tablas y tuplas mysql (creándolas en caso necesario) y te deja la URL lista para ser usada: http://demo-babelium.rhcloud.com/

Espero que no os guste demasiado este post, no vaya a ser que OpenShift se sature 😉
[Nota: ha sido un post largo y con aplicación práctica inmediata, para compensar el mes largo sin actualizaciones 😉 ]

9 comentarios en Openshift: computación gratuita en la nube de RedHat

JuJu: el domador Ubuntu de servicios en la nube 21 Diciembre, 2011

Tercera ley de Clarke: “Cualquier tecnología lo suficientemente avanzada es indistinguible de la magia”. Eso es lo que me pasó por la cabeza la primera vez que ví éste vídeo sobre JuJu:

En 5 minutos y un puñado de comandos, JuJu permite ensamblar, desplegar y escalar un sistema MediaWiki de dos unidades, con la capa de persistencia en un cluster MySQL, dos instancias memcached para acelerar las peticiones y HAProxy como balanceador de carga. Y eso es sólo un ejemplo… Podríamos definir JuJu (antes conocido como Ensemble) como una mezcla entre gestor de paquetes para lanzar aplicaciones en la nube y un sistema de orquestación de servicios (una especie de domador con látigo que pone a cada servicio en su sitio y los junta/ensambla con otros animales/servicios 😉 Este software ha sido desarollado por Canonical bajo licencia AGPL y es un paso más en los movimientos de Canonical por situarse en el territorio cloud.

Para que JuJu funcione, hace uso de “encantamientos” o charms, que son simples recetas en un lenguaje de scripting que permiten instalar, configurar y enlazar servicios. Hay ya una bonita colección de charms disponibles, pero todavía quedan muchos por hacer. Usando estos charms, podemos lanzar un WordPress en la nube con MySQL como Base de Datos, con 4 comandos:

Bonito, ¿eh? Pues ahora piensa que con el comando add-unit puedes lanzar otra unidad WordPress y comenzar el escalado horizontal a partir de comandos juju, como se muestra en el vídeo 🙂 ¿Magia?

Te recomiendo éste post en castellano con un ejemplo más elaborado del uso de JuJu, o si estás interesado, esta presentación en PDF para que revises el funcionamiento interno de esta tecnología.

4 comentarios en JuJu: el domador Ubuntu de servicios en la nube