SpainJS – 20 Charlas con JavaScripters

0
7801

SpainJS – 20 Charlas con JavaScripters

Este viernes 5 y Sábado 6 de Julio ha tenido lugar en Madrid la segunda edición de SpainJS, el evento a nivel nacional (¿o debería decir intenacional?) que junta a ponentes y desarrolladores alrededor del lenguaje JavaScript y su ecosistema.

En Autentia no nos lo podíamos perder, así que hasta el lugar de los hechos, nos desplazamos @angelusGJ y yo; desafiando la ola de calor que arreciaba en Madrid ese fin de semana.

@AngelusGJ y @dgomezg en el SpainJS (foto de @AngelusGJ)

Lo primero que cabe destacar es trabajo que realizan @ialcazar y @eamoderubio de forma quizá más visible, pero con todo un equipo de 9 personas trabajando detrás. Gracias a todos ellos por el evento, que han conseguido que en tan sólo dos años, suponga ya una fecha a marcar en el calendario de los desarrolladores en España.



La tripulación de SpainJS en el escenario. (Foto de SpainJS)

Os contamos a continuación qué dieron de si estas dos jornadas y porqué, si no has ido, deberías apuntartelo para el 2014.

1. El panel de ponentes.

Este año, la agenda traía un cabeza de cartel que supongo ayudó a incrementar la expectación y las ganas de asistir al evento: Douglas Crockford, el autor de «JavaScript, the Good Parts» o JSLint, la herramienta que te permite verificar la calidad de tu código JS.

Buen numero de asistentes este año (foto de @SpainJs)

Pero detrás de Douglas Crockford había un completo panel de ponentes. Ponentes que venían de fuera como Jakob Mattsson, Axel Rauschamayer o Reg Braithwaite; y de «dentro» como Vicent Marti, Pablo Casado o José M. Pérez y Tomás Pérez. De hecho, debo decir desde mi punto de vista que alguno de ellos estuvo en su charla por encima del ponente de la KeyNote. Pero a eso volveremos más adelante, cuando hablemos de las charlas.

2. La sede

Aunque la sede elegida este año tiene un poco menos de Glamour o Je-ne-sais-quoi que la del año pasado; debo decir que para mí ha sido una clara mejora. No sólo porque había más espacio, sino también porque el espacio, me parecía más cómodo para seguir las charlas (y eso que personalmente venía renqueando toda la semana con una lumbalgia que, de hecho, me había tenido dos días sin poder levantarme). Eso sí, convenía no irse demasiado atrás, porque entonces podrías no ver la mitad de las transparencias utilizadas durante las charlas.

Este punto, más que con la organización, tiene que ver con los ponentes. Aquí me permitiré introducir un pequeño consejo para todo aquél que esté preparando una charla en una conferencia: a menos que conozcas como la palma de tu mano el sitio donde hablarás, prepara siempre tus slides con letras grandes y procura que las imágenes tengan alto contraste porque no siempre podrás controlar el ambiente de la sala.

En cuanto a los espacios, creo que eran razonables: Un hall en el que estaban los sponsors (quizá alguno de ellos hubiese deseado poder contar con más espacio) y un gran patio donde hacer los descansos y la comida, que seguro que habríamos disfrutado mucho más si no hubiese coincidido con una ola de calor en Madrid.

Si hay que dar alguna sugerencia de mejora, pediría más espacio para networking, que es algo que me parece muy importante. Es posible que para eso la organización hubiese pensado en el patio, pero la verdad es que con el calor, era duro estar mucho tiempo fuera. No obstante la cerveza gratis y el agua ayudaban 😉

3.- La organización

En general, la organización del evento estuvo muy bien llevada: no hubo grandes retrasos, ni en el arranque de charlas, ni en el registro (apenas tardé 1 minuto en hacerlo, y eso que llegué en hora punta), ni en los momentos críticos donde hay que mover a todos los asistentes como el café y la comida.

No soy amigo de valorar un evento por la comida o por el café que te dan porque creo que a un evento uno va a las charlas, talleres o actividades y no a comer o a tomar café (de lo contrario se anunciaría el menú en el programa en vez de los ponentes); pero el detalle de ofrecernos chocolate con churros, o tener un grifo de cerveza para combatir el calor del sábado, desde luego no pasaron desapercibidos.



Chocolate con Churros en SpainJS (foto de @SpainJs)

En definitiva, creo que la organización hizo un buen trabajo y que los tiempos y las formas estuvieron bien gestionados e hicieron cómodo el evento para todos.

