To see our schedule with full functionality, like timezone conversion and personal scheduling, please enable JavaScript and go here.
14:00
14:00
30min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Room 0.2
14:00
30min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Room 0.3
14:00
30min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Room 0.7
14:00
30min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Salón Grados
14:00
30min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Room ESA01
14:00
30min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Room ESA02
14:30
14:30
60min
Cocktail de bienvenida

Pequeño cocktail de bienvenida para conocer a otros participantes y hacer algo de networking.

A brief welcome cocktail to get in touch with other fellows and do some networking.

Coffee Break
Room 0.2
14:30
60min
Cocktail de bienvenida

Pequeño cocktail de bienvenida para conocer a otros participantes y hacer algo de networking.

A brief welcome cocktail to get in touch with other fellows and do some networking.

Coffee Break
Room 0.3
14:30
60min
Cocktail de bienvenida

Pequeño cocktail de bienvenida para conocer a otros participantes y hacer algo de networking.

A brief welcome cocktail to get in touch with other fellows and do some networking.

Coffee Break
Room 0.7
14:30
60min
Cocktail de bienvenida

Pequeño cocktail de bienvenida para conocer a otros participantes y hacer algo de networking.

A brief welcome cocktail to get in touch with other fellows and do some networking.

Coffee Break
Salón Grados
14:30
60min
Cocktail de bienvenida

Pequeño cocktail de bienvenida para conocer a otros participantes y hacer algo de networking.

A brief welcome cocktail to get in touch with other fellows and do some networking.

Coffee Break
Room ESA01
14:30
60min
Cocktail de bienvenida

Pequeño cocktail de bienvenida para conocer a otros participantes y hacer algo de networking.

A brief welcome cocktail to get in touch with other fellows and do some networking.

Coffee Break
Room ESA02
15:30
15:30
90min
Django Girls

Taller de Django Girls enfocado a grupos minoritarios en tech.

Django Girls is a non-profit organization and a community that empowers and helps women to organize free, one-day programming workshops by providing tools, resources and support. We are a volunteer run organization with hundreds of people contributing to bring more amazing women into the world of technology. We are making technology more approachable by creating resources designed with empathy.

During each of our events, 30-60 women build their first web application using HTML, CSS, Python and Django.
Since 2014, an army of 2370 volunteers in the Django Girls community organized 1072 events. We've been to 581 cities in 108 countries
A total of 23292 incredible women attended events organized by members of our community.

Web
Room 0.2
15:30
90min
Generando un backend en FastAPI
Nayra Tarazon Barbera

Enfoquemos nuestras energías en trabajar menos.

Hay veces que nos apetece montar soluciones a problemas pero nos acaba asaltando la pereza dada la complejidad en relación a la necesidad. En estas situaciones lo que mejor nos viene son los frameworks más compactos donde las implementaciones cuestan poco y te aportan mucho, para ello... esta charla.

Aprenderemos a como montar una pequeña API con FastAPI, Pydantic como validador de esquemas y persistir nuestros datos en una db simple (probablemente sqlite por simplificar pero no descarto mongo).

Para poder llevar a cabo el taller se necesitará un nivel básico de programación orientada a objetos, un entorno de desarrollo en el que poder trabajar, pip, python 3.8 o superior (preferible 3.10)

Web
Room ESA02
15:30
90min
How to analyze hateful behavior on Twitter with Python?
Jara Juana Bermejo Vega

In this workshop we give an introduction to software tools to data-hoard and analyze Twitter data. We apply these tools to analyze and understand the surge of hateful queerphobic trends on Twitter.

We will learn how to use Python tools t-hoarder and tward2 for data hoarding tasks. We will show how to analyze social media trends using the data visualization tool Gephi. We will apply this to real data coming from queerphobic trends from Twitter Spain. We will use the tools to identify community strategies for public associations and individuals to react to transphobic attacks on media.

Our tools are available on GitHub: https://github.com/atenea-medran/how-to-analyze-twitter

The workshop will be geared towards teachers, researchers, acacdemics and students who want to learn data analysis tools and apply them to social problems.

Context for this workshop:

In recent years, anti-LGTBQIA+ rhetoric has skyrocketed worldwide. In Spain, this has manifested as a surge of transphobic hate speech, with trans-exclusionary feminists (TERF) groups and politicians being linked to this rise. Anti-trans groups import conservative narratives from international media. They use arguments of legal uncertainty about the guarantees of trans-rights legislation for women's safety to spread anti-LGBTQIA+ messages. Spanish TERF agents have links to international transphobic actors and have publicly collaborated with far-right forces. It is established that anti-trans hatred is used as a gateway for hate to the broader LGBTQIA+ community.

Social networks are a key tool to spread hate-speech. Their usage by alt-right groups to disseminate hatred is well-known.

The organizers form part of a small research group investigating these issues. We have presented our research work in PyConES 2022 in Granada, as well as MariCorners 2023 Madrid.

With the software tools we will teach, we have provided evidence that TERF groups make use of the social network Twitter to disseminate transphobic hatred. We were able to identify highly-connected transphobic echo chambers in Twitter Spain: we can characterize connections between TERF accounts, communication patterns used to spread transphobic messages, and key wedge issues used in anti-trans rhetoric. Our work revealed that TERF Twitter accounts frequently astro-turf transphobic Twitter trends to attack trans rights in media.

Related talk: https://www.eitb.eus/es/divulgacion/videos/detalle/8160118/video-como-enfrentarnos-a-discursos-antilgtbiq-desde-ciencias/

Data Engineering
Salón Grados
15:30
90min
Humble Data Workshop con PyConES23
Laís Carvalho, Valery C. Briz

Aprende Python para ciencia de datos con este taller para principiantes

¿Te gustaría aprender a programar pero no sabes por dónde empezar? Dar los primeros pasos en la programación puede parecer una tarea imposible, razón por la que existe la organización de este taller para mostrar a aproximadamente 30 principiantes cómo se puede hacer y compartir nuestra pasión por el mundo de la ciencia de datos.

“Queremos que nuestra comunidad sea más diversa: sin importar quien sea y cual sea su origen, le damos la bienvenida”. – Declaración de diversidad de Python Software Foundation.

Invitamos a aquellas personas de grupos subrepresentados a postularse para unirse a nosotros el 6 de octubre de 2023 en La Laguna - Tenerife - Las Canarias - Humble Data Workshop. En este taller, aprenderás los conceptos básicos de programación en Python, así como también cómo usar herramientas como Jupyter Notebook para analizar datos.

Aprenderás en grupos pequeños, cada uno con un mentor asignado para guiarlo a través de los materiales del taller y responder sus preguntas. Todo esto será facilitado en línea a través de las maravillas de la tecnología moderna. Puedes esperar muchos ejercicios, cuestionarios y juegos; y charlas inspiradoras de quienes alguna vez estuvieron en su lugar.

¿Quién puede unirse?

  • Como aprendiz: Cualquier persona que desee asistir y no tenga conocimientos básicos.
  • Como mentor(a): Cualquier persona que desee ayudar a enseñar y tenga conocimientos de ciencia de datos y Python de nivel medio a avanzado.

¿Qué necesito llevar?

Necesitarás un ordenador. Puede haber una fiesta de preparación por adelantado, los detalles se anunciarán pronto. Nuestros mentores pueden ayudarlo a configurar su computador el mismo día del taller o en la fiesta de instalación.

¿Qué necesito saber?

Si no tienes experiencia en programación, ¡este taller está hecho para ti! Si ya tienes algo de experiencia pero eres nueva(o) en Python, también lo tenemos cubierto: los materiales están diseñados para que las personas participantes progresen a través de los materiales a su propio ritmo.

¿Cómo es esto posible?

Este taller está a cargo de científicos de datos e ingenieros de software dedicados al espíritu del código abierto. Todos los días nos beneficiamos del arduo trabajo de otros cuando usamos herramientas abiertas y gratuitas. Esta es nuestra forma de retribuir.

Software packages
Room 0.7
15:30
90min
Observing your python applications
Chioma Onyekpere

You've deployed your python app, you sit back and wait for all the users to come and enjoy it, but wait how will you know what is happening 🤔

Observability is an important part of operating a deployed service. This workshop will help you get started with instrumenting your application with metrics, scraping and storing them in a time series database and finally building dashboards.

Starting with a small python application we will first add metrics, expose them and then show participants how they can capture these in a time series database like prometheus. Lastly we will walk participants through building a metrics dashboards. Along the way we will discuss what makes a meaningful metric and why having observeability is so important.

Prerequisites

For this workshop you will need Python 3.10, Poetry, Docker and Docker Compose running on your machine. (on mac os docker-compose is by default installed with Docker)

Experience Level

Basic to Intermediate

Sys / DevOps / Tests / Agile
Room ESA01
17:15
17:15
30min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Room 0.2
17:15
30min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Room 0.3
17:15
30min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Room 0.7
17:15
30min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Salón Grados
17:15
30min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Room ESA01
17:15
30min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Room ESA02
17:45
17:45
90min
AI un mensaje oculto para ti: Taller de esteganografía con IA
Edgar Pérez Sampedro, Javier Jiménez

En este taller, los participantes tendrán la oportunidad de conocer el papel de la Inteligencia Artificial en la Ciberseguridad, más concretamente, en la rama de la esteganografía. Para ello, implementaremos dos Redes Neuronales con el objetivo de ocultar y descubrir una imagen dentro de otra.

Al final del taller, los participantes habrán creado un modelo de esteganografía (basada en CNNs) y aprenderán cómo explotar los resultados de un modelo entrenado a través de una API (productivización), teniendo una comprensión más profunda de cómo la inteligencia artificial puede utilizarse para mejorar la seguridad de la información y cómo explotar dichos resultados.

Deep Learning
Room ESA02
17:45
90min
Building an End-to-End Open-Source Modern Data Platform for Biomedical Data
Alberto Labarga

