Global Azure Bootcamp 2017

Durante el día de ayer se celebró a escala mundial el Global Azure Bootcamp, del cual fui asistente a la edición que se celebró en Madrid.

Un hecho relevante para el evento, además de la parte de charlas y formación, es que siempre se emplea un laboratorio científico en el cual podamos hacer una contribución a una línea de investigación. Durante el día del evento todos los asistentes podemos desplegar el laboratorio en nuestras suscripciones de Azure, escalarlo y que vaya haciendo lo que debe hacer para obtener resultados que serán analizados más tarde. Años anteriores los laboratorios trataron sobre la investigación del cáncer de mama, el estudio de la diabetes tipo 2, por poner un ejemplo. Es un modo de poner nuestro granito de arena a una buena causa.

Secret Life Of Galaxies

Este año el laboratorio consistía en ayudar al Instituto Astrofísico de Canarias. Una de sus múltiples líneas de investigación consiste en el estudio de las galaxias para, a través de sus estrellas, entender cómo, cuándo y por qué se formaron. En especial se busca obtener la información de las estrellas más antiguas de la galaxia a estudiar para obtener información sobre su edad y composición química.

Para obtener esta información se hacen capturas de las estrellas de una galaxia y se analiza cómo es la luz que se captura. A través de la frecuencia se puede obtener información sobre la composición, ya que tenemos referentes en los cuales basarnos. El problema es que, al ser una medición,  la captura incluye una serie de errores que dificultan el análisis de datos:

Color-magnitude diagram unaffected by blurring Color-magnitude diagram with observational blurring

 

La imagen de la izquierda corresponde a una imagen limpia. Cada color se refiere a cómo son las estrellas en términos de edad y formación química. Sin embargo, la imagen de la derecha corresponde a la imagen en bruto. Se aprecia que los límites están menos definidos, hay mucho ruido y por lo tanto, dificulta el análisis de la información. El objetivo del laboratorio de este año es aplicar un algoritmo a escala global que contribuya a «limpiar» los datos para reducir el ruido y permitir un análisis correcto.

El algoritmo fue desarrollado por Sebastián Hidalgo en el Instituto Astronómico de Canarias y se llama SELiGa (Secret Life Of Galaxies). Los resultados de este experimento irán a un paper que se publicará en el próximo Astronomy Journal

Charlas

Al igual que otros años, la organización decidió dividir en tres tracks las charlas, con la diferencia que esta vez no había un track definido por área, sino que estaban mezcladas. Por ejemplo, en el Track 1 había charlas de desarrollo, de IT… La organización prefirió hacerlo así para que la gente se moviese entre charla y charla y así, compartir impresiones y conocerse. Como no pude ir a todas las que me habría gustado, pondré un resumen de las que tuve el placer de asistir:

  • Seguridad en Azure: hazme una rebajita guapi. claro que si !!!: Joaquín Molina nos contó, desde el punto de vista de infraestructura, algunas prácticas muy recomendables de cara a logging y seguridad en general de los recursos que tenemos desplegados en Azure.
  • Azure Key Vault o como el capitán Kirk asegura la nave: En esta charla Alberto Díaz expuso cómo usar Azure Key Vault y cómo ha mejorado respecto a hace un año. Bastante interesante porque propuso varias demos basadas en El Mundo Real que serán muy útiles para nuestro día a día.
  • Descubriendo la Historia del Universo con Microsoft Azure: Tenía mucha curiosidad en asistir a esta charla, porque explicaron en detalle cómo funciona y qué incluye el laboratorio que se ha desplegado en Azure para poder ejecutar SELiGa.  Los ponentes fueron David Rodríguez, Adonai Suárez y Sebastían Hidalgo.
  • GPU Cloud Computing: la potencia de la aceleración gráfica en Azure: Esta ha sido una de las mejores charlas a las que he asistido en general, tanto por el contenido por la forma. Carlos Milán y Alberto Marcos explicaron en detalle cómo y por qué usar una GPU puede ayudar a acelerar determinados algoritmos. Como demo, además del minado de bitcoins, enseñaron cómo jugar a Project Cars III en UltraHD a través de Azure. Si tienes pensado en comprarte un PC para jugar y juegas menos de 30 horas al mes, aconsejo mirar esta charla…
  • Qué tengo que saber como desarrollador sobre Blockchain: Iván González nos explicó cómo es blockchain, para qué se puede usar y qué implicaciones tiene dentro de la computación actual.
  • Migrando de ASM a ARM (2.0) – Tips and Tricks: Otra charla desde las trincheras. Alejandro Almeida García nos contó, bajo su experiencia, cómo funciona la migración entre ASM y ARM y qué problemas podemos encontrarnos en función de qué recurso queramos migrar y qué estrategia queramos aplicar.
  • Chihuahua o Muffin: Deep Learning con CNTK: ¿Alguna vez te has preguntado si esa mopa que ves de lejos es realmente una mopa, o un perro? Bienvenido, pues no eres el único. Pablo nos explicó con cierto detalle cómo funcionan las redes neurales que se usan en Deep Learning y qué operaciones matemáticas se usan para el aprendizaje. Otra charla magistral, completa, clara y directa.

