Buscar
Social
Ofertas laborales ES
jueves
nov192009

Terracota compra Quartz

Terracota, la empresa creadora de productos enfocados a mejorar el desempeño de aplicaciones Java como Terracota Clustering y ehcache, ha anunciado la adquisición de la librería Quartz, que es la librería de facto para scheduling de tareas en Java. Como parte del acuerdo, la librería no perderá su licencia open source Apache 2.

Ésta librería ha sido desarrollada en su mayor parte por James House, quien continuará de líder técnico del proyecto. Alex Miller, empleado de Terracota, se hace eco de la adquisición en su blog, donde comenta que con este acuerdo Terracota construirá una implementación de Quartz con soporte para scheduling sobre clústers.

Quartz es una herramienta que desde que la descubrí me ha gustado mucho por su simpleza y gran poder. A lo largo de la evolución de java, esta herramienta ha ido mejorando y obteniendo soporte en otras herramientas como Spring, Grails, etc.  Espero que con el apoyo económico de una empresa, House continúe mejorándola.

jueves
nov192009

Al final parece que el JDK 7 va a soportar closures!!!

Ha sido anunciado por Mark Reinhold en Devoxx. Hasta ahora, todas las noticias que habíamos tenido al respecto apuntaban a que las closures se quedarían fuera del JDK 7. por primera vez, un empleado de Sun involucrado directamente en el JDK 7 ha afirmado que si que se van a incluir, y que la propuesta será FCM.

 

La verdad, casi no me lo creo. Me parece un tanto precipitado. Entiendo perfectamente que es posible incluir la sintaxis de closures sin ningún problema, y sin requerir demasiado tiempo gracias a construir sobre las propuestas que ya están disponibles en Internet (como FCM). Pero esto sólo la mitad de la historia ¿qué pasa con todas las librerías estándar donde tendría sentido emplear closures? ¿Las van a rediseñar todas en un tiempo razonable? ¿No es ya un poco tarde para comenzar ese trabajo? ¿o es que la intención es sólo tener una sintaxis para soportar closures, sin modificar las librerías... lo cual sería un parche mal hecho?

miércoles
nov182009

Devoxx - dia 3

Hola, Hoy ha sido un dia un poco durillo aqui en el Devoxx debido a que ha acabado la University y empezamos con las conferencias.

Al principio del dia hemos tenido la keynote y unas charlas cortillas de los patrocinadores principales del evento. Como información a destacar, decir que ha partir del fin de semana se publicaran poco a poco las charlas en parleys(www.parleys.com). Se van a colocar en un canal de pago (49 € por 6 meses de suscripción).

Han hablado sobre Java EE 6 contando las novedades respecto a la versión anterior, como por ejemplo la validación de beans, soporte para JAX-RS o inyección de dependencias. Aunque la gran noticia ha sido que por fin hay fecha para la release que será el próximo dia 10 de diciembre.

Poco despues han hecho una pequeña demo de la integración entre los diferentes productos de Adobe y la verdad es que como realmente funcione bien es verdaderamente potente. A partir de una imagen de un interfaz de login, seleccionando lo que deberian ser los componentes dentro de ella y convirtiendolos! Esto lo han hecho con Adobe Catalyst

También han hablado de las mejoras en el reproductor flash,habilitando la aceleración gráfica y mejorando la gestion de memoria incluso en un 50 %.

La siguiente charla ha tratado sobre las novedades en la futura (y tan futura) JDK 7. En principio hasta septiembre del próximo año no va ha haber release candidate. Como novedades se presentan la modularización de los componentes (base, swing, etc). Esto también facilita el empaquetado de las aplicaciones pudiendo especificar en un fichero de dependencias todos los módulos o librerías de las que depende tu proyeto.

Se han creado nuevas tareas basadas en concurrencia para optimizar el trabajo con arrays. Por ejemplo existe un ParallelArray que permite filtrar o buscar de manera paralela consiguiendo mucho mayor rendimiento.

URLs:

  • http://openjdk.java.net/projects/jdk7
  • http://openjdk.java.net/projects/mivm
  • http://openjdk.java.net/projects/coin
  • http://openjdk.java.net/projects/jigsaw
  • http://jcp.org

Después de comer hemos estado en la gran esperada, pero decepcionante, conferencia de James Gosling. No cabía en principio ni un alfiler, pero pasados 10 min estaba media sala vacía. Ha tratado sobre la futura tienda java, una colección de programas desarrollados por terceros para cualquier plataforma java. La única novedad es que a diferencia de otras tiendas de éste estilo no cree en la plataforma DRM.

En la siguiente hora de conferencias hemos podido asistir a 2. La primera sobre JavaFX. En esta ocasion la charla se centró más en la potencia de javafx para la creacion de controles y su tratamiento. Pero antes respecto a web services lo mas importante que han contado es que es un motor "single threaded", y han hablado sobre el uso de TaskApi para el manejo de tasks en background, de la cual han destacado la clase JavaTaskBase. Esta clase te permite empezar una tarea, pararla, que te avise cuando se haya completado etc...

Como hemos dicho, se ha centrado mucho en creacion de controles, sobre todo en temas de control (passwordBox, progressBar, buttons, TextBox, ListView lo que mas). Todo lo han acompañado de demos para ver la facilidad con que se crean estos elementos y se usan.

En cuanto estilo han hablado del soporte CSS y en cuanto a "tooling" de efectos para las imágenes, con una demo demostrando lo facil y rapido que es por ejemplo elegir una control y hacerla vibrar, o parpadear etc...

URLS

  • http://fxexperience.com
  • http://javafx.com

A su vez habia otra conferencia sobre  Java EE 6. Ha sido la conferencia más dura con diferencia condensando la university de ayer en tan sólo una hora. Como caraceristicas novedosas comentar,aparte de las de ayer, el desarrollo de las EJB Lite juntando las caracteristicas más usadas en una pequeña librería. Otra caracteristica nueva, que ya se hacía esperar es la estandarización de los namespaces JNDI para todas las plataformas.

 Como complemento a ésta última hemos asistido a otra conferenca sobre Comet y Atmosphere, siendo bastante frustrante debido a que los conferenciantes se han dedicado básicamente ha hacer un ejemplo desde 0 sin explicar prácticamente nada lo que iban haciendo.

Comet, se basa en el principio de http Streaming, es decir, cuando un cliente hace una petición abre una conexión y va enviandole respuestas según los eventos ocurridos en el servidor. Es compatible tanto con la versión actual de la librería de servlets como con la futura versión 3.0, y de manera transparente, pudiendo migrar de una a otra sin modificar para nada el código.

URLs:

  • http://atmosphere.dev.java.net
  • http://twitter.com/atmosphere_java
  • http://jersey.dev.java.net
  • http://blogs.sun.com/sandoz
  • http://weblogs.java.net/blog/jfarcand

Y ya por último hoy hemos asistido a una conferencia sobre el proyecto Coin y las futuras novedades del próximo JDK 7. En verdad el chico se ha ido un poco por las ramas comentando todas las especificaciones de los cambios en vez de los cambios en si, aunque al final ha comentado lo que todos queriamos oir. Como cosas destacadas, mencionar la posibilidad de hacer switchs sobre Strings, una nueva gestion de excepciones o la posibilidad de usar listas variables de argumentos junto con Generics.

URLs:

  • http://download.java.net/jdk7/binaries
  • http://bertran.netbeans.org/hudson/job/jdk7
  • http://blogs.sun.com/darcy
Un saludo!
miércoles
nov182009

Libertad para Java - SAP

Vishal Sikka CTO de SAP, la empresa de TI más grande de Europa, ha publicado el artículo "Libertad para Java" donde expresa el sentir de esta empresa y me atrevo a decir de parte de la industria de TI sobre el destino de esta plataforma de programación. 

El artículo inicia situando el papel de Java en el mercado actual:

"Por 15 años Java ha sido el lenguaje de programación que ha traido innovación significativa. Java está en todos lados, desde aplicaciones de escala empresarial a dispositivos móviles y tarjetas de pago. Java es además el lenguaje de la comunidad que ha permitido a toda una generación de desarrolladores colaborar y co-innovar dentro de comunidades open source como Apache y Eclipse.

Mientras que los lenguajes de programación se inventan con frecuencia, en promedio cada diez años, los muchos sistemas de software construidos usando estos lenguajes tienen tiempos de vida mayores. Es seguro decir que los sistemas desarrollados con Java seguirán existiendo por largos periodos de tiempo.

Para SAP, fue una decisión importante cuando en 2001 incorporamos Java en nuestros productos core y lo hicimos parte esencial de nuestra plataforma tecnológica SAP NetWeaver"

Sikka continúa con una crítica al modelo actual del JCP y una propuesta de cómo debería funcionar: 

"La industria Java está pasando por cambios importantes y hay muchas discusiones sobre la apertura de Java y el Java Community Process (JCP). A la fecha, el JCP está dominado fuertemente por Sun Microsystems por lo que no siempre ha sido benéfico con todas las partes interesadas en Java. Java es la sangre de la industria TI y dicha industria es un pilar fundamental en la forma en que los negocios se conducen en este siglo 21. Las interfaces técnicas que son desarrolladas en conjunto por la comunidad deberían ser inmunes de predisposiciones y la comunidad debería poder trabajar incluso más cercanamente con un espíritu de cooperación para continuar la historia exitosa de Java." 

Para garantizar la continuidad del rol de Java conduciendo el crecimiento económico, creemos que es esencial la transición de la administración del lenguaje y la plataforma a un cuerpo abierto que no esté dominado por una corporación individual.  Java debe estar libre de cualquier obstáculo que permita la competencia justa entre implementaciones compatibles en beneficio de los clientes. Preservando la integridad de Java, la industria TI puede asegurar una comunidad vibrante de desarrolladores y continuar la innovación para los clientes empresariales. Esto asegura el éxito económico global continuo conseguido a través de la innovación abierta.

Eclipse es un ejemplo excelente donde una tecnología brillante ha experimentado una adopción dramática después de que fue liberada y subsecuentemente administrada por un equipo que no pertenece a una sola compañía en particular. Con la adquisición de Sun, Oracle tiene ahora la oportunidad única de abrir el Java Community Process, que gestiona las especificaciones Java, y hacer la transición a un equipo igualmente independiente. La Máquina Virtual Java debe convertirse en open source y ser administrada por una junta independiente, incluyendo las licencias que están actualmente restringidas al software libre y por ende no son adaptables a los términos comerciales requeridos en el mercado global TI.

De hecho, Oracle ha propuesto una transición como esta al Java Executive Comitee quien subsecuentemente ha tomado la siguiente decisión:

"Es el sentir del Executive Commitee que el JCP se vuelva una organización de estándares vendor-neutral, independiente y abierta donde todos los miembros participen en un nivel de campo de juego ..."

 JCP EC meeting summary - 7 de Diciembre 2007, Resolución 1 (propuesta por por Oracle, secundada por BEA)" 

Por último, hace una analogía con los tiempos finales del muro de Berlín (venga que la empresa es alemana y era obligada la analogía) con la situación actual de Java para pedir la apertura de la plataforma de una forma dramática y garantizar el apoyo de SAP:

"Si tal nueva Fundación Java es propuesta por el dueño del lenguaje de programación Java, SAP se compromete a hacer inversiones significativas en forma de recursos financieros y en ingeniería a la tecnología Java y su nueva estructura de gobierno.

...

Sr. Ellison y Sr. Schwartz, ¡abrán esta puerta! Caballeros, ¡derriben este muro! ¡Dejen que Java sea libre!" 

Así como SAP e IBM, numerosas empresas han apostado por la plataforma Java y están inquietas con el rumbo que tome el JCP en manos del Sr. Ellison y compañía. En un mundo ideal, el JCP se volvería abierto como quiere SAP, y todos podrían seguir beneficiándose de ella. Por otro lado, estas empresas ya están investigando otros lenguajes que puedan ser una alternativa en caso de que estratégicamente nos les convenga continuar con Java. En el caso de SAP (aparte de obviamente, ABAP ) están apostando por Ruby y en el caso de IBM por PHP y Groovy.

¿Cuál es vuestra postura al respecto? ¿Veis a Oracle como una empresa que abra al fin la JVM y el JCP? 

 

martes
nov172009

Devoxx - dia 2

Hola de nuevo desde tierras belgas,

Hoy hemos tenido la oportunidad de asistir a charlas sobre productos más orientados a aplicaciones web.

En primer lugar, he estado en una conferencia sobre Solr. Consiste en un entorno web para el motor de busquedas apache Lucene. 

Para los que no conozcan Lucene, es un indexador de contenidos bastante sencillo pero altamente eficiente. Solr básicamente es una serie de plugins aumentando la funcionalidad de Lucene como, por ejemplo la incorporación de correctores ortograficos, validadores de campo, etc.

Otra gran caracteristica de Solr es que, para grandes cantidades de datos (1000000 de documentos), Lucene puede tardar un tiempo excesivo en procesar una consulta.Sin embargo, Solr hace posible la distribución de los indices de lucene de manera que se puedn hacer busquedas distribuidas, consiguiendo asi aumentar la escalabilidad del sistema.

Otro producto realmente interesante es Luke (www.getopt.org/luke) que permite navegar de forma sencilla por los indices de lucene para ver su contenido.

El único punto descuidado de Solr es la inexistencia de mecanismos de seguridad de manera que si no se dispone de medidas externas, es posible que se pueda acceder a toda la información existente en cualquier momento.

URLs:

  • http://lucidimagination.com
  • http://search.lucidimagination.com
  • http://manning.com/lucene

Al mismo tiempo, se producia una conferencia sobre Java EE 6.

En general se han explicado bastante bien, ilustrando con unos 12 ejemplos cada tema. Se ha centrado en las diferencias en temas como JPA, JSF, Servlets, EJB, Bean Validation y JAX-RS.

En todo momento usando glassfish, ya que uno de los ponentes era el autor del libro "Beginning Java™ EE 6 Platform with GlassFish 3", aunque les ha faltado tiempo para explicar mejor su funcionamiento y ventajas.

Han usado un ejemplo de una aplicacion web para la creacion y gestion de bibliotecas de libros o cds, enseñando para cada tema, las diferencias con la version anterior, codificando en el momento (lo cual ha dado pie a que algunas demos no fuesen bien a la primera xD). De esta forma hemos ido viendo el ahorro de codigo y la simplicidad que aportan las nuevas versiones mediante anotaciones.

Las querys en JPA, ajax en JSF, la opción y no obligacion del web.xml en los servlets, Managed Beans, uso de interceptors o Singleton en EJB y la fácil validacion de los beans, son ejemplos que han puesto en sus demos.

Después de esto hemos estado en una conferencia sobre JavaFX, que prometía ser bastante avanzada, pero a resultado ser un resumen muy básico de esta tecnología.

JavaFX es un nuevo lenguaje apoyado en la JVM que permite de manera sencilla crear aplicaciones RIA, pudiendo usar cualquier elemento creado en Java. Como caracteristicas avanzadas podemos incluir la posibilidar de hacer binding de variables o usar funciones como parametros o valores de retorno de otros métodos. Además está orientado a las animaciones de manera que por ejemplo añaden el tipo de dato Duration, para delimitar el tiempo de las mismas.

Otra de las caracteristicas más avanzadas es la gestion de secuencias (arrays) de manera que se puede condicionar bastante la creación o iteración de los mismos.

 Como apunte significativo, han mostrado un plugin para netbeans, muy parecido a Matisse, para desarrollar interfaces graficas en JavaFX, realmente a sido bastante espectacular. No han dado detalles ni nombre del plugin, por lo que si alguien conoce algo al respecto, seria de gran ayuda.

URLs: 

  • http://javafx.com
  • http://jfxtras.org
  • http://www.jroller.com/aalmiray/entry/griffon_gfxbuilder_fxbuilder_side_by

En las conferencias breves hemos estado en la de Java Monitoring y la verdad es que me ha gustado bastante. A tratado de como intentar eliminar los típicos fallos de programación que si no se corrigen a tiempo pueden causar que se caiga el sistema o al menos nuestra aplicación. Ha dado trucos sobre como evitar memory leaks (no, no nos debemos fiar del colector de basura de java ;)) o como aumentar el rendimiento de una aplicación lanzando la maquina virtual en modo servidor. 

Ha hablado un poco sobre una herramienta llamada findbugs que sirve para detectar estos problemas y dar ideas sobre como resolverlos.

URL: http://java-monitor.com

Y la ultima conferencia del dia ha sido sobre TeamCity. Esta aplicación es un sistema de integración continua multiplataforma. está integrado en gran cantidad de IDEs y puede utilizar gran parte de los sistemas de control de versiones existentes.

Como caracteristicas avanzadas podemos destacar la posibilidad de realizar todos los tests existentes para el proyecto o medir la cobertura del codigo. Además tiene la posibilidad de hacer post-commits, es decir, realizar todas las comprobaciones configuradas y sólo se permite hacer commit en caso de que todo funcione correctamente.

 URL: www.jetbrains.com/teamcity

Seguiremos retransmitiendo.