Buscar
Social
Ofertas laborales ES
lunes
abr112011

Thymeleaf, un nuevo motor de plantillas XML/XHTML/HTML5

Acabo de publicar la primera release (1.0.0-beta1) de Thymeleaf, un motor de plantillas para Java que intenta solucionar buena parte de las cosas que no me gustan y/o me parecen incómodas de JSP, y que considero que ningún otro motor de plantillas soluciona en condiciones.

Una de las ventajas que ofrece es la posibilidad de crear plantillas web que sigan funcionando correctamente como prototipos estáticos (cosa que con JSP no ocurre).

Por ejemplo:

<form:inputText name="userName" value="${user.name}" />

...contra...

<input type="text" name="userName" value="James Carrot" th:value="${user.name}" />

Ambas podrían hacer lo mismo, pero mientras el primer código mostrado estáticamente en un navegador no mostraría nada, el segundo serviría perfectamente como prototipo.

Pero Thymeleaf tiene muchísimo más que esto: compatibilidad completa con HTML5, validación (opcional), sistema de cachés...

Además, cuenta con integración completa (también opcional) con Spring MVC, de modo que puede usarse como un substituto completo de JSP en las aplicaciones desarrolladas con esta tecnología.

Existen comprehensivos tutoriales y aplicaciones de ejemplo en la web del proyecto en http://www.thymeleaf.org

 

domingo
abr102011

NetBeans IDE 7.0 Release Candidate 2

Poco más de un mes después de haber anunciado la NetBeans IDE 7.0 Release Candidate 1, Oracle anuncia NetBeans IDE 7.0 RC 2. Esta debería ser la última versión RC, ya que la versión final de Netbeans 7.0 está prevista para este mismo mes de abril.


Esta versión se trata de una versión de corrección de bugs, no teniendo nueva funcionalidad. Si estáis interesados en saber cuáles son las novedades de Netbeans 7.0 podéis echarle un vistazo a esta noticia.


En una noticia relacionada, este martes 12 abril a las 10:00 AM Pacific Time (aquí tienes un poco de ayuda para traducir esto a una hora en tu país) habrá un TechCast Live donde John Jullion-Ceccarelli, NetBeans Engineering Manager, presentará las novedades que Netbeans 7.0 introduce para los cambios del lenguaje que habrá en Java SE 7.

sábado
abr092011

keyTool IUI, interfaz gráfica para la keyTool del JDK

keyTool es una herramienta presente en el JDK de Sun/Oracle desde la versión 1.2. La herramienta permite gestionar certificados digitales, realizar firmas con dichos certificados, verificar firmas, crear certificados... todo ello desde una consola de comandos.


Seguramente todos en algún momento hemos necesitado emplearla para firmar algún jar. No es una tarea muy habitual, pero de vez en cuando suele hacer falta. Y ese es el momento en el que (al menos en mi caso) hay que desempolvar los conocimientos de qué parámetros había que pasarle exactamente para conseguir hacer lo que sea que tengamos que hacer.


keyTool IUI es una interface Swing que nos proporciona la funcionalidad de Keytool a través de menús, y no a través de comandos de consola. El proyecto se apoya en las librerías de criptografía de Bouncy Castle y se distribuye bajo licencia LGPL. Su autor es Michael Schnell.


La herramienta puede lanzarse a través de Java Web Start, así que podréis probar la con sólo hacer clic en este enlace. Sin duda una herramienta interesante para añadir al repertorio.

 

 

viernes
abr082011

Novell anuncia Mono for Android 1.0

Novell ha anunciado la versión 1.0 de Mono for Android, un entorno de desarrollo para Android que permite escribir tu código fuente en vez de en Java en C#. Este proyecto durante desarrollo se llamaba MonoDroid, pero finalmente han tenido que cambiarle el nombre a Mono for Android porque el término Droid es propiedad de George Lucas (el creador de la guerra de las galaxias) y demanda a cualquiera que lo use sin los permisos adecuados.


Para construir este producto Novel ha creado un porte de las Apis de Dalvik (la máquina virtual de Android) para C#. El lenguaje de programación no soporta todas las características de  C# 4.0, pero implementa un subconjunto bastante decente del lenguaje. También han creado un plugin para Visual Studio 2010 que permite desplegar una aplicación C# en la plataforma Android.


El kit de desarrollo se puede descargar gratuitamente, pero la versión gratuita está limitada a ejecutar las aplicaciones en el emulador. Para poder instalar las aplicaciones en terminales móviles reales hay que pagar por una versión comercial, cuyo precio comienza en los 400 $.


Supongo que el sentido de este producto es permitir a programadores de .NET a los cuales no les termina de convencer Windows Phone 7 desarrollar aplicaciones móviles, porque si su propósito es que programadores Java usen este producto en vez de el kit de desarrollo de oficial Google creo que lo tienen crudo.

 

 

jueves
abr072011

Twitter mejora el desempeño de sus búsquedas usando Java

En 2010, los ingenieros de Twitter empezaron a migrar su sistema de búsquedas en tiempo real. Durante la primera fase, remplazaron su backend que usaba mysql por un sistema basado en Lucene. Hace una semana han remplazado el front-end, de una aplicación Ruby On Rails a un front-end basado en Java al que han llamdo Blender.

Con este nuevo front-end han mejorado el desempeño y ahora es 3 veces más rápido que la versión anterior. Los detalles de este nuevo sistema están en el blog de twitter

Los retos principales que atacaron con Blender son:

1. Tener un sistema Asíncrono, para no bloquear threads

2. Agregar resultados de varios servicios del backend

3. Gestionar dependencias entre estos servicios de forma elegante.

 

Al final la solución se construyó sobre Netty, un framework para construir aplicaciones con arquitectura basada en eventos de JBoss y usa Thrift y Http para exponer su API. Algo que me gustó de lo que hicieron, es el framework para workflows, que analiza los servicios que tiene que agregar para completar una petición hecha a su API y los acomoda de acuerdo a sus dependencias, garantizando que podrá hacer las llamadas en paralelo justas para los servicios sin romper sus dependencias.

El equipo de twitter seguirá trabajando para mejorar Blender. Un buen caso de cómo atender cientos de miles de peticiones de forma asíncrona y en el menor tiempo posible usando herramientas Java.