La parcela ahora es mi blag

Los asiduos lectores de este modesto espacio notarán que las cosas han cambiado: este blog tiene otra cara, espero yo más legible y cómoda para los visitantes.

Primero, una disculpa a quienes me siguen por Facebook, ya que, en la migración, fueron bombardeados con entradas pasadas. La aplicación de sindicación se confundió con el nuevo RSS y las tomó como si fueran entradas nuevas. He borrado las actualizaciones en mi muro para disminuir el ruido generado.

El cambio no se ha limitado a nuevas de hojas de estilo, es un cambio mucho más profundo, que me ha tomado cerca de dos años.

La bola de nieve comenzó cuando decidí que quería llevar el control de mis post con el manejador de versiones git. Para ello, utilizar el formato de texto reSt me resultó la opción obvia.

Pronto me ingenié una serie de scripts que, cuando hacía commit en el repositorio de un fichero en formato reSt, un hook de git convertía ese fichero a html y los subía al blog utilizando xmlrpc.

En realidad este flujo de trabajo fue inspirado por Jekyll, un sistema en ruby que convierte los documentos de texto en sitios web estáticos. Me picó la curiosidad y, como no sé dicho lenguaje, ni me entusiasma, busqué algo similar pero en python. Y lo encontré: Pelican.

Sin embargo, el trabajo arduo fue convertir todas las entradas de mi blog a ficheros en formato reSt. Esto significaba convertir 10 años, cerca de 1000 entradas, escritas en diferentes formas, estilos y con muchos errores, frutos de mi inexperiencia.

Esta tarea la considere casi un trabajo de curador de museo: revistando y corrigiendo formatos me entraban ganas de modificar el contenido, en algunas veces los hice, forzado por el cumplimentar con el formato, pero en la mayoría me abstuve, para así mantener el espíritu del texto.

La labor de importar diversos textos, los ya existentes en el blog, más otros de otro blog olvidado, anterior al este último, me llevó más de un año. Tuve que escribir muchos scripts en python. El que más me gustó, fue uno para detectar el idioma en que estaba escrito el texto, utilizando el módulo guess_language.

Tuve que enfrentarme al monstruo del charset encoding. Fue lo que más tiempo me consumió. Y es que, en el pasado, nunca presté atención en mantener un charset homogéneo. Una verdadera pesadilla.

Una de las grandes limitaciones de un blog estático es la búsqueda. Para mi, un mecanismo de búsqueda dentro de mi blog es imprescindible, pero como los textos no están dentro de un manejador de bases de datos, buscar información en ellos resulta complicado.

Después de indagar varias opciones, me encontré con Whoosh, un indexador de textos escrito en python exclusivamente. Escribí entonces un script que genera los índices y un CGI para hacer búsquedas. Hay varias cosas que mejorar en ambos, pero confío en que, por ahora, cumplan con su función.

Como programador, uno aprende que lo más importante es mantener la interfaz de programación: es una especie de contrato, y violarlo debe ser el último recurso. En el caso de las páginas web, la interfaz de programación son las URL internas. El ejemplo canónico son los bookmarks y los sindicadores.

Entonces, una de mis preocupaciones para migrar, era proveer un mecanismo para que las antiguas URL redirigieran a la nueva URL del mismo documento. Para esto hice un script en PHP, que emulara al antiguo index.php y que hiciera su mejor esfuerzo por redirigir automáticamente la dirección web. No es perfecta, esta mañana encontré un par de casos donde falla la redirección, pero creo que en la mayoría de los casos hace su trabajo.

Finalmente, uno de los grandes caídos en esta decisión de hacer la migración migrar ya, han sido los comentarios. Pido disculpas a todos los que amablemente han dejado su impronta en este espacio a lo largo de los años. Por ahora no estarán disponibles sus mensajes. En mi pobre defensa he aprendido que, para hacer algo, no hay que esperar a que sea perfecto, con que sea útil y se sostenga una responsabilidad con los demás.

Tengo un plan para volver a mostrar los comentarios: utilizar jQuery para mandar llamar, mediante ajax, un script, posiblemente en php, que devuelva los comentarios hechos en dicha entrada del blog y los agregue de manera asíncrona en un espacio dentro de la página.

No obstante, no tengo planes inmediatos para habilitar la escritura de nuevos comentarios.

He aprendido mucho durante el proceso, he actualizado mis nociones de HTML5, CSS, JavaScript, Python, PHP, reST, pero sobre todo he restaurado el registro de más de diez años de vida, registro del que me siento orgulloso y sigo manteniendo, con la esperanza de hacerlo mejor cada día.

Muchas gracias por seguir allí a lo largo de los años.