Delirios de un Informático

Kindle: sincronizar última página leída de libros no comprados en Amazon

Llevo años utilizando el lector de libros electrónicos de Amazon. Tras la muerte de mi Kindle 3 me hice con un Kindle Paperwhite, pero nunca he hecho demasiado uso de las capacidades de sincronización (Whispersync) que proporciona Amazon para mantener el punto de lectura entre dispositivos, principalmente porque nunca me había parado a curiosear si era posible.

Sí es posible sincronizar la última página leída de libros no comprados en Amazon, gracias a que Amazon permite enviar documentos personales a cualquiera de los dispositivos asociados a una cuenta (ya sean dispositivos físicos o aplicaciones). Estos documentos personales deben estar en un formato admitido como .mobi (para la conversión, nada mejor que Calibre) y se almacenarán automáticamente en la Kindle Personal Document Service (con una capacidad de 5GB).

¿Y cómo se pueden enviar estos documentos personales?. De dos modos:

  • Mediante el correo electrónico único de cada dispositivo: puede obtenerse desde Gestionar mi Kindle
  • Mediante la aplicación Send to Kindle: disponible para Mac y Windows

Todos los documentos almacenados de este modo se sincronizarán automáticamente a todos los dispositivos y aplicaciones asociados a la cuenta, así como los puntos de lectura, marcadores y anotaciones de cada documento. Si se avanza en la lectura en un dispositivo, al abrir el libro en otro dispositivo se mostrará un mensaje preguntando si se desea avanzar hasta esa posición.

También es interesante destacar que la estructura de carpetas (colecciones) también se sincroniza, por lo que si en un dispositivo se crea una colección y se guardan ahí ciertos documentos, esta estructura se creará automáticamente en el resto de dispositivos….

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