Data engineering has experienced enormous growth in recent years, allowing for rapid progress and innovation as more people than ever are thinking about data resources and how to better leverage them. In this tutorial, we will build an end-to-end modern data platform for the analysis of medical data using open-source tools and libraries.

We will start with an overview of the platform components, including data warehousing, data integration, data transformation, data orchestration, and data visualization. We will then dive into each component, exploring the technologies and tools that make up the platform.

We will review Python-based tools such as DBT, Apache Airflow, Openmetadata, and Querybook to build the platform. We will walk through the process step-by-step, from creating a data lake to integrating data from multiple sources, transforming the data, orchestrating data workflows, and visualizing the data.

Attendees will benefit from this tutorial if they are interested in learning how to build an end-to-end modern data platform for biomedical data using Python-based tools. They will also benefit from learning about the open-source tools and libraries used in the tutorial, which they can then apply to their own data engineering projects.

Time breakdown:

Introduction and overview (20 minutes)
Data integration (20 minutes)
Data transformation (20 minutes)
Data visualization (20 minutes)
Q&A (10 minutes)

Check the workshop materials https://github.com/bsc-health-data/pycones-23-modern-data-stack and install the requirements in advance for a better experience

Data Engineering
Salón Grados
17:45
90min
Django Girls

Taller de Django Girls enfocado a grupos minoritarios en tech.

Django Girls is a non-profit organization and a community that empowers and helps women to organize free, one-day programming workshops by providing tools, resources and support. We are a volunteer run organization with hundreds of people contributing to bring more amazing women into the world of technology. We are making technology more approachable by creating resources designed with empathy.

During each of our events, 30-60 women build their first web application using HTML, CSS, Python and Django.
Since 2014, an army of 2370 volunteers in the Django Girls community organized 1072 events. We've been to 581 cities in 108 countries
A total of 23292 incredible women attended events organized by members of our community.

Web
Room 0.2
17:45
90min
Humble Data Workshop con PyConES23

Aprende Python para ciencia de datos con este taller para principiantes

¿Te gustaría aprender a programar pero no sabes por dónde empezar? Dar los primeros pasos en la programación puede parecer una tarea imposible, razón por la que existe la organización de este taller para mostrar a aproximadamente 30 principiantes cómo se puede hacer y compartir nuestra pasión por el mundo de la ciencia de datos.

“Queremos que nuestra comunidad sea más diversa: sin importar quien sea y cual sea su origen, le damos la bienvenida”. – Declaración de diversidad de Python Software Foundation.

Invitamos a aquellas personas de grupos subrepresentados a postularse para unirse a nosotros el 6 de octubre de 2023 en La Laguna - Tenerife - Las Canarias - Humble Data Workshop. En este taller, aprenderás los conceptos básicos de programación en Python, así como también cómo usar herramientas como Jupyter Notebook para analizar datos.

Aprenderás en grupos pequeños, cada uno con un mentor asignado para guiarlo a través de los materiales del taller y responder sus preguntas. Todo esto será facilitado en línea a través de las maravillas de la tecnología moderna. Puedes esperar muchos ejercicios, cuestionarios y juegos; y charlas inspiradoras de quienes alguna vez estuvieron en su lugar.

¿Quién puede unirse?

  • Como aprendiz: Cualquier persona que desee asistir y no tenga conocimientos básicos.
  • Como mentor(a): Cualquier persona que desee ayudar a enseñar y tenga conocimientos de ciencia de datos y Python de nivel medio a avanzado.

¿Qué necesito llevar?

Necesitarás un ordenador. Puede haber una fiesta de preparación por adelantado, los detalles se anunciarán pronto. Nuestros mentores pueden ayudarlo a configurar su computador el mismo día del taller o en la fiesta de instalación.

¿Qué necesito saber?

Si no tienes experiencia en programación, ¡este taller está hecho para ti! Si ya tienes algo de experiencia pero eres nueva(o) en Python, también lo tenemos cubierto: los materiales están diseñados para que las personas participantes progresen a través de los materiales a su propio ritmo.

¿Cómo es esto posible?

Este taller está a cargo de científicos de datos e ingenieros de software dedicados al espíritu del código abierto. Todos los días nos beneficiamos del arduo trabajo de otros cuando usamos herramientas abiertas y gratuitas. Esta es nuestra forma de retribuir.

Software packages
Room 0.7
17:45
90min
Lo que un lector de pantalla te puede enseñar sobre la depuración remota en Python
Ramón Corominas

El lector de pantalla NVDA es una aplicación Python empaquetada mediante Py2exe junto con algunas extensiones en C++ para acceder al sistema a bajo nivel y mejorar el rendimiento. Sus funcionalidades pueden extenderse mediante complementos que también se escriben en Python, por lo que es importante disponer de alguna forma de depurar el código tanto de los complementos como del núcleo de la aplicación.

Sin embargo, depurar código que se está ejecutando en un entorno empaquetado o embebido es una tarea complicada, especialmente si eres un programador con discapacidad visual y estás tratando de depurar tu propio lector de pantalla, pues alcanzar un breakpoint significa, literalmente, ¡congelar la herramienta de la que dependes para usar el ordenador!

En este taller explicaré cómo hice frente a este problema usando la librería debugpy de Microsoft para la depuración remota de Python. Primero resumiré el problema original y por qué no es posible usar la depuración «normal»; y luego veremos cómo aplicar esta técnica a un ejemplo simplificado de aplicación empaquetada con Py2exe, un aprendizaje que servirá también para cualquier otro entorno embebido independientemente del lenguaje anfitrión en el que está programada la aplicación principal.

Empezaremos con las nociones básicas de depuración local y poco a poco iremos viendo todo lo que hay que tener en cuenta al empaquetar la aplicación y preparar nuestros scripts para permitir la depuración remota, así como la creación de los distintos perfiles de depuración en Visual Studio Code.

Importante: si tú también quieres hacer los ejercicios que enseñaré durante el taller, asegúrate de tener instalado git (para clonar el repo), Python 3.7 o superior y Visual Studio Code con la extensión de Python.

Si nos sobra tiempo también me gustaría explorar otras posibilidades que ofrece esta técnica, como depurar Python embebido en programas cuyo lenguaje principal no es Python, o corriendo en otros sistemas operativos distintos a aquel en el que usamos VSCode.

Other
Room 0.3
17:45
90min
Utilizando LLMs como nuevo paradigma de programación
Jacinto Arias

“Escribe el abstract de un workshop donde expliquemos a la comunidad de desarrolladores de python España cómo pueden aprovechar los LLMs para escribir mejor código o automatizar sus tareas. Especialmente qué técnicas se han popularizado para escribir mejores prompts y qué librerías de python son las más utilizadas para integrar estos modelos”

Esto es lo que le podría haber pedido a ChatGPT para ahorrarme el esfuerzo de escribir este abstract, o lo que le podrías escribir tú para quedarte en tu casa y ahorrarte venir a esta conferencia.

¿Entonces qué hacemos aquí? ¿Hemos venido solo para presumir después del loot y tener una excusa de ir a la playa en horario laboral? Puede ser por eso, o porque también crees que detrás de toda esta revolución de la IA se esconde una nueva oportunidad para el mundo del desarrollo de software.

En este workshop interactivo me gustaría presentar y debatir la idea de que los LLMs presentan un nuevo paradigma en la manera de resolver problemas utilizando software. El código que escribimos no deja de ser una manera de proporcionarle instrucciones a un procesador, el Machine Learning es un nuevo lenguaje, un paradigma que por primera vez nos permite representar instrucciones a modo de ejemplos.

Combinemos nuevas arquitecturas, técnicas de prompting y modelos de vanguardia para crear la nueva generación de productos, busquemos como siempre la manera de diferenciarnos y aportar un valor añadido gracias a nuestros conocimientos como desarrolladores.

Durante la sesión hablaremos de todos estos conceptos y los pondremos en práctica explorando el diseño conceptual y las capacidades de la librería langchain, que tanto se ha popularizado entre la comunidad este último año. Construiremos juntos algunas de las recetas más interesantes y hablaremos de las experiencias que hemos tenido al tratar de llevar a producción estos entornos, en un mundo donde el testing y el QA de nuestro código toman una nueva dirección.

No necesitas conocimientos específicos de Machine Learning para seguir esta sesión, ni preparar ningún entorno específico, tan solo una API Key de OpenAI si quieres reproducir los ejemplos que tenemos preparados.

PD: Os prometo que no he utilizado un LLM para escribir este abstract, ¡Aunque me ha costado muchísimo! Intento mantener la plasticidad de mi cerebro, aunque eso os lo cuento en otra conferencia…

Machine learning, stats
Room ESA01
08:30
08:30
75min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Bollullo (Aula Magna)
08:30
75min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Patos (Room 0.4)
08:30
75min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Fañabe (Room 0.5)
08:30
75min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Tejita (Room 1.9)
08:30
75min
Apertura del evento | Acreditaciones

Apertura del evento. Los participantes pueden recoger sus acreditaciones.

Event start. The participants may acquire their badge.

Antequera (Room 1.10)
09:30
09:30
30min
Bienvenida PyConES23

Diferentes sorpresas antes de que empiecen las charlas.

Multiple surprises before the talks start.

Bollullo (Aula Magna)
10:00
10:00
45min
Keynote: El Señor de las Palabras : los Dos Frameworks
Gema Parreño

La charla titulada "El Señor de las Palabras" es un fascinante viaje al corazón de la arquitectura de Transformers, uno de los avances más significativos en el campo del procesamiento del lenguaje natural (NLP) en los últimos años. Aprenderemos a traves de la comparación entre los dos principales frameworks de aprendizaje profundo, TensorFlow y PyTorch, en el contexto de la implementación de la librería de Transformers de HuggingFace . Ademas, nos sumergimos en el viaje que ha llevado esta exploración a traves de contribuciones Open Source. Te gista el Señor de los Anillos? No te pierdas esta charla con un montón de Lore!

Bollullo (Aula Magna)
10:45
10:45
25min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Bollullo (Aula Magna)
10:45
25min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Patos (Room 0.4)
10:45
25min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Fañabe (Room 0.5)
10:45
25min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Tejita (Room 1.9)
10:45
25min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Antequera (Room 1.10)
11:15
11:15
35min
Malware en Pypi
Marta Gomez

La presencia de paquetes maliciosos en Pypi se ha incrementado desde hace un tiempo, hasta el punto en el que Pypi tuvo que suspender la subida de nuevos paquetes durante un día y ha habido numerosas noticias y charlas en conferencias al respecto.

En esta charla haremos un repaso de varios de estos paquetes maliciosos, analizando cómo se ofuscan para que sea más difícil detectarlos, qué funcionalidad maliciosa implementan (robo de credenciales, miners, robo de cookies, meter direcciones de bitcoin en el clipboard de la víctima...), cómo lo hacen para evitar ser detectados por analistas de seguridad y herramientas de análisis dinámico y cómo podemos detectarlos automáticamente con YARA.

Network and Security
Bollullo (Aula Magna)
11:15
35min
Survival of the fittest: usando el paquete inspyred para entrenar IAs que juegan a videojuegos
Pablo García Sánchez

Los videojuegos son un campo de pruebas apasionante para el estudio de la Inteligencia Artificial. Debido a que son entornos dinámicos, complejos, con interacción persona/ordenador rica, y que además proporcionan una gran cantidad de datos, podemos aplicar una gran variedad de técnicas vanguardistas de IA, ya sea para jugar al juego, para crear contenido, o para modelar a las personas que lo juegan.

En concreto, la creación de agentes que juegan a videojuegos es un ejemplo de problema muy difícil de resolver, pero el uso de Algoritmos Evolutivos (AEs) se ha demostrado como una técnica muy competente. Los AEs son algoritmos de optimización que simulan la teoría de la selección natural: las soluciones compiten entre sí, las más exitosas se reproducen y pasan sus mejoras a la siguiente generación.

En esta charla introduciremos distintas técnicas de IA usadas en el ámbito de la investigación en videojuegos y nos centraremos en los algoritmos evolutivos y algunas de sus variantes, como los Algoritmos Genéticos, la Programación Genética o las Estrategias de Evolución. Usaremos el paquete "inspyred" como ejemplo, ya que tiene una curva de aprendizaje más asequible para ver lo fácil que es crear tu primer EA, y lo integraremos con algún videojuego, como Hearthstone, para comprobar cómo puede generar agentes tan competentes que incluso pueden ganar competiciones de IA.

Videogames and design
Patos (Room 0.4)
11:15
35min
The Art of the Pull Request
Ben Lomax

Want to be a better teammate? Want to get your work merged faster?

For a lot of devs (especially newer ones) the important part of a PR is the code, not the PR itself. However, the way commits in a PR are put together to guide another dev through the review can be massively impactful. This talk looks at how to effectively craft that review experience.

Aims of a PR

At a superficial level, the aims of a PR are to get code checked for bugs, and to allow it to get merged and deployed. On a deeper level, it's also where a lot of mentoring and learning happens. I will make the argument that both of these are massively improved by ensuring one thing: the PR is crafted for the convenience of the reviewer.

Specific tips

I'll then look at some of the specific processes and tips that I've found most useful when putting together PRs. These include creating modular commits, laying the groundwork at the start of the PR, how to best comment the code, using conventions and automatic formatters, and reviewing your own PRs.

Dealing with feedback

Finally I'll look at how to deal with feedback. This will touch on both the human aspect of getting feedback, as well as how to best show changes made in response to comments.

Core
Antequera (Room 1.10)
11:15
35min
Trascendiendo el Hype: La realidad de la IA en las empresas
Dácil Hernández

Está por todas partes, la inteligencia artificial aquí y allá. Para muchos la IA se considera la última revolución industrial y su impacto potencial se compara con avances tecnológicos históricamente significativos como la rueda, el motor a vapor, el ordenador e Internet.

En los negocios, ¿se trata de un campo de juego nivelado?

Los gigantes globales (Meta, Google, Microsoft) tienen los recursos para construir una plataforma tecnológica sólida y aprovechar el poder del Big Data para liberar todo el potencial de la IA. Para mantener el ritmo, organizaciones de menor tamaño deben ser creativas, trabajar dentro de sus limitaciones y planificar cuidadosamente cómo implementar proyectos de Inteligencia Artificial.

Dacil Hernández, Directora de Data e IA en Nagarro compartirá su experiencia y la ecuación del éxito para que una empresa pueda sobrevivir en este nuevo escenario.

Sponsor
Fañabe (Room 0.5)
11:15
35min
Yo me lo guiso, yo me lo como: creando software para gestionar y realizar un evento de 2000 personas
Mario Montes

