sábado 7 de noviembre de 2009

Problema entre Gnomeradio y Ubuntu 9.10

Tengo en mi PC una (vieja) placa capturadora de video y sintonizadora de FM marca Kozumi, con el clásico integrado BT878.

Después de actualizar a Ubuntu 9.10 (Karmic Koala) todo funcionó sin ningún problema (hasta la fecha). Sin embargo, encontré que ya no podía escuchar FM en mi PC con Gnomeradio. Sólo se escuchaba ruido (blanco) y no detectaba ninguna emisora.

Comencé buscando en /var/log/messages y me encontré con lo siguiente:

Nov 7 11:34:06 valentina kernel: [ 13.244525] bttv: driver version 0.9.18 loaded
Nov 7 11:34:06 valentina kernel: [ 13.244528] bttv: using 4 buffers with 2080k (520 pages) each for capture
Nov 7 11:34:06 valentina kernel: [ 13.244583] bttv: Bt8xx card found (0).
[...]
Nov 7 11:34:06 valentina kernel: [ 13.248356] bttv0: tuner type=38
Nov 7 11:34:06 valentina kernel: [ 20.335961] bttv0: audio absent, no audio device found!
Nov 7 11:34:06 valentina kernel: [ 20.747127] bttv0: registered device video0
Nov 7 11:34:06 valentina kernel: [ 20.747147] bttv0: registered device vbi0
Nov 7 11:34:06 valentina kernel: [ 20.747166] bttv0: registered device radio0
[...]

Buscando por "bttv0: audio absent, no audio device found!" vi que yo no era el único que tuvo problemas con Gnomeradio luego de pasar a Ubuntu 9.10 (ni el único que usaba Gnomeradio)

Finalmente, la solución la encontré en Bugs in Ubuntu. Allí está ingresado como bug #422696.

Simplemente hay que ejecutar el Editor de Configuración de Gnome:

# gconf-editor

Una vez en el editor, desplegamos la carpeta apps y hacemos click sobre gnomeradio.

Cambiamos el valor de la clave driver, de any a v4l2 como se muestra a continuación:


Cerramos el Editor y listo. Ya pude escuchar nuevamente FM desde mi PC.

martes 1 de septiembre de 2009

Monitoreo de dispositivos y servicios de red con Nagios3 (Episodio I)

Introducción

Nagios es una herramienta de código abierto que sirve para monitorear dispositivos y servicios de red (SMTP, POP3, HTTP, etc). Gracias a clientes instalables escritos para distintos sistemas operativos se puede vigilar también los recursos de sistemas como la carga de procesadores, uso de memoria, discos, entre otros.

Cuando alguno de las parámetros que se monitorean difiere de los límites establecidos como normales puede generar alarmas por correo electrónico, mensajes SMS o mensajería instantánea vía Jabber al administrador de red o del dispositivo con problemas. Con esto, podemos estar prevenidos de cualquier inconveniente en una red antes de que estallen los teléfonos.

Nagios se distribuye bajo licencia GNU General Public License Version 2. Está escrito en C y fue diseñado para correr en GNU/Linux, aunque puede correr varias plataformas Unix también.

Ethan Galstad, padre de Nagios El proyecto nació bajo el nombre de Netsaint de la mano de Ethan Galstad pero al poco tiempo tuvo que renombrarlo ya que este coincidía con una marca comercial. Así pasó a llamarse Nagios como lo conocemos hasta la fecha.

Según comenta el mismo Ethan en el FAQ oficial, Nagios es un acrónimo recursivo que significa “Nagios Ain't Gonna Insist On Sainthood”, algo así como “Nagios no insistirá con la santidad”. Esto hace referencia al antiguo nombre del proyecto: Netsaint (Saint en inglés, significa Santo).

Un significado alternativo, sugerido por Sam Tilders es “Notices Any Glitch In Our System ” (Avisa cualquier fallo de nuestro sistema).

Algunas personas han sugerido que el nombre podría derivar de la palabra griega "hagios", que significa "sagrado" o "santo". Aunque, como bien aclara en dicho foro Ethan, en griego también significa "maldito", "execrable", "digno de condena", según el diccionario griego- inglés de Henry George Liddell y Robert Scott.

Gracias a todos los santos (ya que hablamos de ellos) la pronunciación de Nagios no es tan indeterminada. En el foro oficial, Ethan Galstad explica como lo pronuncia:




De todas maneras, deja abierta la posibilidad de otras variantes. Una de ellas es la de pronunciar "nachios", que suena como "nachos" (?).


Instalación en Debian Lenny

Soy un poco conservador (sólo en cuanto a la instalción de paquetes de software) así que prefiero utilizar normalmente los paquetes propios de mi distribución, en este caso los de Debian Lenny. La versión de Nagios que incluye Debian Lenny es la 3.0.6 de diciembre 2 de 2008. La instalación, en este caso, se simplifica a ejecutar como root:

# apt-get install nagios3

Esto instalará apache2 (si no estaba instalado previamente) y el resto de paquetes y bibliotecas requeridas.

