Para el que no haya escuchado hablar de tal evento, decirle que es uno de lo eventos nacionales de más envergadura que se celebra entorno a la comunidad de programadores de Python.
Python a su vez, es uno de los lenguajes de programación más extendidos en el desarrollo software, junto con Javascript, Java y PHP. Además de ser un lenguaje bastante extendido, se considera el lenguaje que ha experimentado un crecimiento más fuerte en los últimos años.
Según un estudio realizado con los datos de Stack Overflow (sitio de referencia para programadores, que atiende 40 millones de visitantes al mes).
Tomando como referencia el número de visitas, preguntas y respuestas, vemos que Python se encuentra a la cabeza, según el estudio, The Incredible Growth of Python.
En PyconES se reúnen profesionales y expertos de este lenguaje, con el objetivo de compartir un poquito de su experiencia y aprender un poquito más, en un ambiente agradable.
El evento año tras año, va rotando por diferentes ciudades españolas y este año ha sido en Cáceres,
ciudad Patrimonio de la Humanidad y digna de ser escenario de Juego de Tronos.
ciudad Patrimonio de la Humanidad y digna de ser escenario de Juego de Tronos.
He tenido la gran suerte de poder asistir y en este pequeño espacio, me gustaría contar un poco mi experiencia y reflexionar sobre el evento.
Lo primero que puedo destacar es que quede impresionado de la gran afluencia de público y lo rápido que se agotaron las entradas, eso da buena muestra del interés que existe. Lo segundo que me llamó la atención fue la cantidad de temáticas que de forma transversal al propio lenguaje se trataban, pues había charlas centradas en machine learning, ciencia de datos, ingeniería web, patrones software, testing, devops, programación funcional, IoT, entre tantos.
Bienvenida
Después de pasar por el hotel y almorzar, nos dirigimos a la universidad, para asistir al primer taller, "Parallel and Non-Parallel Stuff", donde Pablo Galindo, nos explicaba, con ejemplos muy claros, conceptos de programación paralela, "multithreading", "multiprocessing", el famoso GIL (global interpreter lock) y una introducción a la programación asíncrona. El mejor consejo que nos dio es:
"Con hilos y procesos, el mejor consejo es tener miedo y respeto"
El segundo taller de la tarde al que me acerque, se llamaba "Angular, Ionic y Django: amigos con derecho a roce", con ese título tan gracioso, no les falta razón, todas estas tecnologías se complementan estupendamente.
En este taller los ponentes Alejandro Gómez Morón, Ignacio González Bullón y Pablo Iglesias, muestran de una forma práctica, cómo crear un API REST sencilla, mediante Django REST Framework para seguidamente desarrollar tanto una aplicación híbrida Ionic, como una "SPA" (Single Page App) en AngularJs, que se comunican perfectamente con el servidor Django.
Os dejo el enlace directo a el power point de su ponencia que han compartido en SlideShare: Angular, ionic y Django amigos con derecho a roce - Pycon 2017
Con ello finalizaba el día y tocaba irse rápido a descansar, que el "finde" venía pegando fuerte.
Os dejo el enlace directo a el power point de su ponencia que han compartido en SlideShare: Angular, ionic y Django amigos con derecho a roce - Pycon 2017
Con ello finalizaba el día y tocaba irse rápido a descansar, que el "finde" venía pegando fuerte.
Sábado
El sábado ya nos trasladamos al Complejo Cultural, ubicado en el antiguo convento de San Francisco y data de 1472.
Al entrar a un edificio con tanta historia, tengo que reconocer que me sentí bastante excitado al pensar en aquellos arquitectos de la edad media. En aquella época quien pudiese imaginar que entre aquellas paredes se hablaría de software, de tecnología, de programación, del futuro, "del futuro".
Foto #PyConES17
Poco a poco conforme andaba por el edificio y observaba los diferentes elementos arquitectónicos, columnas, arcos, bóvedas etc, me di cuenta, que en el siglo XV, ya existían auténticos "hackers" (en el sentido más puro de la palabra). Pues aquella gente trataban de desafiar los límites solucionando problemas de una forma elegante y estética.
Tras una primera vuelta por el edificio y aprender a llegar a cada uno de los 3 claustros donde se realizaban las ponencias, acudimos a la Keynote de apertura.
En este caso la Keynote fue a cargo de Naomi Ceder, parte de la Junta de Directores de la Python Software Foundation y autora del libro "Quick Python Book, 3rd Ed,".
En este keynote se hizo hincapié en la importancia de la comunidad, la diversidad, e inclusión. Compartiendo su experiencia personal, fue una charla cargada de emoción.
Después de ello comenzaron las ponencias propiamente dichas, de forma paralela en 3 tracks, teniendo que elegir a cual de las charlas asistir (nada fácil).
Para comenzar, la primera ponencia del día a la que asistía se llamaba "High-impact refactors while keeping the lights on". Todos somos conscientes que el software no es estático, sino que constantemente tiene que adaptarse al entorno cambiante. Ya sean los nuevos requisitos de los clientes, cambios en el modelo de negocio de la empresa a la que asiste, actualizarse a las nuevas exigencias en seguridad, entre otros muchos motivos.
En esta charla se habla tanto de patrones de arquitectura, como de tácticas en la incorporación de las nuevas actualizaciones, para minimizan los riesgo que ello conlleva, haciendo de esta forma que los usuarios no se vean perjudicados, por posibles errores que se pueden dar.
Lo más interesante es ver la aplicación de Microservicios, "EventBus" que es una implementación particular del patrón publish–subscribe, patrones de refactorización como ParallelChange y puesta en producción mediante Canary.
Se hace hincapié en la siguiente cita:
"Build exciting things with boring technologies" (Laura Thomson, Director of Engineering at Mozilla)
...donde lo que viene a decir que lo importante está en el producto y debes usar herramientas que te resulten tan familiares que casi te lleguen a "aburrir".
Os dejo también el enlace directo al contenido de la ponencia: High-Impact refactors keeping the lights on
Otra charla a la que acudí en la misma mañana se titulaba "Mi coche ya es mayor de edad, creo que puede conducir él solito", en ella Ricardo Guerrero Gómez-Olmedo sexplica los diferentes niveles de autonomía que existen en vehículos, y un enfoque práctico de los métodos aplicados para conseguir dotar a un vehículo de la suficiente inteligencia para que se conduzca solito. Para ello se introducen las técnicas de "Deep Learning" empleadas. Como resumen decir que la clave está en los datos.
Aquí podéis ver todo el contenido que impartió: Mi coche ya es mayor de edad, creo que puede conducir él solito
Os dejo también el enlace directo al contenido de la ponencia: High-Impact refactors keeping the lights on
Otra charla a la que acudí en la misma mañana se titulaba "Mi coche ya es mayor de edad, creo que puede conducir él solito", en ella Ricardo Guerrero Gómez-Olmedo sexplica los diferentes niveles de autonomía que existen en vehículos, y un enfoque práctico de los métodos aplicados para conseguir dotar a un vehículo de la suficiente inteligencia para que se conduzca solito. Para ello se introducen las técnicas de "Deep Learning" empleadas. Como resumen decir que la clave está en los datos.
Aquí podéis ver todo el contenido que impartió: Mi coche ya es mayor de edad, creo que puede conducir él solito
Después de esta maratoniana mañana, paramos a comer, y después de comer me acerqué a una charla sobre GraphQL, para el que no lo conozca es un lenguaje de consulta adaptado para las APIs y que trata de solventar los problemas dados en las APIs REST típicas y adaptarse de mejor forma a la naturaleza de los datos. Se presentan sus ventajas más considerables, como reducir el número de endpoint, adaptar el flujo de datos a la vista, o la posibilidad de hacer introspección de los objetos.
La jornada finalizó con una serie de charlas rápidas improvisadas, donde se le permitía a los asistentes dar una mini-ponencia de 5 minutos.
Sinceramente todas las ponencias tenían una calidad extraordinaria, pero tengo que decir que entre mis favoritas se encuentra "Metaclases: exactamente qué y (sobre todo) por qué" por Pablo Galindo y Victor Terrón. Donde se explica de una forma dinámica el funcionamiento de los decoradores y metaclases. Y nos quedo claro que:
"Una clase es a una metaclase como una instancia es a una clase"
Después de la jornada, es costumbre obligada, salir a tomar unas cervezas con el grupo y hablar sobre lo que nos han parecido las ponencias, las tecnologías que nos han parecido interesantes, incluso si se nos ocurre algún proyecto "de juguete" donde se puedan aplicar.
Domingo
La apertura de puertas se realiza a las 09:15. Entre las muchas charlas, me llamó la atención una charla titulada "Why lazy developers write beautiful code?"
En esta charla se compara el desarrollo software con otras ingenierías. Se dice que los problemas que nos encontramos en ingeniería software se catalogan, dentro de lo que se conoce, Wicked problem, estos problemas tienen las particularidad que su solución solo puede ser bien definida con la propia solución.
En la charla se nos recuerda tener siempre presente:
import this
Y por último se proponen los 5 trucos para desarrolladores perezosos:
- Usar las herramientas adecuadas.
- Ser pragmático
- Automatizar todas las cosas.
- Retroalimentación rápida es el rey.
- Escribir código elegante.
En "Exprimiendo el ORM de Django", se explica las ventajas de usar el ORM (Object-relational mapping) de Django, para conseguir realizar consultas de alto nivel, para ello se usan (objetos F(), Q(), anotatte y aggregate). Consiguiendo:
- Consultas de alto nivel.
- Se agnósticos al motor de base de datos, pudiendo migrar con más facilidad.
- Ya va integrado en Django.
Una de las últimas presentaciones fue "OpenCV la serpiente que todo lo ve", aprendemos a usar el potente framework de visión artificial, OpenCV, aplicando conceptos, como filtrado, máscara y funciones propias de OpenCV, que implementan "machine learning". Por último se nos presenta un poquito de código, que implementa una alarma para controlar el nivel de vino en nuestro vaso.
Otra de mis charlas favoritas fue "Haskell es mi pastor y Python, mi profeta", donde Braulio Vargas y Marta Gómez nos hacen una divertida introducción de los principales conceptos de programación funcional que podemos aplicar en Python. Poniendo ejemplos de uso de (map, reduce, filter y zip), así como algunas funciones del paquete "intertools" y "functools".
Para finalizar el congreso, la Keynote de cierre fue a mano de Juan Luis Cano, presidente de la asociación Python España, donde nos hace reflexionar sobre la situación del software y muchos aspectos que quedan por mejorar.
Para concluir decir que me parece apasionante ver que un lenguaje de programación, no solo es un medio de comunicación entre ordenadores y personas, sino que además es un medio de comunicación entre personas. Por eso, si no has podido asistir a la PyConEs 2017 te dejo este video ;-)
Por último recordarte que si te parece interesante este post, no dudes en compartir mi experiencia por redes sociales y anotar en tu agenda que el año que viene por estas fechas tienes una cita en la PyConEs 2018 que se celebra en Málaga :-)
No hay comentarios:
Publicar un comentario