En el último proyecto en el cual he trabajado, he utilizado un framework javascript que vale la pena hablar de él en este blog, y se trata de Ext Js, una excelente librería para crear interfaces de usuario, Ext nos facilita mucho el trabajo a los desarrolladores, pues en unas cuantas líneas de javascript podemos hacer interfaces realmente buenas.
En este artículo quiero mostrar como hacer mensajes, tablas y ventanas, con esto pretendo dar una introducción a esta fantástica librería y así mostrar la facilidad en el desarrollo de software.

El día de hoy quiero continuar con el tutorial de JasperReport, he explicado una introducción a la estructura principal del reporte, el paso de parámetros al reporte y como llenar un reporte desde una base de datos incluyendo el Query dentro del jrxml, en esta ocasión explicaré como llenar un reporte por medio de una colección de objetos VO o DTO, como mejor los conozcas.
Objetivos.
Una vez definidos los objetivos se puede apreciar el alcance de este tutorial y así decidir si al lector le conviene continuar con la lectura de este tutorial.
Ayer 16 de Enero del 2008, se ha liberado la segunda version beta de Mootools, y según anuncian en su blog, esta parece ser la definitiva, se han solucionado bugs de la versión anterior y se han agregado nuevas características, entre las mas destacadas es sobre el accesso a los elementos.
En la versión anterior el método set, de la clase Element, solo aceptaba un parámetro, ahora en esta nueva versión es posible pasarle un objeto con todas las opciones que querramos.
Ejemplo: En la versión anterior haciamos algo así para acceder a las propiedades de los elmentos.
En esta nueva versión podemos hacer lo siguiente, claro que lo anterior lo podemos seguir haciendo:
Como se puede ver, ahora podemos asignarle varios parámetros a la vez, pero hay que notar que también se pueden declarar eventos.
Para mayor información ver el blog oficial, también recomiendo descargar esta nueva versión.
Saludos y a experimentar!.
En este tutorial voy a explicar como generar un reporte en PDF obteniendo la información de una base de datos, si eres realmente nuevo manejando Jasper Reports, te sugiero darle una leída a la introducción y al paso de parámetros.
El reporte que se generará en este tutorial contendrá un listado de facultades que pertenecen a una determinada universidad, esta información sacada de una base de datos.
La base de datos a utilizar es MySQL 5.0.45, así que es necesario agregar al classpath de tu proyecto el MySQL Conector, junto con todas las librerías necesarias (mencionadas en la introducción).
Una vez hecho esto, ha comenzar a codificar el JRXML, primero hay que crear el documento y pasarle dos parámetros, el primero es el id de la universidad que queremos generar el reporte, y el segundo parámetro es la url donde esta la imagen del logotipo de la universidad, hasta ahora tenemos.
La estructura de la base de datos es muy simple, consta de dos tablas, una se llama Universidades y la otra se llama Facultades, la tabla Universidades solo tiene tres campos, el id, el nombre de la universidad y el domicilio, la tabla facultades contiene cinco campos, el id, facultad, director, total de alumnos y una relación a la tabla universidades, a continuación muestro el SQL de la base de datos.
Desde hace un par de meses (uno o dos) me he estado introduciendo en el tema de XSS, hoy en día este tipo de ataques es el que más amenaza a los sistemas web, y es que cualquier sitio es vulnerable a sufrir un ataque XSS, desde un sencillo blog hasta los grandes sistemas como gmail, ebuy, myspace, el academico de la UM (Tiene varios), etc. En este post voy a aclarar algunas dudas que pudiesen existir, además que mostraré un ejemplo sencillo, todo esto con el afán de que los desarrolladores (programadores) se den cuenta del potencial de estos ataques y al desarrollar sus proyectos tengan en mente esto en todo momento.
¿Qué significa XSS?
En ingles Cross-Site Scripting (CSS), no confundir con Cascade Sheet Style, es por esta razón que se le a puesto una X en lugar de la C.
¿En que consiste un ataque XSS?
Básicamente un ataque XSS es inyectar código en la aplicación vulnerable, se puede alterar el DOM, robar cookies o inclusive ejecutar un archivo maligno.js donde las posibilidades son infinitas, pues pudieses modificar la base de datos mediante AJAX, en fin, un pequeño error puede abrir un universo de posibilidades, para mayor información al respecto te sugiero leer este articulo en la Wikipedia http://en.wikipedia.org/wiki/Cross_site_scripting.
Hoy quiero continuar el tema de generar reportes pdf por medio de JasperReports, este tutorial es mas avanzado que el anterior, así que te sugiero leer la introducción en caso de que seas realmente nuevo con esta herramienta.
Goals
Hoy tratare el tema de paso de parámetros al reporte, y se definiran algunos conceptos claves, al igual que se hará un plantilla donde se mostrara como dar formato a texto entre otras cosas mas.
Para comenzar es necesario poner el enviroment adecuado, ya sabes, agregar al classpath las librerías requeridas (Señaladas en la introducción), luego de esto creamos un archivo de texto llamado plantilla.jrxml y nos disponemos a diseñar la plantilla por medio de xml.
Preparando el papel
Para este tutorial se va a realizar un reporte que muestre los alumnos de una carrera x de una universidad z, no voy a pasarle la información de los alumnos, solo la información necesaria para generar una plantilla, El primer paso es agregar la cabecera y configurar el nodo principal.
El problema
Recientemente me tope con este problema, el cual ocurre cuando tienes una animación flash (swf) incrustado en el sitio, luego, al querer poner una capa absoluta que esté sobre la animación flash, simplemente el flash siempre queda sobre cualquier otro elemento, inclusive si a la capa le pones un zindex de 100 o 1000.
La solución a este problema es sencilla, pero primero hay que explicar un poco del funcionamiento del reproductor de flash.
Los diferentes modos
A partir de la versión 6 del reproductor, Macromedia (ahora Adobe) introdujo lo que se le conoce como el wmode, este parámetro le dice al reproductor de que forma pintar el contenido de la película, existen tres modos.