Robots y modelos

Notas sobre pruebas, modelado y aventuras en Java y Android

Mis impresiones del Apache Barcamp Spain 2012

with 6 comments

Ayer tuve la oportunidad de asistir al Apache Barcamp Spain, que se celebró en la Escuela Técnica Superior de Ingeniería Informática de Sevilla. Por cierto, no la visitaba desde el II Concurso Universitario de Software Libre, y me alegró ver otra vez a Ana Rey, una de sus organizadoras. Iba desde Cádiz junto con Francisco Pérez (fundador de CadizDevelopers y conductor del coche compartido), Cayetano Soriano (antiguavíctima alumno y sufrido organizador de las Betabeers de Cádiz) y Francisco Peregrino (no estoy seguro del apellido: ¡perdona si me equivoco!).

El evento comenzó pasadas las 10:00, con una presentación general del evento y los patrocinadores:

  • BitNami, que además de proporcionar instaladores fáciles con pilas de tecnologías comunes como WordPress, Joomla, Drupal o Redmine, tienen su propia infraestructura cloud por si nos queremos ahorrar montar y mantener el servidor. La verdad es que no sabía que eran españoles, y daban unas camisetas muy simpáticas, por cierto😉.
  • CodeBusters, una empresa de consultoría sevillana basada en código abierto con mucha gente de la Apache Software Foundation.
  • Deiser, a los que les debo la entrada (tardé demasiado y se acabaron las entradas :-S). Se especializan en soluciones para desarrollo ágil y cooperativo, con plugins para Sparx Enterprise Architect y Atlassian JIRA entre otras cosas.
  • Koliseo, el proveedor de venta de tickets utilizado para la Barcamp.
  • Novayre, una empresa que trabaja mucho con las líneas de arquitecturas orientadas a servicios y procesamiento de eventos complejos que tenemos en el grupo. Novayre también participó en la organización de Sistedes 2012, un evento académico al que asistí esta misma semana. Tuve el placer de conocer a su director gerente Víctor Ayllón en la cena de gala de Sistedes 2012, y me comentó muchas de las prácticas punteras que tienen en Novayre. Pude coincidir con él ayer también y conversar un rato más.
  • Zaizi, integrador premiado de Alfresco, de Ephesoft y de eXo.

Algunos de los colaboradores del evento fueron la gente de Klicap, los desarrolladores de Clinker, un ecosistema virtualizado de desarrollo de software que estamos evaluando en la Universidad de Cádiz, y de cuyas imágenes he aprendido un par de trucos que he adaptado a los servidores que llevo manualmente🙂. Tuve la oportunidad de desvirtualizar a Manuel Recena, uno de sus desarrolladores principales, y se ve que van a toda vela con el proyecto.

Desconocía la organización de los Barcamp, y me ha parecido curiosa en tanto que era bastante distinta de las usuales conferencias. Al registrarte en la entrada, te daban una tira de pegatinas y una ficha de póquer. En el acto de apertura se presentaron todos los candidatos para dar charlas, y la gente usó sus pegatinas para votar a las ponencias que más les interesaran. A continuación, las ponencias se filtraron y ordenaron por votos y se dividieron en tres tracks paralelos.

