Noticias Weblogs Foros Wiki Código
Sponsors:

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Anunciarse aquí

PlanetaCódigo en inglés

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

PHP Senior

PHP sigue en carrera: se viene PHP6 y Framework

Febrero 28th, 2006 - [Enlace local]

"El lenguaje PHP cumplió 10 años en 2005 y promete seguir expandiendo su territorio en 2006 gracias al próximo lanzamiento de su versión 6.

En cuanto al lanzamiento de la versión 6 -que se producirá en algún momento de 2006- los expertos afirman que una de sus principales ventajas será la utilización de UNICODE. Este sistema provee una manejo universal de los caracteres, sin depender de ninguna plataforma en particular.

Por otra parte, en enero de 2006 se publicarán las primeras bases del “PHP Collaboration framework�, una iniciativa para crear un nuevo entorno de implementación y desarrollo para PHP. Se espera que esta iniciativa pueda acercar a PHP al ámbito corporativo para competir de igual a igual con otras plataformas como .NET y Java.

De esta manera, a partir de 2006 coexistirán en el mercado tres versiones distintas de PHP: la 4, la 5, y la 6."


Noticia completa en:
NoticiasDot.com

» Leer más, comentarios, etc...

Nuevo cierre de comentarios

Febrero 28th, 2006 - [Enlace local]

Vuelvo a cerrar comentarios de los mensajes antiguos debido al insufrible SPAM. ¿Realmente esa gente piensa que se leen esos mensajes?…

» Leer más, comentarios, etc...

xBase en PDA!!

Febrero 28th, 2006 - [Enlace local]

Ya podemos programar nuestras aplicaciones xbase en las PDA’s. Nuestro lenguaje de programación favorito (x)harbour se ha colado en las Pocket PC de la mano de FiveTech y su FWPPC.

» Leer más, comentarios, etc...

Documentación del Taller de RoR

Febrero 28th, 2006 - [Enlace local]

Furilo avisa que ya está disponible la presentación del Taller de RoR que organizaron en el Hacklab WH2001 – Cielito Lindo. La primera parte se centra en el lenguaje Ruby, y la segunda se adentra en Rails.

Más material para los que quieran aprender con RoR y no tienen muy claro por dónde empezar.

» Leer más, comentarios, etc...

Thumbstacks: pseudo-power point como servicio web

Febrero 28th, 2006 - [Enlace local]

proyectorRecientemente estrenado y aún en versión alfa, Thumbstacks es un servicio, de momento gratuito, para desarrollar y publicar presentaciones a través del web.
La idea da forma de servicio de software, a lo que hasta ahora solo cubrían productos de software.
Útil por la ubicuidad e independencia de programas o plataformas que proporciona (personas o equipos distantes, formación a distancia…)
Cosas que mejorar:

.

» Leer más, comentarios, etc...

Artículo sobre Eclipse/FDT

Febrero 28th, 2006 - [Enlace local]

No os perdais el nuevo artículo de Xavi, que se nos ha unido al equipo de actionscript.com, sobre Eclipse y FDT el plugin de pago para desarrollar Flash en Eclipse. En el podeis encontrar diferentes técnicas para optimizar vuestro flujo de trabajo, algunas incluso utilizables con ASDT.

» Leer más, comentarios, etc...

Utilizar un ORM

Febrero 27th, 2006 - [Enlace local]

A estas alturas casi todo el que se dedique a desarrollar aplicaciones que tengan que ver con bases de datos sabrá que significan las siglas ORM, pero por si acaso, vamos a explicarlo con un lenguaje sencillo:

Las bases de datos relacionales están pensadas para manejar conjuntos de datos, sin embargo los lenguajes orientados a objetos manejan objetos individuales, o listas (tuplas/arrays) de objetos, que suelen ser más complejos que los datos almacenados en las tablas de una base de datos relacional.

Cada una de las aproximaciones tiene sus ventajas e inconvenientes, pero de ello no voy a hablar en este post.

Object Relational Mapping es una técnica por la que la aplicación maneja objetos, pero guarda tablas. Es decir, es un adaptador entre la base de datos relacional y el modelo de objetos que maneja la aplicación.

Evidentemente esta explicación previa es para aquellos que no saben de que va el tema, para los expertos seguramente sobraba. Yo todavía soy un aprendiz en ORM.

