viernes, 27 de junio de 2008

Obtener html de un fichero chm

Los ficheros con extensión CHM no son más que HTML compilado en un formato privado de Microsoft. Para construirlos se puede usar la utilidad hhc.exe que se puede descargar gratuitamente desde la web de MS. Esta utilidad usará un fichero de proyecto .hhc para compilar los ficheros .html que se indiquen y generar un .chm.
Para volver al html a partir del fichero chm, se puede usar hh.exe, una utilidad que viene incluida en Windows. Su uso sería:

hh -decompile <directorio_destino> <fichero_chm>

Esto generará en un fichero con extensión hhc y un directorio donde estarán todos los html y las imágenes que se usaron para construir el fichero compilado.

jueves, 12 de junio de 2008

Bash: Prompt en colores

Cuando estaba trabajando en la consola (uso bash), a veces perdía de vista el inicio de la salida del comando que acababa de introducir. Probando alguna que otra distribución de Linux observé que usaban un color distinto para el prompt y otro para los comandos. Para el que no sepa lo que es el prompt, es lo que sale antes del "$" (o del "#" si te has identificado como root). Después de investigar un poco, aprendí que para configurar la información que aparece había que modificar la variable de entorno PS1. Esto se hace en el archivo .bashrc para cada usuario.
Para poner el prompt en verde, mientras mantienes el resto de los colores en la consola, hay que poner unas secuencias de escape determinadas. Este es mi .bashrc:

alias ls='ls --color=auto'
PS1='\[\e[32;1m\][\u@\h \W]\$\[\e[0m\] '
complete -cf sudo
complete -cf man

La primera línea define un alias para que al hacer ls salga coloreado por tipo de archivo (los colores se definen en /etc/DIR_COLORS). La tercera y cuarta línea sirven para que al pulsar TAB se complete el comando incluso si se han introducido antes un man o un sudo.
La segunda línea es donde se define la información que se mostrará en el prompt. El significado es el siguiente:
\e[32;1m indica que a partir de aquí se usará el color verde claro.
\u indica que se muestre el login actual.
\h indica que se muestre el nombre del servidor (sin nombre de dominio).
\W indica que se muestre el directorio actual.
\e[0m indica que a partir de aquí se usará el color por defecto.
\$ sirve para que aparezca $ si es un usuario normal o # si es root.
\[ y \] sirven para marcar bloques de caracteres que no deben incluirse al contar la longitud de línea. Si no se incluyen entre estos caracteres las secuencias de escape para cambiar el color, se obtiene un efecto curioso: al teclear una línea larga y sobrepasar el ancho de la pantalla, en lugar de comenzar una nueva línea se sobreescribe el prompt de la línea actual.

El resto son caracteres para que quede "bonito".
Y ya metidos ¿por qué no hacer que cuando estés trabajando como root sea más "visible" que sólo el cambio de $ por #?. Mi .bashrc como root tiene esta definición de PS1:
PS1='\[\e[31;1m\][\u@\h \W]\$\[\e[0m\] '
Es igual, pero he cambiado el 32 (verde) por 31(rojo). El resultado es el siguiente:


Para saber más:
man bash En el apartado PROMPTING aparecen todos los caracteres de control.
http://www.ibm.com/developerworks/linux/library/l-tip-prompt/ En inglés. Aquí aparece una pantalla con códigos de color y ejemplos.

Primer post

Después de mucho tiempo dudando entre crear un blog o no, me he animado. Las dudas venían principalmente porque no se si voy a ser constante con las entradas, qué temas voy a tratar, la extensión de las entradas, si le va a interesar a alguien o no... Esto último lo he superado, porque mi intención es usarlo más como un almacén de notas que como otra cosa. Y si esas notas le sirven a alguien, pues mejor.

Las dudas también incluían dónde crear el blog, si debía usar un servicio por web (como este) o montarlo en mi servidor. La ventaja del primero es que no tienes que administrar nada. La ventaja del segundo es que tú tienes el control, puedes hacer copias de seguridad y si mañana en lugar de usar WordPress quieres usar Movable Type, pues lo cambias y ya está. Lo que al final me ha animado a usar Blogger es que si monto el blog en mi servidor, probablemente esté más tiempo administrándolo que posteando. Y he elegido Blogger porque es de Google y me ofrece integración con otros servicios que ya estoy usando, como Gmail o Reader.

El tiempo dirá si fue buena idea.