Tras el primer “coffee break” del día (en una sala algo apretada para mi gusto, he de decir), asistí a estas ponencias:

  • Una introducción a CoffeeScript, un lenguaje traducible a JavaScript que evita muchos de sus problemas y es en general mucho más fácil de leer y escribir. Me pareció muy interesante el enfoque general, y el lenguaje parece bastante más cómodo que JS. Una cosa simpática es que la forma en que implementa el ámbito léxico de las variables consiste básicamente en crear clausuras que envuelven a la variable original. La gente preguntó bastante cómo integrar CoffeeScript con código JavaScript ya existente, pero viendo que al final se compila a JavaScript no creo que haya mucho problema.
  • Herramientas de desarrollo web, en que el ponente explicó muchas funcionalidades ocultas (por lo menos, lo eran para mí) de Chrome útiles para desarrolladores web, contó de qué iban LESS y SASS (lenguajes compilables a CSS que facilitan ciertas cosas y ayudan a respetar el principio DRY) y enseñó algunas de las cosas que puede hacer Sublime Editor. Sublime es el editor de moda, y reconozco que está bastante bien para ciertos lenguajes. Para Java, sin embargo, sigo creyendo que las mejores opciones son Eclipse (por su extensibilidad) e IntelliJ (por su pulido e “inteligencia”). Además, ambas son de código abierto (aunque IntelliJ tiene extensiones “premium”).
  • BDD con JavaScript, en que el ponente enseñó cómo hacer BDD con los frameworks Jasmine y Casper sobre una aplicación que ayudaba a usar la técnica Pomodoro(que desconocía), y anunció que publicaría algunos de sus componentes como código abierto.Aunque la charla estuvo bien, la vi demasiado centrada en código. En particular, Jasmine me pareció que mezclaba el código con la historia: por lo que he visto, Cucumber parece mantener una mejor separación entre la historia de usuario y la prueba en sí. Casper provee un navegador automatizable sin interfaz: Cayetano me mencionó ZombieJS, otro entorno parecido a Casper, y Behat, que parece el equivalente de Cucumber en PHP. Discrepo de su afirmación de que BDD sea lo mismo que TDD: para mí, uno se centra en historias de usuario (y produce pruebas funcionales o de integración), y otro en unidades específicas de código y su comportamiento esperado. En mi opinión hacen falta ambos, ya que puede haber “corner cases” que sean difíciles de probar con historias, y una prueba unitaria no cubre tanto código como una historia.

Aquí paramos y nos fuimos a almorzar al Sloppy Joe’s que había cerca. Si vais, recordad que la “pizza pequeña” es para 2 y la “mediana” supongo que para 3😀. El resto de ponencias (con otro “coffee break” intercalado tras la primera) fueron:

  • Git avanzado: antes de seguir, he de decir que he dado unos cuantos cursos y talleres de Git por mi cuenta, y que tengo materiales y enlaces por aquípara el que los necesite😉. En este taller enseñaron cómo replantear una rama en base a otra (“rebase” y su versión interactiva), las dos formas básicas de reunir ramas, con “fast-forward” o una nueva revisión de reunión (“merge commit”) y los diversos tipos de “reset” (blando, duro y mixto). También hablaron un poco del modelo interno de datos de Git y detallaron algunas cosas como que git-foo se convierte a “git foo” si está en el PATH. La idea de poner el log debajo para que se vean los cambios de HEAD y las nuevas revisiones me pareció muy buena.Dicho todo esto, considero que el título de “Git avanzado” es un tanto discutible. No me imagino a un usuario de Git que no tenga que hacer reuniones de ramas o replantear ramas en base a otras, por ejemplo. De todos modos, entiendo que con las restricciones de tiempo disponibles era lo mejor que se podía hacer. Supongo que “Git básico” no tendría el tiempo suficiente para ver esos conceptos. Como usuario común de Git, me habría gustado mucho que discutieran algunas cosas más recientes, como “git notes”, o algo más ocultas, como “git add -i”, “git grep”, “git bisect”, “git mergetool”, o “git bundle”.
  • Karmacracy: esencialmente, fue un caso de estudio en que explicaron cómo habían conseguido que Karmacracy escalara a millones de peticiones utilizando las tecnologías cloud de Amazon. Fue bastante interesante ver todo lo que Amazon tenía que ofrecer, y cuánto costaría en un despliegue típico. Otro aspecto importante fue que Amazon no te da esa escalabilidad mágicamente: aprovecharlo exige mucho diseño previo y planificación.
  • Push & Pull: en esta charla se describieron las distintas tecnologías que se habían estado usando para pasar del típico modelo petición->respuesta del paradigma cliente-servidor a una comunicación bidireccional en que tanto el cliente pudiera solicitar información en un momento dado (“pull”) como que el servidor le enviara notificaciones sin esperar a que el cliente las pidiera (“push”). Mencionó el antiguo sistema basado en consultas periódicas (“polling”), los plugins de navegador (Java y Flash), el “long polling” de Comet, los “server-sent events” de HTML5 y los Web Socketsde HTML5, comparando las ventajas y desventajas de cada uno.A nivel didáctico me gustó mucho la charla, pero habría preferido aligerar la discusión de las alternativas y enseñar con un ejemplo sencillo cómo se utilizarían los Web Sockets a nivel de código. Un detalle simpático fue su comentario de que los Web Sockets funcionaban especialmente bien a través de SSL, ya que los cortafuegos no se molestaban en analizar los paquetes cifrados y no destrozaban las comunicaciones como lo hacían con el puerto en claro.

Tras las charlas, volvimos al salón de actos y votamos con nuestra ficha de póquer a la que pensamos que fue la mejor charla del evento. Ganó la de “Push & Pull” merecidamente, aunque personalmente voté a la charla de CoffeeScript. Y tras una foto de grupo, de vuelta a Cádiz: ya estábamos cansados y había mucho que hacer, así que no pudimos asistir a la fiesta tras el evento.

El Barcamp de este año me ha gustado mucho, he aprendido muchísimo y he tenido oportunidad de encontrarme y reencontrarme con mucha gente interesante (¡hola Moisés!). Si tuviera que poner una pega, diría que fue la calidad de la aplicación Android: la lista de ponencias muchas veces salía vacía a menos que se actualizara mediante un botón Actualizar sólo accesible con la tecla menú (que no aparecía en mi Nexus 7), y en otros casos era imposible deslizar la lista a la derecha para ver las otras “tracks”.

Pero vamos, en resumen: que si el Barcamp vuelve el 2013 cerca de Cádiz o en Madrid, contad conmigo🙂.

Written by bluezio

23 de septiembre de 2012 a 15:54

Publicado en Desarrollo, Eventos

6 comentarios

Subscribe to comments with RSS.

  1. Genial resumen Antonio, muchas gracias para los que no pudimos ir. La verdad es que mi concepto del evento era diferente, creía que era todo relacionado con Apache y tal. Sin duda el próximo no me lo pierdo, aunque mientras tanto tenemos los beta beers para ir pasando🙂

    José Tomás Tocino

    23 de septiembre de 2012 at 17:57

    • Fíjate, yo también estuve a punto de perdérmelo, pero cambié de opinión a tiempo😀. De todos modos, algunas de las charlas han sido grabadas y serán subidas a Vimeo.

      bluezio

      23 de septiembre de 2012 at 23:16

  2. Hola Antonio,

    Me alegra que te haya gustado el evento.

    Sólo puntualizar un detalle, tanto la app de Android como la de iPhone fueron desarrolladas por dos de los asistentes con el único objetivo de aportar al evento, aprender y compartir su trabajo con los demás. ¿Que las aplicaciones tenían fallos? Pues probablemente, pero para eso han publicado el código fuente (http://svn.code.sf.net/p/barcamp/code-0/trunk/Barcamp), si alguien se anima a mejorarlo… adelante, seguro que cualquier aportación es bien recibida por su creador (http://sourceforge.net/projects/barcamp/reviews).

    Un saludo!

    Antonio Manuel Muñiz Martín

    23 de septiembre de 2012 at 18:14

    • ¡Gracias por los enlaces! “Patches welcome”, como debe ser😀.

      Por lo pronto, el detalle del botón de menú es fácil de corregir cambiando el target SDK a 10 (Gingerbread), pero el detalle del deslizamiento se escapa un poco de mis conocimientos actuales, ya que creo que está relacionado con la animación de entrada de la lista.

      bluezio

      23 de septiembre de 2012 at 18:29

  3. Hola Antonio:

    Para mi también fue un placer conocerte personalmente.

    Un simple apunte, klicap no ha sido patrocinador este año, lo fue la edición pasada. klicap es un colaborador, y sus miembros, formamos parte de la organización junto con Yeray y Carlos Sánchez.

    Un saludo

    Manuel Recena Soto (@recena)

    23 de septiembre de 2012 at 21:17

    • Corregido🙂. ¡Gracias!

      bluezio

      23 de septiembre de 2012 at 23:15


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: