Crónica del PyDay

Hace tiempo

Todo empezó hace unos cuantos meses. Dijimos con mi amigo Pelín “¡hagamos un pyday!”

Un par de meses pasaron y todavía no se hacía nada, así que le dije “pongamos una fecha”.

 Al principio de todo se puede tener preparadas algunas cosas: por ejemplo, la descripción del evento que deseamos y algunas plantillas para la parte gráfica. Plantilla de e-mail.

Dos meses antes

Él propuso su empresa como lugar, porque allí tendríamos probablemente un catering y una pantalla gigante para proyectar. Claro que, como mucho, podríamos tener unos 25 asistentes.

La fecha fue una difícil decisión: primero podía ser un 6 de noviembre, pero después esto resultó muy pronto y quisimos mandarla al sábado 19. Esto le dije que era mejor que no, porque en ese mismo día los chicos de Catamarca estaban organizando el suyo. Así que quedó para el día 26 de noviembre de 2022.

 La decisión de la fecha es algo que también debería generar un más amplio pedido de opinión. Además, hacerlo con un mínimo de tres meses.

Propuse dos opciones de imagen gráfica y pedí opinión a la comisión directiva de pyar, y finalmente quedó la primer idea que tuve.

50 días antes

Hacia el 10 de octubre, ingresé a la instancia de EventoL de Python Argentina, con mi usuario cree el evento, subí la imagen que habíamos armado, ingresé la fecha de realización, cree una sala única del evento, puse el lugar de realización, la empresa de Pelín.

 En este momento tendríamos que haber redactado también una descripción textual del evento, para poder ponerla en la instancia de eventoL

Y luego publiqué en mis redes sociales de pythonistas el llamado a propuestas con el link generado en eventoL para que la gente se anote.

 Aquí era el momento idóneo para buscar sponsors, tanto de python argentina, como en empresas locales o gobierno. Así, con cada respuesta positiva se puede anunciar algo en redes y medios para ir generando expectativa en la personas. Y aquí debí empezar a pedir colaboradores: alguien que quiera ir al evento y encargarse de video, grabación y fotografía.

40 días antes

Cree una charla en mi canal de youtube, que esperaba sirviera para dar impulso a la gente que quisiera animarse a ser speaker el día 19 de octubre. Traté de darle difusión y luego me puse a esperar.

1 mes antes

Nos avisaron que había otro lugar disponible para nuestro evento. Después de un poco de indecisión, nos pareció más amplio que el lugar original. Me dieron el contacto de la persona a cargo de administrarlo. Así que me puse en contacto con ella

25 días antes

Sergio Lapertosa nos comentó que una persona, Samuel Noya, que podría proponerse y le había pasado el contacto para hacerlo. Nunca lo hizo.

 Un problema aparte es la reticencia de algunos speakers de formalizar en EventoL. El pedido de propuesta es abierto, pero igual parecen dudar de describir su propuesta en el sitio. Quizá brindar un sistema de chat inmediato para hablar con los organizadores simplificaría las cosas.

Nos decidimos por la Usina, que nos pareció más amplio que el lugar original. Me dieron el contacto de la persona a cargo de administrarlo. Así que me puse en contacto con ella. Al principio, creíamos que nos proveerían de un pequeño coffee break.

24 días antes

Llegó la primera propuesta, e inmediatamente me puse a hacer el cartel gráfico para anunciarla por todas partes.

 Con la guía del coordinador o “redactor jefe” del evento, y del diseñador gráfico, se tiene que hacer marketing en las principales redes sociales. El trabajo de manejo de comunidades implica que alguien debe tener, en este caso, Instagram, Twitter, Facebook, Linkedin, y estar incluido en las comunidades de Python locales. Y cualquier otra red social donde la gente se agolpe.

El administrador de comunidades es un rol central en todo momento.

Lamentablemente, en ese momento no manejaba bien EventoL y no me resultó nada amigable encontrar como avisar a los que propusieron que su propuesta estaba aceptada.

 A los speakers hay que darles feedback siempre. Son el eje del espectáculo. El hecho de dar por supuesto que la gente que vendría de lejos estaba en las mismas redes y asumiría que al estar difundiendo su propuesta es que nos gustó implicó que después se bajaran. EventoL no permite a la gente ingresar más contacto que un email, y, encima, no lo pone en un lugar que me resultara intuitivo a mí.

8 días antes