Todo esto viene a cuento porque en la próxima gran revisión del programa PhotoGestión vamos a utilizar Firebird como base de datos y tiOPF como ORM, y continuamos con Delphi como lenguaje/entorno, por pura productividad (lo del Delphi).

¿Alguien tiene experiencia utilizando ORM? ¿Vale la pena liarse con esto o mejor programar como siempre?

» Leer más, comentarios, etc...

Zumo de Najaraba

Febrero 27th, 2006 - [Enlace local]

Ya tengo mi nube, que podeis ver sobre la publicidad-que-no-da-dinero :) , a la derecha, creada con ZoomClouds. Para que veais de un vistazo los temas que se van tratando.

» Leer más, comentarios, etc...

Najaraba.com: Software libre, negocios y más.

Zumo de Najaraba

Febrero 27th, 2006 - [Enlace local]

» Leer más, comentarios, etc...

Guía de scripts de shell

Febrero 27th, 2006 - [Enlace local]

Una guía para poder escribir scripts de shell (sh, ksh, bash), con versión en pdf.

» Leer más, comentarios, etc...

Generador de scaffolds con Ajax

Febrero 27th, 2006 - [Enlace local]

Si los andamiajes que por defecto crea el generador scaffold te parecen sosos y aburridos, he aquí tu solución, que viene una vez más a demostrar lo extensible de Rails.

Richard White ha creado un generador de andamiajes basado en Ajax que es tan fácil de usar como el estándar.

Aquí teneis una demo para que veais el aspecto de verdad…

» Leer más, comentarios, etc...

Hibernate Annotations

Febrero 27th, 2006 - [Enlace local]

Este es un artículo que escribí para el blog de mi amigo Niko.
Pueden leerlo acá: http://nikofactory.blogspot.com/2006/02/hibernate-annotations.html

» Leer más, comentarios, etc...

The Future of Web Apps

Febrero 27th, 2006 - [Enlace local]

Resulta que no me he enterado, pero un montón de gente de las empresas más guays del momento han hablado en un Carson Workshops Summit sobre el futuro de las aplicaciones WEB.
Desde Simon Willison’s Weblog llego a los resúmenes con las notas más interesantes de lo que se comentó por allí. Como llego a este blog de Simon Willison, no lo puedo contar ya. Sé que he empezado buscando en Google cuestiones sobre el escritorio semántico, y tras 20 o 25 pestañas de Firefox lo he encontrado.
En este foro, muchas historias sobre WEB 2.0 (¡cómo no!) y opiniones interesantes (que pena que no estuviese Rogelio) . Algunas cosas interesantes:

- “Idiots are a lot smarter than you” - wait to see what breaks before you fix it. [..]

- A niche product with a limited audience is still good business (with how advertising and paypal work) [..]
- Make users do the minimum amount of work. But make them do something.

En fin, más tópicos sobre el Web 2.0 también, pero son interesantes los consejos de las personas que realmente han programado las aplicaciones.

» Leer más, comentarios, etc...

Najaraba.com: Software libre, negocios y más.

The Future of Web Apps

Febrero 27th, 2006 - [Enlace local]

» Leer más, comentarios, etc...

niko's mini factory

Hibernate Annotations

Febrero 27th, 2006 - [Enlace local]

Introducción
Uno de los problemas mas frecuentes al trabajar con Hibernate, es la generación de los mapping files. (archivos .hbm.xml). Hay varias opciones para generarlos, desde escribirlos a mano hasta usar varios de los generadores automáticos. La manera mas usual es usar Xdoclet, algo que a mi particularmente nunca me gustó, ya que agrega un paso mas a la compilación, obligándome a usar Ant todo el tiempo, y no es algo que me parezca muy productivo. Además Xdoclet 1 no es del todo compatible con Hibernate 3 (la solución sería usar Xdoclet2, pero yo nunca lo probé). Hay otras opciones también, como algunos plugins para Eclipse, pero tampoco me terminaron de convencer.

Presentando Hibernate Annotations