La otra opción es bajar la última versión desde la página oficial del proyecto y compilarla. Al momento de escribir estas lineas, la última versión era la 3.2.0 del 12 de agosto de 2009. No voy a explicar ese camino, ya que si tienes interés en compilar Nagios entiendo que tienes los suficientes conocimientos como para andar leyendo este tutorial.

En la instalación se nos preguntará, entre otras opciones, por el grupo de trabajo que queremos que se vea la máquina donde estamos instalando Nagios. Esto se debe a que el paquete nagios-plugins-standard requiere del paquete sambaclient y este de samba-common, que es que nos solicita esta información.

Si dudamos de que colocar en la configuración de samba-common, podemos dejar todo por defecto. No es importante esto por el momento.

A futuro, podemos ejecutar:

# dpkg-reconfigure samba-common

para volver a configurarlo.

Una vez instalado Nagios, debemos generar un usuario de acceso a la interface web:

# htpasswd -c /etc/nagios3/htpasswd.users nagiosadmin

El comando htpasswd con la opción -c indica que se cree el archivo /etc/nagios3/htpasswd.users donde se almacenará el usuario nagiosadmin y su clave encriptada. Este comando nos solicitará ingresar una clave para dicho usuario y luego volver a ingresarla a modo de confirmación.

Podemos definir otros usuarios para que puedan acceder con el siguiente comando:

# htpasswd /etc/nagios3/htpasswd.users usuario

donde usuario es el nombre del nuevo usuario requerido para ingresar al interface web.

Noten que el comando ntpasswd va esta vez sin la opción -c ya que el archivo /etc/nagios3/htpasswd.users ya existe (si se incluye nuevamente la opción -c, el archivo previamente creado se pierde)

Ahora, desde un navegador podemos ingresar a http://IP-SERVIDOR/nagios, donde IP-SERVIDOR es la dirección IP de la máquina donde acabamos de instalar Nagios. Si esta dirección IP tiene un nombre de dominio en la red, podemos reemplazarlo por este.

Ingresando el usuario y clave que hemos creado veremos en el navegador algo como lo siguiente:


Esa es la página prinipal de la interface de Nagios.

Como vieron, es muy sencillo instalar Nagios. No ocurre lo mismo con la configuración, la cual va a ser engorrosa. Más aún dependiendo de la complejidad de la red y de que se desea monitorear.

En una futura entrada de este blog pienso explicar la configuración para una red hipotética donde poder aplicar gran parte de los conceptos necesarios para que uds puedan adaptarlos a sus necesidades.

lunes 3 de agosto de 2009

nInvaders: Space Invaders en tu consola

Creo que no es necesario recordarles que Space Invaders fue uno de los videojuegos más exitosos de todos los tiempos. A pesar de su sencillez y escasez de gráficos siempre fue altamente adictivo.

Un clon de este juego, con características aún más minimalistas, se llama nInvaders y permite jugarlo desde una consola de tu GNU/Linux. Basado en la biblioteca ncurses, todos los gráficos están diseñados con caracteres ASCII.


Para instalarlo en Debian/Ubuntu basta con ejecutar:

# sudo apt-get install ninvaders

Para jugarlo, podemos empezar por:

# ninvaders

Si eres un iniciado podrías jugarlo en su nivel "May I play daddy?!":

# ninvaders -l 9

El objetivo es simple: hay que exterminar a los alienígenas (ese conjunto de caracteres multicolores que se mueven de un lado al otro) antes que desciendan a la Tierra (el borde inferior de la pantalla). Para ello nos valemos de un cañon que se dispara con la tecla Espacio. Además, tendremos que movernos con las teclas de flecha izquierda y derecha para evitar ser alcanzados por el fuego alienígena.


Cuatro escudos nos protegen ante el ataque enemigo, aunque se van degradando cuando son impactados por los disparos propios y ajenos.

En fin, una buena manera de malgastar tiempo de CPU. No me hago responsable si se les ocurre instalarlo en un servidor para jugarlo remotamente por SSH ;)


Enlaces:

Sitio oficial de nInvaders
Los invasores del espacio en tu terminal

jueves 19 de marzo de 2009

Manejando archivos CHM en Linux

Buscaba un CD con información técnica que necesitaba. El primer problema fue encontrarlo entre las tortas de CD sin etiquetar (o peor, mal etiquetadas) que tengo desparramadas por toda mi casa. Luego de un par de horas de búsqueda (y de maldecir mi desorden) finalmente lo encontré.

Allí estaba el maldito archivo. Pero ahí me surgió un segundo problema: era un archivo CHM y yo tenía necesitaba abrirlo desde Linux.

Los Windowseros conocen los CHM (Microsoft Compiled HTML Help), un formato propietario de documentación de Microsoft usado generalmente para archivos de ayuda. Un archivo CHM contiene páginas enlazadas (de manera similar a la utilizada en documentos HTML) indexadas y hasta un buscador. Todo el conjunto está comprimido en LZX.

Debido a fallos de seguridad encontrados este formato, Microsoft lo cambió por uno nuevo llamado Microsoft Assistance Markup Language a partir de Window$ Vista.