Ante la falta de propuestas, el día 18 de noviembre anoté una charla mía, que prefería ensayarla antes de proponerla en otros foros internacionales.

1 semana antes

Al día siguiente empecé a desesperar: faltaban propuestas, faltando apenas una semana, no podía confirmarles a los chicos de la propuesta sobre testing y no aparecía más gente. Pedía ayuda en el grupo de organización. Dos de las chicas que querían aportar. Una de ellas, Zoe, al fijarse en su charla, decidió que no sería apta para una audiencia que recién empezaba con la programación. Valeria, la otra, me empezó a hablar, y nos pusimos a elaborar su propuesta.

También formalizó Matías, que inscribió su propuesta Introducción a Python el día 22 de noviembre. Ya contaba con su colaboración desde hacía un mes, pero lamentablemente no tenía una descripción formal y no podía agregarla al cronograma.

Me dijo que en la Usina nos ayudarían con la difusión. Esto se cumplió de forma muy tibia.

Para conocer bien de cerca el lugar donde haríamos el evento, fui a otro evento informático la semana previa. Allí pude ver que eran muy lindas las instalaciones, pero me dijeron que no proveían ninguna ayuda con la comida y que tampoco tenían pantallas para que usáramos: deberíamos traer un proyector propio. Y alguna tela o algo así para poder ver la imagen, ya que no hay ninguna pared blanca apropiada.

El proyector sencillamente traje el mío, que es apto para eventos diurnos porque tiene bastante potencia de imagen. Sin embargo, con la pantalla de proyección estuvo más difícil. Por suerte, un amigo de Pelín tenía la pantalla para la proyección. Sino, hubiéramos debido improvisar con alguna tela blanca, quizá.

5 días antes

Después de ver en youtube una charla donde decía que uno de los principales tips que daban era asegurar que la gente tuviera suficiente para comer y beber. En el evento que había ido la semana anterior al mío me había gustado mucho el servicio, así que quedé con el contacto y le solicité un coffee break. Estimé unas treinta personas asistiendo, aunque en ése día martes apenas teníamos 8 inscriptos. Por suerte, la encargada del catering quería mantenerme como cliente y de inmediato me dijo que sí, que podría hacerlo.

Dos días antes del evento

Esto trajo algo que no había considerado: quedé adeudando. El coffee break podía donarlo, pero igual me pareció pertinente pedir ayuda económica. Así que hablé a Facundo Batista y el me pasó el modelo que habían usado otros grupos para solicitar el dinero. Una vez que llené el modelo con los datos de mi evento, el mandó a los contactos que tenía y gracias a ello, parte del costo será eventualmente devuelto.

Armé el cronograma definitivo y empecé a difundirlo y solicitar que difundan por redes sociales. Lamentablemente, no pude usar algunos medios, como email o pegar carteles por la falta de personas dispuestas a dar charlas.

36 horas antes

Lamentablemente, todavía no sabía como asegurar la presencia de los speakers que venían de lejos, ni ellos habían hecho esfuerzo alguno para conectar. Me guiaron a la forma de ver en eventol el email que habian dejado y allí me encuentro con que era muy tarde: ellos no habían preparado su viaje y no vendrían.

Zoe S., mientras tanto, me aseguró que podría imprimir ése día viernes el cronograma y los papeles con los códigos qr para la autoinscripción.

24 horas antes

El día anterior al evento llegó Matías de Gualeguay, y lo recibí en mi casa. Quedé arreglando las cuestiones últimas de agradecimiento a nuestro único sponsor, ajustando los carteles que se imprimirían y revisando las diapositivas de mi propia charla.

El día del evento

Al día siguiente me levanté muy temprano. Ensayé mi charla, depuré algunos defectos y lo levanté a Matías, que estaba en mi departamento. Armamos los bolsos con proyector, capturadora de video, cables, computadoras y nos fuimos al lugar del evento, a 900 mts de ahí.

Cuando llegamos, abro el Whatsapp y Valeria, la oradora que se había agregado para cerrar nuestro evento, no podía venir, se había descompuesto a la noche.

De todas formas, pusimos la pantalla blanca con Pelín, movimos sillas y mesas para adaptarlos a nuestro setup, calibramos el proyector para máximo brillo en la sala tan iluminada, puse la video cámara a filmar.

A las 9:30, dí apertura al evento, comenté sobre el PyCamp en Corrientes, sobre Python Argentina, e invité a Matías a empezar a hablar.