Agradecimiento

Una vez más, algo va muy bien cuando un evento logra llenar las plazas disponibles en un sábado. Por supuesto, quiero agradecer por aquí a la organización por la elección del laboratorio científico (ya que me parece fascinante y lo tenemos «en casa») y además por todo el esfuerzo y dedicación que han empleado para lograr que este evento sea un éxito.

Freakend 2017

Este fin de semana tuvo lugar el Freakend 2017  de videojuegos y como era de esperar, fue apasionante. Esta vez fuimos 82 personas en el evento y lo organizamos en un hotel de la sierra de Madrid. De hecho, reservamos la totalidad del hotel para nosotros y nos permitió de disponer de varias salas para el evento.

Mientras que otros años había una gran cantidad de charlas e incluso varios tracks distintos, esta vez la organización prefirió tener una sala destinada a las charlas (la mayoría de una hora de duración y un conjunto de charlas mas «ligeras» que comentaré más adelante) y otra sala donde estaban montadas diferentes experiencias de realidad virtual, juegos de mesa, emuladores e incluso algo de retro gracias a Carlos Milán. Las charlas fueron en bloques de dos en dos, lo que permitía no saturarse demasiado y además poder comentar con los asistentes el contenido de la misma sin prisa ni mucho estrés.

Las charlas fueron de diversa índole. Algunas destinadas más al ámbito de la programación, otras de diseño y otras sobre experiencias personales o el estado de la industria.

  • 50 sombras de eSports: Nacho Lasheras nos comenta los orígenes, las causas y el futuro de los eSports. La verdad es que fue bastante interesante, porque desde «fuera» de la industria parece que ha sido una irrupción muy súbita cuando realmente es algo que lleva gestándose desde hace tiempo y que por supuesto, no ha hecho más que empezar.
  • Mesa Redonda de VR: Diego Bezares moderó una mesa sobre el estado de VR. Como comentario personal, mucha gente estaba trabajando con VR. En la sala contigua pude probar algunos cacharros y esta vez sí puedo decir que al menos, en mi opinión personal, hay juegos de verdad para VR en lugar de demos puramente técnicas.
  • Hacking de videojuegos: Carlos nos explicó cómo se puede hackear un videojuego aplicando técnicas de ingeniería inversa usando JS. Pudimos ver cómo volar con el Guild Wars 2, cómo crear un modo espectador e incluso cómo la gente de Blizzard protege Overwatch para evitar hackeos.
  • Técnicas de narrativa ambiental: Juan Fernandez de Simón, de Ninja Theory nos contó algunos de los recursos que se usan en videojuegos para contar historias. Como jugador es un tema que nunca me he planteado, pero me resultó muy curioso las técnicas que usan para meterte en la historia sin que te percates.
  • La startup alrededor del videojuego: Gema Parreño nos cuenta su experiencia creando una startup y un producto. Es una charla que me gustó especialmente, y salvando las diferencias, lo comparo con el reciente asuntillo de GitLab. Creo que hay que ser muy valiente para contar la realidad, la verdad y ser sincero ante una audiencia sobre todo lo acontecido.
  • DIV2js: Salvador de la Puente nos explicó cómo usa DIV a través de un conversor de JS. Fue una charla apasionante en la que explicó cada paso del pipeline para convertirlo, las instrucciones, el modo de programarlo…
  • Charlas ligeras:
    • Multijugador en Dynasty Feud*: Aitor Tejedor nos explicó cómo implementaron el multijugador en Dynasty Feud y cómo resolvieron problemas relativos a la latencia y sincronización de los jugadores en la partida. Realmente interesante
    • Fabric Engine: En este caso Borja Morales nos explicó cómo usan su engine y cubren lo que no pueden hacer con los comerciales.
    • El código de las fuentes: Jaime adora las fuentes y nos contó cómo funcionan y los problemas que tienen a la hora de localizar un videojuego. Como siempre, chapó.
    • Juegos narrativos: Ludipe nos cuenta cómo está haciendo un juego de índole narrativa, qué pasos sigue y cómo va quedando. Todo un currazo. Además por la noche me enseñó unos cuantos juegos indie españoles multijugador que no conocía. Y por supuesto, fue épico.
    • Mixed reality: Mi compañero David Ávila presentó algunos de los trabajos que se han hecho en Plain Concepts sobre realidad mixta.
  • Karisma: Unai Landa -que «sólo» lleva 21 años en la industria- nos explicó cómo han trabajado en Karisma, el motor que usan en Digital Legends y que tiene más de 10 años. Una charla interesantísima.
  • Gráficos vectoriales para videojuegos: Beatriz Alonso expuso, desde el punto de vista del artista, cómo tuvieron que hacer para tener un modelo vectorial en un juego 2D optimizando espacio y rendimiento. Fue muy interesante ver todo el proceso del pipeline y cómo van optimizando e iterando hasta conseguir el menor número de vértices posibles. Además de otras cosas muy interesantes.
  • Zalo Engine: Un freakend no sería lo mismo si no hacemos un juego para GameBoy. Dicho y hecho: Gonzalo nos explicó cómo usar un motor para programar en C (en lugar de ensamblador) un juego. Además, todo el código en riguroso directo.