Hibernate Annotations es un proyecto paralelo de Hibernate, a fin de proveer compatibilidad con la nueva especificación de EJB3.
Junto con otro proyecto, HibernateEntityManager , la gente de Hibernate planea tener un framework 100% compatible con EJB3, sin necesidad de un application server.
La especificación de EJB3 aún no esta completa, pero esta muy avanzada, y es de esperar que si hay algunos cambios, sean menores. Igualmente no es necesario usar EntityManager para aprovechar las anotaciones.
EJB3, aunque inspirado en Hibernate, no provee toda la funcionalidad de éste, por lo que Hibernate Annotations ofrece unas extensiones (en el paquete hibernate-annotations.jar) para lograr la misma funcionalidad que con los mappings files, pero es de suponer que esta compatibilidad sera alcanzada recién en la versión definitiva (actualmente esta disponible la 3.1beta8).
Además, Hibernate Annotations es compatible con los mappings, por lo que ambos pueden convivir en una misma aplicación, de forma que se puede ir migrando una aplicación de a poco (por supuesto cada clase individual debe estar mapeada de una u otra manera, no se pueden combinar los dos estilos en una misma clase).

Para los que no estén familiarizados con java annotations, les recomiendo que lean algún artículo en internet, como por ejemplo este.

Cuando se usa Hibernate Annotations, no significa que Hibernate va a crear los mapping files por sí mismo, y luego los va a leer y procesar. Hibernate toma las clases que tiene declaradas en el hibernate.cfg.xml, y lee las anotaciones directamente desde los archivos .class, generando así los mappings en memora en tiempo de ejecución.

Una gran ventaja de usar Hibernate Annotations es que todos los IDE modernos (Eclipse, IntelliJ, etc.), tienen soporte para anotaciones en el editor. Esto significa que es posible usar todas las funciones de los IDE (auto completar, refactoring, etc.) también con las anotaciones.

Por otra parte, todos los atributos de las anotaciones son tipos java (String, int, boolean, etc.), con lo que se reduce aún mas la posibilidad de errores.

Instalación
Es tan simple como agregar los jar (hibernate-annotations.jar y ejb3-persistence.jar) provistos en la distribución al classpath. También, donde sea que se defina el sessionFactory, hay que usar la clase AnnotationConfiguration en vez de Configuration (si se esta usando Spring, se debe usar AnnotationSessionFactoryBean en lugar de LocalSessionFactoryBean).
Por ultimo, en el archivo hibernate.cfg.xml hay que indicar que clases van a ser persistentes, de manera similar a cuando definíamos los mappings:
<mapping class="test.Cliente"/>

Hibernate Annotations requiere Hibernate 3.1.1 o superior.
Breve introducción a las Hibernate Annotations
Esto no pretende ser ni un tutorial ni una referencia completa a Hibernate Annotations, sino simplemente un pantallazo sobre su utilización. Para mas información y detalles, consulten la documentación en el sitio de Hibernate.
Otra de las grandes ventajas de usar annotations, es que podemos ir escribiendo los mapeos a medida que vamos escribiendo nuestra clase. Además, como la especificación provee defaults para casi todas las annotations, en principio hacer que una clase sea persistente es tan simple como agregar una sola anotación:
@Entity
public class Persona {
...
public String getNombre() {
...
}
}
En este caso, la clase mapearia a una tabla en la BD llamada cliente, con un campo de tipo texto llamado nombre.
Por supuesto nunca tendremos tanta suerte, y siempre será necesario agregar algo mas para que las clases mapeen correctamente a la tablas.

Por ejemplo, para que la tabla se llame “PERSONAS�, podemos agregar la siguiente anotación a la clase:
@Table(name=�PERSONAS�)
Todas la propiedades de la clase que tengan un getter van a ser persistentes por default (excepto las marcadas con static o transient), lo que equivaldría a usar la anotación @Basic;
@Basic
public Date getFechaDeNacimiento() {
...
}
Si queremos que algún campo no sea persistente, lo marcamos con @Transient:
@Transient
public int getEdad() {
...
}
Finalmente, si queremos cambiar alguna de las características de la columna en la BD, podemos usar @Column:

@Column(name=�documento�, unique=true, nullable=false, length=10)
public String getNroDocumento() {
...
}
Veamos ahora como mapear algunas asociaciones, empezando por la mas simple @OneToOne:
@Entity
public Class Persona {

@OneToOne(cascade=CascadeType.All)
public Direccion getDireccion() {
...
}
}

@Entity
public Class Direccion {
...
}
Noten como puede especificar el tipo de cascada que quiero. La columna que relacione las dos tablas en la BD se llamará por default direccion_id, en base a la concatenación del nombre de la relación mas underscore, mas el nombre de la primary key de la clase contenida. En caso de querer usar otro nombre de columna, se puede usar @JoinColumn.
Esta es una asociación unidireccional, si quisiera que fuera bidireccional, agrego en la clase Direccion:
@OneToOne(mappedBy=�direccion�)
public Persona getPersona() {
...
}
En vez de repetir el mapeo, simplemente lo especificamos con mappedBy, Hibernate busca el mapeo que se hizo en otro extremo de la asociación y sabe que es la asociación inversa.

Si una empresa tiene muchas personas, uso @ManyToOne:
@Entity
public Class Persona {

@ManyToOne()
@JoinColumn(name=�empresa_id�)
public Empresa getEmpresa() {
...
}
}

@Entity
public Class Empresa {
...
}
Para el caso de colecciones (por ejemplo si una persona tiene mas de una dirección), se usa @OneToMany/@ManyToOne o @ManyToMany:
@Entity
public Class Persona {

@OneToMany(mappedBy=�persona�)
public List<Direccion> getDirecciones() {
...
}
}

@Entity
public Class Direccion {

@ManyToOne
public Persona getPersona() {
...
}
}
Si usamos colecciones genéricas, Hibernate deduce cual es el otro extremo de la asociación y no es necesario indicarlo. En el caso que no usemos genéricas, o bien usemos interfaces, debemos indicar explícitamente hacia adonde apunta la asociación mediante el atributo targetEntity.


Desventajas de Hibernate Annotations


Conclusión
Hibernate Annotations es una excelente adición a Hibernate, y si no tienen problemas con las desventajas enunciadas anteriormente, en mi opinión es el camino a seguir.

Particularmente acabo de migrar una aplicación mediana (30 entidades) a Hibernate Annotations con un excelente resultado. Además, trabajar con anotaciones me resultó muy cómodo, mas fácil y mas intuitivo que con los mapping files o que con Xdoclet.

» Leer más, comentarios, etc...

Rubí Sobre Rieles

Traducción de “Rolling with Ruby on Rails” (I y II)

Febrero 27th, 2006 - [Enlace local]

En el sitio Sobre Raíles están disponibles las dos traducciones de los artículos que iniciaron la fiebre por "RoR":

En Marcha Con Rails
En Marcha Con Rails 2

» Leer más, comentarios, etc...

Rubí Sobre Rieles

