Duodécima Conferencia Argentina de Python

16 al 27 de Noviembre de 2020

Acerca del evento

La PyCon (Python Conference) es una convención anual para la discusión y promoción del lenguaje de programación Python. Se originó en Estados Unidos pero hoy en día se realiza en ese país, en Europa, España, Brasil, Inglaterra, Italia, China, y en otros treinta países.

Desde 2009 se realiza también en Argentina, ese año en CABA, siendo declarado de Interés Cultural por la Ciudad de Buenos Aires. En consecuencia al carácter federal de nuestro país, las siguientes ediciones se realizaron en diferentes ciudades: Córdoba, Junín, Rosario, Quilmes, Rafaela, Mendoza y Bahía Blanca.

La PyCon Argentina reúne a gran parte de la comunidad de habla hispana, de todas las edades y con un fuerte acento en diversidad. Es gratuita y abierta a todo público, dirigida a profesionales, estudiantes, académiques, empresaries, trabajadores, funcionaries públiques, entusiastes; es decir, se trata de un evento inclusivo y para todes. El número de asistentes crece año a año, rondando las 1080 personas en el último año, en CABA.

En general el evento es de tres días: miércoles, jueves y viernes; el primer día de talleres y tutoriales y los siguientes dos días para charlas ya en formato conferencia clásica así como también espacios abiertos, talleres, y diferentes ámbitos pensados para la interacción de la comunidad de Python con otras comunidades, empresas e instituciones gubernamentales.

El material presentado incluye todos los niveles, desde lo más orientado a principantes como los talleres y tutoriales del primer día, hasta charlas de nivel avanzado con calidad internacional, dadas por invitades de otros países o por disertantes locales que también dan charlas similares en conferencias de otros países.

El evento está organizado por la comunidad de Python Argentina, cuyo objetivo es nuclear a les usuaries de Python y promover su uso.  Python es un lenguaje de programación, de licencia abierta y libre, que es cada día más popular en la enseñanza, la industria y la ciencia, y es el lenguaje de mayor crecimiento en los últimos años. La comunidad cuenta con el soporte formal de la Asociación Civil Python Argentina.

Primer Edición Virtual


Este año se realizará la primer edición virtual de la PyCon Argentina y esto resulta en un gran desafío tanto para la organización como para speakers y sponsors.

Decidimos optar por un cronograma más espaciado en el tiempo, para evitar jornadas intensivas en las que la audiencia tenga que pasar mucho tiempo enfrente de una pantalla. Como ya mencionamos, la PyCon durará dos semanas y cada día habrá cuatro charlas de media hora (dos horas de charlas en total).

Como entendemos que en este tipo de eventos la comunicación es crucial, elegimos dos herramientas para utilizar durante la conferencia que apuntan a tener canales de comunicación claros, fluidos y fáciles de usar.

Discord

Discord es una aplicación de chat que también permite hacer videollamadas y streaming de video. Vamos a tener un servidor exclusivo para la PyCon en el cual habrá distintas salas de chat (en Discord se llaman “canales”), cada una con un propósito específico.

Habrá un canal para cada charla en donde se podrán seguir las discusiones relacionadas a tópicos específicos, otro canal hará las veces de hall en donde todos los participantes podrán interactuar entre sí de manera informal, por mencionar algunos.

Esta herramienta está disponible para todas las plataformas.

YouTube Live

Las charlas oficiales de la conferencia serán transmitidas por YouTube Live, por ser el medio más utilizado para transmisión en vivo, disponible también en todas las plataformas y que permite dejar grabadas las charlas dadas durante la conferencia.

Si querés saber más consulta nuestras FAQs sobre el evento

Talks and Workshops

Airflow en Kubernetes: Escalando al mas alla!

Vamos a aprender a hacer pipelines en Airflow, como testearlos para que estemos confiades de nuestros cambios y vamos a deployarlos en Kubernetes para poder escalar Airflow tanto como se necesite. Mate incluide.

Airflow es una tool maravillosa para administrar pipelines, sean pipelines de datos, pipelines de machine learning, o pipelines para deployar. Sin embargo, levantar Airflow en Kubernetes para escalar es complicado; hacer los tests para validar los pipelines tiene sus trucos, e implementarles de una manera que funcione tanto en un clúster remoto como localmente puede ser engorroso. En este taller, revisaremos todos estos elementos e implementaremos una instancia de Airflow en Kubernetes para escalar hasta el infinito desde cero.

Speakers: Axel Sirota

Análisis de datos con Panda

Un taller mostrando el analisis de datos usando Jupyter Notebook, Panda, MatploLib. Como depurar datos y generar gráficos.

El objetivo es mostrar en Jupyter Notebook el análisis de un conjunto de datos, participación de las mujeres en carreras tecnológicas en Argentina, realizando la depuración con Panda y generar diferentes tipos de gráficos con MaplotLib

Speakers: Sofía Martin

AppSec Vulnerability Management Pipelines

Abordaremos un enfoque práctico para la gestión de vulnerabilidades en entornos de entrega e integración continua, a través de AppSec pipelines, tools para staging de hallazgos y escalamiento

Se trata de una charla sobre manejo de vulnerabilidades enfocada en entornos DevOps que incluye una demostración práctica de un AppSec Pipeline construido en base a las siguientes herramientas: un orquestador (Jenkins o Ansible), scripting en Py, Dependency-Check (SCA), Bandit (SAST), OWASP ZAP (DAST), Nessus (VMS), DefectDojo (staging de vulns) y Jira (issue management/tracking).

Speakers: Agustin Celano

Automatizando releases con commitizen y github actions

Automatizaremos una release de un paquete open source en python, veremos como este proceso puede simplificar la vida de un maintainer.

Automatizaremos una release de un paquete open source en python, veremos como este proceso puede simplificar la vida de un maintainer. Tabla de contenidos - Introduccion - Release workflow - semver - conventional commits - commitizen - Hands on!

Speakers: Santiago E Fraire W

"Behave" para entender al usuario

Únete a esta charla si quieres aprender sobre Behavior Driven Development, una técnica que permite entender de forma clara el comportamiento que esperan ver los usuarios en el software, escribiendo casos de prueba en lenguaje natural que no programadores puedan leer y entender. Aprenderás por qué esta técnica hace ágiles los proyectos y mantiene en armonía a los equipos de desarrollo y los stakeholders del negocio, además de cómo implementar BDD en Python con ayuda de Behave.

