lunes, febrero 21, 2011

Spring I/O

El jueves y viernes de la semana pasada tuvo lugar en Madrid el Spring I/O 2011, un evento relacionado con las tecnologías de SpringSource (Spring Framework, Grails, Groovy...), así que cogí la mochila y me fuí un par de días para allí.

Tengo que decir que había tres tracks simultáneos (dos de conferencias y uno de talleres) así que sólo pude asistir a algunas charlas y ningún taller (que como iba con el equipaje justo no pude llevar el portátil).

Lo primero de todo fue registrarse, momento en el cual nos dieron un bolsa con un par de barajas para hacer planning poker, una pegatina de Masterbranch, una camiseta del evento (la cual hubiera sido más chula y más llevable si hubiera sido más minimalista) y alguna cosilla más.
Después comenzamos con la keynote de Juergen Holler. Nos contó una visión general de la situación y de lo que nos venía en el futuro próximo, me quedé con el tema de Java 7 y la concurrencia para tartar de utilizar los diferentes cores que ya todas las CPU´s tienen.
Al terminar, la gente de Escuela de Groovy hicieron unos minutos de publicidad (que para algo eran Platinum Sponsors y costeaban gran parte de las conferencias). También hicieron notar que más de la mitad de las conferencias eran sobre el ecosistema Groovy & Grails, algo que es para reflexionar.

Spring Data fue la conferencia que siguió al descanso para el café. El producto me resulto decepcionante. No acabo de ver que ventaja tiene usar Spring Data para acceder a los bases de datos NoSQL, lo único la jerarquía de excepciones. Sinceramente si no estas usando Spring, ni te plantees usar Spring Data. Si ya estás usando el core del framework pues quizá te aporte algo.
En la conferencia sobre Spring AMQP Sergi Almar nos explicó: porqué usar mensajeria asíncrona, porqué usar un protocolo como AMQP en lugar de JMS y finalmente nos habló de RabbitMQ. Salí convencido. Si puedes usar un protocolo que te permite comunicar con .Net u otras tecnologías para que vas a cerrate sólo a Java, que es lo que hace JMS.

Por la tarde tuvimos otras cuatro conferencias. La primera "De cero a multinacional con Grails y EC2" en la que si bien es cierto que sus números no me impresionaron (picos de 40.000 usuarios) me quedé con el hecho de que más y más compañías con productos reales están apostando por Grails. El usar Amazon EC2 no me sorprendió, me parece que son los que mejor están haciendo las cosas en el mundo "cloud".
Y después llegó la primera decepción: Pruebas de aplicaciones web con Selenium 2 y Webdriver. Si pones en el título Selenium 2 ciñete a él. Los que allí estabamos ya conociamos Selenium y lo estamos usando, al menos en mi caso quería ver lo nuevo de la siguiente versión. Al final nos hablo de Webdriver y los Page Objects (el primero me gustó mucho y el segundo me pareció matar moscas a cañonazos).
De vuelta al mundo Grails, Aitor nos habló sobre Probando con Grails. Un poco básico, al final todo se resumía en TATFT.
Y para terminar el día que mejor que cuatro Spring Puzzles con Erick Camacho y Sergi Almar. Fue algo entretenido y curioso, que a las 18:30 de la tarde no se hizo nada aburrido. Habría que señalar que el primer puzzle (una variable static no inicializada por el contenedor) era fácil, y el último era demasiado grande como para enterarte de donde estaba el truco (muchas clases y líneas que tener en cuenta), pero estuvo bien.

El segundo día comenzamos con una keynote de Graeme Rocher. De nuevo te presenta lo que viene en el futuro próximo pero para mi que no uso Grails no me resulto muy útil.
Y seguido me fuí a ver a @gimenete hablar de Redis. Cual talibán, me dio la impresión de que defendía Redis como base de datos o caché en cualquier situación. Fue la charla donde más preguntas se hizo de todas en las que estuve. Me gustó mucho como la estructuró, fue muy dinámica y didáctica aunque mi conclusión final fue que no voy a usar bases de datos NoSQL mientras pueda seguir con las relacionales. Las NoSQL están muy bien con unos requerimientos más o menos cerrados pero creo que instalar una nueva versión de una aplicación que corre sobre Redis en un cliente que usaba una versión anterior debe ser muy doloroso... no podemos hacer el Alter Table, tenemos que meter código en nuestra aplicación que maneje las situaciones y eso no me gusta. Fue una de las conferencias más chulas y eso que poco tenía que ver con SpringSource.

En Effective Groovy volvimos a ver las virtudes de ese lenguaje. Te das cuenta de lo verbose que es Java y de que los closures son una maravilla. Increible el tener una lista de personas y con un simple .collect() puedes recuperar las personas que cumplen ciertas condiciones. Otra cosa que me gustó muchísimo es la anotación @Equalsandhashcode. Se acabó el botón derecho generar equals() y hashcode().

Sin embargo la conferencia Spring Web Services volvió a decepcionarme. Muy básica, lo que allí nos contaron lo puedes encontrar buscando en google "spring web services" y leyendo un par de parrafos. No estuvo mal la conferencia ni Sam Brannen, simplemente esperaba más.

Con Spring Hadoop me paso lo contario. Como no sabía que era Hadoop pero había oido hablar mucho de él tenía ganas de ir a ver que nos contaban. Supongo que para alguien que sabía de Hadoop le parecería básica pero para mi me resultó muy útil y aclaratoria. Por cierto, si un día tengo que trabajar con Hadoop tengo claro que usaré Spring Hadoop para simplificar el código ¡vaya diferencia!.

Y la última conferencia a la que pude ir fue Introducing Summer - The HTML5 Library for Java and Scala. Y fue la peor pero con mucha diferencia, la única a la que me arrepiento de haber ido. El tipo, Rostilav Hristov no tenía ninguna gana de hablar, su inglés era bueno, no es excusa, era sencillamente como si a un programador que no sabe que contar de su librería le dices que hable de ella. No lo vi nada motivado y cuando miré las caras del resto de la gente (la sala estaba llena) ni uno atendía.

Si habéis leido hasta aquí pues vais a tener premio, vamos a criticar y dar algún palo: la comida. Me pareció vergonzoso. Primero tengo que decir que pagamos 20 euros por todo, lo cual es una cifra ridícula pero eso no da derecho a que te den una bolsa con un par de sándwich, un batido, etc. Para empezar porque estoy seguro de que esa bolsa costaría los 4-5 euros que costaba el menú en la cafetería de forma que estoy convencido que la razón de darnos esa bolsa no eran los costes sino evitar que la gente fuera al comedor de la universidad. Eramos más de 300 personas y puede que saturaramos el comedor no lo se, pero me habría gustado una explicación. O quizá la razón era la conferencia que Leche Pascual y un montón de encorbatados tenían el viernes a la vez que el Spring I/O, ellos sí comieron en el comedor e incluso se quejaron de compartir comedor con estudiantes (lo se por fuentes fidedignas, me encanta esa palabra!).

Si se da el palo habrá que dar también la zanahoria: me parece un trabajo increible el que ha hecho Sergi Almar (y el resto de la organización: Javahispano, etc) organizando todo esto. Hemos tenido gente importantísima, conferencias muy interesantes, diferentes tracks para poder elegir lo que más te interesaba... en fin, no entiendo como no va más gente, es la mejor forma de estar al día, de saber de primera mano que están haciendo otros programadores o empresas... De hecho mi crítica a la comida es debido a que es el único "pero" que se le puede hacer a este evento. Nunca faltaron las botellas de agua gratis, café, galletas, voluntarios a los que preguntar cuando no sabías donde era un taller, etc.

Y para acabar, volver a felicitar a Sergi y el resto de la organización por el BeerWorking que organizaron el jueves por la tarde, algo que se echaba de menos en otros eventos.

De nuevo, como dos años atrás, un diez para las instalaciones de la Universidad San Pablo CEU y un cuatro para la localización (aunque debo aclarar que la organización puso autobuses gratuitos).

Y aquí tenéis una foto de los dos cracks de la programación que coincidieron en el Spring I/O:


Actualización: Una pena perderme el taller de @dani_latorre del que la gente habló muy bien. Espero que lo repita algún día dentro del Cachirulo Valley.

7 comentarios:

  1. eh, yo habia publicado un comentario! ;(

    ResponderEliminar
  2. Oye, que yo empecé explicando que usar nosql o no depende mucho del problema que vas a solucionar. Tengo las slides para demostrarlo! Así que de talibán nada eh! :P

    Muy de acuerdo en todo lo demás del artículo. Gracias por la parte que me toca! :)

    ResponderEliminar
  3. Venga! Para la próxima que vengas montamos un tallercito de groovy koans en el cachirulo valley :D

    ResponderEliminar
  4. Bueno... voy a corregir lo de talibán... pero sólo un poco :)

    ResponderEliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  6. Abel, siento que la primera parte de introducción a Selenium ya la conocieses, pero al preparar la charla no conoces exactamente el nivel de la audiencia.

    Traté de hacer la primera parte lo más rápida posible, pero creo que era necesaria para situar a quien no conociese Selenium.

    En cuanto a PageObject Pattern, deberías darle una oportunidad. Las pruebas quedan mucho más limpias y puedes reutilizar objetos entre pruebas.

    En cualquier caso, acepto la crítica y la tomo como constructiva :)

    ResponderEliminar
  7. David, y constructivo esperaba ser... para nada me arrepiento de haberte ido a escuchar sino todo lo contario, y posiblemente lleves razón y para alguien que no conoce Selenium tu forma de enforcar la charla es la mejor.

    ResponderEliminar