8 ediciones de T3chFest (https://t3chfest.es/) (el evento sobre tecnología gratuito celebrado en la UC3M) dan para mucho: montar un evento para +2000 asistentes presenciales, +100 ponentes internacionales y +15000 reproducciones en streaming no es tarea sencilla.

Como ingenieros con los años hemos ido desarrollando sistemas para automatizar todo lo posible: la gestión de ponentes y la agenda en nuestra web, bots de Telegram para organizar a voluntarios, sistemas de información serverless en pantallas repartidas por el evento, automatización de los rótulos del streaming, bots de Slack, posts en redes sociales con Lambdas, etc.

En esta charla os contaré algunas de estas ideas que tanto nos facilitan el trabajo mencionando también las tecnologías implicadas (sí, usamos Python :D).

Community, society and culture
Tejita (Room 1.9)
12:15
12:15
35min
Generative AI = Huge Opportunities. ¡Desarrolladores, es la hora de brillar!. Aprende a construir un modelo especializado Llama-2 para resolver tareas reales.
Luis San Roman

Generative AI está viviendo un "momento iPhone". Las grandes empresas, gobiernos e inversores quieren sacar partido de esta tecnología. Para los desarrolladores esto supone un océano de oportunidades.

En esta sesión técnica en PyConES, exploraremos los entresijos de la construcción de un modelo especializado basado en Llama-2 utilizando las técnicas avanzadas y metodologías necesarias.
- Cómo enfocar la resolución de tareas con modelos como Llama-2.
- Ofrecer un tutorial avanzado sobre cómo hacer un fine-tuning de un modelo Llama-2 utilizando optimizadores que hacen viable la construcción del modelo especializado.
- Profundizar en la naturaleza empírica de Generative AI. Diseñar pruebas y métricas, y convertir el proceso de construcción en un proceso iterativo.

La presentación está dirigida a profesionales, desarrolladores, investigadores y entusiastas en Inteligencia Artificial (AI).

Sponsor
Tejita (Room 1.9)
12:15
35min
Prosperar en entornos homogéneos siendo "diversidad"
Raquel Lainde

En este taller práctico y vivencial trabajaremos estrategias, tácticas y herramientas concretas que permitan a personas que habitualmente son minusvaloradas en el entorno laboral crecer profesionalmente con el menos costo personal posible.
También son bienvenidos al taller quienes deseen construir equipos y empresas más inclusivas. Podrán entender mejor qué obstáculos enfrenta "la diversidad" y así colaborar eficazmente en hacer menos discriminatorios algunos de los procesos clave en sus áreas de influencia.
Se ofrecerá un marco teórico introductorio, trabajaremos de forma grupal y, finalmente, ofreceremos recursos específicos para la reflexión individual y para la modificación estructural de conductas y patrones "en el mundo real" que puedan implementarse de forma inmediata.

Community, society and culture
Fañabe (Room 0.5)
12:15
35min
Revolucionando Telegram: Creando bots inteligentes con OpenAI
Sara, Christian

¿Estás cansado de leer mensajes largos? ¿O de los audios interminables? Imagina tener un bot que pudiera transcribirlos rápidamente sin apenas errores y que, además, te diese un resumen de los puntos más importantes de lo que se hablan. ¡Pues se puede y en esta charla veremos cómo de principio a fin!

Para ello, desarrollaremos un bot en Telegram paso a paso usando los últimos modelos de Open AI y librerías de Python para Telegram. No hace falta ser un experto en inteligencia artificial, en nuestra charla te guiaremos paso a paso, proporcionándote consejos prácticos para aprovechar al máximo estos modelos.

Si deseas aprender a llevar tus bots de Telegram a un nivel superior, esta es tu charla. ¡No pierdas la oportunidad de ser parte de esta emocionante evolución en la inteligencia artificial y la mensajería! ¡Te esperamos!

Deep Learning
Patos (Room 0.4)
12:15
35min
Scraping sin hacer scraping
Xoel López Barata

El scraping "bueno" tiene más de reverse engineering que de selectores CSS. En esta charla veremos técnicas para hacer scraping y evitar ser detectados que uso o he usado en mi actual trabajo en theirstack.com o en anteriores trabajos. Por ejemplo:
- Por dónde empezar. Ética, robots.txt y sitemaps
- Cómo encontrar la documentación de una API que no es pública.
- Cómo obtener datos de motores de búsqueda
- Por qué ponernos contentos cuando vemos un scroll infinito
- Cómo seguir usando la API de Twitter sin pagar
- Cómo evitar que bloqueen nuestra IP
- Cómo saltarnos sistemas antibot como Datadome y similares
- Qué tipos de proxies existen
- Cómo obtener API keys descompilando aplicaciones móviles
- Por qué sistemas como Algolia son muy interesantes
- Cómo usar GraphQL introspection para ver qué datos podemos sacar
- Cómo montar nuestro propio proxy móvil

Los slides de la charla se pueden ver en https://bit.ly/pycones-scraping

Data Engineering
Bollullo (Aula Magna)
12:15
35min
Untangle Python Spaghetti - Deep dive into environments and dependencies management
Cheuk Ting Ho

After learning doing in Python, we started multiple Python or Data Science projects. Dependency management becomes a skill that we need to avoid requirement conflicts amount projects. In this talk, we will learn how dependencies management tools work and how to choose the right one to use.

In this talk, we will use venv, the environment managing tool that come with CPython, and conda, the tool that is popular among data science partitioners to decipher how environment and dependency management works. First, we will go through some basic knowledge of how Python "sees" your package and know where to import them when needed. Then, we will make the audience aware that, to avoid the requirement conflict amount different projects, we need a new set of environments for each project.

Then, we will see how tools like venv and conda can create a new set of environments. We will cover both the practical aspect - how to use the tools and which one to use, and the theoretical aspect - the inner working of the tools and why they are different. This will make the audience get familiar with some tools that are at their disposal and inspire them to start using them for their work.

This talk is for beginner Pythonistas or data scientists who started to use Python professionally and those who are curious to know how the environment and dependency management tools work.

Software packages
Antequera (Room 1.10)
13:00
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Bollullo (Aula Magna)
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Patos (Room 0.4)
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Fañabe (Room 0.5)
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Tejita (Room 1.9)
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Antequera (Room 1.10)
14:30
14:30
35min
Copyright e IA Generativa. ¿Qué nos espera?
Elen Irazabal

La conferencia sobre IA Generativa y Copyright abordará los desafíos y perspectivas futuras en el campo de la Inteligencia Artificial (IA) generativa en relación con el copyright. ¿Será posible utilizar estos datos sin infringir derechos de autor, o permanecerán inaccesibles y limitarán el desarrollo de la IA generativa? Este cuestionamiento plantea un reto crucial que exige un examen a fondo de las implicaciones legales y éticas involucradas a raíz de la nueva norma propuesta por la Unión Europea, la IA Act. También exploraremos la compleja cuestión de si es factible proteger el output de la IA generativa. Examinaremos los conceptos de autoría y originalidad en el contexto de los resultados y productos generados por IA y su posible elegibilidad para la protección legal del copyright.

Ethics in AI
Patos (Room 0.4)
14:30
35min
Explicando el sistema de un vehículo autónomo con Python
Jesus Armando Anaya

En los últimos años, hemos visto el crecimiento de compañías enfocadas al desarrollo de vehículos autónomos, desde coches comerciales, como es el caso de Tesla, hasta pequeños robots de entrega de alimentos. Al ver estos grandes proyectos podría pensarse que la lógica detrás de un sistema informático para controlar este tipo de robots es muy complicada. En esta charla vamos a desmitificar un poco el funcionamiento de esta clase de sistemas, aprenderemos sobre algunas tendencias en cuanto a frameworks de robótica como ROS2, y como es que se comunican los distintos sensores del vehículo para lograr la conducción autónoma. Todo desde un punto de vista de ingeniería de software enfocada a trabajar con nodos de comunicación en tiempo real. Y por supuesto, todos los ejemplos escritos en Python.

SW Engineering & Architecture
Tejita (Room 1.9)
14:30
35min
Instrumentando aplicaciones Python con OpenTelemetry
Israel Blancas

OpenTelemetry proporciona un estándar único de código abierto y un conjunto de tecnologías para capturar y exportar métricas, seguimientos y registros desde tu infraestructura y aplicaciones nativas de la nube. Es un proyecto open source. Además, es el más utilizado de la industria para la instrumentación de aplicaciones.

¿Por qué deberías aprender a instrumentar tu código?: imagina un sistema con muchos microservicios, corriendo cientos de instancias de cada uno. Algo empieza a fallar el sistema se viene abajo. ¿Qué ha pasado? ¿Por qué? ¿Cuándo empezó a fallar?

Durante esta sesión repasaremos algunos conceptos relacionados con la observabilidad y aprenderemos a hacer que una aplicación de ejemplo sea observable (utilizando metodologías manuales y automáticas).

Tanto si eres Site Reliability Engineer como si eres Developer, esta charla te interesa.

Sys / DevOps / Tests / Agile
Bollullo (Aula Magna)
14:30
35min
Real Time Vectorized DataSets under 30 minutes
Justo Ruiz Ferrer

In our roles as Data Scientists or Data Engineers, we are delivering complex solutions for searching, recommendation engines or data extraction pipelines over complex data sets that expands the traditional data formats, as we incorporate all sorts of information generated by our clients and businesses.

This is a Show and Tell session where you would learn how to construct an AI powered database with real time ingestion capabilities under 30 minutes using Python and your own or public AI models.

The session will use Shapelets REC software stack and public AI models hosted in HuggingFace to create a real time repository of complex data (images, recordings, text, etc...) and an example of an application querying the repository with millisecond response times.

Sponsor
Fañabe (Room 0.5)
14:30
35min
The wheelhouse of horrors
Laszlo Kiss Kollar

You might be surprised to learn that, besides naming and cache invalidation problems, building a binary wheel for a Python extension is one of the hardest problems in computer science. Or more precisely, building that binary wheel correctly. Lucky for us, a few amazing community-led projects hide all that complexity from us, so we can instead focus on shipping and using Python code.

One of Python's strong suits is its ability to use native C and C++ code, which is a big reason why it’s the number one language for date science and machine learning applications. However, distributing native code in Python libraries is far from trivial: subtle issues in the build process can result in runtime issues that are extremely difficult to track down.

This talk will showcase some notable examples of how things can go wrong, while also helping users and maintainers recognise these typical error scenarios. We will learn how to avoid these issues and what users can do when they encounter such issues when using a library.

The audience will learn about the manylinux standard and its role in standardizing Linux platform wheels. We will also take a look at the cibuildwheel project, which offers library authors a simple solution to automate the building and distribution of manylinux wheels.

Software packages
Antequera (Room 1.10)
15:30
15:30
35min
Desentrañando el código: La magia de la instrumentación en Python
Fede

A medida que nuestros programas en Python aumentan en complejidad, también lo hacen los problemas que nos encontramos: desafíos en el código que no se ven a simple vista, bugs extraños que pasamos días depurando o problemas de rendimiento que no son evidentes.

Para poder indagar a fondo en estos problemas y saber qué está ocurriendo con nuestro código o incluso para escribir tests en los que reproducir estos casos, vamos a necesitar herramientas que parecen mágicas. La mayoría de estas herramientas usan técnicas de instrumentación de código.

En esta charla veremos qué es la instrumentación de código, las principales técnicas de instrumentación que tenemos disponibles en Python, como el monkey patching, AST patching o bytecode patching, así como las librerías más usadas para conseguir una instrumentación robusta y fiable. Finalmente veremos un par de ejemplos prácticos donde la instrumentación nos permite depurar nuestro código o medir los tiempos de ejecución.

El objetivo final de la charla es que entendamos cómo funciona la instrumentación de código y por tanto las herramientas que se basan en este principio, y dejen de parecernos magia fuera de nuestro alcance.

Core
Bollullo (Aula Magna)
15:30
35min
Generación sintética de imágenes para detección y segmentación
Miguel Sánchez Novo

La generación sintética de imágenes es un campo en rápido crecimiento en el mundo de la inteligencia artificial, que juega un papel crucial en la detección y segmentación de imágenes. A medida que los conjuntos de datos naturales se vuelven cada vez más difíciles de obtener debido a problemas de privacidad, costos y tiempo, la generación sintética de imágenes proporciona una solución prometedora, generando datos realistas y ricos en variedad para el entrenamiento de modelos de aprendizaje profundo.

El desafío principal en la detección y segmentación de imágenes radica en la escasez de datos de entrenamiento anotados de alta calidad. Aquí es donde la generación sintética de imágenes juega un papel crucial, ya que puede generar un número infinito de imágenes de entrenamiento etiquetadas automáticamente, evitando los costes y el tiempo asociados a la anotación manual.

Estas imágenes generadas sintéticamente pueden cubrir una amplia gama de escenarios, objetos y condiciones que podrían no estar presentes en los conjuntos de datos de entrenamiento existentes. Esta diversidad mejora la robustez de los modelos de detección y segmentación de imágenes, permitiéndoles manejar situaciones más variadas y complejas.

Además, las imágenes generadas sintéticamente pueden ser utilizadas para la detección y segmentación de objetos raros o anómalos, situaciones en las que los datos reales podrían ser excepcionalmente escasos. Por lo tanto, la generación sintética de imágenes puede ser un recurso invaluable para mejorar el rendimiento de los modelos de computer vision en una variedad de aplicaciones.

En conclusión, la generación sintética de imágenes abre nuevas vías para superar los desafíos en la detección y segmentación de imágenes, principalmente en términos de escasez de datos y diversidad de situaciones.

Deep Learning
Tejita (Room 1.9)
15:30
120min
Hackathon, by Bluetab

Hackathon patrocinada por Bluetab

Fañabe (Room 0.5)
15:30
35min
Machine Learning en el sector portuario con Python
Edelmín, María del Socorro García Román

El uso de tecnologías habilitadoras, como Internet de las Cosas (IoT), Big Data o el Machine Learning, entre otras, se han comenzado a emplear en el sistema portuario como factores clave de la tendencia actual de los puertos hacia la búsqueda de la excelencia a través de la competitividad. Estos habilitadores permiten el intercambio de información de alto valor añadido, en tiempo real, entre los diferentes agentes que operan en el ecosistema portuario.

Uno de los principales problemas en los que se está trabajando en el sector portuario a nivel global es el cálculo de una mejor aproximación del tiempo estimado de llegada de un buque a un puerto (Estimated Time to Arrival, en adelante, ETA). Actualmente, hay una primera aproximación que es facilitada por el consignatario a la Autoridad Portuaria del puerto de destino y, aunque es obligatorio que el ETA se actualice a lo largo del viaje (ETA dinámico), en la práctica apenas se hace.

Disponer del ETA dinámico tiene una gran relevancia tanto para las Autoridades Portuarias, como para todos los agentes del ecosistema portuario que dan servicios a los buques durante las escalas. Los recursos y los espacios del puerto son limitados, por lo que es de vital importancia tener una planificación de las llegadas y salidas para movilizar a los agentes y operarios necesarios en las maniobras de los buques de forma óptima. Por esto, contar con un modelo para conocer el ETA dinámico, con un horizonte lejano, permite mejorar la eficiencia de la planificación y habilita la toma de decisiones en tiempo real.

La obtención del ETA dinámico permite a la Torre de Control realizar una gestión “Just in time”, facilitándole al buque una nueva hora de llegada pudiendo éste adaptar su velocidad. Con ello se evitan esperas innecesarias y maniobras de fondeo, repercutiendo positivamente en el coste de los servicios de la escala, consumo de combustible y en la huella de carbono.

En la charla se explicará cómo se ha creado el modelo predictivo de Machine Learning para el cálculo del ETA dinámico. Se expondrán los desafíos encontrados en la manipulación de los datasets empleados y cómo se afrontaron con el apoyo de las librerías como Pandas, Folium y MatPlotLib de Python, entre otras. Finalmente, se hablará de la metodología empleada para la resolución del cálculo del ETA, los resultados obtenidos hasta el momento y las librerías de Python que los hicieron posible.

Machine learning, stats
Patos (Room 0.4)
15:30
35min
The coding conventions that makes our lives easier
Çağıl Uluşahin Sönmez

Engineers review code as often as they write it and use a lot of tools to improve this process, such as linters and auto-formatters. One tool that is also very useful is coding conventions. It is a collection of references that can be used during code reviews while also serving as a valuable day-to-day reference and guide for the entire team.

This talk will explore several different conventions from the open-source conventions repository, offering an in-depth exploration of how they improve the quality of the codebase and serve as a tool for knowledge transfer among engineering teams.

The structure of the talk will follow:

  • What are coding conventions, and why do we use them?

  • Examples of some of the most useful coding conventions and how they enhance code quality.

  • How to establish your own coding conventions?

  • How to uphold your coding conventions with the help of linters?

Attendees will leave with a comprehensive understanding of the concept of coding conventions and how to implement them within their own team.

Software packages
Antequera (Room 1.10)
16:15
16:15
20min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Bollullo (Aula Magna)
16:15
20min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Patos (Room 0.4)
16:15
20min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Tejita (Room 1.9)
16:15
20min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Antequera (Room 1.10)
16:45
16:45
35min
Durango: Hablamos de hardware retro usando Python
Victor Suarez

Muchos Recordamos la revolución del home computer con ordenadores como el famoso comodore 64 o Spectrum. Pero... que ocurre si usamos python en un ordenador de estas características.

Presentaremos el proyecto Durango un ordenador de 8 bits con tecnología actual; ayudándonos con herramientas actuales pero basándonos en la tecnología de la época; y sobre todo veremos como hemos podido crear un pequeño interprete de Python, que llamamos nanopython. Acércate a esta charla con sabor retro pero con un toque moderno.

No te preocupes si quizás no eres experto ya que esta charla esta pensada para que cualquiera pueda aportar a un proyecto libre y colaborativo.

Microcontrollers and IoT
Tejita (Room 1.9)
16:45
35min
GAN’s and Roses – redes generativas para iniciados
Ricardo Fernández Jiménez, Carlos Alberto Gomez Gonzalez

¿Te suena la palabra “deepfake” o modelos como Midjourney y DALLE-2 entre otros? Si en estos últimos años no has vivido en una cueva, seguramente te suenen, ¿pero sabes realmente que son? Si eres de los curiosos que buscan ir un paso más allá, esta es tu charla.

Durante los últimos años, la popularidad de los modelos generativos, especialmente las Redes Generativas Adversarias (GANs) ha crecido exponencialmente, despertando tanto interés como temor. A parte de para calmar nuestra curiosidad por esta nueva tecnología ¿Cómo podemos aprovechar los datos sintéticos generados por estos modelos?

En esta charla, exploraremos las bases de las GANs y revisaremos los diferentes tipos que existen según el caso de uso y los datos disponibles. Utilizando ejemplos reales, te mostraremos cómo estas potentes herramientas pueden sustituir (hasta cierto punto) datos reales en situaciones donde la privacidad sea clave o la obtención de nuevas muestras sea costosa en términos económicos o de otros recursos. Finalmente, hablaremos sobre los modelos de difusión y el futuro de los modelos generativos.

Machine learning, stats
Bollullo (Aula Magna)
16:45
35min
LiveView, un enfoque moderno de desarrollo Web
Andros Fenollosa

El enfoque de LiveView, o HTML sobre WebSockets, simplifica el desarrollo de aplicaciones de una sola página (SPA). Por un lado, evitar la construcción de una API (reduciendo costes), minimizas las esperas sustituyendo las peticiones HTTP por un protocolo más rápido (WebSockets), y puedes olvidarte de implementar un framework de JavaScript para renderizar el HTML, ya que lo harás desde el backend. Una técnica de desarrollo web que permite trabajar con lo mejor de un Server-side Rendering con la flexibilidad de una Single-page Application sin renunciar a un SEO de 100 puntos en PageSpeed Insights. Un enfoque moderno de desarrollo Web que evita el uso de APIs, la complejidad en el frontend y da respuestas en tiempo real.

En la charla enseñaré sus secretos usando de base a Django. Desde la arquitectura, casos de éxitos que he vivido con clientes, ventajas, desventajas, aplicaciones, herramientas actuales, libros y un pequeño framework en Django.

Web
Patos (Room 0.4)
16:45
35min
The validation evolution: Pydantic V2tronger
Marcelo Trylesinski

The Pydantic library has become an essential tool for Python developers who want to easily validate and parse data. However, with the release of version 2, Pydantic has undergone significant changes that make it even more powerful and efficient. In this talk, we will explore the evolution of Pydantic and the new features that make version 2 stronger, faster performance, and better support for custom types. We will also discuss how Pydantic can help developers build more robust and maintainable applications by ensuring data consistency and reducing the risk of errors. Whether you are new to Pydantic or a seasoned user, this talk will provide valuable insights into the latest advancements in data validation and parsing.

Software packages
Antequera (Room 1.10)
17:30
17:30
45min
Lightning talks ⚡

Charlas relámpago de 5 minutos sobre distintas temáticas.

Lightning talks lasting around 5 minutes each about different topics.

Bollullo (Aula Magna)
18:30
18:30
45min
Keynote: integridad y valores para la profesión
Carlos Blé

En esta keynote, Carlos Blé habla de profesionalidad, de su trayectoria, contando vivencias personales de sus 20 años como profesional del software. Victorias y derrotas para explicar cómo la integridad y los valores le han llevado a donde está, para bien y para mal.
En una profesión tan nueva, con una media de edad tan joven, cometemos muchos errores y dejamos pasar muchas oportunidades, sin darnos cuenta.
Por qué cambiar de empresa? En qué me especializo? Que merece la pena estudiar? Qué tiene mejor futuro para mi? La sesión responderá algunas de estas preguntas.
Es una sesión inspiradora que pretende hacer pensar a la audiencia, ayudarles a tomar decisiones sobre su presente y su futuro profesional.

Bollullo (Aula Magna)
19:30
19:30
60min
Asamblea Python España

Asamblea extraordinaria de Python España.

Other
Bollullo (Aula Magna)
09:00
09:00
45min
Keynote: El futuro del trabajo
Nerea Luis

Desde que llegase a nuestras vidas ChatGPT el pasado noviembre de 2022, la palabra Inteligencia Artificial está en boca de todos. Este año se ha popularizado el uso de modelos de IA como herramienta, mediante modelos de suscripción (Github Copilot, ChatGPT Plus, Midjourney..) o mediante despliegues en la nube de modelos open-source liderado por el repositorio de modelos HuggingFace. Parece que la inteligencia artificial ha alcanzado un nuevo grado de madurez y así lo tienen en cuenta regulaciones incipientes de Europa y Estados Unidos. ¿Te has planteado cómo será tu trabajo en unos años? Vamos a hacer un viaje al centro de los modelos fundacionales de la IA y sus capacidades para reflexionar y perfilar qué tareas probablemente nos va a facilitar la IA y cuáles seguiremos haciendo los trabajadores. Tomaré como ejemplo los departamentos existentes en una empresa típica de consultoría de software: desarrollo, sistemas, comunicación, marketing, negocio y dirección.

Bollullo (Aula Magna)
10:00
10:00
35min
ASM: La revolución del modelo de mantenimiento de productos tradicional y uso de Python para asegurar la excelencia
Adriana Mendoza Rodriguez, Jesús Genil

¿Alguna vez te has parado a pensar que el modelo o formato habitual de equipos de mantenimiento de aplicaciones no funciona correctamente? ¿Equipos deslocalizados, desacoplados y poco integrados con los equipos de producto? ¿Cómo puede afectar eso al éxito y el funcionamiento de los productos?
En Cepsa hemos creado un equipo de mantenimiento multidisciplinar (formado por científicos de datos, ingenieros de datos, desarrolladores, arquitectos…) que trabajan en equipo para analizar y resolver los problemas asociados a los productos. El equipo ASM tiene mucho que decir (y decidir) ya que están presentes e integrados con todos los equipos desde la fase de ideación del producto. Ellos son los responsables de asegurar un estándar, y guían en cada iteración a los equipos técnicos para asegurar que estos cumplen con el “production ready”.
Un equipo dedicado además a investigar y definir nuevos procedimientos centrándose en la eficiencia y en la agilidad. Con ese enfoque, se ha construido una herramienta desarrollada en Python para asegurarnos de una manera efectiva y rápida de que todos los productos están en perfecto estado.

Sponsor
Fañabe (Room 0.5)
10:00
35min
Behave: Automated Testing of Data Pipelines using BDD
Avneet

Behaviour Driven Development has gained traction as a mainframe tool for automated testing in the agile software development process. In this talk, the aim here is to shed some light upon how it is a welcome addition to the data engineer's toolbox for testing data pipelines and data as a product. Further we'll also see how BDD can act as enabler for GxP process from a regulatory and compliance perspective. We'll do this by using an example of a real world data pipeline, step by step. We'll extensively be using the python framework Behave for the walkthrough and example.

Data Engineering
Tejita (Room 1.9)
10:00
35min
Diseño de vacunas contra el cáncer con Python
Marina Moro López, Helena Gómez Pozo

El cáncer es uno de los mayores problemas de salud a nivel mundial, pero aún no tiene una cura definitiva. Por otra parte, Python es tremendamente versátil y potente. Así que, ¿por qué no juntar ambas cosas? Eso es exactamente lo que haremos en esta charla. Empezaremos con una breve introducción a los mecanismos básicos del cáncer y un repaso de genética, abarcando lo justo y necesario para entender a la perfección el caso práctico. Éste consistirá en plantear algunos de los innumerables tipos de vacunas contra el cáncer y diseñar un par de ellas con un script de Python para el tratamiento de un tumor específico. Finalmente, revisaremos asuntos esenciales de la regulación y control de calidad de estas vacunas. Todo esto nos servirá para ver el tremendo potencial de la sinergia entre la biotecnología y Python en el ámbito sanitario como diagnóstico y tratamiento de enfermedades como el cáncer.

Scientific and quantum computing
Antequera (Room 1.10)
10:00
35min
Dominando el Tiempo: Cómo abordar tus problemas de predicción de series temporales sin morir en el intento
Jorge Raúl Gómez, Mireya Gutiérrez Castro

Hay dos tipos de Data Scientists: los que se han atascado alguna vez en un problema de previsión de series temporales y los que se atascarán en algún momento en un problema de series temporales. Las series temporales son omnipresentes en nuestra realidad, y el interés por explotarlas es algo muy común. El uso de datos de ventas diarias, ingresos del BCE, el tiempo meteorológico de cada día puede transformarse en conocimiento: previsión de la demanda, saber el crecimiento de un país, conocer si tengo que sacar las botas de agua mañana, etc.

Esta capacidad de inferir es fruto de construir un modelo, pero ¿cuál se ajusta mejor a cada caso? ¿Necesitas predecir una única serie temporal o varias?, ¿el conjunto de series temporales a predecir están relacionadas entre sí? ¿Dispones de información futura? Conocer qué modelo es el adecuado para cada caso impactará en la calidad de las predicciones y en el tiempo necesario de desarrollo.

En esta charla aprenderás a reconocer y afrontar estos desafíos ayudándote de Python y las librerías más potentes de hoy en día. Se explorarán diferentes modelos y criterios de selección, con el objetivo de equiparte con las habilidades necesarias para escoger el modelo que mejor se adapte a tus necesidades particulares.

Machine learning, stats
Patos (Room 0.4)
10:00
35min
Dos rompecabezas de Python - buscando el por qué
Naomi Ceder

¿Por qué los parámetros predeterminados mutables de funciones a veces salen mal? ¿Y qué pasa realmente cuando importamos/reimportamos un elemento de un módulo (o un módulo entero) y a veces parece no funcionar?

Estos dos casos a menudo sorprenden tanto a los Pythonistas principiantes como a los más experimentados, y todos nos hemos preguntado “¿Por qué pasó eso?” Aunque los dos casos parecen distintos, ambos pueden explicarse por dos principios muy fundamentales sobre cuándo se ejecuta el código y qué se crea.

Esta charla de código en vivo responderá ambas preguntas, ilustrando los comportamientos sorprendentes y explicando lo que se espera frente a lo que pasa. Luego exploraremos cómo funciona Python - cuándo se ejecuta el código y cómo todo en Python es un objeto - hasta que lleguemos a un modelo mental más claro y más correcto que nos ayudará a no engañarnos nunca más.

Core
Bollullo (Aula Magna)
10:40
10:40
35min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Patos (Room 0.4)
10:40
35min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Fañabe (Room 0.5)
10:40
35min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Tejita (Room 1.9)
10:40
35min
Pausa café | Coffee Break

Pausa de 20 minutos de duración. Se dispondrán mesas con snacks, café, bebidas y demás. Un espacio ideal para comentar ponencias, poner conocimiento en común y hacer networking.

20 minutes break. There will be locations with snacks, coffee, drinks, and more. This is the place to talk about presentations, share knowledge, and do some networking.

Coffee Break
Antequera (Room 1.10)
10:40
35min
Profiling a la velocidad de la luz
Pablo Galindo Salgado

¿Sabías que Python 3.12 incluirá uno de los compiladores "just-in-time" (JIT) más pequeños del mundo? Además, te sorprenderá saber que no sirve para lo que probablemente estás pensando.

Poder comprender dónde nuestras aplicaciones de Python están gastando su tiempo es crucial para poder mejorar las características de rendimiento de nuestras aplicaciones. Ya existen varias herramientas para ayudar con esta tarea, pero todas tienen sus propias limitaciones, especialmente cuando está involucrado código nativo escrito en C, C++, Rust, etc. Poder recopilar y correlacionar información de rendimiento con otros marcadores relacionados con el rendimiento, como branch predictions, fallos de caché, cambios de contexto y otros eventos, tener un buen profiler que soporte obtener estos datos puede ser clave para comprender algunas de las situaciones más desafiantes.

Para ayudar con esto, Python 3.12 incluirá soporte para el profiler "perf" de Linux. El profiler perf de Linux es una herramienta muy potente que te permite obtener información sobre el rendimiento de aplicaciones. "perf" también cuenta con un ecosistema muy activo de herramientas que ayudan con el análisis de los datos que produce.

En esta charla, hablaremos sobre cómo se implementó soporte para esta nueva funcionalidad en Python 3.12, cómo difiere el soporte para "perf" de otros profilers orientados al rendimiento para Python, y cómo se puede utilizar de manera efectiva, incluida la activación dinámica para habilitar el profiling en producción. También cubriremos algunos de los requisitos necesarios para obtener los mejores resultados, así como algunas de las limitaciones de la implementación y cómo pueden afectar a nuestras métricas.

Core
Bollullo (Aula Magna)
11:25
11:25
35min
Arquitectura de software para investigadoras
Mai Giménez

Cualquiera que haya navegado un repositorio científico es consciente de lo caótico que puede ser, y es, el método científico con variables globales, secciones de código comentadas, millones de flags muchas incompatibles entre si y una larga ristra de parámetros.

Por sus caracterices, Python es el lenguaje ideal para prototipar experimentos rápidamente pero afortunadamente también nos proporciona herramientas para simplificar las configuraciones y evitar algunos de los problemas más comunes en el código de investigación.
En esta charla exploraremos como usar dataclasses, TypedDict y Protocolos para reducir escribir código repetitivo, mejorar la legibilidad y detectar errores simples a través de la anotación de tipos.

SW Engineering & Architecture
Bollullo (Aula Magna)
11:25
35min
Asynchronous programming with asyncio and Qt
Adrian Herrmann

Python is a powerful language with a vast ecosystem of libraries for all imaginable use cases, yet developing GUI applications is perhaps a less widespread one. Writing first-class GUI applications in Python is certainly possible, and if you've ever tried to write one and researched GUI frameworks, chances are you've come across PySide, the bridge between Python and the popular C++ based GUI framework Qt. Qt for Python combines the best of both worlds, but the world of Python is more than just a language, and users expect wide interoperability within the ecosystem. Python developers deserve a first-class experience combining a powerful GUI framework with all their favorite and trusted Python libraries.

When it comes to asynchronous programming, asyncio is a household name. It is an established library for Python applications with concurrency and asynchronous I/O, and the de facto standard that multiple other asynchronous frameworks build upon. Like Qt, it is based on an event loop, and it offers an extensive API to implement a custom event loop that applications using asyncio can then leverage. Therefore, it is perhaps natural to combine Qt and asyncio and to leverage their respective strengths, but enabling this in Qt for Python posed some unique challenges - some stemming from asyncio, some from Qt.

This talk explains the principles of event loop-based asynchronous programming and dives into the steps and challenges encountered during the work to enable interoperability of these libraries: Implementing asyncio’s interface for event loops and related classes like Future and Task, based on Qt.

Software packages
Antequera (Room 1.10)
11:25
35min
Cómo adaptar un programa Python para tus amigos no-programadores
Pablo Rodríguez Pérez

Esta charla trata sobre distintas formas de conseguir que nuestro código Python funcione en otros ordenadores de forma local y ejecutados directamente por un usuario no técnico, al que no se le puede pedir que instale dependencias, use la terminal, ejecute celdas de Jupyter, etc...

En primer lugar presentaré frameworks con los que utilizar Python a través de una interfaz gráfica (PyQT, Dash, Streamlit, ...), después la forma de crear ejecutables para Windows, macOS y Linux (Pynstaller, Pynsist, ...) y finalmente paquetes basados en Pyodide que simplemente con un doble clic se ejecuten correctamente a través de nuestro navegador.

Todo esto contado desde una perspectiva de un data scientist con experiencia en el procesado de datos pero sin práctica con herramientas de frontend. La idea es conseguir una forma rápida de crear herramientas para compartir con compañeros, clientes, amigos, familia, etc...

Desktop applications
Tejita (Room 1.9)
11:25
35min
Maintaining High Code Standards in a Globally Shared Codebase with Over 80 Daily Deployments
Maria Vicenta Vivo

Working on a codebase that is shared among multiple clients, with over 80 daily deployments per client, poses significant challenges in upholding code standards. Given the potential for a single bug to disrupt an entire deployment pipeline, it becomes essential to adopt some precautions and best practices when sharing code across numerous clients engaged in frequent deployments.

During this presentation, we will explore a selection of best practices for code development within a repository used by more than 400 developers across multiple countries. Furthermore, we will engage in a comprehensive discussion addressing the inherent challenges and limitations encountered in this context.

Sponsor
Patos (Room 0.4)
11:25
35min
Monadas en Python: Menos Excepciones y Más Tipado en Nuestro Código
Artur Costa Pazo

La gestión de los errores es una parte muy importante de nuestros sistemas. En Python, como en muchos lenguajes de programación, tenemos disponibles las excepciones. Pero, ¿existen formas más elegantes para encapsular los resultados de nuestras funciones?

En esta charla, se presentará un concepto muy interesante con origen en la programación funcional, las Monadas o también llamadas Either, Result, etc. Este patrón nos puede ayudar a mejorar nuestro código, y por suerte, en el ecosistema de Python tenemos disponible bibliotecas que nos pueden ayudar a introducirnos en este mundo. El uso de estas herramientas nos permitirá mejorar mucho el tipado de nuestro código y reducir el ruido visual que pueden añadir los try except infernales en algunos casos de uso.

Para ilustrar los ejemplos, se utilizará la biblioteca meiga, y casos de usos reales (lo llevamos utilizando en producción casi 4 años). :)

SW Engineering & Architecture
Fañabe (Room 0.5)
12:15
12:15
35min
Cómo ejecutar miles de VM en paralelo y no morir en el intento - Orcha 🐳
Javier Alonso, Miguel Robledo

El CI es fundamental en el desarrollo de productos hoy en día y uno de sus pilares básicos es la ejecución de tests. Sin embargo, a medida que el producto madura la cantidad de tests aumenta y con ello el tiempo que tardan en completarse. Para tener feedback lo antes posible, ¿cómo se maquetan las pruebas de forma eficiente?

El problema es aún más acusado cuando se cuenta con multitud de dispositivos y versiones en desarrollo. En particular, con dos servidores distriubyéndose carga de tests, el tiempo total de ejecución alcanzaba las 15 horas probando únicamente dos versiones.

Es imperativo contar con una herramienta que permita paralelizar las pruebas de forma masiva, aprovechando al máximo los recursos disponibles. Además, es necesario que dicha herramienta sea lo suficientemente flexible como para soportar la infraestructura actual y permita expandir el tipo de infraestrucuras de tests.

En esta charla vamos a explorar el diseño de Orcha (la herramienta de orquestración), la API para extender su funcionalidad y la necesidad de tener un usuario dedicado.

La charla está orientada a usuarios intermedio-avanzados con familiaridad con el módulo multiprocessing.

Data Engineering
Patos (Room 0.4)
12:15
35min
De píxeles a predicciones: la magia detrás de la clasificación de imágenes con redes neuronales
Sergio Gil Gavela

Visión general

La clasificación de imágenes es una rama de la inteligencia artificial con numerosas aplicaciones. En Python existen algunas librerías como Pytorch y Tensorflow que ofrecen herramientas para entrenar redes neuronales para visión artificial.

Actualmente algunas de las aplicaciones más relevantes de la clasificación de imágenes son:

  • Conducción autónoma.

  • Aplicaciones médicas, como el análisis de imágenes de resonancia magnética o tomografías computarizadas.

  • Reconocimiento facial.

  • Automatización industrial, como por ejemplo la detección automática de desperfectos en cadenas de montaje.

Contenido

En esta charla exploraremos cómo entrenar este tipo de redes neuronales para detectar los objetos que aparecen en una imagen. Para ello cubriremos técnicas imprescindibles como data augmentation, fine-tuning y el uso de redes preentrenadas del Estado del Arte para mejorar la precisión de nuestros modelos. Concretamente trataremos los siguientes puntos:

  • Introducción a los métodos actuales para clasificación de imágenes.

  • Introducción a las librerías de Python PyTorch y huggingface 🤗 timm para entrenar modelos de clasificación de imágenes y usar redes neuronales ya entrenadas del Estado del Arte que permiten resolver tú problema sin apenas esfuerzo.

  • Cómo utilizar AISee, una librería de Python que permite aplicar todas estas técnicas avanzadas de clasificación de imágenes en muy pocas líneas de código.

Al final de la charla, los asistentes habrán aprendido cómo funcionan las redes neuronales para clasificación de imágenes y serán capaces de usar modelos del Estado del Arte en sus proyectos.

Público objetivo

La charla está dirigida a todos los públicos, aquellas personas sin conocimientos previos en clasificación de imágenes o redes neuronales podrán disfrutar de una introducción desde cero a estos conceptos. Por otra parte, aquellas personas con experiencia previa en visión artificial podrán aprender cuál es el Estado del Arte en este campo y las técnicas más avanzadas que existen en la actualidad.

Deep Learning
Fañabe (Room 0.5)
12:15
35min
Geppetto: Python en la creación de personajes en películas de animación
Jesús R. Nieto

Siendo la creación de personajes un proceso muy complejo y técnico, es realizado por artistas
que necesitan herramientas intuitivas que potencien su creatividad y faciliten el proceso con tal
de no frustrar sus esfuerzos. Geppetto es una herramienta python clave en nuestro arsenal de
creación de personajes en Skydance que hemos diseñado siguiendo algunos de los patrones clásicos
de programación para hacer que este proceso sea más eficiente y creativo.
Los personajes son una parte esencial en las películas de animación. Dan vida a la historia y nos
transportan a lugares increíbles donde vivir experiencias únicas. Una película puede tener del orden
de 5 a 10 personajes primarios, otros tantos secundarios y muchos extras para dar más credibilidad al
mundo en el que ocurre la historia.
En la creación de cada personaje intervienen muchos departamentos. Los creadores del modelo 3D a
partir de los diseños, el departamento que prepara el personaje para ser animado (rigging), animación,
efectos de personaje (pelo, ropa, plumas...), multitudes...
En definitiva, un personaje está compuesto por muchas piezas elaboradas por varios artistas que
trabajan en paralelo la mayoría del tiempo. Este proceso puede ser muy complejo y sobre todo muy
técnico, limitando el número de personas capaces de dominarlo. En skydance hemos canalizado todo
el ensamblaje de personajes y la gestión de sus variaciones a travé de un software propietario llamado
Geppetto, escrito en python, que pretende simplificar todo este proceso y hacerlo más artístico.

Sponsor
Antequera (Room 1.10)
12:15
35min
Python para un mundo mejor: informe desde la trinchera
Juan Luis Cano Rodríguez

Equidad, trabajo digno, cooperación, sostenibilidad ecológica, reparto justo de la riqueza, compromiso con el entorno. No es ficción, sueño, ni utopía: es un sector que representa el 10 % del PIB en España, que ha sido recientemente impulsado por la ONU, y del que puedes formar parte. Hablamos de la Economía Social y Solidaria.

¿Y qué tiene que ver Python en todo esto? Alerta spoiler: la madurez tecnológica de la ESS madrileña y más allá deja mucho que desear, así que no vas a escuchar sobre metaversos, blockchains, ni "inteligencias artificiales" en esta charla. Lo que sí vas a escuchar es un resumen sobre el estado actual de la cuestión, el papel que juega el software libre, y sobre todo nuestra experiencia utilizando Python para gestionar cientos de entidades y socias, automatizar tareas, y en definitiva ayudar a crear un mundo mejor.

Comenzaremos haciendo una breve introducción de la carta de principios de la Economía Social y Solidaria, contaremos cómo estaba el panorama tecnológico cuando llegamos (prepárate para llevarte las manos a la cabeza), desmenuzaremos los avances que hemos hecho en el último año gracias a Python (desde Django hasta reportlab pasando por Odoo e incluso una alternativa a Mastodon llamada Takahē), y cerraremos la charla con una nota de esperanza, una hoja de ruta muy ambiciosa, y una invitación a colaborar.

Community, society and culture
Bollullo (Aula Magna)
12:15
35min
¿Cómo montar un sistema de experimentación con mlflow?
Maialen

En el campo del Machine Learning, la gestión y seguimiento de experimentos es fundamental para obtener resultados confiables y reproducibles. Sin embargo, muchos equipos se enfrentan al desafío de implementar un sistema efectivo de experimentación. En esta charla, abordaremos el problema y presentaremos MLflow como una solución para montar un sistema de experimentación robusto.

Exploraremos la importancia de buscar una solución a este problema, destacando cómo un sistema de experimentación bien implementado puede mejorar la reproducibilidad de resultados, facilitar la colaboración entre equipos y permitir un control de versiones adecuado de los modelos de Machine Learning.

Durante la charla, discutiremos los pasos necesarios para montar un sistema de experimentación utilizando MLflow. Cubriremos la instalación de MLflow, la configuración del entorno de trabajo, la integración con sistemas de almacenamiento en la nube, la creación de experimentos, el registro de parámetros y métricas, el seguimiento del rendimiento, la gestión de modelos y el despliegue en diferentes entornos.

Los asistentes aprenderán cómo utilizar MLflow para montar un sistema de experimentación efectivo y obtendrán conocimientos prácticos sobre cómo registrar, rastrear y comparar experimentos. Además, discutiremos casos de uso y ejemplos prácticos que ilustrarán cómo MLflow puede ser aplicado en diferentes industrias y proyectos de Machine Learning.

No se requieren conocimientos previos específicos, pero es recomendable tener familiaridad con los conceptos básicos de Machine Learning y la experimentación con modelos. Esta charla proporcionará a los asistentes las herramientas y el conocimiento necesario para implementar un sistema de experimentación con MLflow de manera exitosa en sus proyectos.

Machine learning, stats
Tejita (Room 1.9)
13:00
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Bollullo (Aula Magna)
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Patos (Room 0.4)
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Fañabe (Room 0.5)
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Tejita (Room 1.9)
13:00
90min
Almuerzo | Lunch break

Pausa de 90 minutos de duración. Se servirán distintos menús para reponer fuerzas. Ocasión ideal para hacer comunidad.

90 minutes break. There will be different menus and it's the perfect opportunity to make new colleagues.

Coffee Break
Antequera (Room 1.10)
14:30
14:30
35min
Cómo Outconsumer y yo domamos a la IA machista de la Kings League
Jaime Crespo, Roc Massaguer

A principios de 2023, el famoso YouTuber y streamer Outconsumer tuvo la idea de usar ChatGPT para constuir, simplemente como aprendizaje y divertimento, algunos bots que publicaran cosas graciosas en Twitter de manera autónoma. Yo le ayudé a escribir un bot en Python usando las APIs de la NBA, Twitter y OpenAI, así como web scrapping para obtener prompts. El bot tuvo una primera recepción bastante positiva y fue un proyecto muy divertido en el que colaborar. El problema vino cuando el bot comenzó a decir cosas machistas y xenófobas de forma totalmente inesperada...

Una mirada a las nuevas tecnologías teniendo en cuenta aspectos sociales, y de cómo la diversidad, la ética y la responsabilidad son más importantes que nunca para hacer más humano un mundo dominado por las IAs.

En esta charla contaremos cómo surgió la idea, detalles técnicos de cómo se construyó, el problema que tuvimos y cómo decidimos solucionarlo, haciendo al final una reflexión y dando consejos sobre cómo usar las IAs generativas, abierta a todos los públicos.

Ethics in AI
Bollullo (Aula Magna)
14:30
35min
Faster Python with friends
Murilo Cunha

About the talk

Python's flexible and intuitive syntax enables developers to quickly build applications. But on the other hand, it may be slow during runtime. There have been different attempts into making Python faster. In recent years, Python 3.11 was released and popularized as the "faster Python" and Mojo programming language was recently announced, advertised as having "usability of Python with the performance of C". Going back further, we see languages such as Cython, Just In Time (JIT) compilers and bindings.

In this talk, we'll go over the different approaches to increasing the speed of a Python application. We'll briefly explain how they work, compare the performance through a simple use case, and look at the limitations, tooling, trade-offs, and ease of use.

Outline

  • Introduction and setup (3min)
  • Baseline - Python 3.9 (3min)
  • Alternatives (20min):
  • Python 3.11
  • Cython & Mypyc
  • Pypy3
  • PyO3
  • Mojo
  • Recap and takeaways (4min)
Other
Tejita (Room 1.9)
14:30
35min
Make it Easier, Make it Powerful: A Pythonic solution for IoT in the Rusty Way
David Carrasco Cano

La charla se mostrara una solución sencilla hecha en Python para interactuar mediante protocolo MQTT con un dispositivo esp32 y un xiaomi Mi Plant y que usa pequeña librería escrita en Rust para la securización, se mostrara el uso del producto escrito en Python esphome para la programación del esp32, se dejaran en la sala 10 dispositivos IoT programados para que puedan ver su interacción en pantalla.

Entrando en ese concepto de IoT se escucha mucho de ello y cada vez hay soluciones mas manejables como esphome, NodeRED o PlatformIO, sin embargo tampoco esta muy extendido en cuanto a perfiles técnico como podría parecer, de algún modo se hace inaccesible o es difícil verlo.

En lo que respecta a la seguridad, siempre queda mucho por hacer, en esta charla se abordara un poco esta parte para concienciar, usando una securización sencilla en Rust que se integrara en la solución que se ha desarrollado con Python mediante un binding, la idea de darle visibilidad a Rust es por su cada vez mayor presencia en librerías de Python, así como su enfoque a la optimización y seguridad que justamente puede potenciar a Python donde palidece o es mas débil, hay una sinergia entre ambos lenguajes que cada vez esta siendo una realidad.

En cuanto a asistentes, la charla dada la limitación de tiempo, se busca es romper el miedo o la inseguridad ante el IoT, que se vaya conociendo lo que es el lenguaje de programación Rust y hacia que va enfocado, hacer hincapié en la seguridad y por supuesto mostrar que Python pueda ser una estupenda apuesta para integrar dispositivos IoT.

Microcontrollers and IoT
Patos (Room 0.4)
14:30
35min
X-men al rescate: ¿cómo un puñado de mutantes puede ayudarte a mejorar tus tests?
Juan Miguel Álvarez, Carlos López Pérez

Contexto de la charla o problema:
Usar la técnica de mutation testing para mejorar la calidad de los tests y el código.
Definición del problema:
Dispones de una base de código con tests pero no tienes el nivel de confianza en ellos para realizar cambios sin riesgo a introducir bugs en producción.
¿Por qué es importante buscar una solución a ese problema?
Disponer de buenos tests permite realizar cambios con mayor rapidez y reduciendo los errores en producción, pero mejorar la calidad de los tests es una tarea complicada y que consume bastante tiempo. Utilizando una técnica como mutation testing puede ayudar a encontrar defectos en los tests con un mecanismo sencillo y abordable de forma incremental.
¿Qué se hablará y qué aprenderá la gente que asista?
Del testing, la calidad de los tests y la importancia relativa del nivel de cobertura. Los asistentes tendrán una nueva herramienta para mejorar la calidad de su tests y en consecuencia del código.
Requerimientos previos o comentarios adicionales de tu charla:
Conocimientos básicos sobre testing, no se requieren conocimientos específicos de ningún framework.

Sys / DevOps / Tests / Agile
Fañabe (Room 0.5)
14:30
35min
¿De verdad GPT le va a quitar el trabajo a Developers y Data Scientists?. Lo que diferencia a un DS que no puede ser sustituido por inteligencia generativa.
Santiago Cárdenas Martin

Estamos viendo como las nuevas herramientas de IA generan código y modelos de ML de manera automática. Hay quien llega a afirmar que dentro de poco se podrá prescindir de los Data Scientists, porque cualquier usuario le podrá pedir a una IA que le genere los modelos que necesita.
¿Es esto así? La (aparentemente) mala noticia es que la generación básica de modelos sin valor añadido va a ser sustituida por sistemas automáticos, así que no necesitaremos a Data Scientists que solo hacen eso.
Pero vamos a ver qué es lo que distingue la labor de un Data Scientist de alto nivel que hace que no pueda ser sustituida por una IA y porqué cada vez vamos a necesitar más de estos Data Scientists de alto nivel.

Sponsor
Antequera (Room 1.10)
15:30
15:30
35min
En mi dataset funcionaba - monitorizando modelos de machine learning
Manuel Díaz, Pedro Quilles Campo

En la actualidad los modelos de machine learning se han consolidado como parte clave de la toma de decisiones en diversas industrias. Aunque la evaluación de estos modelos en datos no vistos es un paso esencial antes de su implementación, esto no es suficiente para desplegar un modelo y olvidarse de él. Una vez desplegados, fenómenos como el data drift pueden deteriorar la calidad de las predicciones, ocasionando posibles pérdidas de negocio. Por ello, la monitorización de los modelos es fundamental.

En esta charla abordaremos las diferentes causas del deterioro de los modelos y las implicaciones de no abordar el problema a tiempo. Explicaremos los diferentes tipos de data drift, las técnicas para detectarlo y la importancia de monitorizar tanto los datos de entrada como la calidad de las predicciones, incluyendo sus distribuciones. También discutiremos como la monitorización nos permite tomar mejores decisiones a la hora de reentrenar.

Utilizando Python y una variedad de herramientas de código abierto, mostraremos ejemplos prácticos de cómo implementar una estrategia de monitoreo de modelos en producción, asegurando que los modelos de ML se mantengan confiables, precisos y valiosos para la toma de decisiones en cualquier entorno empresarial.

Machine learning, stats
Bollullo (Aula Magna)
15:30
35min
Open space 👥🗣

Espacios de discusión sobre cualquier temática - siempre que cumpla el código de conducta

Open spaces to talk about any topic - it must follow the code of conduct

Patos (Room 0.4)
15:30
35min
Open space 👥🗣

Espacios de discusión sobre cualquier temática - siempre que cumpla el código de conducta

Open spaces to talk about any topic - it must follow the code of conduct

Fañabe (Room 0.5)
15:30
35min
Open space 👥🗣

Espacios de discusión sobre cualquier temática - siempre que cumpla el código de conducta

Open spaces to talk about any topic - it must follow the code of conduct

Tejita (Room 1.9)
15:30
35min
Python all the way down: Seamless Server and in-Browser web programming with wwwpy, Pyodide and WASM.
Simone Giacomelli

Slides for this talk: http://tiny.cc/wwwpy-pycones23

In this talk, we'll venture into a new frontier of web development by introducing an innovative method that seamlessly integrates server-side and in-browser programming. This transformative approach leverages the flexibility and power of Python and is made possible by Pyodide, a Python distribution operating on WebAssembly, and wwwpy, a pioneering library (authored by the speaker) that seamlessly integrates Python server-side operations with Pyodide.

The disconnect between server-side and client-side programming is a prevalent challenge in web development: diverse languages and data structures in play at each end reduce the seamless communication and code reusability.

The solution lies in Python's versatility, bridging this gap through Pyodide and wwwpy. By utilizing Python on both server and client (browser), a myriad of benefits is brought forth:

  • The reuse of Python knowledge for client-side code which leverages the developer’s existing Python expertise and past experiences.
  • The lower impedance between server and client is made possible by employing identical data structures (datetime, integer, float, list, set, dict, etc.) on both ends.
  • The transparent interaction between client and server through secure RPC (Remote Procedure Call).
  • The intrinsic development efficiency of sharing code between the two programming environments.
  • The possibility to perform DOM manipulation and Web API usage directly with Python.
  • The empowering capability to directly access and use JavaScript/TypeScript libraries from within Python, harmoniously blending diverse coding ecosystems and extending Python's functionality.

In this context, Pyodide enables Python code execution directly within browsers and Node.js environments, effectively harnessing Python's potential to redefine the web development paradigm, and wwwpy provides a transparent way to invoke server functions from the browser and a Widget class to interact effortlessly with HTML5 elements.

An additional highlight is Pyodide's support for a variety of packages, including pure Python wheels from PyPI, and pure Python and binary wasm32/emscripten wheels, featuring more than 150 packages such as numpy, scikit-learn, matplotlib, scipy, beautifulsoup4, and networkx.

This talk will fundamentally change the way you perceive web development by introducing an integrated approach, reducing friction between server and client-side and elevating code reuse to new heights.

Join us to explore the future of web programming, where Python reigns, from the server to the browser. Your web development journey will never be the same again!

SW Engineering & Architecture
Antequera (Room 1.10)
16:15
16:15
30min
Cierre

Charla sobre Python España y cierre de la conferencia.

Coffee Break
Bollullo (Aula Magna)