El objetivo es introducir el término BDD (Behavior Driven Development) y mostrar que es un conjunto de prácticas que buscan reducir la brecha entre desarrolladores y usuarios, simular el funcionamiento de una aplicación desde el inicio hasta el final de acuerdo a una perspectiva de usuario. De esta manera llegar al punto central de la charla que es mostrar la ventaja de la implementación de BDD en Python y como esto trae consigo mejoras en la colaboración entre distintos roles de un mismo equipo en TI. La segunda parte de la charla consiste en mostrar la diferencia entre BDD y TDD, a pesar de que ambas están relacionadas con el desarrollo de software y la automatización de tests es importante distinguir que el TDD está orientado a los desarrolladores y el BDD a los stakeholders, por tanto, a través de ejemplos en una app sencilla de Python quisiera mostrar cuales son las diferencias a grandes rasgos entre ambos enfoques y enfatizando en el uso de Behave para el BDD y finalmente concluir la charla invitando a los asistentes a implementar BDD y medir el rendimiento de sus equipos constantemente aplicando este tipo de enfoques.

Speakers: María Camila Guerrero Giraldo

Buenas prácticas para enseñar programación online

"Buenas prácticas para enseñar programación online" es una charla destinada a introducir buenas prácticas basadas en evidencia para el diseño de materiales, la gestión del aula y la accesibilidad.

El objetivo de la charla es introducir buenas prácticas basadas en evidencia para el manejo de reuniones y/o clases en entornos virtuales. Charlaremos acerca de estrategias para virtualizar tu clase con pocos recursos, mantener a tu audiencia motivada y lograr que tus clases y reuniones virtuales sean más accesibles.

Speakers: Patricia Loto, Nicolás Palopoli, Mariela Rajngewerc,

Coding as a Service: librería pypsdier, aprendizajes y metodología

¿Cuál es la mejor manera para compartir un código, de manera que sea fácil de instalar, reproducible y fácilmente actualizable? En el desarrollo de la librería pypsdier (simulación numérica de ecuaciones de reacción difusión para catalizadores en medio poroso) hemos enfrentado estos desafíos y desarrollado una metodología que nos ha permitido iterar rápidamente y entregar “Coding as a Service” con facilidades tanto para el desarrollador como el usuario final.

En 2008, un bioquímico y un ingeniero matemático comenzamos el desarrollo de la implementación numérica de ecuaciones de reacción-difusión para catalizadores inmovilizados en pequeñas partículas porosas (si, algo bastante técnico y para lo cual no existían referencias modelos teóricos ni numéricos). Después de un breve paso por matlab, Python fue el lenguaje elegido para la implementación, ya que proporcionaba un lenguaje que era simple para el usuario final y apropiado para el desarrollo numérico gracias a numpy. Sin embargo, la instalación de Python, el control de versiones y las actualizaciones de la biblioteca fueron complicadas y en aquel tiempo demandaron constante supervisión y trabajo codo a codo. Anhelábamos un método más simple. Ahora en el año 2020 se puede y se debe colaborar únicamente en línea. Hemos estado reflexionando sobre los elementos clave que se requieren en un marco de simulación que proporciona este tipo de "comportamiento SaaS". ¿Cómo podría hacer las cosas lo más fáciles posible para el usuario final mientras que para el desarrollador aún tenga control total sobre el código y garantizar la reproducibilidad de los resultados? La librería pypsdier fue construida para permitir la simulación específica de las ecuaciones de reacción difusión, pero adicionalmente, para proporcionar una respuesta funcional a las siguientes limitaciones: * Instalación y el control de versiones de python, jupyter y bibliotecas. * Simplificar el desarrollo y control de versiones de un código altamente específico. * Interfaz simple para el usuario final, para ocultar una implementación numérica (compleja). * Almacenar y compartir los resultados de la simulación, para que puedan ser reproducidos y analizados. * Permitir el uso de recursos computacionales externos (nube). * Proporcionar buena documentación para usuarios finales (sin demasiados conocimientos informáticos) y desarrolladores. A partir de los aprendizajes y el desarrollo realizado, se propone un framework de trabajo que puede ser aplicado para compartir código de manera simple pero con múltiples beneficios.

Speakers: Sebastian Flores Benner

Como desarrollar un switch de capa 2 sobre un controlador SDN con Ryu framework

Las redes definidas por software (SDN) vienen a cambiar la forma en la que pensamos como las aplicaciones se vinculan con las redes sobre las que funcionan. En esta charla intentaré dar una breve introducción a la arquitectura y protocolos propuestos por SDN y como desarrollar nuevas funcionalidades de red usando un framework/controlador hecho en Python.

El objetivo de la charla es abordar los conceptos básicos de las redes definidas por software utilizando openflow como southbound interface y Open Virtual Switch (ovs) como elemento de red programable. Como ejemplo práctico, utilzaremos un framework para el desarrollo de aplicaciones SDN hecho en Python (Ryu) y veremos como desarrollar aplicaciones que implementen funcionalidades nuevas sobre nuestra red.

Speakers: Joaquin Gonzalez

Conozco un grupo de objetos que resuelven problemas

Los Decoradores: Ep.1 El origen de una solución Ep.2 El problema en la serpiente Ep.3 Cuatro porciones para llevar Ep.4 El recambio de yerba

En la charla voy a hablar sobre ¿Qué son los decoradores? ¿Cómo se implementan los decoradores en Python? Exponer una distinción en los distintos usos/tipos de decoradores Exponer mis opiniones sobre que tener en cuenta al utilizar decoradores

Speakers: Augusto `Sasha` Kielbowicz

C para Pythonistas

Se explicarán los conceptos más característicos del lenguaje C comparándolo con conceptos iguales o similares presentes en el lenguaje Python, con el objetivo de facilitar su aprendizaje.

Python y C son dos lenguajes a primera vista muy disímiles. Sin embargo, están íntimamente relacionados. La implementación de referencia de Python está escrita en C, y este último es el lenguaje de preferencia a la hora de agregarle un extra de performance al código Python cuando ya se agotaron todas las alternativas dentro del mismo lenguaje. Esta charla no es para principiantes en Python. Se requiere un nivel de conocimientos bastante sólido del lenguaje, ya que a partir de ellos se contrastarán con los de C, haciendo hincapié en sus similitudes y diferencias: compilación/interpretación, tipado dinámico/estático, etapas de compilación, templating/preprocesador, punteros/referencias, arrays/listas, structs/clases.

