13 de septiembre de 2010

Día del Programador 2010

Feliciades a todos los programadores que visitan este blog.

El día doscientos cincuenta y seis de cada año, o en binario el 1111 1111, se celebra el "Día del Programador". Esta año cayó justamente el 13 de Septiembre

La celebreación fué propuesta por Valentine Balt, un empleado de Parallel Tecnologies, a prinicpios del 2002 el intentó hacer llegar una petición firmada al gobierno de de Rusia para que el día se reconozca como el dia oficial del Programador.

El día 24 de julio de 2009 el ministro de Comunicación e Informatización de Rusia, presentó un borrador de una decreto para fijar el día de Programador, así que el día 11 de septiembre de 2009, el presidente de Rusia Dmitry Medvedev firmó el decreto y el día del prorgamador quedó oficializado (al menos en Rusia).
Esta festividad tiene por motivo reconocer esfuerzo de todos los que nos dedicamos a esta noble profesión.

Las tradiciones de este día incluyen jugar viejos juegos de computadora, hacer pequeños programas inútiles, poner un nick alusivo en los distintos medios de chat, enviar mensajes de texto y emails con felicitaciones a nuestros conocidos que se desarrollen en esta área, comportarse de maneras tontas, editar la Wikipedia, jugar con computadoras viejas, etc.

El día número 256 resulta el 13 de septiembre, excepto en los años bisiestos, en los que cae el 12.

Así que feliciades a todos los programadores.

2 de septiembre de 2010

Spring 3 - Parte 1: Introducción

En la actualidad el desarrollo de aplicaciones empresariales, aunque es más sencillo ya que hay muchas herramientas, APIs, y Frameworks; los cuales aunque son opcionales, el aprender a usarlos nos ayudará a desarrollar nuestras aplicaciones en menos tiempo y a que estas sean más robustas y contengan menos errores.

También se vuelve un poco más complicado porque nuestras aplicaciones deben ser capaces de conectarse con otras aplicaciones y servicios. Además, como desarrolladores, somos los responsables de coordinar cada una de las partes de nuestra aplicación para que todo funcione correctamente.

Por si no fuera suficiente, debemos tomar en cuenta que debemos darle mantenimiento a nuestras aplicaciones, y que en algunos casos será necesario que cambiemos módulos o capas enteras de la misma para mejorarla; como por ejemplo sustituir nuestras consultas JDBC con Hibernate en los casos en los que sea prudente.

Afortunadamente existen super-frameworks que nos ayudan haciéndose cargo de todas o casi todas las “complicaciones” mencionadas anteriormente. Spring es el más popular de estos super-frameworks Java. Nos proporciona varios módulos los cuales abarcan la mayor parte de las cosas que debemos hacer en cualquiera de las capas de nuestras aplicaciones, desde plantillas para trabajar con JDBC o invocación de Web Services y JMS, pasando por sus propias soluciones, ORM o MVC (web), hasta integración con otros frameworks, como Struts 2, Hibernate, JSF, etc. Todo esto de una forma elegante y haciendo uso de muchos buenos principios de programación. Además Spring maneja la infraestructura de la aplicación, por lo que nosotros solo deberemos preocuparnos de la lógica de la misma (y de la configuración de Spring).

En esta serie de tutoriales aprenderemos como usar Spring, en su versión 3, para facilitarnos la vida en el desarrollo de nuestras aplicaciones Java. Para aprender a usar Spring de forma correcta hay que ver muuucha teoría, así que en este primer tutorial hablaremos solo de los conceptos básicos de Spring y explicaré cada una de las partes, junto con su teoría correspondiente, en el post correspondiente.

23 de agosto de 2010

Hibernate - Parte 11: Interceptores y Eventos

Algunas veces podemos tener situaciones que demanden la realización de algunas operaciones antes o después de nuestra lógica funcional (precondiciones y postcondiciones). O tal vez simplemente queremos intervenir antes o después de qué alguna de nuestras operaciones de persistencia (alta, baja, actualización, lectura, etc.) sea realizada. Ya sea para, por ejemplo, modificar algún valor de nuestra entidad (como encriptar algún dato antes de ser guardado) o para leer algún valor.

También algunas veces es necesario recibir alguna notificación de algún suceso que esté ocurriendo en nuestro motor de persistencia, como el estar recuperando o eliminando algún objeto. Esto puede ser útil para propósitos de auditorías, o para obtener estadísticas sobre las operaciones de persistencia en nuestras aplicaciones.

Hibernate proporciona dos mecanismos para lograr estos dos objetivos: listeners y eventos.

En este tutorial aprenderemos cómo recibir notificaciones cada vez que Hibernate realice alguna operación de persistencia a través de estos dos mecanismos.


3 de agosto de 2010

Hibernate - Parte 10: Herencia

La herencia es uno de los mecanismos que nos proporciona la orientación a objetos más poderosos, ya que gracias a ella surgen cosas como la sobreescritura, la reutilización y extensibilidad de código, etc.

Ya que le herencia facilita la creación de clases a partir de otras clases ya existentes en algunas ocasiones nuestras clases entidad necesitarán extender de otras clases, entidades o no. Como por ejemplo, podemos tener una clase "Usuario" de las cuales extiendan las clases "Administrador", "Operador" y "SuperUsuario".

Mapear una jerarquía de clases a tablas relacionales puede ser un problema un poco complejo. Afortunadamente Hibernate nos proporciona 3 formas o estrategias de manejar la herencia con nuestras clases entidad. En este tutorial veremos cómo usar estas tres formas de herencia y las implicaciones que tienen el uso de una u otra. Veremos cómo hacer esto tanto con anotaciones como con archivos de mapeo.

25 de julio de 2010

Hibernate - Parte 9: Parámetros en HQL

En los dos tutoriales anteriores aprendimos cómo crear sentencias en el Hibernate Query Language (HQL) para poder hacer consultas más específicas, que las que por default nos proporciona Hibernate, a objetos almacenados en nuestra base de datos.

Hasta ahora nuestras consultas siempre han sido estáticas, pero en nuestras aplicaciones usualmente deberemos pasarles parámetros para obtener los datos correctos, como por ejemplo una cadena que represente un criterio de búsqueda, o el username y password de un usuario que queramos buscar.

Ahora veremos cómo poder pasar parámetros a estas consultas de una forma “correcta”; y digo correcta porque siempre podríamos concatenar los parámetros al String que usemos para generar nuestra consulta.

22 de mayo de 2010

Hibernate - Parte 8: HQL Segunda Parte

En el tutorial anterior vimos una introducción al lenguaje de consultas de Hibernate, el Hibernate Query Language (HQL) y vimos algunas de sus características.

También vimos como ejecutar consultas desde el editor del NetBeans, y desde código dentro de una aplicación de ejemplo.

En esta segunda parte veremos el resto de las clausulas que componen este lenguaje y seguiremos con ejemplos en código.

21 de septiembre de 2009

Hibernate - Parte 7: HQL Primera Parte

Hibernate proporciona un lenguaje de consultas muy poderoso llamado "Hibernate Query Language" (HQL).

HQL es muy parecido al SQL estándar, con la diferencia de que es completamente orientado a objetos (usamos nombres de clases y sus atributos en lugar de nombres de tablas y columnas), por lo que podemos usar cosas como herencia, polimorfismo y asociaciones.

Nosotros escribimos las consultas en HQL y Hibernate se encarga de convertirlas al SQL usado por la base de datos con la que estemos trabajando y ejecutarla para realizar la operación indicada.

En este tutorial veremos cómo usar este lenguaje para hacer algunas consultas típicas dentro de nuestras aplicaciones para poder recuperar objetos simples, y arboles de objetos.

18 de septiembre de 2009

Día del programados

Feliciades a todos los programadores que visitan este blog, aunque un poco tarde ^-^!.

El día doscientos cincuenta y seis de cada año, o en binario el 1111111, se celebra el "Día del Programador". Esta año cayó justamente el 13 de Septiembre

La celebreación fué propuesta por Valentine Balt, un empleado de Parallel Tecnologies, a prinicpios del 2002 el intentó hacer llegar una petición firmada al gobierno de de Rusia para que el día se reconozca como el dia oficial del Programador.

El día 24 de julio de 2009 el ministro de Comunicación e Informatización de Rusia, presentó un borrador de una decreto para fijar el día de Programador, así que el día 11 de septiembre de 2009, el presidente de Rusia Dmitry Medvedev firmó el decreto y el día del prorgamador quedó oficializado (al menos en Rusia).

Esta festividad tiene por motivo reconocer esfuerzo de todos los que nos dedicamos a esta noble profesión.

Las tradiciones de este día incluyen jugar viejos juegos de computadora, hacer pequeños programas inútiles, poner un nick alusivo en los distintos medios de chat, enviar mensajes de texto y emails con felicitaciones a nuestros conocidos que se desarrollen en esta área, comportarse de maneras tontas, editar la Wikipedia, jugar con computadoras viejas, etc.

El día número 256 resulta el 13 de septiembre, excepto en los años bisiestos, en los que cae el 12.

Así que feliciades a todos los programadores.

24 de agosto de 2009

Hibernate - Parte 6: Relaciones / Muchos a Muchos

En ocasiones necesitamos relacionar muchas entidades de un tipo con muchas entidades de otro tipo. Este tipo de relaciones es muy común cuando trabajamos con bases de datos relacionales, por eso es importante saber cómo trabajar con ellas.

En este último tutorial de la serie veremos cómo crear los últimos dos tipos de relaciones el framework de Hibernate: relaciones muchos a muchos unidireccionales y bidireccionales.

2 de agosto de 2009

Hibernate - Parte 5: Relaciones / Muchos a Uno

Ya hemos visto, en los tutoriales anteriores, cómo generar 4 de los 7 tipos de relaciones que podemos crear con Hibernate.

En esta ocasión veremos cómo crear relaciones uno a muchos unidireccionales (ya que, como dije en el tercer tutorial, las relaciones uno a muchos bidireccionales son iguales a las relaciones muchos a uno bidireccionales ^-^).