Archive for 31 marzo 2008

Increíble Ozzy…

marzo 31, 2008

Anoche fui al Quilmes Rock a ver a Ozzy en el Estadio de River. La selección de bandas me pareció algo ecléctica. Es como si los organizadores hubieran decidido poner todo lo que usa tachas en la misma noche. De todos modos me dio una buena oportunidad para ejercer la dialéctica populachera que mis allegados tan bien conocen.

El concierto de Ozzy fue espectacular, el chabón está en plena forma. Iron Man, Paranoid, War Pigs, Crazy Train, Mr Crowley. Fue redondo en la selección de los temas.

Bien calibrado para un público argentino que tiene pocas oportunidades de verlo, tocó más clásicos que temas nuevos. Ozzy además de prolífero en temas lo es en variantes dentro del estilo. Así de ese proto-punk que fue Paranoid a Mr Crowley, o del tema border a la psicodelia de War Pigs a la balada esa nueva, cuyo nombre no recuerdo, uno va pasando por varios estados emocionales durante el concierto.

El que ya no está en estado para estas cosas es el cronista y opinólogo, que terminó todo roto luego de más de 5 horas de estar parado.

También llegué a ver a Rata Blanca -bastante entretenido- y a Korn -que me pareció un poco frío, aunque con ciertos buenos momentos. Pero bueno, el New Metal no es lo mío. Los muchachos que los fueron a ver se veían bastante satisfechos.

Sin embargo, creo que tal vez ahí está la diferencia, aunque no se conozcan todos los temas de Ozzy, su variedad de estilos y recursos escénicos lo hacen más entrañable que a los pibes de Korn.

También es cierto que Ozzy tiene 40 años de escenario, y estos muchachos deben tener algo menos que 15 años ahí. Pero es en la relación con el público del loco arranca cabezas de palomas, y el otro correcto gringo gritón que seguro debe proclamarse en contra del maltrato a los animales, donde se percibe una diferencia casi de eones. Como que el sesentón pareciera más joven. Más vivo -concedo tomarlo en la acepción criolla, aunque no es mi idea original-. ¡Menos gringo!

Lamentablemente no pude ver a Black Label Society, pero bueno, al guitarrista sí lo ví ;).

Fue una buena idea la de poner a tocar en vivo rock nacional de la vieja guardia, lo que por ahí no estuvo tan bien fue que Carca se pusiera tan molesto por una pequeña bardeada del público. Mucho menos mandar al frente a Korn por caretas. Creo que eso todos lo sabíamos.

Ozzy, sos lo más grande que hay. We love you, too. ¡Tocá Perry Mason o te vamo’a D’Eliar!

Anuncios

Crear PDFs del lado del servidor: iText y FPDF

marzo 7, 2008

Armando un form super largo que después tenía que salir por impresora se me presentó la dicotomía: OpenXML o PDF.

Necesitaba soporte para headers y paginación. Que el documento de salida fuera editable no era necesario.

Estaba en .NET, razón por la cuál OpenXML hubiera sido la opción más razonable. A poco de andar terminé encontrando que utilizar Word a través de COM no era nada recomendable del lado del servidor. Necesitaba entonces una biblioteca que maneje el tema. Me encontré con una paga a la cuál no voy a linkear, porque le sobran links de entrada. Microsoft ofrece una biblioteca para generar OpenXML pero genera documentos para Office 2007. No todo el mundo tiene Office 2007, razón por la cuál el camino del OpenXML se iba cerrando. La última opción era generar el doc, guardar como Office XML 2003 y parsear el documento mediante XML o tags. El documento terminaba pesando 900 KB, inaceptable para un ambiente con concurrencia.

Bueno, hubo que tomar el camino del PDF…Yo había hecho algo parecido en PHP con una biblioteca que se llama FPDF. Es una clase PHP 4.0 sencilla pero muy potente para generar PDFs. Lo bueno es que hay un montón de ejemplos en su sitio y hay documentación en español. Lo malo es que es un poco tosca, pero es muy fácil de extender. El enfoque es como trabajar con un lienzo (canvas para la muchachada) donde vamos dibujando nuestras genialidades.

El drama era que había que conseguir algo parecido y allà GPL para .NET. Me encontré con iTextSharp. iText es una biblioteca para generar PDF en java. Muy completa, también es un lienzo pero tiene estructuras como párrafo, frase y pedacito (Paragraph, Phrase y Chunk) y una completa implementación de tablas. Esto permite simplificar muchas tareas que en FPDF me costaban bastante. La biblioteca está muy bien hecha y facilita mucho trabajo. A su vez permite acceder al contenido del pdf a bajo nivel de una manera muy sencilla.

Por si fuera poco hay un tutorial para iTextSharp muy sencillo y elocuente para el desarrollador en apuros, al igual que en FPDF. Lo único que se añora es que no esté en español.

Los autores Bruno Lowagie y Paulo Soares(responsable del port a .NET) han hecho un gran trabajo. Hay un libro muy interesante llamado iText in Action. El libro a través de un caso ficticio -pero muy parecido a lo que pasa en realidad- va cubriendo todas las funcionalidades de la biblioteca y trae piezas de código muy interesantes.

En esencia la biblioteca nos permite generar un pdf en 5 pasos básicos:

  • instanciar un objeto Document
  • generar una instancia del PdfWriter y asociarla a un canal (stream)
  • abrir el documento
  • insertar el contenido
  • cerrar el documento

Nuestro trabajo será esencialmente generar el contenido, porque todo lo demás ya nos los provee la biblioteca.

A su vez tiene un modelo de eventos para la documento, página y tabla. De esta manera podemos generar encabezados y pies de página dinámicos, centralizar los estáticos, etc.

La verdad es que fue una grata sorpresa encontrar la biblioteca esta. Mi solución terminó siendo un HttpHandler que genera los pdfs con iTextSharp. El archivo pesa 40 KB. El mundo ha sido salvado nuevamente. Diós está en el Cielo, todo está en en la Tierra.