Una última reflexión sobre este punto: En la organización de eventos como SpainJS hay muchas cosas que llevan mucho trabajo y que no se nota cuando todo va bien y creo que es necesario poner ese trabajo en valor. La gestión de espacios y tiempos es uno de ellos.

Israel Alcázar, como miembro de la organización, ha prometido escribir despacio sobre el tema. Espero que lo haga. Y sé que no es el primer organizador de eventos que tiene esta idea. 😉

4.- 1 Jornada: Viernes 5 de Julio.

Después de la reflexión general sobre el evento, vamos a entrar en una breve descripción de las charlas y lo que de verdad se contó en estas dos jornadas.

El rockstar: Douglas Crockford con Syntaxation

Tras el registro, recojer la bolsa de entregables (que me trajo algunos recuerdos de otros eventos), saludar a conocidos y buscar sitio, estábamos preparados para comenzar por todo lo alto: con Douglas Crockford y su charla Sintaxation. En ella mostró algunos conceptos importantes en el diseño de la sintáxis de un lenguaje como la precedencia de operadores. Al mismo tiempo ilustró algunos de esos aspectos en Javascript, al tiempo que mostraba, a grandes rasgos cómo construir un ‘parser’ de Javascript utilizando el propio lenguaje.

Douglas Crockford abre SpainJS con su charla ‘Sintaxation’(foto de @SpainJs)

Durante la charla, completó su dicurso con algunos consejos a la hora de diseñar un lenguaje de programación. Básicamente se resumían en buscar la calidad y la inovación. Creo que algunos de esos consejos, como el de «Huir de las funcionalidades que pudieran ser de utilidad», son aplicables no sólo al diseño de un lenguaje; sino, en general, al diseño de cualquier pieza de software o incluso a cualquier artefacto (sea software o no)

Fue una charla interesante, pero debo confesar secretamente, que me decepcionó un poquitín Mr. Crockford. No por la calidad de la charla (aunque fue demasiado teórica probablemente), sino por el tono y el ritmo -demasiado monótono- de su presentación.

Giorgo Sardo creando un ‘Héroe’ en 30 minutos

El contrapunto al ritmo constante del inicio se encargó de ponerlo justo a continuación Giorgio Sardo quién, desde que subió al estrado, mostró un dinamismo y un interés especial por conectar con la audiencia. Su propuesta no incluía ningún tipo de presentación o slides; su propuesta consistía en mostrarnos en vivo y en directo cómo crear un videojuego con HTML5 y Javascript en los 30 minutos que tenía para su ponencia.

He de decir que no soy muy amigo de la codificación en vivo durante una charla porque si escribes todo el código durante la charla, es muy fácil que comentas más de un error que acabe descentrando el mensaje. Si, para evitarlo, tienes estados intermedios guardados y vas copiando y pegando código, lo más probable es que corras demasiado y acabes perdiendo a la audiencia en un mar de cambios entre ventanas o ficheros. Si vas a utilizar este segundo método, ¿por qué no poner fragmentos del código en trasparencias y luego acabas con una demo donde enseñas todo el código funcionando junto?.

Dicho esto, debo reconocer que creo que Giorgio hizo un buen trabajo como ponente y no cayó en el riesgo que me hace desconfiar de este tipo de aproximaciones; mostrando de forma muy efectiva que crear un videojuego sencillo no es tarea excesivamente compleja e ilustrando cómo tratar con conceptos como la frecuencia de muestreo (o de pintado) del canvas o el uso de la técnica de Sprites.

Sólo al final se salió un poco de la estandarización de la que siempre hablaba para mostrar como utilizar un API específico de Microsoft para sintetizar la lectura de un mensaje, capturar los eventos del cursor independiente del dispositivo (PC o tablet) o integrar con una bola-robot que se podría controlarse con los gestures del usuario sobre un canvas.

Girogio Sardo codificando en vivo un video juego (foto de @SpainJs)

Opciones para crear aplicaciones moviles híbridas con Martin Naumann.

Tras el descanso, Martin Naumann hizo un repaso por algunos frameworks Javascript para crear aplicaciones web cuyo objetivo sea convertirlas en aplicaciones móvil hibridas. Este recorrido lo hizo, no basado en dogmas o en frases extraidas de las web de cada uno de estos frameworks, sino basado en la experiencia de utilizarlos aplicando la máxima de «Don’t trust anyone, try it yourself».

Martin Naumann no confía en nadie, prueba él mismo. (foto de @SpainJs)

¿Conclusión de la charla? No acabó con un «Este es el framework o lista de frameworks que deberías utilizar». Más bien, hizo una serie de apuntes que deben de tenerse en cuenta a la hora de elegir el framework. Por ejemplo, valorar la complejidad de la aplicación y del framework; examinar los requisitos de integración con dispositivos como la cámara, GPS o acelerómetro del móvil; etc…

