Propuesta de actividades - PyCamp 2021

Escribe más abajo qué proyectos o ideas quieres proponer para desarrollar durante el PyCamp 2021. Escribe un título, una descripción (agrega un link si el proyecto ya está iniciado) y quien propone. Podés ver ejemplos en la edición anterior.

¿Buscando inspiración? Fijate también la página de ideas para programar.

Propuestas

Gastitis

  • Propone: Sofi Denner.
  • Tecnologías:
    • Django
    • python-telegram-bot
  • Repo/paquete

Gastitis es un proyecto para trackear gastos individuales o grupales a través de un bot de telegram. Los gastos se trackean por canal y se lleva el control de quienes gastaron, cuánto y en qué conceptos.
Es muy útil para llevar los gastos de un viaje con un grupo de gente, o de un proyecto en particular, o los gastos de la casa.
Ya está andando pero hay millones de cosas para mejorarle y features que estaría buenísimo agregarle. Por ejemplo:

  • Gráficos de gastos
  • Recordatorios para pagar cosas
  • Lógica para devolverle dinero a otro usuario de un grupo.
  • Etc…

Certmailer

Certmailer es un paquete python para mandar certificados de cursos o de oradores masivamente utilizando el servicio gratuito de MailJet. Sirvió para enviar los certificados de todos los asistentes de PyConAR del año pasado.
Podés además armar el listado de destinatarios desde EventoL, el sistema para administrar eventos que usan en común Flisol y Python Argentina, utilizando los archivos exportados desde el Django Admin de la instancia.
Podrías ver un poco más en la charla en PyConAR.

Carpool

Carpool sirve para registrar viajes compartiendo auto y dividir los gastos. Lo uso con unos amigos del trabajo para gestionar los costos de compartir los autos.
Es una aplicación web muy simple, en Django, sin templates custom fuera del admin.
Quiero agregarle algunos features nuevos: registrar el viaje usando un código QR, cargar viajes de ida y vuelta más rápido, reportes, etc.
Me parece que puede ser una buena alternativa para quienes estén empezando con Django (o quieran hacerlo) y busquen un proyecto simple donde colaborar y de paso aprender.

Relaciones Twitter

  • Propone: Facundo Batista
  • Tecnologías:
    • Twitter
    • Grafos

La idea es poder graficar de alguna manera relaciones interesantes en Twitter. Parte de la diversión es encontrar qué tiene sentido graficar/encontrar, qué no. Dos ejemplos:

  • nubes compartidas: se eligen dos personas, el programa dibuja una nube de contactos que no se comparten, y que sí, pero estos con distintos niveles de importancia (por ejemplo, resaltados aquellos contactos compartidos que tienen de contacto a otres de esa misma nube, lo que les daría el status de “más del grupo”)
  • linea de contacto: se eligen dos personas, el programa encuentra dos caminos de “seguidos”, de A->B y de B->A (obvio, si C sigue a B y A solamente, C no entra acá) – es una manera de encontrar los “grados de separación” entre dos personas
  • etc?

Juego de Codeo Colaborativo

  • Propone: Facundo Batista

Un juego donde armamos un programejo entre todes para resolver la consigna. Divertido, adrenalina. Para todes, no importa el nivel.

fotos2imagen

  • Propone: Facundo Batista
  • Tecnologías:
    • Pillow

La idea es armar una imagen pero compuesta por miles de fotitos. Seguro que hay cosas por ahí que hacen algo parecido, pero parte de esto es jugar y aprender.
Al programa se le pasa una imagen y un directorio con fotos, y arma la imagen con las fotitos.
Se puede controlar (por ejemplo):

  • el tamaño de las imagencitas luego
  • si se puede jugar con el brillo de las mismas o no
  • si se pueden repetir imágenes o no

MovieWordCloud

  • Propone: Bruno Geninatti
  • Tecnologías:
    • Pillow
    • Scrapping
    • Tweepy
  • Repo/paquete

Un bot de twitter que sube nubes de palabras basadas en guiones de películas.
El bot baja la lista de mejores películas de imdb, elige una random, baja los subtítulos de opensubtitles, cuenta cuantas veces aparece cada palabra, arma una nube de palabras y la sube a Twitter.
El bot es este.
Hay varias cosas que me gustaría hacerle:

  • Una función on-demand en donde le puedas pedir al bot una película específica.
  • Cambiar o agregar como fuente de películas TMDB que tiene una API más piola que la de IMDB.
  • Buscar el subtítulo en su idioma original. Lo que pasa ahora es que, si busca una película en español u otro idioma, sube la nube de palabras en inglés. Como pasó acá con “El Secreto de Sus Ojos”.
  • Idea (manuq): ¿usar paleta de colores para las palabras y para el fondo tomándolos de la peli? ¿Quizá del poster o de imágenes principales? Algo como https://moviesincolor.com/

