Crysfel’s Blog

Introducción a Ext Js

Monday, March 24, 2008, 06:25:30 pm

Desarrollo, JavaScript, Tutoriales

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.

Imprimir Comentarios (4) Leer mas

Generar reporte de una colección de beans con JasperReport

Monday, January 21, 2008, 01:26:04 pm

Desarrollo, Featured, Java, Tutoriales

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.

  1. Cómo poner acentos y eñes dentro del reporte jrxml.
  2. Poner una imagen en formato gif.
  3. Generar la fecha actual del sistema y desplegarla en el reporte con un formato legible.
  4. Pasarle la información al reporte por medio de una colección de beans.
  5. Cómo poner títulos a las columnas de la información desplegada.
  6. Realizar un reporte como este.

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.

Imprimir Comentarios (14) Leer mas

Liberada Mootools1.2b2

Thursday, January 17, 2008, 12:45:11 pm

Desarrollo, JavaScript

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.

$(element).set('href', 'http://moootools.net'); //setter
$(element).get('href'); //getter

En esta nueva versión podemos hacer lo siguiente, claro que lo anterior lo podemos seguir haciendo:

$(element).set({
    href: 'http://www.crysfel.com',
    text: 'Crysfel blog´s',
    morph: {duration: 200, transition: 'quad:out'},
    events: {
        click: function(){
            document.location.href = this.href;
            return false;
        }
    }
});

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!.

Imprimir Comentarios (0) Leer mas

Generar reporte desde una Base de datos en JasperReport

Monday, January 14, 2008, 07:17:16 pm

Desarrollo, Featured, Java, Tutoriales

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.

<?xml version="1.0" encoding="UTF-8"  ?>
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
         name="plantilla"
         pageWidth="595"
         pageHeight="842"
         leftMargin="20"
         rightMargin="20"
         topMargin="20"
         bottomMargin="20">


    <parameter name="P_ID_UNIVERSIDAD" class="java.lang.String"/>
    <parameter name="LOGO_URL" class="java.lang.String"/>

</jasperReport>

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.

Imprimir Comentarios (2) Leer mas

xss Attacks (Ataques xss)

Sunday, December 9, 2007, 02:33:58 pm

Desarrollo, Featured

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.

Imprimir Comentarios (1) Leer mas

Enviar parámetros a un reporte en JasperReport

Monday, October 1, 2007, 05:43:01 pm

Desarrollo, Featured, Java, Tutoriales

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.

Imprimir Comentarios (8) Leer mas

Flash y el z-index

Tuesday, August 28, 2007, 11:56:44 am

CSS, Desarrollo, xhtml

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.

Imprimir Comentarios (4) Leer mas