Delirios de un Informático

Cómo instalar SQL::Translator en Mac OS X

Casi todas mis entradas que hablan sobre desarrollo asumen un funcionamiento sobre Linux, como esta sobre SQL::Translator. Al desarrollar ahora en Mac OS X he tenido que recurrir a este software, cuya instalación en Mac OS X es sencilla pero no tan rápida como tirar del repositorio de turno. Los comandos para realizar la instalación son:

sudo cpan
install SQL::Translator

La primera vez que se ejecuta CPAN tardará, ya que se configura pidiendo unos datos básicos y actualiza. Luego, una vez dentro del intérprete de Perl, el comando de instalación del módulo hará que se descargue e instale todo automáticamente, pero tardará un buen rato debido a las dependencias.

Komodo Edit, un excelente editor de código

Hace años que probé un pequeño IDE llamado Komodo que prometía pero estaba bastante verde. Pero con la versión 6 ha evolucionado muchísimo y tiene una versión simplificada llamada Komodo Edit, un editor Open Source pensado para desarrollo web (XHTML, XML, CSS, JavaScript…) con lenguajes dinámicos (PHP, Perl, Python, Ruby…). La lista de características es pequeña comparada con Komodo IDE pero como editor sin más es una maravilla. Es ideal para todos pequeños scripts o proyectos que no requieren de todas las complejas herramientas que proporcionan Eclipse o NetBeans. Es además muy personalizable (hasta en esquemas de colores) y multiplataforma (Linux, Mac y Windows).

Uso Vim desde hace años para programar todos los pequeños scripts que realizo en Bash, Perl o Python pero es una tortura configurarlo para hacer ciertas cosas, y la implementación de otras caracteríticas nunca me ha gustado. Por eso Komodo ha ganado muchos puntos y prácticamente es lo único que uso.

Cómo instalar Bugzilla en Debian Squeeze

Bugzilla es uno de los más veteranos y completos sistemas de seguimiento de errores. Está perdiendo fuerza frente a proyectos como Trac, Redmine o soluciones en la nube como Jira, pero sigue teniendo una cantidad de opciones y una integración con IDEs que ningún otro software tiene, y por eso lo sigo usando para mis proyectos personales.

Está desarrollado en Perl por lo que se necesitará un servidor web con soporte para CGI, así como un servidor de bases de datos (MySQL, PostgreSQL u Oracle) y sus correspondientes librerías de acceso de Perl (para MySQL basta instalar mysql-server y libdbd-mysql-perl). También es necesario instalar unos cuantos módulos Perl, pero personalmente odio llenar el sistema de módulos CPAN, PEAR y similares cuando es posible instalarlos únicamente para el usuario que los necesita. Esto también evita posibles problemas si se actualizan módulos ya instalados con versiones específicas que necesitan otras aplicaciones.

Asumo Apache, la raíz del servidor web en /var/www y www-data como usuario:

su www-data
cd /var/www
wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-4.0.2.tar.gz
tar xzvf bugzilla-4.0.2.tar.gz
mv bugzilla-4.0.2 bugzilla && cd bugzilla
./install-module.pl --all
./checksetup.pl
vim localconfig
./checksetup.pl

El comando install-module.pl instalará todos los módulos necesarios en el subdirectorio .cpan de la carpeta del usuario (¡¡159MB!!). El penúltimo comando edita la configuración, donde se deberán añadir los datos de acceso a la base de datos, así como modificar el elemento $webservergroup para que coincida con el usuario que ejecuta el servidor web. El último comando es el que crea las tablas en la base de datos, y en caso de haber algún error lo mostrará claramente (generalmente es la falta de un módulo).

Por último, es necesario añadir al .htaccess unas líneas para que el servidor web interprete los archivos Perl, pero sólo si no se tiene ya configurado para eso:

Options +ExecCGI -MultiViews
AddHandler cgi-script .cgi

Estas instrucciones sirven para cualquiera de las versiones 4.x (y seguramente para la rama 3.x), y pronto saldrá la versión 4.2 con una rama denominada Pretty en la que se implementará una nueva interfaz.

Sensores de temperatura para LCDproc

En el anterior post explicaba cómo programar clientes para LCDproc usando únicamente Perl. Pues bien, como de serie no trae ninguna pantalla que muestre información de los sensores de temperatura de la placa base y el procesador, he programado un script que lo hace: sensors.pl. Basta ejecutarlo para que muestre una pantalla con las temperaturas de la placa base, north bridge, procesador, tarjeta gráfica, discos duros y las revoluciones del ventilador principal:

sensors.pl

Requiere tener instalados lm-sensors para la temperatura de la placa base y procesador, hddtemp para los discos duros y nvclock para la tarjeta gráfica NVIDIA. Está preparado para una pantalla de 20×5, pero es fácilmente adaptable, añadiendo o quitando líneas. El código es muy claro y es sencillo modificar los sensores que se deben mostrar o añadir nuevos….

Programar clientes para LCDproc en Perl

Ya he hablado de LCDproc en este blog, pero aunque está muy bien las pantallas disponibles son limitadas y al estar programado en C, si no dominas el lenguaje es complicado programar tu propio cliente para mostrar lo que necesites. Para los aficionados al scripting en vez de a la compilación existe perl-LCDd, un pequeño módulo Perl que proporciona una clase para interactuar con la pantalla y así mostrar los datos que se desee. Viene con un ejemplo muy sencillo que ayuda a crear el primer cliente, así como con documentación de los métodos de la clase.

Actualización: para los mas frikis, ésta es la documentación oficial que permite crear un cliente. Es la especificación para comunicarse con el servicio, que puede hacerse incluso por telnet.