Crónica de T3chfest 2018

¡Lo veíamos venir! En su sexta edición, T3chfest se ha convertido sin ninguna duda en uno de los eventos de referencia del sector, una cita ineludible para estudiantes y profesionales de la informática y las nuevas tecnologías.

T3chfest ha batido en 2018 su récord de empresas participantes – más de 30 – y de asistentes: más de 1500 personas acudieron al encuentro organizado en la Universidad Carlos III de Madrid.

Profile fue uno de los patrocinadores del evento y por supuesto no nos lo podíamos perder. Los compañeros que pudieron asistir nos traen un resumen de algunas de las charlas y las conclusiones de T3chfest 2018.

El equipo de Profile en T3chfest con T3chfy

 

Día 1 – Jueves 1 de marzo

Iterando arquitecturas, creando herramientas

Álex Rupérez y Dani Coello enseñaron su proceso creativo e iterativo para alcanzar la mejor arquitectura a la hora de crear una app móvil. Mostraron la evolución de su arquitectura open source ARCHIT para iOS y explicaron cómo consiguieron mejorar el producto a través de iteraciones, con los objetivos de:

  • Aumentar la calidad
  • Establecer unos estándares de procesos y herramientas comunes
  • Agilizar el desarrollo de cara a las entregas

Pronto incorporarán programación reactiva con RxSwift y entablarán conversaciones con el equipo Android para tener diferentes puntos de vista y unificar así las arquitecturas.

Analysis of the feeling of the attendees to a talk in real time

Juantomás García nos sorprendió en Codemotion 2017 grabándonos con una cámara que usó para medir el grado de éxito de la charla en función de las expresiones de nuestras caras. Y en T3chfest nos ha explicado la implementación de RealTimeTalkSentiment.

El ponente abogó por las arquitecturas serverless. Su proyecto se basa en Google Cloud, una plataforma que defendió en varias ocasiones por el bajo coste económico que requiere. Por ejemplo, del análisis de las imágenes se encarga la API Vision de Cloud y el análisis de los resultados se realiza con BigQuery.

Charla Analysis of the feeling of the attendees to a talk in real time

 

NFV y SDN: las redes del futuro y del presente

Cristina Santana Casillas ofreció una ponencia sobre la virtualización de redes para superar los problemas de escalabilidad, flexibilidad e innovación. 

Cristina explicó qué son NFV (Network Function Virtualization) y SDN (Software Defined Network) y cómo gracias a estas tecnologías podemos conseguir un diseño y una gestión de redes más innovadores, que nos permiten:

  • Desplazar la funcionalidad de la red al software
  • Emplear servidores de propósito general
  • Utilizar APIs para su desarrollo
  • Organizar y automatizar los servicios de red

La ponente también nos contó en qué consiste MANO (Management and Network Orchestration):

  • VIM (Virtualization Infraestructure Manager): gestión de los recursos e inventario de las máquinas virtuales.
  • VNF Manager: encargado del balanceo de carga y de los errores.
  • Orchestrator: encargado del uso de recursos, despliegue, monitorización y escalado.

Un ejemplo: https://osm.etsi.org/

Virtualización de redes en T3chfest

Serverless con AWS Lambda y OpenFaaS

Javier Revillas comenzó su ponencia con la clásica introducción a los enfoques On-Premises, IaaS, PaaS y SaaS, para centrarse finalmente en PaaS.

Modelos de cloud

En seguida entró en materia con el framework Serverless usando Node.js en AWS, para hacer una gran demo Lambda (soporta Java, .Net, Go, Python y Node.js). La demo consiste en una plataforma de universidad que integra mensajes de Telegram, subidas de ficheros en C, compilaciones, ejecuciones de tests, etc.

De cara a enseñar una fase más ágil de desarrollo y pruebas que no requiera tanta infraestructura pasamos a ver Openfaas, un gran proyecto open source con una potente comunidad detrás. Javier nos explicó sus tripas (Prometheus, etc.), la posibilidad de usar Docker Swarm en local y luego Kubernetes para producción, por ejemplo, que luego se puede desplegar en AWS sin problema… en definitiva una buena herramienta para desarrollar, alojar y exponer soluciones serverless sin importar el lenguaje en el que hayan sido desarrolladas.

Por último, Javier expuso su experiencia con Payvision, una plataforma de pagos en la que trabajó en el pasado. Mostró el comportamiento de la aplicación ante peticiones masivas, poniendo de manifiesto las ventajas de un balanceador de carga entre otras aspectos de este tipo de arquitecturas.