Speakers: Agustín Scaramuzza

Dataclasses to rule 'em all

Breve introducción al uso de Dataclasses de Python 3.7. Qué son, para qué sirve y por qué está bueno usarlas.

El PEP 527 detalla el uso de Dataclasses introducidas en Python 3.7 y backportadas a 3.6. Las dataclases son la evolución respecto a las herramientas de almacenamiento de datos en Python. Tuplas, diccionarios, clases, namedtuples, records, attrs y después Dataclasses. Cada una de estas construida sobre los pilares de su predecesora, agregando expresividad a expensas de la complejidad. Las Dataclasses son únicas porque nos permiten prender o apagar varias de sus funcionalidades y permiten al usuario elegir qué se está usando para almacenar información. Es una charla basada en la de Raymond Hettinger en la Pycon de 2018 a la que le agregamos nuestra propia experiencia de uso en este último tiempo.

Speakers: Leandro E. Colombo Viña (Aka @Lecovi)

DeepOF: un paquete para el análisis de series temporales de animales en libre movimiento

El análisis de videos de animales comportándose libremente (así como la comparación de videos correspondientes a distintas condiciones) es crucial para la investigación en psiquiatría, ya que permite estudiar las consecuencias en el comportamiento de distintos estímulos. Este tipo de estudios se ha visto facilitado durante los últimos años gracias a avances en computer vision y deep learning. Esta charla introduce deepof, una suite de herramientas para postprocessing de series temporales extraídas de video implementada en python y tensorflow 2.0. La disertación se enfoca tanto en los algoritmos como en la importancia de las DevOps en ciencia.