Mientras tanto, con Pelín empezamos a ver qué hacer con la falta de dos speakers.

Matías, que sabía del inconveniente, alargó un poco su charla. Mi charla, que sería la tercera, la pusimos segunda. Luego del coffee break, que fue un momento donde los asistentes pudimos ponernos en contacto y disfrutar realmente del evento, llegó Pelín que se había ido a buscar algunos elementos de su casa.

La charla de él fue todo un éxito, y luego Zoe dió una speed lighting de introducción a GIT. Allí preparamos varias remeras donadas por Python Argentina y stickers traídos de PyCon USA para sortear y repartir entre los asistentes.

Después del sorteo, hablamos un poco varios de los programadores que ya trabajabamos con Python sobre nuestras experiencias y consejos para los que quieren empezar.

Después del evento

Y hoy debo ingresar mi proveedora, mi sponsor y mis costos en el sistema de registración de Python Argentina.

Aún falta editar los vídeos, y subirlos a Youtube.

OpenLex en Google Summer of Code

Este año soy mentora del Google Summer of Code, por segundo año consecutivo.

¿Qué es el Google Summer of Code?

Es un programa global organizado por Google que acerca a los estudiantes al software libre, a las organizaciones de software libre relacionadas a la tecnología para ser parte de las comunidades, y de paso, tener un sueldo.

Los estudiantes van a tener la posibilidad de trabajar como en realidad se hace, aplicando los conocimientos teóricos, trabajando en grupo en forma remota o presencial, utilizando herramientas indispensables como control de versiones, github, etc y usando los estándares actuales en desarrollo de software. ¡Y ganando una beca por ello!

Todo esto tutelado/guiado por mí y probablemente por alguien más, en un ambiente amigable y seguro, y en español.

El proyecto es OpenLex, un software para web diseñado y desarrollado por mí, pensado para el manejo de estudios de abogacía, que necesita amor para crecer, y así ser modernizado y completado:

  • Migrarlo a Python3, y a Py4Web

  • Actualizar las versiones de las librerías JavaScript

  • Preparar una versión demo on line.

  • Armar un manejo de usuarios más robusto

  • Algunas features adicionales son muy necesarias, como implementar el uso de templates para los escritos.

Para ver más, podrías mirar en

¿Qué se precisa?

  • compromiso real,

  • conectividad estable y disponible para una o dos reuniones semanales on line (si tu conexión es lenta, por lo menos se necesita transmisión de audio).

  • una computadora a la que tengas acceso 18 hs por semana como mínimo.

  • instalarte Telegram, porque ése va a ser nuestro medio de comunicación habitual, ahí tenemos coordinar reuniones y comunicarnos día a día.

  • Ser apto para GSoC: tener más de 18 años, estar estudiando algo relacionado a la informática posterior al secundario o haberse recibido entre 1/12/20 y 17/05/21, y poder trabajar.

En lo técnico, lo que necesitás es muchas ganas, pero estaría bueno si conocés python, git, javascript, algo sobre programación web. ¿No conocés todo esto? ¡Esto es un proceso de aprendizaje, vamos todos juntos a apoyarnos en el desafío! Abajo agrego una lista de algunos sitios fantásticos donde aprender todo lo necesario.

Entonces, ¿tenés ganas de participar? ¿Qué hacer?

  1. Creá tu plan de proyecto: hay que investigar un poco, pensar posibles soluciones alternativas, inspirándose en la lista de issues.

  2. Acordate que GSoC se maneja en fases, la primera fase es para conocerse en la comunidad y familiarizarse con el código y su estilo, después viene la fase inicial de codificación, en l a cual serás evaluade por mí, como mentora,  y luego vendrán las 5 semanas de codificación, al final de ellas, tendrás que entregar algún producto y dar el URL.

  3. Pagos: los pagos son en dos partes , la primera luego de pasar la fase 1, y la última luego de terminar, utilizándose la plataforma Payoneer, un total de 1500 U$S. Cuando seas aceptade, el link para registrarte llegará a tu email. Tendrás un certificado de finalización al completar el programa.

Las fechas límite:

29/03/2021 al 13/04/2021: Para que les alumnes presenten sus propuestas.

13/04/2021 al 17/05/2021: Para que revisemos las propuestas presentadas

17/05/2021 al 07/06/2021: Me presento con les estudiantes como mentora, y en este tiempo pueden aprender más sobre la organización y el código existente.