El tema era como abrirlos desde mi PC con Ubuntu Intrepid Ibex...

1) Lectores de archivos CHM para Linux

Después de una breve búsqueda encontré los siguientes visores de archivos CHM:

a) GnoCHM

GnoCHM es un visor de archivos CHM escrito en Python y pensado para Gnome. Es el que finalmente elegí en mi caso. Está disponible para otras distribuciones como Fedora y Gentoo.

Para instalarlo (en Debian/Ubuntu), desde la consola ejecutamos:

sudo apt-get install gnochm

Luego de instalar, podemos ejecutarlo desde el menú Aplicaciones/Accesorios/Visualizador CHM o desde la consola tipeando gnochm.

Aquí pueden ver como se ve gnochm en acción:

b) kchmviewer

KchmViewer está escrito en C++ y requiere de las librerías gráficas Qt4 o las del escritorio KDE 4.

No tuve tiempo de probarlo. Les dejo ese trabajo a ustedes.


c) xCHM


Si no tenemos Gnome ni KDE podríamos usar xCHM. Este visor tiene la peculiaridad de ser multiplataforma, con lo cual podemos instalarlo en Window$ si queremos.

La instalación es también sencilla:

sudo apt-get install xchm

Luego de instalarlo, lo tendremos disponible (en el caso de Ubuntu) en el menú Aplicaciones/Oficina/xCHM. También podemos ejecutarlo desde la consola ingresando xchm.

Acá pueden ver como se ve xCHM:


d) Okular

Okular es una nueva aplicación (basada en KPDF) disponible en KDE 4 que nos permite leer archivos Postscript, PDF, djvu y por supuesto CHM.

En este enlace puden observar el listado completo de formatos de documentos que es posible visualizar con Okular:

http://okular.kde.org/formats.php

Si tienen Kubuntu o su Linux tiene KDE 4 esta debería ser la mejor opción.


e) CHM Viewer

CHMViewer es un agregado para Mozilla Firefox que permite visualizar estos archivos . Es útil porque, al depender de Firefox, podemos tenerlo disponible también en Window$.

Para agregarlo, vamos al menú Herramientas/Agregados. Luego, en esta ventana pulsamos el botón Obtener agregados.


Bien, en el cuadro de búsqueda escribimos chm. Esto nos traerá el agregado que buscamos. Pulsamos el botón Agregar a Firefox y luego de unos segundos aparecerá una ventana como la siguiente:



Finalmente, pulsamos el botón Instalar y reiniciamos Firefox.

Otra forma más directa es dirigirnos con Firefox a:

https://addons.mozilla.org/en-US/firefox/addon/3235

Hacemos click en el enlace Add to Firefox y seguimos los pasos que nos indica la instalación que son similares a los ya comentados.

Luego de reiniciar nuestro navegador podremos levantar archivos CHM desde el menú Archivo/Open CHM Files.

Asi veríamos un CHM con este agregado:


Si queremos tener más a mano esta opción, podemos agregarlo a la barra lateral de Firefox. Es decir, vamos al menú Ver/Barra Lateral y tildamos CHM Reader.


2) Extrayendo archivos HTML desde archivos CHM

Bien, mi problema de visualizar estos archivos estaba solucionado. Pero no quedó ahí mi inquietud y quise dar un paso más: extraer los archivos HTML que contiene el CHM. De esta manera, me independizaría de los visualizadores y podría editarlos.

Para ello, debemos instalar la librería libchm-bin:

sudo apt-get install libchm-bin

Ahora, para extraer los HTML de un archivo como pepe.chm en el directorio pepe hacemos:

$ extract_chmLib pepe.chm pepe/

En este directorio vamos a tener varios archivos y un directorios. Nos interesa en particular el directorio pepe/res/ en donde tendremos todos los HTML. El resto es información complementaria del archivo origen.


3) Convirtiendo archivos CHM a PDF

¿Podríamos transformar los CHM a PDF? ¡Por supuesto!

Para ello se necesita un script escrito en Python llamado chm2pdf.

sudo apt-get install chm2pdf

Para usarlo, necesitamos saber si el archivo es contiene HTML no estructurado o HTML estructurado. Los archivos CHM con HTML estructurado son aquellos que contienen encabezados, capítulos, etc. Para convertirlos hacemos:

a) CHM no estructurado a PDF

$ chm2pdf --webpage pepe.chm

b) CHM no estructurado a PDF

$ chm2pdf --book nombre.chm

Ambos comandos nos crearán un llamado pepe.pdf.

Ya vimos que con extract_chmLib podíamos extraer los documentos HTML. Con chm2pdf también podemos hacerlo con el siguiente comando:

$ chm2pdf –-extract-only pepe.chm

Los documentos HTML se guardarán en /tmp/chm2pdf/orig/.

Nota: Lamentablemente, esta opción no la he podido hacer andar :(

El script chm2pdf tiene muchas opciones (como por ejemplo, configurar el tamaño de página o los márgenes). Para conocerlas, ejecutamos:

$ chm2pdf --help


Enlaces:

Cómo convertir archivos CHM a PDF con chm2pdf
Convert CHM files to PDF in Linux
Viewing CHM files in Linux (With installation instructions for Ubuntu)

miércoles 4 de marzo de 2009

Administra tu club con Hattrick Organizer

Desde el 29 de junio de 2005 que me fanatizado por Hattrick, un juego vía web donde tienes un club de fútbol al que hay que administrar económicamente e intentar hacerlo ascender a la cúspide. Así dicho es muy sencillo, pero si uno se lo toma un poco en serio (como es mi caso) se convierte en algo engorroso por la gran cantidad de variables que hay que tener en cuenta para progresar en el juego.

Por esa razón, es muy útil contar con alguna herramienta que permita mediante gráficos y cuadros que organicen los datos del club. Hasta hace poco, usaba Hattrick Control pero he perdido interés en este software ya que muchas de las características que me gustaban las sacaron de la versión freeware para añadirlas a la versión comercial. Ya saben, el primero te lo regalan el segundo te lo venden...

Eso, sumado a que no era de código abierto, sólo corría en Window$, en las descargas de los datos de mi equipo dos por tres se congelaba (y un largo etcétera) me ha llevado a la búsqueda de algún software que lo sustituya.

No tardé en encontrar Hattrick Organizer gracias a la recomendación que encontré en el sitio de Ubuntumano.

Hattrick Organizer, también conocido como HO!, está escrito en Java, lo cual lo hace independiente del sistema operativo y se distribuye con licencia Lesser GNU Public License o LGPL.

Tampoco requiere de instalación: basta bajarlo, descomprimirlo y ejecutarlo en cualquier máquina que tenga Java Runtime Environement 1.5 o superior. Para saber si lo tienen instalado, la prueba más rápida es correr desde la consola (incluso en Window$):

java -version

Con lo que tendrían que ver algo similar a lo siguiente:

java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)

si tenemos instalado el JRE que provee SUN.

Si eres más osado (y además usas Linux), tal vez hayas instalado el JRE de código abierto de IcedTea con lo que verías algo como:


java version "1.6.0_0"
IcedTea6 1.3.1 (6b12-0ubuntu5) Runtime Environment (build 1.6.0_0-b12)
CACAO (build 0.99.3+hg, compiled mode)

Bajamos el archivo comprimido de HO! desde aquí:

http://www.hattrickorganizer.net/en/download/

Nota: En el momento de escribir esta entrada la versión disponible era la 1.424.

Van a encontrar varios archivos para bajar. Para Window$ incluso hay una opción donde se incluye el dichoso JRE de Sun para su instalación.

Luego, sólo queda descomprimirlo en algún directorio. En mi caso, lo tengo en un pendrive para tenerlo disponible siempre.

Para ejecutarlo en Window$ ejecutamos el archivo HO.bat. En cambio, en Linux ejecutamos el script HO.sh. Pero primero le damos permisos de ejecución:

chmod +x HO.sh

La primera vez que lo ejecutemos vamos a tener que seleccionar el lenguaje con el que queremos tener HO!:


Una ventana se nos presenta para recordarnos que usemos el código de seguridad de nuestro usuario en Hattrick y no la clave. Este código de seguridad es usado por este tipo de aplicaciones que se conectan a los servidores del juego y que permiten un acceso restringido de sólo lectura.


La última ventana emergente nos comenta:


Ahora si, después de esto, ya tendremos la aplicación corriendo:


Vamos a bajar los primeros datos de nuestro club. Para ello, vamos al menú Archivo/Bajar (o pulsamos F11):


Pulsamos el botón Bajar:


Ahora, ingresamos el usuario que tenemos en Hattrick y el código de seguridad. Pulsamos el botón Conectar y en unos segundos tendremos la información disponible de nuestro glorioso equipo:


No voy a entrar en detalles de como usar HO! ya que hay varios tutoriales en la red. Para los interesados, les recomiendo el Manual de HO.

No quiero cerrar este tema sin comentarles acerca de los plugins que podemos agregarle a esta aplicación que nos proveerán de otras herramientas útiles. Las instalamos desde el menú Archivo/Plugins/Actualizar/Plugins que nos mostrará una ventana donde podemos activar los plugins que queremos agregar. En la siguiente imagen podemos observar que he seleccionado a todos (los que están desactivados son los que vienen por defecto ya instalados):


Luego de seleccionarlos pulsamos el botón Aplicar. Finalmente, luego de unos segundos, se nos solicitará que cerremos y volvamos a ejecutar el programa:


Ahora HO! tendrá una apariencia como la siguiente:


Y si hay alguno que se me anime a un reto, mi club en Hattrick es Albinegros (831666).


Enlaces:

Sitio oficial de Hattrick: http://www.hattrick.org/
Sitio de Hattrick Organizer: http://www.hattrickorganizer.net/
Foro oficial de Hattrick Organizer: http://forum.hattrickorganizer.net/
Manual en español de HO!: http://mho.ya.st/
Herramientas de Hattrick en Ubuntu: http://ubuntumano.net23.net/2008/10/13/mis-herramientas-de-hattrick-en-ubuntu/

