jueves, 9 de diciembre de 2010

Creando informes en python

Aprovechando este puente, y un problema que he tenido con el kindle y algunos cómics en cbz y cbr me he animado a avanzar por un camino que tenía algo apartado: la generación de informes automatizada.

El asunto puede parecer trillado, bueno, está trillado, pero hete aquí que no es lo mismo lanzar tu generador de informes desde tu entorno J2EE o desde un entorno controlado que tener que generar informes utilizando script embebido en programas de animación 3D.

He intentado utilizar todo tipo de combinaciones, desde diálogos modales a mensajería instantánea, emails o salida de texto plano vía consola para informar al usuario y de un modo o de otro siempre, -. siempre .- hay problemas. He aprovechado estos días para trabajar en la generación automática de documentos, en particular en generar PDF a través de python.

Existen dos proyectos fundamentales en esto: PIL como biblioteca de tratamiento de imágenes desde python y reportlab una utilidad de generación de documentos, al menos de generación de PDF.

Las posibilidades son grandes, de momento utilizo ambas bibliotecas para modificar los ficheros de cómics (sí, soy un gran aficionado, nadie es perfecto) a PDFs que aprovechen al máximo el kindle sin forzar la máquina. Sin embargo y mientras pueda lograrlo, se acabaron para mí los informes en texto chusco.

(Hasta donde yo he visto y conozco) El desarrollo in-home en las empresas de animación es, irónicamente, espartano, soviético, funcional, ... vamos, es feo. Algunos colegas opinan que hacer las cosas "bonitas" es un extra, una suerte de lujo, una veleidad. Hacerlo feo y soviético es más barato y rápido en desarrollo, lamentablemente la experiencia nos demuestra que las utilidades que se dejan en ese estado suelen tener una pésima acogida entre los usuarios. Es decir, optar por un diseño chusco es abaratar a corto plazo, porque luego hay que rehacer el envoltorio.

Yo he tardado un tiempo en interiorizarlo por completo: no estamos en los tiempos de Henry Ford. Ya no vale el para todos café. Las aplicaciones deben funcionar, eso por supuesto, pero además debe ser agradable usarlas y, la comunicación con el usuario o los informes, no son una excepción.




He preparado algo de código de ejemplo que puede obtenerse de aquí: comic archive converter. A la hora de descargar este contenido debe tenerse en cuenta que es código de programador-para-programador, es decir, es incómodo de usar y no se trata ni mucho menos de una utilidad al completo, es una prueba de concepto.