07/06/2021 al 16/08/2021: Codear, codear, codear!

12/07/2021: Les estudiantes y yo nos evaluamos mutuamente.

16/08/2021: Les estudiantes envían su código, la síntesis de su proyecto y las evaluaciones finales de mentoría.

23/08/2021: Evalúo el código de les alumnes y dictamino si se cumplieron los objetivos del proyecto.

31/08/2021: Les alumnes reciben la notificación, y si pasaron o no los proyectos.

¿Te gustó?¿Todavía tenés dudas?

Bueno, podés leer más sobre GSoC:

El sitio oficial summerofcode ,

El manual del alumno student guide

Sobre el pago: payoneer

Y sobre las tecnologías que empleamos:

Python3: El tutorial de Python Inmersión en Python

Py4Web: py4web documentation

JavaScript: w3school javascript

GIT: gitexplorer try github

Cómo acelerar por harware operaciones con videos

Cómo acelerar por hardware operaciones con video.

Hola! Tengo un hw bastante modesto (i5, 8G RAM), Linux Mint y hago muy cada tanto algo de edición. Así que estuve mirando cómo hacer para ver cómo era mi tarjeta gráfica, para ver si había algún recurso de aceleración que no había aprovechado. Encontré que debía hacer >> lspci | grep VGA >> sudo lshw -C video ahí, supe que tenía una plaqueta gráfica intel HD Graphics 5500

OBS Studio

En los ajustes avanzados de salida, apartado video, descubría que tenía la posibilida de comprimir usando hardware, pero cuando lo traté de habilitar, me informé de que faltaba habilitar la aceleración Ahí me informé que existe una biblioteca de uso de mi tarjeta gráfica llamada vaapi, así que busqué $ sudo apt-cache search vaapi ahí me encontré con dos paquetes que pocedí a instalar $ sudo apt-get i965-va-drivera $ sudo apt-get i965-va-driver-shaders y entonces empezó mi obs studio a funcionar mucho mejor

Verificando el uso

Para poder ver el nivel de exigencia de mi tarjeta, instalé $ sudo apt install intel-gpu-tools Así al hacer $ sudo intel_gpu_top podría ver el nivel de exigencia

FFMpeg: transcodificando

Después, encontré que ffmpeg también nos permite utilizar la gpu para transcodificar. $ ffmpeg -vaapi_device /dev/dri/renderD128 -i <inputfile> -vf 'format=nv12,hwupload' -c:v h264_vaapi <outfile>.mkv

KDEnlive: Edición de videos

Finalmente, me encontré intentando lograr la aceleración de videos. Buscando, encontré que podría ser posible, pero primero es necesaria la biblioteca movit y rtaudio. $ sudo apt-get install librtaudio6 $ sudo apt install libmovit8

Encontré algún artículo [1], pero aparentemente sólo recompilando la librería MLT se podría hacer.

Análisis encuesta asistentes

Decidí que necesitaba algo más de información respecto del perfil y las preferencias del público que asistió a los eventos que coorganicé en el año pasado.

Quiero así también conocer qué tal estamos yendo, la edad y el género promedio de las personas que asistieron. Así que envié emails a todos los emails registrados, enviándoles una salutación de fin de año y también mandándoles el link para completar la encuesta. También puse en todos los grupos en redes sociales que surgieron de las reuniones, Telegram, Whatsapp, Facebook y por Twitter.

El resultado final pueden verlo acá:

resultado final.

Proceso de análisis

Una vez obtenidos los datos, el desafío fué bajar la información. Encontré que podía abrir planilla de cálculos con los resultados y posteriormente exportar a CSV (Comma Separated Values).

Conectando con la API de Google

Pero luego me sugirieron conectar directamente con la API de Google, y así fué que cree un proyecto en Google usando la consola Google.

Fuí al dashboard del proyecto, y de ahí seleccioné APIs, y navegué a la biblioteca de APIs.

Habilité Google Drive API, luego fuí a crear credenciales. Allí elegí que la llamaría a la API desde otra interfaz de usuario (CLI, Windows) y que necesitaría usar datos de usuario.

Luego cree una cuenta de servicio llamada encuesta, y bajé las credenciales en formato json. Las copié al subdirectorio en el que se encontraba mi notebook jupyter.