miércoles 25 de febrero de 2009

Instalando OpenMeetings 0.7 RC 2 en Debian Lenny

Mucho ha pasado desde mi último post y mucho más desde aquel en que hablaba de OpenMeetings.

Aprovechando la salida de Debian 5.0 (Lenny para los amigos) y de OpenMeetings 0.7 RC 2 reescribí dicho tutorial.

Entre las mejoras notables de la nueva versión de OpenMeetings encontramos:

  • Se puede incrementar el número de participantes en las salas desde la Administración hasta 1000 usuarios.
  • Las ventanas de vídeo de los participantes se puede redimensionar.
  • Desde el menú de Administración se puede expulsar usuarios.
  • Se puede autenticar usuarios por LDAP.
Como en el tutorial anterior, partimos de una instalación estándar de Debian Lenny sin entorno gráfico.

1) Instalación de Sun Java Development Kit

Vamos a tener que habilitar los repositorios de la rama non-free de Debian Lenny. Para ellos editamos el archivo sources.list:

# pico /etc/apt/sources.list

Agregamos non-free a alguno de los repositorios que figuran allí al final de la línea. En mi caso quedó:

[...]
deb http://ftp.us.debian.org/debian/ lenny main non-free
[...]
deb http://security.debian.org/ lenny/updates main non-free
[...]

Las direcciones puede ser distinta a las de uds, dependiendo de la elección de los repositorios que hicieron cuando instalaron Debian Lenny.

Actualizamos el listado de paquetes:

# apt-get update

Ahora si, instalamos Sun Java Development Kit:

# apt-get install sun-java6-jdk

Durante la instalación se nos presentará el acuerdo de licencia de usuario final (EULA) de Sun:


Luego de leer la licencia pulsamos Aceptar y finalmente se nos consultará si estamos de acuerdo con los términos de la misma:


Pulsando sobre el botón se continúa con el proceso instalación.


2) Instalación de MySQL

OpenMeetings utiliza una base de datos para mantener información de usuarios, direcciones de correo electrónico, salas de reuniones, etc. En el presente caso usamos MySQL.

Para instalar MySQL ejecutamos:

# apt-get install mysql-server

Se nos preguntará por una clave para el usuario root que gestiona MySQL. Así que elegimos una buena clave y la ingresamos:


Por último, volvemos a ingresar la clave por si acaso en la primera instancia teníamos los dedos super ateridos:


Ahora vamos a crear una base de datos y un usuario con permisos para gestionarla.

# mysql -p -u root

Ingresamos la clave de root de MySQL y nos encontraremos en la consola de MySQL. Allí creamos la base de datos ingresando:

mysql> CREATE DATABASE openmeetings DEFAULT CHARACTER SET 'utf8';

Con este comando hemos creado una base de datos llamada openmeetings pero el nombre puede ser cualquier otro.

Ahora creamos un usuario con todos los permisos para la base de datos recién creada:

mysql> GRANT ALL PRIVILEGES ON openmeetings.* TO 'openmeetings'@'localhost' IDENTIFIED BY 'rstallman' WITH GRANT OPTION;

En este caso llamé openmeetings al usuario también. La clave de dicho usuario en el ejemplo es rstallman. Sean libres de cambiar estos datos.

Salimos de la consola de MySQL con:

mysql> quit

OpenOffice es necesario para la conversión de documentos en formatos, como por ejemplo, los de Microsoft Office. De esta manera, los usuarios reunidos en una sala virtual de Openmeetings pueden subir y compatirlos.

Un problema que se presenta es que OpenOffice require de un servidor X ya que es una aplicación gráfica.Los que han seguido mi anterior tutorial saben que en Debian Etch lo solucionábamos instalando el paquete Xvfb (X Virtual FrameBuffer). El Xvfb es un servidor X11 donde las operaciones gráficas se realizan en memoria.

Desde la versión de OpenOffice 2.4 esto ya no es necesario. Por suerte, en Debian Lenny esa es la versión disponible desde los repositorios oficiales.

Debemos instalar el paquete openoffice.org-headless para desentendernos definitivamente del servidor X:

# apt-get install openoffice.org-headless

Ahora si, instalamos el resto de los paquetes (todo en una sola línea):

# apt-get install openoffice.org-writer openoffice.org-calc openoffice.org-impress openoffice.org-draw openoffice.org-math


4) Instalando OpenOffice como servicio

Vamos a crear un script para que el servicio de OpenMeetings se levante cada vez que arranque nuestro servidor de OpenMeetings.

Creamos un archivo llamado openmeetings en /etc/init.d:

# pico /etc/init.d/openoffice

Ahí escribimos (o copiamos y pegamos) lo siguiente:

#!/bin/bash
# openoffice.org headless server script
#
# chkconfig: 2345 80 30
# description: headless openoffice server script
# processname: openoffice
#
# Author: Vic Vijayakumar
# Modified by Federico Ch. Tomasczik
#
OOo_HOME=/usr/bin
SOFFICE_PATH=$OOo_HOME/soffice
PIDFILE=/var/run/openoffice-server.pid