Pythonium

  • Propone: Bruno Geninatti
  • Tecnologías:
    • Pillow
    • Numpy
    • Matplotlib
  • Repo/paquete

Un juego de estrategia espacial por turnos, en el que cada jugador representa una raza alienígena que quiere conquistar la galaxia.
Se empieza en un planeta del cual hay que extraer minerales para construir naves y así poder explorar planetas vecinos, colonizarlos y atacar enemigos. Se puede jugar de uno o dos jugadores. El primer jugador que llegue a tener 211 planetas gana.
Es un programming game, para jugarlo hay que programar una clase de python que toma las decisiones turno a turno.
Lo pueden aprender a jugar personas que están aprendiendo a programar e intenta ser también una herramienta para explicar conceptos de programación.
La documentación está acá.
Hay varias cosas que se pueden hacer para el proyecto:

  • Jugarlo :slight_smile:
  • Escribir tutoriales
  • Mejorar y testear algunas de las dinámicas del juego (combates, extracción de minerales, impuestos, población, etc)
  • Agregar bots contra los cuales se puede jugar (ya hay algunos)
  • Hacer que el modo de juego sea customizable para poder hacer “Campañas” con objetivos de juego distintos al estándar.

Mejor visualizador para SimpleAI

  • Propone: Fisa
  • Tecnologías:
    • Algoritmos de IA
    • Visualizaciones web
    • Grafos
  • Repo/paquete

SimpleAI es una lib que implementa varios algoritmos de inteligencia artificial, de la rama de búsqueda de soluciones (búsqueda tradicional, búsqueda local/optimización, constraint satisfaction problems, etc). Se usa más que nada para enseñar sobre estos algoritmos resolviendo problemas de forma sencilla, y entre las features copadas tiene un visualizador web de varios de los algoritmos, para ir viendo paso a paso cómo la IA va resolviendo el problema.
Cosas para hacer:

  • El visualizador web es viejo, tiene varias limitaciones, muy lento, ilegible en algunos casos, etc. Usando alguna herramienta copada para armar grafos en la web se podría mejorar mucho todo, y seguro planeo trabajar en eso.
  • También se podrían agregar visualizaciones para algoritmos que no las tienen todavía (particularmente los de satisfacción de restricciones, que sería muy útil poder visualizarlos).

PyEmpaq

  • Propone: Facundo Batista
  • Tecnologías:
    • Packaging
    • Virtualenvs
  • Repo/paquete

Un simple pero poderoso empaquetador de programas Python para correr en cualquier lado cualquier proyecto con cualquier dependencia que se instale en un entorno virtual.

PyEmpaq armar todo en un único archivo .pyz. Este único archivo es todo lo que necesita distribuirse. Cuando el usuario final lo ejecuta, el proyecto original se expande, sus dependencias se instalan en un entorno virtual, y luego se ejecuta.

Toda la documentación bien detallada en el repo, pero pueden leer un resumen en castellano en este post de mi blog.

Hay varias cosas para hacer, bastantes para emprolijar y estabilizar el programa, pero también features más avanzados y locos: todo descripto acá.

Charla: ¿Qué hacemos con la gente que sólo le interesa la salida laboral?

  • Propone: Facundo Batista

Hace 15 o 20 años, una característica de Python es que todes les que estábamos en esto era por gusto. Hoy Python es el lenguaje más usado del mundo, y empezamos a tener otro tipo de usuaries del mismo: gente que sólo quiere una salida laboral.

Vienen de otras ramas técnicas, o incluso desde otras especializaciones. Atraides por el rumor de que se necesita gente y se paga bien. Muchas veces sin saber programar.

¿Cómo se les ayuda?

Lab investigación ESP32 / micropython

  • Propone: SAn, EmiLopez
  • Tecnologías:
    • MicroPython
    • Electrónica
    • ESP32
    • Sensores

Investigar juntes cómo hacer (se puede? tiene sentido?) mediciones de corriente, potencia, consumo, generación de energía en instalaciones de energía sustentable (paneles solares, aerogeneradores, bancos de baterias, etc) y otras cosas que pinten, usando ESP32 o derivados y MicroPython.