Para quien no pudo asistir y quiere revisar cuáles fueron las recomendaciones, puede consultar las slides que utilizó durante su presentación.

Responsive web design por Leo Lanese

La última parada antes de la comida fue para Leo Lanese, que nos habló sobre el diseño Responsivo (o mejor dicho en castellano, adaptativo).

A parte del concepto básico de la creación de diseños adaptativos basados en rejillas (en Grids), Leo también prestó atención a cómo gestionar los recursos más pesados como imágenes, o video. Todo ello orientado, no sólo a que la aplicación o interfaz se vea bien en una pantalla más pequeña, sino a que el rendimiento y el uso del ancho de banda se adapten de igual forma cuando hay que descargar dichos recursos más costosos. ¿Habías pensado en esa parte del diseño responsivo? Si no es así, deberías echar un vistazo a su presentación.

Leo Lanesse hablando de Diseño Adaptativo (foto de @SpainJs)

Robert Nyman con Firefox OS y aplicaciones que usan APIs web

Tras la comida, siempre una difícil hora para dar una charla, le tocó a Robert Nyman presentar Firefox OS y cómo desarrollar aplicaciones web estándar que se puedan ejectuar como aplicaciones móvil.

Robert comenzó por presentar la fundación Mozilla y sus objetivos para promocionar y potenciar el uso correcto de los estándares en el desarrollo de aplicaciones, evitando caer en APIs propietarias que impidan que la aplicación pueda ejecutarse en distintos dispositivos. La intención es buena, pero la dificultad de estas iniciativas es generar el número suficiente de seguidores que huyan, efectivamente, del uso o la creación de APIs propietarias (especialmente cuando hay que enfrentarse a una funcionalidad no soportada por el estándar público).

Robert Nyman presentando los objetivos de la fundación Mozilla (foto de @SpainJs)

Habló también del esfuerzo de estandarización de APIs para acceder a algunos recursos específicos de un dispositivo móvil, como el estado de la batería o el acelerómetro para conocer la orientación del dispositivo.

Spotify y sus desarrollos multi-plataforma

Tras Robert Numan, el turno era para Tomás Pérez y Jose María Pérez, que nos contaron su experiencia desde las trincheras sobre el desarrollo de aplicaciones multi-plataforma que necesitan hacer uso de APIs quizá-no-tan-estándar como el API de audio y cómo han abordado dicho problema en Spotify.

Enrique Amodeo presenta la charla de Spotify (foto de @SpainJs)

Interesante por lo práctico de la aproximación que utilizaron y porque estaba basado en su experciencia real. Este tipo de charlas, que huyen de lo teórico y mezclan lo práctico y la experiencia real y personal.

La Hermosa Vida de Reg Braithwaite

El ultimo tramo de esta primera jornada lo abría Reg Braitwaite con una original, curiosa e interesante propuesta. Una ponencia llena de menciones a grandes personajes de la historia de la computación, en la que repasó los intentos de modelado y simulación de procesos de vida.

En parte de la presentación utilizó una implementación del algoritmo del Juego de la vida de Cornway sobre el que trató de buscar el límite en el número de celdas que podía configurar simplemente con el equipo con el que estaba haciendo la presentación.

Reg a punto de comenzar su «La Hermosa Vida» (foto de @SpainJs)

Introducción a NoSQL con CouchBase de Pablo Casado

La última charla oficial del día correspondía a Pablo Casado, quién hizo una introducción a CouchBase, intercalando ejemplos prácticos de cómo persistir datos en ella y pequeños ejemplos de cómo utilizarla como motor de persistencia en una aplicación y mostrando la consola del servidor para ir viendo cómo se mostraban las métricas.

Contó, desde su propia experiencia personal, como midiendo los tiempos de acceso a BD de su aplicación, notaron un incremento de velocidad de 10 veces al pasar a un sistema NoSQL como Couchbase

Aunque había valorado hace tiempo Couchbase para un proyecto, finalmente optamos por introducir MongoDB; pero por la presentación de Pablo, vi bastantes similitudes entre ambas

Pablo Casado presenta sus experiencias con Couchbase (foto de @SpainJs)

En el turno de preguntas, hubo varias cuestiones sobre cómo y cuando utilizar un sistema NoSQL frente a una base de datos relacional. Era fácil preveer que saldría esa pregunta, pero daría para una sóla charla por sí misma.

Lighting talks para cerrar el día