set -e

case "$1" in
start)
if [ -f $PIDFILE ]; then
echo "OpenOffice headless server has already started."
sleep 5
exit
fi
echo "Starting OpenOffice headless server"
$SOFFICE_PATH -headless -nologo -nofirststartwizard -accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null 2>&1
touch $PIDFILE
;;
stop)
if [ -f $PIDFILE ]; then
echo "Stopping OpenOffice headless server."
killall -9 soffice && killall -9 soffice.bin
rm -f $PIDFILE
exit
fi
echo "Openoffice headless server is not running."
exit
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0

Le damos permisos de ejecución a este archivo:

# chmod 0755 /etc/init.d/openoffice

Generamos los enlaces a nuestro pequeño script:

# update-rc.d openoffice defaults

Iniciamos el servicio:

#/etc/init.d/openoffice start

No deberíamos ver ningún mensaje de error luego de esto.

Como primera comprobación (más adelante veremos otra), veremos si en el puerto 8100 está el servicio de OpenOffice levantado:

# netstat -an | grep 8100

Y tendríamos que encontrar algo como esto:

tcp 0 0 127.0.0.1:8100 0.0.0.0:*
LISTEN 2467/soffice.bin

Muy bien, el servicio de OpenOffice está levantado (soffice.bin es el ejecutable) escuchando en el puerto 8100 peticiones por 127.0.0.1.


5) Instalar ImageMagick

ImageMagick es un conjunto de herramientas que permiten manejar, modificar y convertir imágenes entre más de 100 formatos distintos.

Para instalarlo, simplemente ejecutamos:

# apt-get install imagemagick


6) Instalación de SWFTools


SWFTools son un grupo de herramientas de Código abierto para crear y manipular archivos SWF, el formato utilizado por el software de animación Adobe Flash (anteriormente Macromedia Flash).

Antes que nada, vamos a instalar algunas librerias y herramientas que son requeridas por SWFTools.

# apt-get install gs-gpl libart-2.0-2 libt1-5 libungif4g

Como SWFTools no está disponible en Debian Lenny (pero si en los repositorios de la versión inestable de Debian, llamada Sid) vamos a tener que bajar el paquete.

Elijamos un lugar donde bajar el paquete. En mi caso, en el directorio /root:

# cd /root

Bajamos allí el paquete .deb:

# wget http://ftp.it.debian.org/debian/pool/main/s/swftools/swftools_0.8.1-2.1_i386.deb

Y lo instalamos:

# dpkg -i swftools_0.8.1-2.1_i386.deb

Borramos el paquete de instalación:

# rm swftools_0.8.1-2.1_i386.deb

Bueno, ya falta menos...


7) Instalando Red5

Red5 es un servidor de código abierto escrito en Java que sirve para entregar contenido de audio y/o video en streaming. Para ello utiliza el protocol RTMP (Real Time Messaging Protocol) con lo cual se puede transmitir contenido en tiempo Real.

Desde la versión 0.7 RC 1 OpenMeetings tenemos dos opciones de descarga: una que incluye a Red5 y otra que no. Yo opté por la que sí trae a Red5, asi que sin mayores demoras bajamos el archivo correspondiente:

# wget http://openmeetings.googlecode.com/files/openmeetings_0_7_rc2.zip

Perfecto, ya lo tenemos. Pero nos falta alguna herramienta para descomprimirlo:

# apt-get install unzip

Ahora si, lo descomprimimos:

# unzip openmeetings_0_7_rc2.zip

Luego de esto tendremos dos directorios nuevos: openmeetings_0_7_rc2 y __MACOSX.

Borramos el último ya que es para el sistema operativo de Apple.

# rm -r __MACOSX

El directorio que nos quedo (openmeetings_0_7_rc2) contiene tanto a Red5 como el querido OpenMeetings en su versión 0.7 RC 2. La movemos a un lugar un poco más conveniente. En mi caso, la muevo a /usr/lib/red5:

# mv openmeetings_0_7_rc2 /usr/lib/red5

Ahora, dentro de /usr/lib/red5 tenemos un script llamado red5.sh que permite levantar al servidor Red5. Le damos permisos de ejecusión:

# chmod +x *.sh

Como primera prueba, arrancamos Red5:

# /usr/lib/red5/red5.sh

Luego de unos segundos, cuando se calman los mensajes que inundan nuestra consola, si desde un navegador nos dirijimos a http://mi-ip:5080 (reemplazando mi-ip por la dirección IP del servidor) tendríamos que ver una página como esta:


Con Ctrl-C en la consola matamos al servidor de Red5.

Como todo funciona como se esperaba, borramos el archivo que bajamos:

# rm openmeetings_0_7_rc2.zip


8) Instalando Red5 como servicio

Es momento de crear un script de arranque para nuestro servidor Red5

Por cuestiones de seguridad, no vamos a permitir que Red5 (y por ende, OpenMeetings) corra con privilegios de root. Por lo tanto, cambiamos los permisos de todos los archivos:

# chown -R nobody /usr/lib/red5

Editamos un nuevo archivo en /etc/init.d:

# pico /etc/init.d/red5

Agregamos las siguientes líneas:

#! /bin/sh
#
# red5 red5 initscript
#
# Author: Simon Eisenmann .
#

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Red5 flash streaming server"
NAME=red5
RED5_HOME=/usr/lib/red5
DAEMON=$RED5_HOME/$NAME.sh
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi

#
# Function that starts the daemon/service.
#
d_start() {
start-stop-daemon --start -c nobody --pidfile $PIDFILE \
--chdir $RED5_HOME --background --make-pidfile \
--exec $DAEMON
}

#
# Function that stops the daemon/service.
#
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
--name java
rm -f $PIDFILE
}

case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0

Le damos permisos de ejecución al script:

# chmod +x /etc/init.d/red5

Y finalmente, creamos los enlaces simbólicos para el arranque:

# update-rc.d red5 defaults

Probamos que levante Red5 con este script:

# /etc/init.d/red5 start

No deberíamos visualizar ningún error por la consola. Podemos ir de nuevo a nuestro navegador amigo para ver si se ve la página de inicio de Red5 o mediante el siguiente comando:

# netstat -nap | grep 5080

En ese caso, deberíamos observar en la consola algo como:

tcp6 0 0 :::5080 :::* LISTEN 14534/java


9) Algunos retoques a Red5

Y ya que estamos, vamos a cambiarle algunas cosas a Red5. Este punto es totalmente opcional.

Se habrán dado cuenta que con Red5 vienen una serie de ejemplos que se pueden acceder desde la página de inicio. No es muy vistoso ni muy seguro tener esto a la vista de todos. Así que los borramos...

# rm -r /usr/lib/red5/webapps/installer
# rm -r /usr/lib/red5/webapps/root/*

En /usr/lib/red5/webapps/root podemos crear nuestro propio index.html para que sirva de página de inicio de Red5. Pero eso queda fuera de este tutorial ya que no soy diseñador.


10) Instalando OpenMeetings 0.7 RC 2

OpenMeetings ya está prácticamente instalado. Su directorio está en /usr/lib/red5/webapps/openmeetings. Solo nos quedan un par de cosas.

Cambiamos a dicho directorio:

# cd /usr/lib/red5/webapps/openmeetings/conf/

Editamos el archivo hibernate.cfg.xml donde se configura el acceso a la base de datos ya creada.

# pico conf/hibernate.cfg.xml

Buscamos las siguientes líneas:

<!-- User / Password -->
<property name="connection.username">root</property>
<property name="connection.password"></property>

Lo cambiamos por:

<!-- User / Password -->
<property name="connection.username">openmeetings</property>
<property name="connection.password">rstallman</property>


Donde cambiamos openmeetings por el nombre del usuario que le asignamos a la base de datos y rstallman por su clave.

Ahora le damos permisos de ejecución a los scripts que se encuentran en la carpeta jod, que son los responsables (junto con OpenOffice) de las conversiones de documentos:

# chmod +x jod/*.sh

Reiniciamos el servicio de red5:

# /etc/init.d/red5 restart

Antes de continuar, vamos a comprobar a esta altura si es posible convertir documentos. Cambiamos de directorio:

# cd /usr/lib/red5/webapps/openmeetings/jod

En ese directorio vamos a encontrar un par de archivos de texto. Tomemos uno de ellos al hacer, por ejemplo README.txt y corramos el siguiente comando:

# java -jar jodconverter-cli-2.2.0.jar -f pdf README.txt

Deberíamos ver algo como:

25/02/2009 12:33:04 com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection connect
INFO: connected
25/02/2009 12:33:10 com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection disposing
INFO: disconnected

Ahora si volvemos a revisar el directorio vamos a encontrar un nuevo archivo README.pdf.

Si es así, la conversión fue exitosa y podremos convertir documentos en OM.

Lo borramos:

# rm README.pdf

Si no hemos obtenido ningún mensaje de error en la consola, podemos seguir adelante. El siguiente paso consiste en abrir nuestro navegador y dirigirnos a:

http://mi-ip:5080/openmeetings/install

donde en mi-ip va la dirección IP de nuestro servidor OpenMeetings. Deberían ver una página como la siguiente:


Muy bien, como todo el mundo sospecha hay que entrar en el enlace continue with STEP 1.

La página del paso 1 consiste en un formulario como el de la siguiente figura:


El formulario está organizado en secciones:

a) Userdata: Allí hay que definir el nombre de usuario, clave y dirección de correo para un usuario que, por defecto, tendrá privilegios de administrador dentro de la aplicación.

b) Organisations (Domains): Para que un usuario pueda entrar a OpenMeetings necesita (ademas de un nombre de usuario y una clave) estar asociado a una organización. Una organización es una conjunto de usuarios que comparten los mismos intereses. Los usuarios asociados a una organización no pueden entrar en las salas de conferencias de otra. Sólo pueden encontrarse los miembros de distintas organizaciones en las salas públicas.

Las organizaciones pueden ser empresas a las que le brindamos el servicio de conferencias o distintas areas dentro de una empresa, por ejemplo.

Por último, cada usuario puede pertenecer a más de una organización.

En mi ejemplo, definí una organización llamada "administradores", que será la que tendrá en principio el usuario "admin".

c) Configuration: Aquí se configuran algunos parámetros básicos de funcionamiento de la aplicación.
  • Allow self-registering: Habilita o deshabilita la posibilidad que las personas se registren si no tienen un usuario en OpenMeetings llenando un formulario en la página de inicio de la aplicación. En mi caso, lo he deshabilitado ya que quiero tener el control de los usuarios que ingresen.
  • Send Email to new registered Users: Define si se envía o no un e-mail de notificación cuando se registra un usuario nuevo.
  • New Users need to verify their Email: Define si se envía o no un e-mail cuando se registra un usuario nuevo para verificar su dirección electrónica.
  • Mail Referer: Dirección de correo electrónico con la que salen los e-mails generados por OpenMeetings.
  • SMTP-Server, SMTP-Server Port, SMTP-Username, SMTP-Userpass: Indican el servidor de correo saliente SMTP, el puerto TCP donde atiende el mismo, el usuario y clave para el envío de correos, respectivamente.
  • Default Language: El idioma por defecto de la aplicación.
  • Default Font for Export: Las fuentes por defecto para los decumentos exportados.
d) Converters: Aquí se configura la ubicación de las herramientas de conversiones SWTools e ImageMagick. En nuestro caso, no es necesario agregar los paths ya que por defecto quedan en variables de entorno del sistema.

e) Cryp Type: Tipo de encriptación a utilizar para usuarios y sesiones.

Luego de completar el formulario pulsamos el botón INSTALL. Esto inicia el proceso de instalación, configuración y de generación de las tablas necesarias en la base de datos. Pasados unos minutos (no más de 1 o 2 minutos) deberíamos ver una página con el siguiente mensaje:


Durante la instalación no se nos informa si hubo errores ni se muestra el avance en la instalación. Para los ansiosos, lo mejor es entrar a la consola de MySQL (con el usuario root o el que le asignamos a la base de datos de OpenMeetings) y seleccionar la base de datos:

mysql> use openmeetings

Luego, verificamos si el proceso de instalación está creando las tablas en la base:

mysql> show tables;

Si luego de un par de minutos no llegamos a visualizar dicha página, debemos suponer algo anduvo mal. Tendríamos que revisar el archivo hibernate.cfg.xml en primer instancia para ver si el nombre de la base de datos, el usuario y clave son las correctas y reiniciar el servicio de Red5.

Y si todo ha ido bien, podríamos entrar a la aplicación haciendo click en el enlace "Enter the Application" o ingresando en nuestro navegador a http://mi-ip:5080/openmeetings/, donde reemplazamos mi-ip por la dirección IP del servidor OpenMeetings. Veremos la página de ingreso a OpenMeetings:


Una vez allí ya podemos ingresar el usuario y clave que hemos elegido en el proceso de instalación para empezar a crear nuevos usuarios y a probarlo.

Esta es la apariencia de OpenMeetings con dos usuarios conectados (el feo soy yo ;) a una de las salas de conferencias:



Lo que falta

Por defecto, OpenMeetings no tiene habilitada la opción de grabación de las conferencias ya que la misma está en fase beta de desarrollo.

Un poco por falta de interés de mi parte y otro por falta de tiempo no lo he activado. Pero prometo ver de que se trata. Luego lo compartiré con uds.


Enlaces

OpenMeetings:
http://code.google.com/p/openmeetings/

Foro de usuarios en inglés:
http://groups.google.com/group/openmeetings-user

Foro de desarrolladores en inglés:
http://groups.google.com/group/openmeetings-dev

Foro de usuarios en español:
http://groups.google.com/group/openmeetings-en-espanol

miércoles 13 de agosto de 2008

Amigaos: Música Libre para la Humanidad

El polifacético Marcos Germán Guglielmetti ha liberado un compilado de música llamado Amigaos. El mismo consta de 20 canciones grabadas por Marcos en compañía de amigos y amigas durante los dos últimos años.

Las canciones están disponibles bajo licencias libres copyleft (GNU FDL, GNU Free Documentation License), con lo cual podemos utilizarlas con cualquier fin, copiarlas, modificarlas y realizar obras derivadas siempre que se reconozca a su autor.

El material me pareció excelente y los interesados en degustarlo pueden conseguirlo descargándolo desde aquí.

Pero no sólo es loable este trabajo y su liberación: la grabación se realizó íntegramente con Software Libre. Específicamente, Marcos utilizó la distribuciónMusix + GNU/Linux de la cual él es uno de los líderes del proyecto.

Musix es una distribución pensada principalmente para músicos, DJ's, diseñadores gráficos y usuarios en general.

 
eXTReMe Tracker