Cosas disponibles

  • 4 ESP32, 1 raspy pico, 3 ESP8266 (ESP-01)
  • 2 NRF24L01, 2 LORA, 1 ESP12 (8266), 2 bluetooth
  • 1 temp i2c MCP9808, 2 presion atm bmp183, 2 luz i2c gy30, 1 ina219 i2c corriente, 2 temp ds18b20, 2 distanciómetros IR Sharp GP2Y0A710K0F, 1 MPU-9250/6500, 1 analog hum suelo resistivo, 1 analog hum suelo capacitivo, 1 DHT22, 1 PIR, 1 analog de gotas,
  • 2 RTC DS3231, 1 stepdown, 1 stepup, 2 módulos microSD, 6 mini paneles, 2 display OLED, 4 pilas baterías 18650, resistencias, cables, protoboard, conectores, reguladores

Show and tell: ¿Qué hace a tu compu especial?

  • Propone: Hugo Ruscitti

Las computadoras son muy personalizables: podés elegir qué programas instalar, cómo configurarlos, qué gestor de ventanas usar. Seguramente tu computadora dice algo de vos y un aprendizaje que te llevó a configurarla así, ¿usas vscode/vim/el block de notas?, ¿cambiaste windows por linux?, ¿qué?, ¿ahora usas mac?, ¿pasaste a un teclado mecánico?, ¿usas dos monitores?, ¿volviste a un solo monitor porque no podés poner un ojo en cada pantalla?, ¿llevas una libreta de papel para registrar ideas o pagas una licencia millonaria por una app de todolist?, ¿usas auriculares para concentrarte, pomodoros o superaste todo eso?.

La idea de esta propuesta es que nos animemos a contar al menos dos o tres cosas que configuramos en nuestras compus y tomar ideas de otras personas. Me imagino que podemos pensarla como una serie de charlas relámpagos o una ronda tipo alcohólicos anónimos y compartir nuestros TOCs sanamente y reinos un rato.

Intercambio: ¿En que puedo trabajar siendo Python Dev? ¿Que debería aprender?

  • Propone: Ramiro Gallo

Para mi, la programación es un camino de constante descubrimiento y aprendizaje. No solo a nivel técnico y tecnológico, sino que también uno empieza a descubrir que es lo que le va gustando de todo lo que va haciendo.

Por lo general, cuando uno comienza algo, comienza como puede, donde puede y muchas veces con poco entendimiento real de hacia donde se dirige, y a medida que pasan los años y uno adquiere conocimientos empieza a tener una visión mas clara de todo y uno empieza a descubrir y distinguir la inmensa cantidad de cosas que se pueden hacer con Python

Entonces surge las siguientes preguntas:

  • ¿Que puedo hacer con Python?
  • ¿Que me gustaría hacer y con que me siento mas cómodo?
  • ¿Que conocimientos requieren estas cosas?
  • ¿Como empiezo con todo esto?
  • ¿Hay mercado para esto?

Estas son algunas de las preguntas que me gustaría intercambiar, toda otra pregunta es mas que bienvenida.
El producto de estas charlas, lo imagino como un gráfico, un árbol de caminos y sus conocimientos asociados y recursos para que la gente con estas inquietudes pueda acceder a ello a través de la página de PyAr

Etapas:

  • Intercambio de las preguntas y compendio de respuestas
  • Brainstorming de herramientas e ideas para presentar la información
  • Armado de la información

Botggle

Botggle es un bot de Telegram para jugar al Boggle en un grupo de chat con tus familiares y amigues. Hoy el juego está funcional y quedaron un par de FIXMEs para agregarle y mejorar la experiencia.

Extra: durante el domingo o lunes vamos a hacer un vivo por Twitch para cerrar algunos de estos issues y dejar el bot funcional.

Fixes/Enhacements Web PyAr/Asoc_Members/Eventol

  • Propone: lecovi
  • Tecnologías:
    • Django

El PyCamp es un gran momento para dedicarle unas horas a esos issues que venimos arrastrando en las diferentes apps que tenemos en PyAr.

Taller: Como hacer juego con pilas-engine

  • Propone: Hugo Ruscitti
  • Tecnologías:
    • Typescript :frowning:

La versión nueva de pilas tiene muchos cambios, así que me gustaría dar un pequeño taller para mostrar cómo se puede usar para hacer un juego muy básico y de paso podamos charlar sobre la herramienta, qué cosas se pueden mejorar y tal vez explorar algunas cosillas internas del editor como el autocompletado, las receteas, el depurador etc…

Intérprete multi-usuario de python

La idea es investigar si es posible crear un intérprete de python que se pueda abrir en un navegador y tipear colaborativamente. Me lo imagino muy parecido a un canal de chat en el navegador donde cada persona puede mandar un texto y ese texto debería ser un código evaluado por python. Por ejemplo, un usuario podría escribir, a=1 otro escribir b=a y un tercero print(b) y todos deberíamos ver en nuestras pantallas que se imprime 1.

3 Me gusta