Por último, se sucedieron varias charlas rápidas. Un par propuestas subieron a hablar de su libro o a hacer publicidad de algún tipo de producto o servicio.

Al margen de las mismas, Aaron Cruz presentó una curiosa iniciativa Hack For Spain que me recordó a la iniciativa Hack For Good que ya tuvimos en Madrid este año. Le deseo todo el ánimo a Aaron con la iniciativa y espero poder colaborar si lo necesitase.

Otra curiosa herramienta presentada en estas charlas rápidas, fue el Color Slice de David Trejo. Una aplicación online que te permite arrastrar una imagen y averiguar el color exacto de cualquier punto. Pero más curiosa es la funcionalidad que te permite cambiar, sobre la misma imagen, un color por otro: útil para probar cambios de color antes de ponerse a modificar la foto.

5.- 2ª Jornada: Sábado 6 de Julio.

En general, creo que la jornada del sábado fue bastante más intensa y, en general, con un nivel más alto en las charlas.

Peter Christensen introduce la comunidad de Makers

El primero en salir al escenario fue Peter Christensen, que introdujo la comunidad de Makers y presentó JavaScript como un lenguaje de utilidad para programar sus inventos y creaciones. Los Makers, para quién le sean desconocidos, es una comunidad que se dedica a crear artefactos físicos con placas electrónicas; parte de sus herramientas de trabajo suelen ser placas de Arduino o placas Rasberry Pi.

Esta comunidad empieza a tener mayor visibilidad quizá en parte gracias a las impresoras 3D tan en boga últimamente y, de hecho, empiezan a aparecer distintas iniciativas de ferias como la MakerFaire de Bilbao este próximo fin de semana (a la que tengo intención de hacer una visita rápida) o la de Barcelona. Pero también hay iniciativas que se están preparando en Madrid.

Peter Christensen trajo algunos Juguetitos para enseñar a la audiencia (foto de @SpainJs)

Fue una charla muy inspiradora, y creo que hay mucho futuro en la colaboración entre desarrolladores y Makers, ya sea en el ámbito de la domótica (controlada desde, por ejemplo, la web o el móvil), la robótica o aspectos más cotidianos.

De la charla me quedo con un pensamiento redactado en forma de una de las preguntas que Peter lanzó al público: ¿Qué

podríamos hacer como desarrolladores si no estuviesemos límitados a lo que puede hacer un ordenador?. La respuesta, en el propio título de la charla: Programar el mundo real. ¿No es emocionante la posibilidad?

Categorización de valores en JavaScript con Axel Rauschmayer

Axel fue uno de los ponentes que más profundidad técnica sobre el lenguaje dió a su charla. En este caso, habló sobre conceptos como identidad, unidad y categorización de objetos y tipos en Javascript.

Presentó conceptos como los atributos internos y cómo se utilizan de forma interna en el lenguaje cuando se utilizan typeof, instanceof y otros constructores del lenguaje para interrogar a un objeto Javascript sobre su tipo.

Axel contando los detalles de uso y funcionamiento de typeof e instanceOf (foto de @SpainJs)

Más allá de presentar los típicos WTFs sobre el lenguaje, Axel incluía la información para saber el porqué de dicho resultado y qué constructor utilizar. Lo mejor es ver las slides de su presentación.

Teddy Kishi jugando con partículas.

Después del descanso y el café, Teddy nos tenía preparada probablemente la charla más entrenida y amena de los dos días. Durante los siguientes cuarenta minutos, recibimos una muestra de cómo modelar sistemas de partículas sobre un canvas con Javascript, desde la simulación del viaje por el espacio, hasta una animación jugando con pelotas de tenis que rebotan, o funciones de onda animándose por la pantalla.

Tedy juega con sistemas de partículas (foto de @SpainJs)

Todos estos ejemplos, le sirvieron para rescatar conceptos de interacción con el canvas como el framerate, por ejemplo, que ya adelantó Giorgo Sardo en su implementación de un juego el día anterior. Teddy, también se fijó en la diferencia de rendimiento entre utilizar transformación 2D, 3D o transformación XY de CSS para la animación de las partículas.

Para el que se lo esté preguntando, según los ejemplos de Teddy, la opción más óptima es la de utilizar transformación 3D y la de peor rendimiento era la transformación 2D.

Como digo una muy divertida, amena e intersante charla de Teddy. De hecho, por el feedback de aplausos al final de la charla, me atrevo a decir que fue el ponente que más y mejor conectó con la audiencia.

Teddy no dejó indiferente a ningún asistente (foto de @SpainJs)

Michael Ficarra y su SpiderMonkey Parser API

Turno a continuación de Michael Ficarra para hacer un repaso sobre la representación y parseo de aplicaciones Javascript.

Michael partía del parser de SpiderMonkey presentado por Mozilla, y presentó un buen número de alternativas para parsear y generar código Javascript.

Para mí, fue una de las que más costó seguir y, de hecho, me temo que desconecté mentalmente más tiempo del que debería para poder las ideas más interesantes de la charla

La presentación que utilizó tiene una referencia a las alternativas que presentó

Gestión de dependencias con Jackob Mattsson

Otro de los ponentes que más me gustó fue Jackob. También estaba ubicado en la hora crítica de después de la comida, que exige un esfuerzo adicional al ponente para conectar con la audiencia, pero Jackob demostró ser consciente de ello y supo adecuar su forma de presentación para que la audiencia no fuese víctima del aburrimiento o desconexión. Comenzó por llamar la atención de la gente con algo de «Melodic death metal»…. y demostró con ello clase y estilo, sin tener que recurrir a mostrar fotos de nadie durmiendo ;).

Melodic death metal sonando en el SpainJS de la mano de Jackob Mattsson (foto de @SpainJs)

Este comienzo sólo fue para enganchar a la audiencia, Jackob supo mantener con su charla el interés de todos

Jackob supo mantener el interés de todo el mundo

En cuanto a la charla, Jackob, hizo un interesante repaso por las alternativas que existen en JavaScript para crear módulos y gestionar distintas dependencias. Basándose en sus propias pruebas y aportando casos en los que utilizar una u otra alternativa, o incluso combinaciones de ellas.

Me resultó especialmente interesante precisamente por que estamos valorando precisamente alguna de esas herramientas para gestionar alternativas. Y no vamos a dejar de evaluarlas (basandonos en el principio aquel de Don’t trust others test it yourself ya mencionado), pero la información de esta charla será sin duda útil para orientar estas valoraciones.

La presentación de Jackob tiene todos los detalles de su charla (incluída la refenrencia al Melodic Death Metal 😉 ).

A clases de gráficos por computador con Vicent Martí

El último bloque de charlas del evento, empezaba con Vicent Martí y de nuevo una charla relacionada con Canvas, gráficos y representación de imágenes y puntos con JavaScript.

Vicent Martí mostrando conceptos de representación 3D sobre un canvas(foto de @SpainJs)

En este caso Vicent, volvió a recuperar conceptos sobre el canvas, pero también habló de representación de puntos, de matrices de traslación del punto en el espacio al plano, de matrices de transformación entre los distintos espacios de representación (real, pantall, canvas, etc..)… en general una rápida (por el ritmo al que hablabba Vicent) e intensa charla que me recordó muchos conceptos de mis clases de gráficos por computador en la universidad.

Stuart Memo, el hombre orquesta en JavaScript

La última charla a la que asistí del evento, fue la de Stuart Memo. En ella mostró como utilizar el API de audio de una forma muy amena: mostrando cómo sintetizar sonidos y crear herramientas para hacer música. Otra charla muy amena y entretenida por el tema y muy curiosa por las herramientas que Stuart presentó.

Se puede ver una recopilación de las mismas en la propia web de Stuart Memo.

Stuart Memo – El hombre orquesta de JS (foto de @SpainJs)

Conclusiones

Antes de las conclusiones, debo justifcar la falta de comentario sobre dos charlas de esta segunda jornada: La de Tom Buckok sobre NodeJS y la ponencia sobre Memory leaks de Jozsef Ferenc. En la primera, no estuve por que salí al hall a por una botella de agua y me quedé conversando en la puerta con los organizadores de HTML5Spain. En la última, porque no pude quedarme a finalizar el evento, debido a un compromiso familiar… No siempre se puede estar en todos sitios al tiempo 🙁

Como decía al principio, es agradable ver cómo el SpainJS se ha consolidado como evento de referencia para JavaScripters en España en tan sólo dos ediciones.

Si en la pasada edición hubo muchas charlas sobre frameworks o lenguajes que compilaban a Javascript, este año se ha notado un cambio en los temas en general. A juzgar por las charlas, el tema de los gráficos y animación, el sonido y la APIs de conexión con móviles u otro tipo de dispositivos es el de mayor calado en la conferencia.

A juzgar por los temas de las charlas, este año la organización nos ha mostrado que Javascript vuelve al cliente, ya sea un navegador, un SO Web o dispositivos móviles.

Por último, creo que la organización ha hecho un buen trabajo y desde luego, ha sido una experiencia interesante que espero poder repetir. Felicidades al equipo de organización.

Dejar respuesta

Please enter your comment!
Please enter your name here