Entendamos de una vez qué es eso de la reactividad

José Manuel García comenzó su interesante charla sobre la programación reactiva haciendo una potente introducción de Rx, en la que nos habló de su curva de aprendizaje, de la programación funcional, del patrón Observer y el patrón Iterator, etc.

 

Curva de aprendizaje de ReactiveX

 

De ahí pasó al concepto de programación reactiva: un paradigma enfocado en el trabajo con flujos de datos de manera asíncrona.

Ofreció diversos ejemplos de características reactivas en Excel, Angular, JavaScript (callbacks, promesas…), etc. Así hasta llegar a la metáfora del bombo de bingo o lotería, en la que estableció comparaciones sobre su asincronismo, la gran cantidad de observadores, el flujo de datos observable, etc.

 

bombo bingo reactivo

 

José Manuel mostró mucho código útil: primera aproximación asíncrona, callbacks, notificadores, observables (funciones lazy), subjects (observer y observable a la vez, demo de página de login con reacciones de la mascota del T3chfest ante los eventos) y Angular (.ts).

También explicó que es un operador: una función que toma un observable y devuelve un nuevo observable. Teniendo en cuenta que una de las partes más complicadas de Rx es la cantidad de operadores que existen, Jose Manuel hizo un repaso genérico a los operadores, que realmente darían para una charla propia.

Día 2 – Viernes 2 de marzo

Wubba lubba dub dub!

Bajo este críptico título, Jorge Barroso dio una charla sobre las diversas implicaciones que tiene dedicarse profesionalmente al desarrollo de software.

Haciendo un repaso de su propia experiencia profesional, Jorge habló de la importancia de saber qué quieres y qué no quieres hacer, no dejar nunca de aprender, atreverte a salir de tu zona de confort y acostumbrarte a participar en eventos, dar charlas, etc.

En definitiva, Jorge trató el valor de ser feliz en el trabajo, más allá de si has escogido esta profesión por vocación o por las vueltas que da la vida. En una ocupación que ya de por sí supone muchas horas sentado picando código, sentirte satisfecho con lo que haces es vital.

Charla de Jorge Barroso en T3chfest

Programando ordenadores cuánticos

Ponencia muy interesante de Francisco Gálvez Ramírez, que ofreció una exposición del estado del arte de la computación cuántica.

Francisco empezó hablando de los superordenadores que tienen aplicaciones científicas y técnicas en multitud de aspectos de la vida: clima, salud, reacciones químicas, fusión/fisión nuclear, … casi todo. Entre ese casi todo se encuentran los sistemas de muchos cuerpos, donde el mejor superordenador es capaz de simular solo 40-50 electrones, es decir, no simula moléculas muy complejas.

Tras mencionar Ley de Moore y mostrarnos un chip de 5 nanómetros (nm) de IBM, Francisco explicó qué resuelve la computación cuántica: transforma problemas con un crecimiento exponencial de la complejidad en problemas con un crecimiento polinómico.

  • El problema del viajante (del que curiosamente nuestro compañero Víctor Martín Molina tiene la publicación “Algoritmos evolutivos en Java: resolución del TSP usando DREAM. Actas XVI Jornadas de Paralelismo, incluido en el Primer Congreso Español De Informática. Granada, septiembre 2005, pages 667-683. Editorial Thomson.”).
  • Búsquedas no indexadas: algoritmo de Grover.
  • Factorización de grandes números (RSA se basa en ello para generar claves, de ahí la importancia de su ruptura)

Entramos en más casos de uso: criptografía, comunicaciones, seguridad, machine learning, deep learning, simulaciones químicas y de nuevos materiales… En Septiembre de 2017 la revista Nature se hacía eco de la simulación de 3 moléculas, lo que abre paso a la posibilidad de diseñar moléculas nuevas.

La computación cuántica es un paradigma de computación distinto al de la computación clásica y da lugar a nuevas puertas lógicas que hacen posibles nuevos algoritmos. ¿Qué es un ordenador cuántico? Aquel que:

  1. Se basa en el uso de Qubits (en lugar de bits): valores 0, 1 y superpuestos entre ambos (comportamiento de onda)
  2. Se puede inicializar (requiere temperaturas muy bajas, 15 mK) A esta temperatura los Qubits están estables.
  3. Usa paralelismo cuántico
  4. Mantiene la coherencia
  5. Usa entrelazamientos (estados donde el valor de un Qubit depende de otro, ej teleportación cuántica)

Francisco mostró de forma bastante gráfica la superposición cuántica, partiendo de un ejemplo de 2 Qubits que dan lugar a la combinación de 4 posibles estados (0-0, 0-1, 1-0, 1-1) a la vez (esto con 2 bits solo da pie a 4 procesadores como máximo). Fuera de los tiempos de coherencia hay caos, por lo tanto hay que aprovechar esos intervalos para hacer los cálculos.

Una vez que alguien sugirió llevar el computador de 16 Qubits a la nube, el éxito fue rotundo. Llegaban peticiones desde todo el planeta (incluido el polo sur). Esto provocó el despegue de QASM y librerías en Python al alcance computacional de toda la comunidad. Al igual que IBM mantiene la línea de computadoras Z (Mainframes), P (RISC de alto rendimiento), se abrió la línea Q para computadores cuánticos. De hecho hay disponible de hasta 20 Qubits e incluso un prototipo de 50, que es una cifra significativa, ya que no hay supercomputador que simule más de 50 Qubits.

El periodo actual 2016-2020 es denominado como Quantum Ready. El siguiente será Advantage, donde el uso ya pasa a ser bastante mayor (mientras habrá que trabajar algoritmos híbridos clásicos y cuánticos, por los tiempos de estabilización). Ya existen también librerías para C++, Java, Python, Ruby, JavaScript, Perl, Haskell y en la charla, Francisco animó a los desarrolladores de Node.js a que se pusieran manos a la obra.

Finalmente habló de varias herramientas:

  • IBM Quantum Experience: 5 Qubits para trastear con puertas lógicas en circuitos
  • QISKIT Open QASM (quantum assembly language)
  • QISKIT Python API.

Una de las preguntas que respondió a un compañero fue sobre los problemas de la concurrencia. Pues bien, aquí estos problemas no ocurren puesto que se basan en paralelismo cuántico gracias a la superposición de sus Qubits.

Charla sobre computación cuántica en T3chfest

 

Service mesh: ¡vitamina tus microservicios!

Tras una introducción a modo de historia sobre monolitos, microservicios, contenedores y orquestadores, Alfredo Espejel pasó a hablar de Service mesh y qué nos puede aportar.

En 2009 Netflix migra su arquitectura monolítica a microservicios. En 2011 Amazon se cae en la región del este de EEUU, pero Netflix… no cae. En 2012 Netflix decide publicar el código de su robusta solución, lo cual viene muy bien a los desarrolladores de Spring Cloud, Vert.X, Node.js, etc.

Con Service mesh se va un paso más allá, a una capa de servicio donde asegurar la comunicación de los microservicios. Esto tiene 2 formas de implementación:

  • En cada host, se deja una pequeña pieza que se encargue de ello o
  • En unidades estilo POD (k8s/ocp) utilizamos contenedores sidecar

Y esto hay que enfocarlo desde 2 planos:

  • Datos: conjunto de servicios y proxy-sidecars que debe asegurar que las solicitudes sean entregadas desde el microservicio A al microservicio B de una manera confiable, segura y oportuna.
  • Control: encargado de gestionar y monitorizar todos las instancias de sidecars, siendo el punto ideal para implementar políticas de control, recolección de métricas, monitorización, etc.

Finalmente Alfredo expuso una demo con Envoy como proxy-sidecar, todo Dockerizado (uso de httpbin).

La conclusión de la ponencia: es importante tener un ojo puesto en esta tecnología emergente y ver hacia dónde va y qué contemplará, ya que como bien apuntaron varios asistentes sería muy interesante valorar qué otros elementos actuales (ej. productos de API management) pueden estar estar en peligro para ciertos casos de uso.

Code Reviews from Hell and Automatizations

Carlos Agudo Belloso ofreció una apología de las revisiones de código como proceso, como buena práctica con ventajas muy productivas en términos económicos. En cambio, malos procesos de code reviews pueden matar cualquier cultura “agilista” y dañar seriamente a una empresa.

Fue una charla bastante curiosa, impregnada de (terribles) experiencias reales en el mundo empresarial que nos hace ver las cosas con perspectiva.

Carlos enseñó ciertos números mágicos extraídos de estadísticas. Por ejemplo: no se aconseja superar los 2-3 ficheros por revisión, no revisar de golpe más de 100 líneas de código, etc., básicamente porque de momento seguimos siendo humanos y tenemos ciertos límites.

