Delirios de un Informático

Dash & Zeal: navegadores de documentación para programadores

Dash (para Mac OS X) y Zeal (Windows y Linux) son dos programas imprescindibles para cualquier programador: unifican en una única interfaz la documentación de más de 100 lenguajes, frameworks, librerías y diverso software. Los docsets se actualizan automáticamente y disponen de integración con todo tipo de editores.

Gnome Integration para Spotify ahora en Google Code

Aprovechando unos pequeños cambios en mi script de integración de Spotify en Gnome, he creado un proyecto en Google Code para subir las nuevas versiones más fácilmente y añadir ahí la documentación necesaria para hacerlo funcionar. A partir de ahora subiré las novedades ahí y podéis notificar ahí los errores que detectéis o solicitar nuevas funcionalidades mendiante las issues :).

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.

Conversor de Wikipedia a ePub: la Wikipedia offline

Para viajar la Wikipedia es de lo mas útil, bien leída desde cualquier dispositivo o bien en forma de audioguía con aplicaciones como Toozla para Android. El problema es que requiere conexión a internet y en el extranjero no suele ser una opción económica. Por eso me puse a curiosear cómo meter la Wikipedia (o partes de ella) en mi Kindle para así poder leer tranquilamente en cualquier lugar, y me topé con wikipedia4epub, un programa escrito en Haskell que dada una entrada de la Wikipedia, la descarga y procesa para convertirla en un archivo ePub estándar, legible por casi cualquier aparato (excepto el Kindle, pero para eso se recurre a Calibre).

El proceso de instalación es el siguiente:

sudo apt-get install cabal-install zlib1-dev libsqlite3-dev
cabal update
cabal install wikipedia4epub

Importante que los dos últimos comandos se ejecuten como usuario normal, ya que se descargarán e instalarán los paquetes en el directorio $HOME. Luego, para descargar un artículo basta ejecutar:

$HOME/.cabal/bin/wiki4e-mkepub-subtree http://en.wikipedia.org/wiki/Belgium

El proceso es lento, ya que descarga y empaqueta el artículo indicado con sus fotografías e imágenes, así como todos los artículos enlazados. Y es ahí donde está lo interesante, en que obtienes un libro electrónico con la posibilidad de hacer click en los artículos enlazados no quedando limitado a la información de ese artículo, si no a toda su información relacionada. En mi caso, el artículo Belgium se convierte en cientos de secciones (visibles en la tabla de contenido) y 160MB de peso.

El problema principal es el idioma: el script está pensado para la Wikipedia en inglés y aunque se indique un artículo en español u otro idioma, los artículos asociados no se descargarán correctamente. Además, un pequeño bug provoca el error openBinaryFile: > inappropriate type (Is a directory). Para solucionar esto, pueden seguirse los pasos que me dió el propio autor tras comunicarle el bug:

sudo apt-get install 
cd /tmp
darcs get --lazy http://darcsden.com/dixie/wikipedia4epub
darcs get --lazy http://patch-tag.com/r/dixiecko/epub

Con esto habremos descargado el código fuente de la última versión. Para habilitar la descarga de los artículos en castellano habrá que editar el archivo /tmp/wikipedia4epub/src/Network/Wikipedia.hs y sustituir todas las apariciones de en.wikipedia.org por es.wikipedia.org. Luego, hay que recompilar y reinstalar:

cd epub
cabal install
cd ../wikipedia4epub
cabal install

Una vez realizados estos pasos, se podrá usar para generar archivos ePub en español 🙂

NOTA: si se quiere desinstalar por completo todo lo que se ha descargado y compilado, es necesario borrar a mano ciertas cosas ya que al ser datos de usuario no se eliminan al desinstalar los paquetes:

sudo apt-get remove --purge cabal-install zlib1-dev libsqlite3-dev
sudo apt-get autoremove --purge
cd $HOME
rm -rf .cabal
rm -rf .ghc
rm -rf .wiki4e

OpenVPN en Android

Por desgracia aún es necesario rootear el terminal para disponer de OpenVPN en Android, pero resulta de lo más útil. Hay varios modos de hacerlo funcionar:

  • Usar una ROM que la traiga de serie: Cyanogen, por ejemplo, incluye OpenVPN como una opción más en los ajustes junto a PPTP o L2TP/IPsec. Lo malo es que requiere empaquetar los certificados y la clave en un archivo P12 y si la llave tiene protección, la contraseña sólo se solicita al instalar los certificados (detalle que no me convence en absoluto).
  • Instalar OpenVPN Installer y OpenVPN Settings desde el Market: el primero añade los binarios de OpenVPN al sistema y el segundo permite utilizar una configuración estándar, preguntando la contraseña de la llave si es necesario. Esto es un plus de seguridad, pues si pierdes el teléfono no será tan fácil acceder a tu VPN como en el caso anterior.
  • Desde la línea de comandos: teniendo los binarios (bien con una ROM que los tenga o bien con el instalador que he indicado) puede lanzarse OpenVPN directamente desde la línea de comandos utilizando un emulador de terminal como ConnectBot, que permite además crear accesos directos que lancen directamente el daemon mostrando la salida de debug.

Por el momento mi opción es la segunda, ya que la tercera da problemas al introducir la contraseña de la llave :(.