Spring 2GX day en Madrid

PostedEn Crónicas, Groovy     Comments 14 comentarios
Feb
20

Spring 2GX day es el primer evento gratuito organizado entre SpringSource y Javahispano que trata exclusivamente sobre Grails y Spring. La verdad es que fueron muchas cosas de las que se hablaron, y aunque el saber no ocupa lugar, la memoria siempre tiene un límite, así que intentaré contar mi propia versión del Spring 2GX day, es decir, de lo que me acuerdo.

Llego a las 8:15 y ya hay cola para registrarse, parece que este en evento va a haber mucha gente. Más tarde nos contarán que aunque inicialmente se esperaban unos 150 asistentes, a final serán más de 400. La organización, desbordada, tiene que planificar sobre la marcha, cambiar de sala de audiencias a una mayor y se quedan sin algunos items para todos que regalan durante el registro a todos los ponentes (como bolis, panfletos, etc.). Pese a todos los inconvenientes, todo sale perfectamente. ¡Felicidades Javahispano! :)
La presentación corre por parte parte de Abraham, de Javashipano, agradeciendo a todos los sponsors su ayuda y contándonos que no van a poder hacer streaming de las ponencias por problemas técnicos, una pena para los que no pudieron venir, aunque pueden estar tranquilos: todos los vídeos y transparencias van a ser publicados, pero tendrán que esperar un poquito. También comenta que en todas las ponencias se va a sortear un libro a uno de los asistentes (a mí no me tocó ninguno, una pena porque el libro The Definitive Guide to Grails, 2nd edition, venía firmado por el propio Graeme Rocher).

Empiezan las ponencias. Entra Graeme Rocher, creador de Grails, entre aplausos. Aunque comienza su introducción en castellano, prefiere continuar en inglés donde se encuentra más cómodo, sobre todo a la hora de utilizar palabras técnicas. Graeme empieza a hablar sobre Grails comentando que esta construido sobre hombros de gigantes: Java, Groovy, Spring, Hibernate, Sitemesh y Quartz (he encontrado la presentación aquí: http://europe.springone.com/europe-2009/file?path=/springone-amsterdam-2009/slides/GraemeRocher_HowToBuildTwitterIn40minsUsingGrails.pdf)

Finalizada la presentación y usando SpringSource Tool Suite en su portátil, nos muestra un caso practico para enseñarnos que Grails es realmente Spring y que la capa web de Grails es Spring MVC. Para ello, crea una aplicación de prueba desde cero, añade en un controller el applicationContext de Spring implementando la interfaz ApplicationContextAware y accede con este contexto a diferentes beans de Spring desde Grails, como un DataSource, el SessionFactory de Hibernate, etc. Después, para demostrar que Gorm es Hibernate, crea un clase de dominio y la guarda desde la sesión actual del sessionFactory de Spring y con el método dinámico save() de Gorm, con idénticos resultados.

La siguiente ponencia, de Sergi Almar, nos cuenta las ventajas de utilizar la capa web de Spring 3.0, explicando como es posible programar vistas completamente diferentes, como XML, JSON o HTML con el mismo controlador para soportar, por ejemplo, peticiones Rest y Ajax reutilizando código.

Paramos a tomar un cafe o zumo, cortesía de los sponsors, y seguimos las ponencias. Ahora entran Nacho Brito y Alvaro Sanchez-Mariscal, donde Alvaro nos explica las bondades de la plataforma Grails y anima a los dudosos y escépticos a dar el paso a probarla. Para ello utiliza una gran dosis de humor y auto-crítica, recordándonos lo “felices” que éramos con Struts 1, mapeando las acciones en interminables xml y que ahora es posible hacer exactamente lo mismo y más, sin tocar ni un xml. Después, Nacho Brito nos cuenta como novedad el nuevo campus virtual semi-presencial de escuela de groovy y ofrece una oferta de descuento del 50% para los matriculados ese día. Una interesante manera de hacer un curso de Groovy y Grails desde casa con material de estudio y tests de mano de los creadores de escuela de Groovy y de el libro manual de desarrollo web con Groovy. Finaliza la ponencia con Juanfer Blasco, responsable de Arquitectura y Plataformas del Dpto. De Tecnologías de la Información del Ayuntamiento de Vitoria-Gasteiz, contando un caso de éxito de formación e implantación de Groovy y Grails gracias a Escuela de Groovy.

La siguiente ponencia es de Joris Kuipers, donde nos explica OSGi, un nuevo sistema para desplegar modularmente nuestras aplicaciones y evitar problemas de dependencias o de reinicios durante los despliegues. Con un contenedor OSGi, ya no desplegamos ears o wars de manera monolítica en un sistema de classloaders jerárquico, sino que desplegamos jars que exponen beans en un sistema de classloaders en forma de grafo, donde se exportan e importan servicios. El tiempo apremia y dado que se arrastran algunos retrasos en todas las ponencias, Joris tiene que acabar deprisa su exposición con una demo donde despliega diferentes servicios en caliente. Personalmente no conocía OSGi, y la demo me deja impresionado y con ganas de utilizarlo en futuros proyectos.

La última ponencia es de los creadores de Jobsket a los que ya conocía, sin saberlo, de twitter: Martín Pérez, Jordi Monné y Dani Latorre. Nos explican un caso de éxito real de implantación de Grails en su proyecto Jobsket y nos cuentan, con sinceridad, las cosas buenas de Grails pero también las malas. Muchas de ellas reconocen que ahora han sido mejoradas o arregladas (como el soporte de plugins, que cuando empezaron no funcionaban muy bien), pero eso no quita para que también reconozcan que el uso de Grails, en el fondo, ha merecido la pena y ha mejorado su productividad. El código de su proyecto es 70% Java y 30% Grails: con unos 350 gsp, el principal uso de Grails es para la capa de presentación. Para el resto de código, como el acceso a diferentes bases de datos y los crawlers para recolectar información, utilizan Java, donde se sienten más cómodos y aprovechan código anterior que ya tenían realizado. Jobsket es un portal de empleo donde su principal punto fuerte es el análisis de curriculums para empresas, realizado con Lucene, y la recolección sistemática de ofertas de empleo en otros portales para calcular la valoración de sus curriculums a partir de los sueldos ofertados.

No conocía Jobsket, así que he entrado y me he registrado ayer mismo al volver a casa, y me ha sorprendido algunas cosas: que es capaz de decirte que empleos o provincias tienen los sueldos más altos (y bajos) y sus variaciones diarias. Como si de la bolsa se tratara, podemos entrar todos los días y ver la evolución del mercado. Y todo gracias a su sistema de crawlers que están constantemente recolectando información. Una imagen vale más que mil palabras: http://www.jobsket.es/trabajos-de-tecnologias-de-la-informacion

Hora de comer, dada la cantidad de gente que hay, me voy con Roberto Gil, Jose Vicente Carretero, Carlo Scarioni y Pablo Pazos haciendo una comida ligera en el centro de Boadilla (picadillo de chorizo, torreznos, carcamusa y presa de ibérico…, no te digo “ná”)

Continuamos con las ponencias, ahora le toca el turno a Federico Caro de Paradigma Tecnológico, donde nos habla sobre Spring Security 3.0 de una manera, primero teórica, y después práctica, bastante interesantes.

Después continúa Juan José Martín, que nos cuenta como Spring Roo nos ayuda a crear la estructura básica necesaria de archivos y configuración para empezar un proyecto con Spring. No conocía Roo, así que es una grata sorpresa para mí que existan este tipo de herramientas que te generan el código y el esqueleto básico para arrancar una aplicación. Roo es una shell inteligente: es decir, sabe en que estado se encuentra tu proyecto y te sugiere cual es el siguiente paso que debes dar, con autocompletado de parámetros obligatorios y mostrando después los opcionales.

Siguiente ponencia, espectacular, de la mano de Tomas Lin, donde nos muestra como integrar aplicaciones ricas de escritorio con Flex/Air con Grails. Para ello, primero nos enseña como crear scaffoldings de nuestras entidades (es decir, crud: altas, bajas, borrados y modificaciones) usando un cliente flash incrustado en html con flex. El resultado final es un crud mucho más vistoso y usable que el generado por Grails con html puro, gracias al plugin de Grails Flex Scaffolding. También nos muestra la clara integración que existe entre todas las herramientas de Adobe, como Photoshop y Catalyst, con Flex Builder, un entorno de desarrollo basado en Eclipse para crear aplicaciones ricas. Con Flex Builder, conecta varios combos que se actualizan con un servicio web creado con Grails y XFire. Tomas Lin está haciendo un libro sobre Grails y Flex que se puede leer aquí: http://flexongrails.com

Un cafe rápido, donde puedo conocer y hablar con los creadores de Jobsket, unos auténticos emprendedores y ejemplo a seguir de como es posible vivir con talento y creando una aplicación innovadora como la suya.

Finaliza el día con dos charlas, por un lado Groeme Rocher presenta en una sala una introducción a Groovy y Grails, y por otro, Joris Kruipers presenta cloud para simples mortales. No puedo hablar de la ponencia de Groeme porque no asistí, pero no dudo que escuchar una introducción sobre Grails de su propio creador, sea la mejor manera de empezar a con Groovy y Grails.

La ponencia de Joris Kruiper es muy esclarecedora. Empieza con una presentación donde explica los diferentes sistemas de cloud: Saas, Paas, IaaS, después muestra los diferentes y principales proveedores de cloudcomputing actuales, entre ellos Amazon Web Services (como IaaS), CloudFoundry (con un modelo mixto entre IaaS y PaaS), y Google App Engine (con un claro modelo de PaaS). Para acabar, nos hace dos demostraciones en vivo: la primera, sobre como crear una aplicación en Grails y desplegarla en CloudFoundry desde la línea de comandos con el plugin de Cloud Foundry para Grails. Y la última, la creación y despliegue de una aplicación Grails en Google App Engine. La conclusión final que nos ofrece es que el mejor sistema de cloud computing es el de Amazon, siempre que asumamos que debemos ser nosotros los encargardos de la instalación y despliegue de todos sus componentes. Y que Google App Engine es una buena manera de empezar, ya que es gratuito para las primeras 10 aplicaciones, pero a cambio debemos cambiar nuestro manera de programar las aplicaciones, ya que Google App Engine no soporta Gorm, solo JPA, y no permite hacer joins en base de datos o acceder al sistema de archivos, entre otras muchas cosas (más información en el blog de Tomas Lin). Para acabar, Joris Kruiper nos ofrece a todos los asistentes cuentas de prueba para CloudFoundry, donde las primeras 48 horas de “cloud” son gratuitas. También nos recuerda que, durante estas 48 horas de prueba, apaguemos el servidor cuando no lo utilicemos para que no se consuman a los dos días, y que nos duren mucho más.
Durante la ronda de preguntas, Tomas Lin nos explica que Google App Engine es un fantástico sistema para manipular y servir imágenes.

Mi conclusión final es que fue un gran evento con grandes ponentes, centrado en tecnologías punteras como Spring y Grails, y donde se puede conocer gente y aprender cosas nuevas de mano de primeras figuras del panorama tecnológico actual. Sinceramente, mi enhorabuena a Javahispano y Springsource: espero que se repita todos los años.

Más información:

Categorías