Como siempre, lo primero de todo es agradecer a @flipper83 por todo el esfuerzo y trabajo que ha dedicado para organizar este evento. Además, hemos tenido la oportunidad de conocer a personas apasionantes. Como les digo en privado siempre, gracias por organizar cosas como estas.

*Editado:

Gracias a Nacho, que me indicó que no apunté la charla de Dynasty Feud de Kaia Studios. Y mis disculpas a Kaia Studios por no haberos incluido en un primer momento!

 

[Evento] DotNetConference 2016: Un breve y personal resumen

Siguiendo la estela del año pasado, este año hemos tenido una nueva edición de la DotNetConference. Es un evento organizado por Microsoft y orientado para todas las comunidades técnicas y desarrolladores que trabajamos con tecnologías Microsoft. Se volvió a batir la afluencia: 1700 personas asistieron de forma presencial y otras 5000 de forma online siguiendo la retransmisión vía streaming.

Tal vez la primera gran diferencia respecto al año pasado es que sólo ha durado un día. En la pasada edición la duración se extendió a dos días, por lo que hubo más espacio y más tiempo entre las charlas. Este año todas las charlas han estado comprimidas en el mismo día, lo cual ha sido un poco caótico porque había que elegir entre ir a la charla o hacer algo de networking. Sin embargo, hay otra pequeña diferencia que sí hemos tenido este año:

Sí señor, Satya Nadella (CEO de Microsoft) pudo asistir al evento e impartir una keynote. Un gran salto de calidad y potencia al evento, porque no todos pueden presumir de tener como ponentes al CEO de una de las mayores empresas de software del mundo. Aquí se ha demostrado el gran trabajo de organización efectuado por el DX Team de Microsoft Ibérica. Supongo que esta noche podrán dormir tranquilos y descansar, porque desde luego se lo tienen merecido después de todo el esfuerzo que han hecho.

Respecto al contenido del evento, otro año más no he asistido a la primera keynote. Tampoco he podido asistir a todas las charlas que me gustaría. Desgraciadamente muchas coincidían en la misma hora pero en distinta sala, así que la elección no fue fácil.

  • Some dirty, quick and well-known tricks to hack your bad .NET WebApps: Chema Alonso impartió esta divertida y práctica charla sobre pequeñas cosas a tener en cuenta a la hora de desarrollar una aplicación web. Nos demostró, con ejemplos reales y en directo que una mala configuración de servidor (tan simple como dejar los valores por defecto) puede suponer que un atacante que tenga el suficiente tiempo libre nos dé alguna sorpresa. Chema terminó la charla con una frase lapidaria: «Si no revisas los detalles de tu aplicación web no te preocupes, alguien lo hará»
  • Entity Framework Core 1.0: Unai Zorilla nos vuelve a hacer una demostración que es posible hacer una charla picando código y sin necesidad de IntelliSense. Explicó la motivación que hay detrás de Entity Framework 7 Entity Framework Core 1.0, tanto para aplicaciones Full .NET como para DotNet Core. Hizo hincapié en algunas de las nuevas características que incluye EF 1.0 (que ahora mismo está en RC1) muy interesantes y potentes. Aunque en mi opinión, una gran potencia conlleva una gran responsabilidad. Como último apunte, EF Core 1.0 ha sido reescrito desde cero y no soporta todavía toda la funcionalidad que tiene EF6. Así que entre esos motivos y que todavía está en RC1, no se recomienda su uso en sistemas de producción.

  • El arte del logging en el Cloud: Luis Guerrero vuelve a marcar una charla espectacular. Contenido y explicación directa. A través de una aplicación que analiza los problemas que puedan aparecer en diversos sitios webs, emplea AppInsights para analizar y obtener la información de lo que va ocurriendo. Porque como él mismo dijo, está muy bien tener un sistema de logging. Pero es mucho más importante tener la capacidad de explotarlo para poder analizar y saber lo que ocurre. Tener un sistema de logging y no poder leerlo o directamente no leerlo, es lo mismo que no tenerlo.
  • Wearables con C# y .NET: Microsoft Band 2, Apple Watch y Google Wear. Josué Yerai nos explica las diferencias entre Microsoft Band, el Apple Watch y cualquier Android Wear. Algo muy curioso porque todas tienen su propio SDK y aunque parezca sorprendente, la única que dispone de SDK para todas las plataformas es Microsoft Band. A través de un ejemplo mostró cómo funciona realmente las aplicaciones de los wearables y qué podemos hacer con cada uno de ellos.

Mención especial (y no por temas corporativos) me gustaría hacer a mis compañeros de Plain Concepts. Organizaron un concurso a través de un cuestionario de cinco «simples» preguntas de programación en C# que causó furor. No creo que sea por el premio (una Microsoft Band 2 al que acertase las cinco preguntas) sino por el hecho de que es algo que motiva y «pica» para poder investigar y obtener la respuesta correcta. La afluencia al stand de gente rellenando el cuestionario y entregándolo fue constante a lo largo del día, por lo cual considero que fue todo un éxito por la iniciativa de todos los implicados.

Por último me gustaría volver a agradecer a todos la organización, ponentes y patrocinadores la realización del evento. No es sencillo montar un evento de este tipo ni para tanta gente. Y en el fondo, lo importante es que es un evento de comunidad. Una comunidad que está viva y muy activa. Y es algo que en mi opinión, motiva bastante para poder seguir investigando y aprendiendo nuevas tecnologías. Así que: ¡enhorabuena!