Traducción de “Rolling with Ruby on Rails” (I y II…

Febrero 27th, 2006 - [Enlace local]

En el sitio Sobre Raíles están disponibles las dos traducciones de los artículos que iniciaron la fiebre por "RoR":

En Marcha Con Rails
En Marcha Con Rails 2

» Leer más, comentarios, etc...

Rubí Sobre Rieles

Traducción de “Rolling with Ruby on Rails” (I y II…

Febrero 27th, 2006 - [Enlace local]

En el sitio Sobre Raíles están disponibles las dos traducciones de los artículos que iniciaron la fiebre por "RoR":

En Marcha Con Rails
En Marcha Con Rails 2

» Leer más, comentarios, etc...

Rubí Sobre Rieles

Traducción de “Rolling with Ruby on Rails” (I y II…

Febrero 27th, 2006 - [Enlace local]

En el sitio Sobre Raíles están disponibles las dos traducciones de los artículos que iniciaron la fiebre por "RoR":

En Marcha Con Rails
En Marcha Con Rails 2

» Leer más, comentarios, etc...

Flex Data Services

Febrero 26th, 2006 - [Enlace local]

Después de hablar de las nuevas habilidades de mensajería que trae Flex Enterprise Services 2.0 (FES) con la posibilidad de hacer “Data Push” desde el servidor a los clientes vía RTMP, no podía dejarme en el tintero la segunda gran novedad de esta nueva versión: Los Flex Data Services. Pero antes una breve introducción…

Antes

En anteriores versiones de Flex disponiamos de 3 formas de acceder a los datos:

FES antes...

Es decir:

Hasta el momento parecía que teníamos la suficiente flexibilidad para tener acceso a los servicios correspondientes en nuestro backend o en terceros sistemas. Pero no…

Ahora

Con la introducción del bus de mensajería en FES 2.0, la foto es ahora algo más compleja dado que los anteriores servicios son ahora una parte del sistema junto con los nuevos servicios de datos. Como podeis ver en la siguiente figura, HTTPService, Remote Object y Web Service se engloban dentro de los Servicios RPC (Remote Procedure Call) cuyo modelo de programación se centra en la invocación de métodos en servicios remotos:

FES antes...

Por otro lado, tenemos los nuevos Data Services (Data Sync, Offline y Paging) cuyo proposito es muy diferente. El foco de este tipo de servicios se encuentra en los objetos y datos de forma que no es necesario realizar invocaciones a métodos remotos debido a que los datos se sincronizan de forma transparente al usuario. Es decir, gracias al trabajo conjunto del framework de Flex en cliente actuando con los servicios de datos en el servidor, los datos se mantienen sincronizados, actualizados y frescos de forma que la programación se simplifica enormemente. Además y gracias a la potencia del bus de mensajería asíncrona comentada en el anterior post podemos mantener al resto de clientes actualizados sin ningún esfuerzo adicional.

Imaginad que nuestra aplicación tiene un DataGrid cuyo dataProvider es un ArrayCollection(una de las nuevas clases del framework de Flex con las capacidades necesarias junto con la clase DataService para comunicarse con los Servicios de Datos del servidor) y realizamos un cambio de un campo de dicha tabla, el framework es lo suficientemente inteligente como para comunicarse con el servidor y notificar los cambios sincronizando estos datos con el backend sin necesidad de invocaciones explicitas por parte del usuario.

Sin duda esta nueva forma de enfocar el problema hace de FES 2.0 un paquete extremadamente potente que permitirá desarrollar toda una nueva generación de RIAs con funcionalidades que hasta el día de hoy no eran posibles o realmente dificiles de llevar a cabo.

Si te ha entrado el gusanillo y quieres saber más te recomiendo que consultes los diversos tutoriales, artículos y presentaciones que puedes encontrar en el wiki de los laboratorios de Adobe.

» Leer más, comentarios, etc...

La trastienda de PlanetaCodigo

Imagen de enlace diseñada por Carlos Rovira [2]

Febrero 26th, 2006 - [Enlace local]

Carlos Rovira ha diseñado una mini-imagen que puede ser utilizada para enlazar a Planeta Código:

Planeta Código

¡Muchas gracias, Carlos!

» Leer más, comentarios, etc...

Pequeños hilos que me llevan a…

Febrero 26th, 2006 - [Enlace local]

Últimamente sigo varios temas-proyectos con interés particular. Os los voy a contar un poco aquí, a ver qué les veis en común. En algún sitio en mi cabeza se van haciendo un hueco, y van apartando a las A-list de bloggers, que cada vez leo más por encima.

» Leer más, comentarios, etc...

Najaraba.com: Software libre, negocios y más.

Pequeños hilos que me llevan a…

Febrero 26th, 2006 - [Enlace local]

» Leer más, comentarios, etc...

V, la pelicula

Febrero 26th, 2006 - [Enlace local]

V for Vendetta, la pelicula

El día 7 de Abril se estrena V for Vendetta, la adaptación de uno de los grandes cómics de finales de los 80. A priori, parece que la estética de la obra original se ha respetado y el hecho de que los creadores de la saga de Matrix hayan sido los artifices de esta adaptación también es un punto a su favor. Lo único que hasta la fecha da mala espina es que el autor de la obra, Alan Moore, no aparece para nada en el cartel de la pelicula. Según parece el propio Moore no quiere saber nada de las adaptaciones que hace Hollywood de sus obras, lo cuál no es de extraña si vemos los resultados hasta la fecha con From Hell o The League of Extraordinary Gentlemen, donde sus autores han hecho lo que han querido obteniendo un resultado bastante pobre. Ahora bien, la decisión de no incluir siquiera su nombre en los titulos de credito me parece muy desafortunada…es como si en El Señor de los Anillos no se hiciera ninguna referencia a Tolkien. En fin, esperemos que esta vez los resultados esten a la altura de la obra en cuestión.

Algunos enlaces relacionados:

» Leer más, comentarios, etc...

Herramienta Excel para Scrum

Febrero 26th, 2006 - [Enlace local]

CIS: ScrumEs una hoja de cálculo para gestionar el trabajo del sprint: tareas, asignación, estado y tiempos. Genera de forma automática los gráficos para el seguimiento de esfuerzo y tareas.
Espero que os resulte útil. Las sugerencias son bienvenidas.


grafico

Tags:






.

» Leer más, comentarios, etc...