Hay que partir de que, según el ponente, no existe código perfecto. Siempre depende del contexto en el cual se desarrolla. Además hay que saber que no hay “programadores de mierda”, sino “código de mierda” según las circunstancias (por ejemplo un domingo a las 4 de la mañana no se desarrolla de la misma manera). También recalca que hay que usar el mismo lenguaje que el del negocio: llamemos a las cosas por su nombre.

Fue muy ilustrativa la parte de detección de trolls (ej “no cumples con todos los principios SOLID”), para atajar estos problemas de forma fulminante, porque la verdad que situaciones de estas pueden acabar con cualquier empresa o salud mental.

Charla sobre revisiones de códigos: buenas y malas prácticas

When Clean Architecture met Kotlin: una historia de amor

Fue una de las mejores y más productivas ponencias. Enlazando con la charla del pasado Codemotion sobre Clean Architecture, en esta ponencia Nicolás Patarino realizó un romántico tour por las maravillosas características de Kotlin, siempre desde una perspectiva enfrentada al derrotado Java.

  • Listas, incluso frente a la aproximación Guava de Java, aunque hay que reconocer que esta parte fue un poco tendenciosa al no enfrentarlo a la versión actual de Java.
  • La comodidad de las data class (getters, setters, toString, equals, etc.).
  • Funcionalidad copy.
  • En temas de mapeado, sacó a relucir las “extension functions” y el flamante operador elvis (poca gente se acuerda de que esto ya estaba en Groovy).
  • Mayor perspectiva funcional (interesante la reflexión común final en la que se sitúa a kotlin entre java y scala). Recomendación del framework Arrow
  • Composing sealed class (jerarquías restringidas)
  • Either (result), un paso más allá de los Optionals
  • Typealias, que aparte de comodidad, en conjunción a funciones de primer orden puede aumentar el nivel de abstracción y desacoplamiento
  • Pattern matching, con when exhaustivos

Finalmente Nicolás mencionó aspectos más propios de Android relativos a funciones de primer orden para casos de uso.

When Clean Architecture met Kotlin: una historia de amor

 

Conclusiones de T3chfest 2018

Como hemos comentado al inicio del post, la VI edición ha servido a T3chfest para consolidarse como un encuentro de obligada asistencia para estudiantes y profesionales que quieren estar al día de lo que se cuece en el ámbito del código y la programación.

Queremos agradecer y felicitar a la organización de T3chfest y a todo su equipo de voluntarios y voluntarias por su enorme esfuerzo e implicación en crear y coordinar un evento de entrada gratuita y sin ánimo de lucro que aporta tanto valor al sector IT. Y no nos olvidamos de los ponentes (casi 100 entre charlas y talleres) que llenaron una agenda muy variada e interesante. ¡Enhorabuena!

Además nos gustaría destacar las palabras de una de las organizadoras,  Nerea Luis, en el discurso de apertura de T3chfest 2018. Nerea resaltó el hecho de que la tecnología la hacemos personas y eso implica hablar de ética (“no todo vale”), humanización de la tecnología, conciliación y flexibilidad.

Por eso mismo, porque somos personas y porque la tecnología está modelando nuestro futuro, es vital que tengamos en cuenta la diversidad (equipos diversos en cuanto a conocimientos y habilidades), inclusión (la tecnología debe ser  accesible a todos) y el feminismo (es necesario conseguir la igualdad entre hombres y mujeres en el ámbito tecnológico).

Desde Profile estamos orgullosos de apoyar iniciativas como T3chfest. Porque además de un espacio de  encuentro entre estudiantes, profesionales y empresas, además de un evento en el que aprender sobre temas muy variados e interesantes, también es un lugar en el que compartir valores.

Si no pudiste asistir, próximamente en el canal youtube de T3chfest, encontrarás todas las grabaciones de las ponencias.

¡Nos vemos el próximo año, T3chfest!

Profile-patrocina-T3chfest-2018

 

¿Te pareció interesante? Compártelo:
Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this pageEmail this to someone

Sobre el Autor: Profile Software Services

Profile Software Services es una compañía de desarrollo TI y software formada actualmente por más de 160 personas, especialistas en desarrollo web, móvil, arquitectura de sistemas, cloud computing, apificación y gestión de APIs y UX. Estamos en Madrid y Barcelona.