Ahí fuí a la hoja de cálculo GCalc, y la compartí con el usuario de la cuenta de servicio, que tiene un email que termina en encuesta@.....iam.gserviceaccount.com.

Creando el notebook de jupyter para análisis de los datos

Para crear la notebook jupyter, cree un nuevo environment y los añadí como kernel a jupyter. Para esto cree el virtualenv

>>> conda create -n myenv

Activé el environment creado

>>>  conda activate myenv

Luego instalé el paquete que provee el kernel IPython para Jupyter

>>> pip install --user ipykernel

Y finalmente lo activé

>>> python -m ipykernel install --user --name=myenv

Cree un nuevo notebook con el environment, y procedi a crear una celda especial para instalar los siguientes paquetes:

>>> import sys
>>> !{sys.executable} -m pip install pandas, numpy, matplotlib, gspread, oauth2client

Presentación y publicación de los resultados

Una vez instalado todo, utilizando las credenciales de google anteriormente bajadas, agregué el código para bajar la información directamente de la planilla y para realizar el análisis.

Una vez que completé el análisis, y realicé los gráficos correspondientes, procedí a exportar en formato HTML el resultado. El problema fué que cuando mostré los mismos, me dijeron que el hecho de que el código de programación python se entremezcle con los resultados resultaba confuso.

Para evitar esto, al html exportado le agregué el siguiente código:

<script>
function myFunction() {
    var x = document.getElementsByClassName("highlight");
    var i;
    for (i = 0; i < x.length; i++) {
      if (x[i].style.display === "none") {
        x[i].style.display = "block";
      } else {
        x[i].style.display = "none";
      }
    }
}
</script>

Después, dentro del bloque de la descripción inicial agregué un botón:

<button onclick="myFunction()">Mostrar Ocultar código fuente</button>

Luego del tag body, en el evento onload, también llamé a la función para que al leer la página también lo oculte:

<body onload="myFunction()">

Finalmente, lo agrego a mi blog como una página estática, en el subdirectorio stories, con formato html. Para que el generador de páginas estáticas Nikola lo agregue, precedí con

<!--
.. title: Análisis de la encuesta
-->

El resultado final pueden verlo acá:

resultado final <https://mavignau.gitlab.io/blog/stories/analisis-de-la-encuesta/index.src.html>

PyCon Cleveland, Ohio

Galería de fotos

El día 29 de mayo salí en colectivo desde Resistencia Chaco hacia Buenos Aires, hice un día de escala y el primero de mayo partí en un vuelo con dos escalas hacia Cleveland, Estados Unidos.

Justo antes de embarcar en el avión a Cleveland, me encuentro con Cris Ewing cuya remera decía PyLadies, me acerqué a hablar y justamente íbamos al mismo destino.

Vista de Cleveland

Vista de Cleveland

Al llegar, tomé el bus para ir al centro de la ciudad, cerca del cual quedaba en centro de convenciones. Era plena primavera, así que habían arreglos de flores por todas partes, particularmente, muchos tulipanes.

Bellísimos tulipanes multicolores

Bellísimos tulipanes multicolores

Llegué allá al mediodía del dos de mayo, para asistir a la tarde del último día de los tutoriales, y ver la exposición con los stands. Era muy grande, al menos cinco filas de stands, con destacados de las mayores corporaciones, otros de empresas menos conocidas, pero importantes, y con varios stands dedicados a comunidades como PyLadies o DjangoGirls.

En el Stand de Django Girls

En el Stand de Django Girls

Nos daban un desayuno, con café, té, varios tipos de leche (común, de soja, de almendras, etc), avena caliente, pastelería, frutas y algo salado, como burritos. El almuerzo, había una carne, que podía reemplazarse con tofu, con diversos acompañamientos, como ensaladas, y también, independientemente, una bandejita de ensalada, que traía algún sandwich, un paquete de papas fritas (las que nos sirvieron eran más crocantes y duritas, y mucho más sequitas que las habituales por acá).

Todo el día había café, té y leche, a la tarde se servía una merienda con pastelería y cerraba a las 7 de la noche cada día.

Al llegar el día 3 de mayo, fuí directamente al salón destinado a la PyCon Charlas. Como llegué temprano, me encontré hablando con Naomi Ceder , que estaba esperando a las personas

Junto a Naomi Ceder

Junto a Naomi Ceder

Mi charla era la segunda programada en la mañana, así que esperé hasta que me tocó darla

Iniciando mi charla

Iniciando mi charla

Durantes los tres siguientes días había actividades diversas para hacer: se podía asistir a las charlas, se podía ir a los open spaces, salones que podían ser solicitados por personas o grupos para realizar actividades diversas, cada una a diferente hora.

Tablero de open spaces, donde los asistentes proponían temas

Tablero de open spaces, donde los asistentes proponían temas

Los últimos días fueron para los sprints, los cuales dan una oportunidad única de trabajar en proyectos de fuente abierta junto a los más reconocidos desarrolladores de software. Primero ingresé a trabajar al sprint de Flask, un framework para desarrollo web con un enfoque modular, muy utilizado por su sencillez.

Los proyectos en los que se podía realizar desarrollo

Los proyectos en los que se podía realizar desarrollo

Más tarde me encontré con Marlene Marchena‏, una mujer peruana que venía a dar un taller sobre iniciación en el desarrollo para niños, utilizando Python para programar sobre Minecraft.

Ella me llevó al sprint sobre BeeWare, un ambicioso proyecto que pretende ser un completo framework para desarrollo multiplataforma, y como Russell Keith Magee, el principal desarrollador, tenía simplificado el accesos para los principiantes, durante el segundo día y tercer día. A cada persona que lograba hacer una contribución al proyecto, nos daba una pequeña medalla, ambas logramos tener nuestro pequeño trofeo.

Russell Keith Magee daba un medalla por la primera contribución.

Russell Keith Magee daba un medalla por la primera contribución.

Durante el almuerzo del tercer dia de sprints, armamos una mesa en la de hispanohablantes, y me enteré que se estaba realizando la traducción al castellano de parte de la documentación de Python, y que la persona a cargo era el español Raúl Cumplido , compañero de trabajo de Manuel Kauffmann.

Con Raúl Cumplido.

Con Raúl Cumplido.

Los últimos dos días tuve algo de tiempo para conocer la ciudad de Cleveland. Tiene una arquitectura magnífica, pude disfrutar del Rock & Roll Hall of Fame, de la Biblioteca Pública, del Centro Glenn Close de la NASA, y del Museo de Arte. También ví la Universidad Estatal de Cleveland, son dos manzanas con dos torres de más de 20 pisos y varios otros edificios de al menos 5 pisos cada uno.

Paisaje de Cleveland.

Paisaje de Cleveland.

Para ver muchas más fotos, en la galería

PyCamp 2019

PyCamp 2019, Los Reyunos

Volví del PyCamp en Mendoza

Excelente!

La llevé a Chiara, mi hija de 12 años, se adaptó de maravillas. Y a Ariel, un amigo de las épocas gloriosas de FidoNET, hace 25 años.

El padece obesidad: hay muchísimas barreras para gente como él. Siempre debe comprar servicios premium en los transportes para asegurar un asiento suficientemente ancho. Va en primera clase en el avión, usa coches cama en bus, necesita camas matrimoniales para las habitaciones. Y los costos se elevan considerablemente.

Programé, y pude entender algunos proyectos más avanzados en Django, pero especialmente fui a disfrutar a mis acompañantes.

Chiara volvió entusiasmada con programar. La incorporaron a los juegos de mesa de la noche, hizo malabares, aprendió esgrima, tirolesa tipo bangi, nadó y se comportó con gran autonomía en el complejo de Los Reyunos. Y la comisionaron para hacer un ícono, que usaron para el bot de Telegram del Pycamp.

Presenté como propuesta a OpenLex, y hablamos con Marco Redondo sobre el estado actual del proyecto, del framework Web2Py en el que se basa. Está teniendo inconvenientes para ganar desarrolladores, aunque sigue siendo uno de los más fáciles y claramente organizado.

Lo hicimos andar y empezamos a hablar sobre los issues, los posibles usuarios, y el grupo.

Ariel volvió a encontrarse en un ambiente de informáticos apasionados. Habló con todos, especialmente con los estudiantes, el paisaje lo fascinó y sacó cerca de mil fotos, venía con un gran stress laboral y pudo relajarse muchísimo. Le encantó la comunidad, y terminó tan entusiasmado que me dijo para venir muchos más días el año que viene, y aprovechar aún más el viaje. Y hasta especulamos sobre un PyCamp en el Chaco, algo que estaría fantástico para impulsar a python por acá.

Un PyCamp de lujo!

Contents © 2023 María Andrea Vignau - Powered by Nikola