El anlálisis de datos desestructurados (principalmente imágenes y video) se ha vuelto más importante con el correr de los años en muchos campos gracias a los desarrollos, entre otros métodos, en computer vision de la mano del aumento en el poder de cómputo al que los investigadores tradicionales pueden acceder y a los nuevos algoritmos de deep learning que se fueron desarrollando. En 2018, Mathis et al publicaron un programa llamado DeepLabCut (http://www.mousemotorlab.org/deeplabcut), cuya implementación en puro python y tensorflow permite la extracción de series temporales a partir de video crudo, etiquetando pocos frames con la posición de partes del cuerpo interesantes para quien investiga. La presente disertación introduce deepOF (de deep Open Field), un paquete de python desarrollado principalmente por mí y colegas de mi grupo de trabajo en el que se provee al usuario una serie de herramientas para el procesamiento de las series temporales extraídas con DeepLabCut, y se permite anotar el comportamiento inferido de los datos extraídos en forma no supervisada, utilizando autoencoders variacionales con priors multimodales, capaces de procesar las secuencias multivariadas, producir encodings interpretables y agrupar las instancias provistas (clustering), todo en un solo paso.

Speakers: Lucas Miranda

Desarrollo web con Python: introducción a Django

Django es la herramienta más usada hoy en día para hacer desarrollo web en Python, en gran medida gracias a lo poderoso que es, pero también a lo sencillo que es comenzar a utilizarlo, como veremos en esta charla.

Esta charla es una introducción acelerada al desarrollo web con Python, utilizando el framework Django (el más usado hoy en día). Comenzaremos con una breve descripción de las características principales del framework y su funcionamiento. Y luego desarrollaremos una aplicación de ejemplo en vivo, desde el principio, explicando cada paso.

Speakers: Juan Pedro Fisanotti

Diseño de RESTful Web APIs

En esta charla presentaremos a REST como uno de los estilos de arquitectura de APIs dominantes en la actualidad. Vamos a introducir los componentes básicos presentes en el estilo de arquitectura, entendiendo cómo se relacionan y qué restricciones se deben aplicar a los mismos para que se ajusten a los estándares RESTful.

A lo largo de la charla, vamos a revisar los conceptos subyacentes que caracterizan al estilo de arquitectura RESTful, entendiendo sus componentes fundamentales y cómo se interrelacionan. Abordaremos temáticas como el diseño de recursos, representaciones, relaciones entre recursos y acciones, así como las restricciones de diseño sugeridas por el estilo de arquitectura.

Speakers: Mariano Martinelli

Elasticsearch no reemplaza a Mysql/Psql, pero cómo ayuda!

Un breve recorrido sobre la integración de ES en nuestro código para optimizar tu search, find o get.

Para arrancar vamos a recorrer algunos conceptos básicos del servicio ElasticSearch y cómo puede colaborar en agregar funcionalidad u optimizar consultas lentas a la DB.Luego repasaremos las distintas opciones que tenemos para integrar el servicio a nuestro código. Pienso recorrer desde la librería de bajo nivel de elasticsearch e ir subiendo hasta las librerías que permiten tener funcionando nuestro código con ES con pocas lineas de código. Algunas recomendaciones para poder sobrevivir a la integración y algunos tests.

Speakers: Ignacio Nicolás Feijoo

Filesystems a los bytes, con python

O cómo leer un filesystem solamente con python y su librería estándar

La idea de la charla es mostrar algunas estructuras de datos relevantes para discos (tablas de particiones MBR/GPT) y sistemas de archivos (FAT32 en particular) y cómo se puede armar una interfaz "pythonica" para leer en crudo esta información. Luego se plantean algunos casos de uso de este "extraño experimento", tanto para análisis de filesystems vivos o copias forenses, ingeniería inversa de sistemas de arhivos y situaciones de recuperación de información e informática forense.

Speakers: Bruno Constanzo

Great Expectations: Validar data pipelines como un profesional

Cuando hablamos de validaciones lo primero que pensamos es en el código, unit test, integration tests, etc. Pero ¿Quién mira a los datos? Great Expectations!

En esta charla vamos a desarrollar la importancia de implementar validaciones a nuestros datos dentro de un pipeline. Para esto mostraremos un prometedor framework de validaciones y cómo se integra dentro de un complejo pipeline con múltiples sistemas alimentando la entrada.

Speakers: Eric Rishmüller

Houdini un poroto... Python Magic Methods!

Fácilmente identificables por sus “dunders” o “double underscores”, los Magic Methods son métodos especiales que permiten definir el comportamiento de un objeto ante los operadores provistos por Python y ante determinadas circunstancias. En esta charla veremos cómo se utilizan, cuáles son sus ventajas y qué aplicaciones prácticas pueden tener.

Los Magic Methods son métodos especiales que permiten definir el comportamiento de un objeto ante los operadores provistos por Python, como la suma (objeto1 + objeto2), la multiplicación, la obtención de items (objecto[x]), etc. En esta charla revisaremos brevemente que Magic Methods existen y qué ventajas aportan. La charla estará centrada en casos de aplicación de los mismos, dónde sus ventajas puedan ser claramente apreciadas en casos de uso propios de la vida real y puedan verse diferentes magic methods actuando en conjunto de forma integral para un mismo fin.

Speakers: Rodrigo Cetera, Lucas Esposito

Internet of Things con Raspberry PI y Python

Conectemos todo a Internet. La idea de esta charla es introducirnos al mundo IOT y sobre cómo podríamos iniciar un proyecto con nuestro Raspberry Pi y Python. Adicionalmente, veremos ejemplos caseros de Domótica y Seguridad.

La idea de la charla es mostrar como iniciar un proyecto con IOT (Internet of Things), Raspberry PI, Python y la aplicación de ejemplos caseros para ver la forma en que puede llevarse a la práctica. Además veremos Domótica y seguridad junto a módulos y sensores, que se pueden utilizar con nuestro Raspberry PI junto a las mejores prácticas de dispositivos IOT.

Speakers: Sebastian Bauer

Introducción al Análisis de Supervivencia con Python

Predecir cuándo va a ocurrir un evento determinado se ha vuelto un requerimiento muy común en la industria, donde surgen preguntas del estilo: “¿cuánto tiempo funcionará un equipo hasta que presente una falla?”, “¿En cuanto tiempo un usuario dará de baja su suscripción (churn)?”, “¿Cuánto sobrevivirá un paciente luego de ser diagnosticado con una enfermedad?”. Estas interrogantes pueden ser abordadas con Análisis de Supervivencia. En esta charla estaremos explicando los conceptos relacionados a esta técnica y cómo generar respuestas con Python.

El análisis de supervivencia permite responder a la pregunta genérica “¿Cuánto tiempo puede transcurrir hasta la ocurrencia de un evento?”. Es por ello que también se lo conoce como análisis del tiempo hasta un evento. Originalmente esta técnica estadística se utilizó en la industria médica para determinar el tiempo de supervivencia de una población testigo, a la cual se le aplicaron diferentes tratamientos. Su utilidad se ha extendido a aplicaciones tales como mantenimiento predictivo para máquinas industriales, análisis de falla para componentes críticos, analítica de clientes y gestión de riesgos de aseguradoras, entre otros. En la charla estaremos hablando de los conceptos básicos del análisis de supervivencia: qué es el análisis de supervivencia, los distintos tipos de censura que se presentan en los datos, las diferentes problemáticas que se pueden solucionar y las métricas utilizadas para medir la performance de los resultados. Se nombrarán brevemente los distintos tipos de algoritmos, librerías existentes y mostraremos el código de una implementación en Python.

Speakers: Bruno Marengo, Jesús Golindano, César Morichetti

Introducción al procesamiento de imágenes con Python

un agente racional que aprende, no omnisciente, que al entrenarlo aprenda a partir de sus percepciones y le permita ser autónomo gracias a la experiencia adquirida. Se mostrará las 6 etapas básicas de procesamiento de imágenes para ese agente y su correspondiente implementación en Python.

Esta charla será una breve explicación para iniciarse en el amplió campo del procesamiento de imágenes basándonos en la librería OpenCV. En primera instancia mostraremos un caso de uso sobre un agente racional que aprende, no omnisciente, que al entrenarlo aprenda a partir de sus percepciones y le permita ser autónomo gracias a la experiencia adquirida. Luego se hablará de las etapas esenciales que se debe tener en cuenta para el procesamiento de imágenes tales como: Adquisición de imágenes; Transformación; Prepocesamiento; Filtración; Extracción de rasgos y Clasificación de objetos. Y para finalizar se mostrará una implementación en Python. Para ejemplificar estos pasos, mostraré un caso de uso para usar en Mendoza, Argentina que es uno de los mayores productores de vino en la región. Clasificaremos 3 tipos de uva obtenidos del dataset de Kaggle: Fruits 360.

Speakers: Carlos Bustillo

Introducción a type hints

Comenzando con Python 3 y con cada nueva versión desde entonces, el lenguaje ha incorporado diversas herramientas para expresar el tipado de nuestro código mediante type hints. Si bien estos chequeos no se aplican en tiempo de ejecución, aplicaciones que pueden incorporarse en nuestro proceso de integración continua pueden interpretarlos y advertirnos de diferentes problemas.

Si bien Python continua siendo un lenguaje de tipado dinámico, con cada versión se robustece el sistema de type hints que permite efectuar el type checking de nuestro código. Con un lenguaje propio, podemos realizar diferentes aseveraciones sobre lo que esperamos, y lo que nos comprometemos a devolver. Herrramientas conocidas como type checkers (como mypy, o pyre) pueden interpretar esas aseveraciones e informarnos cuando estamos rompiendo nuestras propias definiciones. En esta charla no hablaremos de los beneficios de usar type hints; nos dedicaremos a estudiar las herramientas que Python nos ofrece para expresar nuestro tipado: ClassVar, Final, final, Literal, NamedTuple, overload, Protocol, TypedDict, TypeVar, Union, y type aliases. Además, repasaremos algunos problemas con los que te toparás al empezar a usar type hints.

Speakers: Andre Delfino

Jupyter Notebook en la enseñanza de física ambiental

Desarrollo de gráficos animados, con uso de gifs y widgets acompañados con texto científico para explicar la estabilidad atmosferica a estudiantes universitarios en un contexto de carencias de conectividad y equipos, en Salta.

El proyecto presenta un desarrollo básico para explicar de manera clara el concepto de estabilidad atmosférica a los estudiantes de un curso universitario de física ambiental. La Universidad Nacional de Salta se ubica al Norte de Argentina. Sus estudiantes y aún sus docentes sufren carencias varias, entre ellas la de falta de acceso a internet o falta de equipos adecuados. La cuarentena aún vigente en Argentina, obligó a los docentes a multiplicar esfuerzos y a considerar nuevas herramientas para llevar adelante la enseñanza a distancia sabiendo que muchos de sus alumnos sólo cuentan con un celular para participar. Jupyter Notebook se muestra como una versátil y poderosa herramienta de trabajo colaborativo que abre interesantes perspectivas para le enseñanza en este especial contexto. Es así que en una primera experiencia un grupo de tres docentes de distintos niveles reúne esfuerzos para abordar un concepto típico de la física ambiental: la estabilidad atmosférica. Como muchas veces en la física, las explicaciones científicas se elaboran haciendo uso de elementos culturales varios: la lengua, el lenguaje matemático y gráficos. Estos elementos se combinan para lograr la explicación científica de la estabilidad de una columna de atmósfera a través del análisis de lo que le ocurre a una parcela de aire en tres condiciones distintas (una atmósfera estable, una inestable y una neutra). Apuntando al desarrollo visual se utilizan figuras estáticas y gifs animados en los que se observa claramente el movimiento ascendente o descendente de la parcela. Todo esto es basado en el núcleo gráfico de Matplotlib. Los gráficos animados son cuidadosamente creados y ajustados para cada condición atmosférica particular. La estabilidad atmosférica tiene implicancias en la dispersión de poluyentes y por tanto en la contaminación del ambiente. Pero enseñar a distancia combinando estos elementos culturales en contexto de pobreza digital es un gran desafío para la docente de la cátedra que pretende el aprendizaje significativo de sus estudiantes. Así, la propuesta muestra un primer desarrollo de la docente de física ambiental que recurre a otros dos docentes jóvenes que la superan en sus experiencias en el uso de Python. Este desarrollo inicial sirve como punto de partida para aplicar Jupyter Notebook en el próximo dictado de clases de física ambiental en condiciones de pandemia con uso de github como repositorio.

Speakers: Ignacio Joaquin Arroyo, Veronica Mercedes Javi, Sebastian Ismael Arroyo

La API de tu currículum vitae

Vamos a crear una API con Python y Flask, mediante la cual podrás mostrar tu currículum vitae al mundo. Después vamos a subir el código a Github, y luego relacionar nuestra cuenta con Heroku, para hacer el deploy y que nuestra API esté publicada al mundo. Al finalizar, tendrás un proyecto funcionando y una API que le podrás pasar a tus contactos de RRHH!

Vamos a entender qué es y para qué sirve una API, creando una nosotros mismos. Utilizaremos Flask como web framework de nuestra API, y aprenderemos a guardar nuestro código en un repositorio git online, GitHub. Por último, usando Heroku vamos a instalar nuestro proyecto en un servicio de host de proyectos muy fácil de usar para los programadores, relacionando directamente nuestro repositorio git y configurándolo para que se reinstale automáticamente cada vez que hacemos cambios. Usaremos como base la información de nuestro propio currículum vitae, para que una vez finalizado el trabajo nuestra API tenga una función: ser nuestra carta de presentación y nos sirva para buscar trabajo. Pueden ver el resultado en: https://cv-nahueltori-api.herokuapp.com/

Speakers: Nahuel Tori

Machine learning Libre: modelando conversaciones con Rasa y Python

Qué involucra una conversación humana? Qué desafíos se escanden detrás de la naturalidad del lenguaje natural? Podemos modelar esto más allá de reglas, ifs y elifs? Sí, podemos modelar este problema, y así ayudar a personas a través de asistentes virtuales conversacionales. Esta charla busca introducir las preguntas existenciales detrás de los asistentes virtuales que usan machine learning, para proponer algunas respuestas y construir intuiciones. Se introducirá a Rasa, un framework de Python para esto, que es Software Libre.

Notas: Rasa es un framework (Libre) de Python que usa machine learning y sirve para construir asistentes virtuales conversacionales. En esta charla no vamos a mostrar modelos matemáticos, ni fórmulas. Busca ser una charla que construya intuiciones respecto al dominio del problema. Rasa puede ser usado sin ser data scientist, pero cuando el bot empieza a fallar, es necesario tener las intuiciones de lo que involucra una conversación asentadas para poder modelar correctamente un asistente virtual. La charla se divide en dos momentos. En un primer momento se problematiza y se hacen explícitos los desafíos del modelado del problema de la conversación humana y los desafíos técnicos que implicarían implementarlos. En un segundo momento se introduce a Rasa como solución y se explica cómo usando Python este framework implementó estos conceptos, la arquitectura de Rasa, cómo usa Rasa machine learning para este problema, y el ciclo de desarrollo de un asistente conversacional. Si bien lo vamos a mencionar durante la charla, concluiríamos reforzando una intuición que es común a cualquier proyecto de machine learning: los datos son clave. Temario tentativo (en orden): Introducción al desafío de la conversación humana. Entendiendo lo que nos dicen (reconocimiento de intenciones y de entidades). Entendiendo de qué se está hablando a lo largo de una conversación (slots). Manteniendo una conversación (policies) y modelando la memoria (tracker). Contexto, inferencia, datos. Algunas expectativas de los usuarios de asistentes virtuales y cómo responder ante esto (UX). Introducción a Rasa. Viendo estos conceptos implementados en python por Rasa! Módulos y arquitectura de Rasa. Ciclo de desarrollo de un asistente virtual. Usos y ejemplos. Consideraciones relevantes al machine learning ( Machine learning => datos, datos, datos)

Speakers: Karen Palacio, Florencia Alonso, Brandon Janes. (Kunan Sa)

Mejorando el acceso a la mecanización de pequeños productores arigcolas con Python y GeoDajngo

Python tiene un ecosistema muy interesante para el desarrollo de aplicaciones que hacen uso de GIS. También es una excelente herramienta para el análisis de datos y consumo de datos IoT. Esta charla intenta introducir la experiencia de trabajar con proyecto de Python consiente en un back-end para aplicaciones móviles y aplicación web y un conjunto de herramientas para facilitar el trabajo de analistas de datos.

Esta presentación se trata de el trabajo realizado modernizando una aplicación desarrollada inicialmente en un BaaS y su transformación a Python meidante la creación de clientes epsecíficos para Python utilizando requests y poetry en conjunto con Jupyter y Pandas. Continúa expandiendo en la utilización de Django y en particular GeoDjango en el trabajo con datos provenientes de sistemas de tracking de vehículos. En este area se hace incapié en el uso eficente el ORM cuando se trabja con PostGIS. Como cierre, se aborda la utilización de algunas tecnologías basadas en la nube y su automatización para aumentar la eficiencia del equipo.

Speakers: Nahuel Defosse

Pasaron cosas: logging efectivo para entender qué sucedió

El logging es una técnica indispensable en el software productivo, pero hay muchos conceptos y una API confusa que hacen su uso innecesariamente complicado. Entendamoslo... antes del segundo semestre.

El logging es una técnica indispensable en el software productivo, pero hay muchos conceptos y una API confusa que hacen su uso innecesariamente complicado. Logger, filters, niveles, propagation y más conceptos que siempre pateamos para el segundo semestre. Y el logging estructurado como la manera simple y potente (¡pitónica!) de pagar un poco de la deuda (técnica) que nos dejaron.

Speakers: Martín Gaitán

Peewee

Peewee es un ORM simple y pequeño. Tiene pocos conceptos (pero expresivos), lo que lo hace fácil de aprender e intuitivo de usar.

Para Python existen diferentes librerías que hacen este trabajo de mapeo y el día de hoy hablaré de PEEWEE el cual he probado y me ha gustado por ser sencillo y al mismo tiempo potente en el manejo de los datos de diferentes motores relacionales.

Speakers: Jose Oscar Vogel

¿Por que no se hacen mas tests?

Hablar un poco sobre test en gral y lo que uno se encuentra al iniciar en esta practica. Mostrar algún ejemplo práctico, para pasar por los conceptos principales. Todo orientado a pytest.

La charla intenta hablar un poco sobre la realidad a la hora de hacer test, al menos la nuestra y la que vemos en muchos pares. Notar que a veces esta práctica lleva una dificultad o un proceso que pareciera alejarse un poco del proceso de desarrollo que aplicamos mientras realizamos la tarea. Luego dar una introducción práctica a test con pytest, intentado de mostrar que es Mock, MagicMock, Patch, MonkeyPatch y Fixture, como herramientas que van resolviendo necesidades que se presentan mientras realizamos un test muy sencillo. Finalmente y si es que llegamos a tener algo presentable, hablar de la idea que tenemos de formar un repositorio abierto de test, con ejemplos funcionales de distintos test bien documentados. O sea un repo de github donde se puedan encontrar test documentados y categorizados, que se pueden correr (funcionales), que en este proceso inicial de formarlo iremos pensando la política de colaboración al mismo, así aseguramos ciertos requisitos mínimos

Speakers: Mariano Bianchi, Andrés Ramírez

Pythonic APIs con GraphQL

GraphQL es un nuevo paradigma a la hora de diseñar nuestras APIs. Vamos a hablar sobre cómo podemos programar una API Pythonica mediante GraphQL que todos nuestros clientes amen consumir

GraphQL es un paradgima para la construcción de APIs alternativo a REST que es el predominante hoy en día. Vamos a introducir la tecnología, con una explicación de su origen, qué problemas soluciona, cómo fue evolucionando, y por qué puede ser una herramienta muy interesante a la hora de exponer nuestro dominio de negocio a través de una interfaz de programación de aplicaciones (o API) En esta charla vamos a abordar: ¿Qué entendemos por una buena API? ¿Cómo podemos combinar Python y GraphQL para diseñar una API fácil de consumir? ¿Cuales son los principales errores, desafíos y tentaciones a la hora de diseñar APIs GraphQL? ¿Cómo luce el ecosistema de librerías en Python para GraphQL? El fin último ´de la charla es despertar interés en GraphQL como para animarse a probarlo en algún proyecto futuro y de esa forma seguir consolidando el ecosistema Python Graphql.

Speakers: Nahuel Ambrosini

Python para DevSecOps

La eficiencia de las implementaciones DevSecOps se ve favorecida por la incorporación de Python a las habilidades de Equipos de Seguridad Ágiles

DevSecOps es un perfil en alta demanda para compañías que consideran la Seguridad de la Información como un factor clave de sus implementaciones ágiles. Las habilidades de scripting en Python para analizar, procesar y transformar archivos, consumir APIs, automatizar procesos, centralizar información y notificar sobre incidentes que requieren atención inmediata son un diferencial para profesionales interesados en cubrir estas posiciones. En esta charla descubriremos como abordar estos diferentes casos de uso desde una visión general que permita un acercamiento amigable a estos temas y despierten curiosidad para ser explorados con posterioridad.

Speakers: Alfredo Pardo

Python worst Practices AKA Anti-Patterns

This talk is aim to summarize the common Anti-Patterns in Python. It is overwhelming to see so many resources to learn best practices in Python. However it is more scary that there are very few places which will teach you what you should NOT do while coding.

In recent few years, we have seen many people teaching the best practices with good example code, that a programmer should follow when using Python. But it is difficult to find what we can improve in our code that can make it better and more standardize according to Python PEP8. This presentation aims to give a quick overview of 1. Different categories of Anti-Patterns 2. common anti-patterns we see in day to day production code and how we can improve them We will share what we have learn so far and encourage you to try it with your own projects. We'll walk through a simple example, with screenshots and code wherever required.

Speakers: Pratibha Jagnere

Python y C un solo corazón

SAn compartirá su experiencia desarrollando el software de comunicaciones de un satélite usando Python y CFFI.

La biblioteca de python CFFI es muy versátil y permite complementar C con Python o Python con C. Hay muchas razones para hacerlo, en la charla vamos a explorar algunas como: * TDD en Python de una biblioteca en C * compartir código C en embebidos con sistemas de tiempo real y una aplicación linux. En esta charla se compartirá la experiencia de utilizar CFFI para el desarrollo de software del sistema de comunicaciones de un satélite de órbita baja. Se mostrará cómo se reutilizó código C tanto en la radio del satélite, embebida con sistema de tiempo real, como en la radio de las estaciones terrenas basada en Linux.

Speakers: Santiago Piccinini

Recetas para ser más feliz con Docker.

Docker es una de las herramientas de mayor crecimiento en los últimos años. Esto se debe a la simplicidad con las que nos permite armar grandes entornos tanto locales como en producción. En esta charla nos centraremos en repasar algunos conceptos básicos para poder crear un entorno de desarrollo simple y confiable, que se parezca lo más posible a nuestro entorno productivo y así evitar sorpresas a la hora de hacer un deploy.

La idea de la charla es principalmente explicarle a los que están arrancando en desarrollo o a las empresas que aún no lo utilizan en su día a día como armar un entorno de desarrollo simple y flexible para que lo puedan adaptar a las distintas necesidades. Tiene un contenido 50% teórico y 50% práctico, en donde se mostrarán conceptos relevantes de Docker y Docker Compose a modo introductorio para que puedan seguir los ejemplos prácticos. Tendrá como soporte una presentación donde se contará lo que se hace y un repositorio con distintos ejemplos de aplicaciones web que servirán para mostrar los distintos casos de uso propuesto utilizando distintas tecnologías (al menos flask y django) y que podrán usar de template para próximos proyectos. * La duración de la charla es de 20/30 minutos.

Speakers: Serafin Fernandez

Rompiendo el monolito

Experiencias de descomposición y/o extracción de funcionalidad en microservicios, como forma de hacer frente a la deuda técnica y la mantenibilidad del código

Tanto RadioCut (https://radiocut.fm) como Fierro (https://www.fierro.com.ar) son dos productos desarrollados en Python hace varios años (7 y 15 respectivamente) con una arquitectura bastante monolítica, acumulando bastante deuda técnica y difíciles de mantener. Desde hace un tiempo venimos extrayendo funcionalidad a nuevos microservicios o pensando nuevos módulos como microservicios en un cambio gradual a este tipo de arquitectura. Vamos a compartir las experiencias y lecciones aprendidas en este proceso que estamos transitando.

Speakers: Guillermo Narvaja, Gabriel Parrondo

SQLite, la (des) conocida super hormiga

SQLite, disponible desde hace tanto tiempo y tan desconocido. Es una base de datos relacional, optimizada para ser pequeñísima, rápida, flexible, para usos individuales, sus grandes bondades, especialmente a la hora de integrarlo a nuestro software en Python y las múltiples posibilidades que da para ser optimizado para los más variados usos, son mayormente desconocidas

Empiezo por explicar las ventajas y usos específicos de este tipo de base de datos, mucho más apropiado para ciertos usos que las conocidas bases de datos multiusuario. Prosigo enseñando algunas funciones LAMBDA, y como hacer tipos especializados de datos, ordenamientos especializados, etc. Cierro la charla mostrando algunas de las opciones menos conocidas de esta tecnología, como el uso de indexado para la búsqueda por texto completo.

Speakers: María Andrea Vignau

​ Una Apología Poética: Poetry para manejo de dependencias y empaquetado de módulos.

Poetry es una herramienta para manejo de dependencias y empaquetado de módulos. Mostraremos, a través de un ejemplo, porque consideramos que es una versión superadora a alternativas preexistentes (como virtualenvs, setuptools y pipenv) y como integrarlo con otras herramientas modernas del ecosistema (como pyenv o pipx).

El manejo de dependencias en Python ha sido históricamente problemático. Pip, por caso, recién en Octubre de 2020 será en principio capaz de resolver dependencias de forma consistente. El correlato de esto ha sido que para poder desarrollar aplicaciones o librerías en entornos aislados y replicables debamos recurrir, convencionalmente, a una combinación frágil y difícil de mantener de entornos virtuales con múltiples archivos de requerimientos. Si además deseamos empaquetar nuestro código debemos agregar una capa extra de complejidad dada por el script de buildeo de setuptools. Por último, para garantizar que dicho código funcione con distintas versiones de Python, debemos añadirle a esta combinación de por si endeble (y poco segura) algún mecanismo (como pueden plugins ad hoc de virtualenvs) que justamente permita hacer ejecuciones con versiones dispares. ​ Poetry es una herramienta que resuelve las dificultades mencionadas arriba de una forma centralizada, sencilla e intuitiva. Con el objeto de ilustrar porque es entonces a nuestro entender una solución superadora al problema de obtener dependencias consistentes en entornos aislados y replicables de un código empaquetado, iniciaremos la charla mostrando primero justamente las limitaciones que tienen las herramientas tradicionales (virtualenvs, requirements, setup.py, pipenv, etc). Discutiremos luego cómo Poetry soluciona estos problemas utilizando virtualmente un único archivo de configuración: el `pyproject.toml`. Señalaremos asimismo como se integra de forma transparente con otras herramientas ideadas para obtener entornos reproducibles como son pyenv y pipx.

Speakers: Pedro Ferrari

Únete a traducir la documentación de Python

En esta presentación se dará a conocer al proyecto python-docs-es, se mostrará lo facil que es contribuir en la traducción de la documentación de Python

Tener la documentación de Python en español es muy importante para facilitar la introducción la lenguaje de las personas hispanohablantes. La idea de esta presentación es dar a conocer este proyecto en la que están involucradas personas de varias partes del mundo; y mostrar que con pocos conocimientos técnicos se puede comenzar a contribuir.

Speakers: Emmanuel Arias

Unit Testing: Qué testear y cómo testear con pytest.

¿Y esto cómo lo testeo? En esta charla quiero abordar algunas dudas típicas al momento de escribir tests. Voy a hablar de de mocks, de patchs, de coverage y va haber una demo de todo esto con pytest en su máximo esplendor.

Escribir tests es casi un arte, y no siempre es simple saber que cosas hay que testear. Esta charla se va a dividir en tres partes: - Por qué (y para quién) testeamos? - Cómo escribir tests? Ejemplos de tests buenos, no tan buenos, y malos. - Cómo le sacamos el jugo a pytest?: Ejemplos de fixtures, parametrizaciones, etc.

Speakers: Sofía Denner

Visual Search, de 0 a POC!

Te contamos cómo en unos simples pasos, usando herramientas open source, llevamos a cabo una POC para Mercado Libre. Este experimento se enfoca en mejorar la experiencia de búsqueda de los usuarios. Queremos presentarles Visual Search: un proyecto que todavía está en fase "incubadora" pero que tiene como objetivo encontrar ítems publicados en el portal parecidos a una imagen o foto que el usuario pueda cargar, basándose en la similitud de imágenes.

El objetivo es contarte cómo puedes desarrollar una app para la búsqueda por imágenes, usando librerías open sources. Para ello nos basamos en un pipeline desarrollado por eBay, adaptándolo a los procesos y herramientas con las que contamos dentro de Mercado Libre. En una primera instancia contamos con una Red Neuronal Convolucional (ResNet) pre-entrenada para predecir a qué categoría pertenece la imagen ingresada, y además está preparada para devolver la anteúltima capa de la red, la cual nos permite obtener los embeddings con los que la red caracterizó a la imagen. Luego, una vez que se obtiene esta información, se realiza un cálculo de distancia entre vectores con imágenes previamente procesadas, las cuales se corresponden a ítems del sitio, retornando aquellas imágenes cuya distancia sea menor, es decir, las que poseen mayor similitud entre ellas.

Speakers: Facundo Salmeron, Francisco Yackel, Elbio Zapata, Diego Garcia

FAQ


¿Como van a ser las charlas virtuales?

Para poder asegurar la calidad de las ediciones pasadas las charlas van a ser grabadas previamente, editadas y transmitidas por YouTube Live durante el evento . A su vez, cada charla tendrá un canal exclusivo en Discord en donde el disertante podrá responder preguntas y continuar discusiones con posterioridad al evento.

A cada charla le corresponde un slot de 30 minutos en total. Siendo que el video de la charla no debe superar los 20 minutos de duración.

¿Qué tengo que tener en cuenta para esta edición virtual?

Por empezar las propuestas a charlas deben cargarse para su evaluación en:

Quiero proponer una charla o taller en PyConAr2020

La fecha límite de envío de propuestas de charlas es el 15 de septiembre inclusive.

La misma debe tener los siguientes datos:

  • Título
  • Sumario: Un párrafo, como para ser incluido en el programa de charlas
  • Descripción de la charla: Uno o dos párrafos que expliquen no tan brevemente el contenido de la presentación, para su evaluación.
  • Autore(s): Nombre y apellido, breve descripción, foto, asociación, organismo, o empresa a la que pertenece, si corresponde.
  • Tiempo estimado de duración: Las charlas generalmente son de 20 minutos. En caso de que sea mayor o menor el tiempo requerido solicitamos su justificación.
  • Nivel objetivo de la charla: introductorio / intermedio / avanzado
  • Tipo de público: Avanzado / Intermedio / Principiante / Docentes / Público en general.
  • Conocimientos previos: Especificar qué conocimientos previos se deberán tener para seguir sin problemas la charla.
  • Tags: web, GUI, databases, frameworks, ORM, IDE, ciencia, educación, juegos, comunidad, etc.
  • Teléfono del autor/es (para poder comunicarnos)
  • Ciudad de residencia del autor/es.

El envío de presentaciones debe tener alguno de los siguientes formatos:

  • OpenDocument (Openoffice.org / LibreOffice)
  • HTML standard
  • PostScript
  • PDF
  • Texto plano
  • Una vez finalizado el período del envío de propuestas se realizará una selección de las charlas disponibles.

    A los disertantes seleccionados, antes de recibir la grabación definitiva, les vamos a pedir un mini video de 1 o 2 minutos para verificar la calidad de grabación

    Una vez seleccionadas las charlas y realizada la prueba del mini video van a poder trabajar en la grabación definitiva de la charla.

    Ya que cada video lleva un trabajo de edición en donde se incluirán logos o anuncios de sponsors e información sobre el evento, es de suma importancia que se respeten los plazos establecidos para evitar imprevistos en la organización y tener el tiempo suficiente de hacer una edición de la calidad que la PyCon amerita.

    También es importante especificar una licencia que permita que la presentación pueda ser descargada del sitio web de PyAr. Se recomienda Creative Commons o similares.

    Durante la conferencia, los speakers deberán estar online al momento de transmisión de la charla para poder responder las preguntas generadas.

    Planificamos un protocolo que podrán revisar si son seleccionados como speaker de la conferencia y los organizadores estaremos disponibles para cualquier consulta o ayuda que necesiten.

    ¿Y los talleres?

    Los talleres serán transmitidos mediante YouTube Live y la interacción será mediante Discord.

    El espacio dedicado a los talleres será los días sábados por la mañana, aunque al disponer de dos semanas para toda la conferencia, este puede adaptarse a las propuestas de quienes dicten el taller. Siempre y cuando estos no se superpongan con los slots de charlas, el resto del espacio de la conferencia estará dedicado a actividades como los talleres o sprints.

    ¿Puedo proponer alguna actividad que no esté especificada acá?

    ¿Tenes una idea y querés compartirla? ¿Querés dar un taller o proponer una actividad para la PyCon? ¡Escribinos a charlas@python.org.ar con tu propuesta.

    Código de conducta

    PyConAr es un evento de la comunidad que busca mejorar la comunicación y colaboración entre los desarrolladores.

    Valoramos la participación de cada miembro de la comunidad de Python y queremos que todos los asistentes tengan una experiencia agradable y satisfactoria. Para ello, se espera de todos los asistentes que se sean respetuosos y educados con el resto de la los asistentes, sea durante la conferencia misma o cualquier otra etapa relacionada.

    Para que quede claro lo que se espera, todo delegado, disertante, expositor o voluntario deberá seguir el siguiente Código de Conducta. Los organizadores cuidarán la observación de estas normas durante el evento.

    La versión corta

    Uno de los objetivos de PyConAr es proveer una experiencia libre de acoso o discriminación para todos, sin distinciones de género, orientación sexual, invalidez, aspecto físico, tamaño corporal, etnia, o religión. No se tolerará la discriminación de los asistentes en ninguna forma.

    Todo contenido debería ser el apropiado para una audiencia profesional incluyendo a personas de distintas áreas. Las temáticas y contenidos sexuales no son apropiadas para ninguna instancia del evento.

    Se amable con los demás. No insultes o desprecies a otros aisistentes. Compórtate como un profesional. Recuerda que chistes discriminatorios, sexistas, racistas, de acoso no son apropiados para PyConAr.

    A los asistentes que violen estas normas se les podrá pedir que abandonen la conferencia sin derecho a reembolso, siendo suficiente para ello el criterio de los organizadores.

    Gracias por hacer de este un evento abierto a la comunidad y amistoso.

    La versión larga

    Acoso incluye comentarios ofensivos relativos a género, orientación sexual, invalidez, aspecto físico, tamaño corporal, etnia, religión, pornografía en espacios públicos, intimidación deliberada, acecho, persecución, acoso por fotografías o grabaciones, constante interrupción de charlas u otros eventos, contacto físico impropio y el acoso sexual.

    Los participantes que sean apercibidos por acoso deberán abstenerse inmediatamente.

    Se cuidadoso al seleccionar las palabras. Recuerda que los chistes sexistas, racistas y de otras clases pueden ser ofensivos para los demás. El exceso de malas palabras o chistes ofensivos no son apropiados para PyConAr.

    Si un participante se comportara de forma que violase el Código de Conducta, los organizadores de la conferencia podrían tomar las medidas que ellos consideren adecuadas, incluyendo el apercibimiento o expulsión de la conferencia, sin derecho a réplica.

    Contacto

    Si eres objeto de acoso, notas que alguien más está siendo acosado, o tienes cualquier otro reclamo, por favor contáctate con uno de los organizadores del evento o via mail a: