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/