Propuestas de Actividades - PyCamp 2023

Escribí más abajo qué proyectos o ideas querés proponer para desarrollar durante el PyCamp 2023.
Escribí un título, una descripción (agregá un link si el proyecto ya está iniciado) y quien propone.
Podés ver ejemplos de las ediciones 2022 y 2021.

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

Propuestas

http-tryout-server

  • Propone: Facundo Batista
  • Tecnologías:
    • Fast API
    • Jinja 2
  • Repo/paquete

Un servidor para probar requests HTTP, con fines pedagógicos, super simple de ejecutar y usar.

Funciona bastante bien ya, pero hay pequeños bugs o mejoras fáciles de implementar. Ideal para empezar a tener contacto con un código que use estas tecnologías.

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.

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.

Yo estoy trabajando para sacar la versión 0.3. Pero como está bastante estable ya, la idea sería encontrar programas para empaquetar y hacerlo!

PyEmpaq arma 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.

FileDigger

  • Propone: Facundo Batista
  • Tecnologías:
    • GUIs
    • Indizado, búsquedas

La idea es armar un programita simple que permita buscar entre los propios archivos. Se ejecuta, la primera vez hay que indicarle que escanee (recursivamente) el par de directorios que queremos supervisar, y presenta una linea para buscar. Se pone una o más palabras, y muestra todos los archivos cuyo contenido cumple la búsqueda. El archivo se abre haciendo doble click en el mismo.

Es un lindo proyecto para atacar en grupo, en partes: la GUI, el escaneo recursivo (con re-escaneo posterior), y el índice y la búsqueda.

Detalles para pensar / charlar:

  • El índice se arma con el contenido de los archivos; para eso se puede soportar de entrada un par simples (.txt, .csv, .md, etc) pero también se puede armar una estructura de plugins para empezar a soportar archivos más complejos (PDFs, Libreoffice, etc.)

  • Se podría pensar en usar el índice que tiene la CDPedia actualmente, es muy eficiente y funciona bárbaro… pero hay que “extraerlo” de ahí y pensar en cómo se puede hacer “actualizable”

Ayudando a Amelia a aprobar Mate IV

  • Propone: Yanina Echevarria (Amelia)
  • Tecnologías:
    • Python
    • Virtualenvs
  • Conocimientos matemáticos (cualquiera de estos):
    • Vectores
    • Regresión lineal
    • Transformaciones lineales
    • Generadores
    • Divisibilidad
    • Números complejos
    • Entre otros

La idea es muy simple, parece un poco individualista pero si continuan leyendo verán que es totalmente individualista :sweat_smile:

Para recibirme de Licenciada en Sistemas en la UNLP, me quedan rendir un final (el de matemática 4) y realizar una tesis (si me quieren ayudar con esto no tengo ningún problema). Para el final de Mate IV la cátedra propuso que podemos empezar nuestro exámen exponiendo algún desarrollo informático que trate alguno de los temas vistos en la materia, cualquiera de los nombrados más arriba y/o algún otro.

Como dije antes, la propuesta es simple me ayudan a realizar algún programita que me sirva para exponer y entender un tema matemático. Asombroso, no? :nerd_face:

Pytimeline

  • Propone: Carlos A. Crespo
  • Tecnologías:
    • Django
    • La que venga
  • Repo/paquete

En el PyCamp pasado jugamos un juego de mesa que se llama Timeline. Consistía en repartir unas tarjetitas con eventos históricos y en ronda teníamos que ir ordenando cronológicamente sobre la mesa de a una vez por turno.

Me gustó mucho el juego y luego del PyCamp tomé efemérides de Argentina de la Wikipedia y armé un pequeño script que reproduce algo parecido a la lógica del juego. Ya está funcional.

Me gustaría refactorizar todo el código y transformarlo en web app. Que se pueda jugar online, que pueda ser multiplayer, que además del texto de la efemeride muestre una imagen asociada, generar “expansiones” con algún tipo de sistema que permita cargar efemérides de algún tema específico, etc. etc. etc.

¿Cuáles son los inconvenientes para avanzar? Se necesita alguien que la tenga clara y conciba la mejor manera de organizar el código y el paso a paso para el desarrollo.

Lo imaginé desde el primer momento como una actividad para este PyCamp. Acá la prueba. :smile:

Plataforma de mentoreo para PyAr

  • Propone: Pabloz
  • Tecnologías: Lo decide el equipo evaluando la factibilidad (ganas, conocimiento, hosting, …). Vale todo:
    • Django / Flask / FastAPI / whatever
    • Python Telegram Bot (?)
    • Google Spreadsheets (?)

La idea es hacer una plataforma que una tutores y aprendices (mentores y mentees) para acompañar y guiar el aprendizaje tanto de recién llegados al lenguaje como de veteranos que busquen extenderse a una nueva área de aplicación. Definiríamos in-situ el alcance del qué y el cómo. Algunas ideas sueltas:

  • Perfiles de mentor y aprendiz (mínimo: nombre y forma de contacto)
  • Mentores para temas particulares (ej.: ciencia de datos, IA, GUIs, seguridad, matemática 4, mentoreo).
  • Una forma de crear y trackear el progreso de un plan y sus objetivos (puede ser mucho scope)
  • Una forma de decir gracias

Compartir sobre editores y configs para python

  • Propone: Fisa
  • Tecnologías:
    • de todo :stuck_out_tongue: (editores, shells, plugins, configs)

En algún otro PyCamp hicimos algo parecido y estuvo entretenido: la idea es juntarnos un rato a mostrar y charlar sobre herramientas que usamos para python. Editores, shells, plugins para ellos, configs, customizaciones de linux, etc. (ej: “mirá qué buena este plugin para la terminal que te deja fácil crear virtualenvs”, o “miren este editor nuevo que empecé a usar y tiene esta feature re loca cuando corrés un programa python”, etc)

“SimPyt” (antes PyDeck, hubo que cambiar el nombre)

Hay unos aparatos que se llaman “stream decks” o “botoneras”, que son básicamente una grilla de botones configurables. Los usan streamers para tener cosas como sonidos predeterminados, mutear su mic, cambiar de video que están mostrando, abrir o controlar aplicaciones o servicios, etc. Hay uno genial donde cada botón es una pantallita y podés configurar los botones para que hagan DE TODO (mucha integración para controlar aplicaciones, audio, conectarse a servicios online de cosas, etc). A estos decks también los usamos gente que volamos simuladores de vuelo, para armarnos “cachos de cabinas” de aviones con sus botones (que después mapeamos en el simulador).
Esos aparatos son caros al pedo. Se podría en vez tener una app python corriendo en tu pc, y usar cualquier tablet o celu viejo como “botonera” entrando a esa web. La web te mostraría los botones que configuraste, y al apretarlos la app en la compu haría las cosas para las que los configuraste.

Ratonbot

  • Propone: Male y Cris
  • Tecnologías:
    • Python
    • Arduino
    • a descubrir
  • Conocimiento: Vamos a partir de 0, aprenderemos en el desarrollo del proyecto

La idea es re-programar con Python un auto robot (Estudiobot Simplo), tiene una placa Arduino, un sensor ultra sónico, 2 motores y otros.
Queremos imitar el comportamiento de un ratón para que jueguen los gatos.
Estaría bueno llegar a programar una aplicación para celular que controle el comportamiento del RatonBot

Evolutrón(el nombre ya existe, pero re iba) - Salvando la Especie

El juego tiene como objetivo demostrar la influencia de las diversas mutaciones en el desarrollo y adaptación de un organismo. Permitiendo evidenciar las características del proceso evolutivo.
A medida que se desarrolla el juego, el jugador deberá seleccionar entre un número de variables, aquellas que considere apropiadas para garantizar el éxito adaptativo de su individuo. Las mutaciones podrán ser beneficiosas, neutrales o negativas, por lo cual la selección incorrecta en conjunción con el medio circundante, puede desencadenar en la adaptación del individuo o en su extinción. La sumatoria de éxitos adaptativos permitirá subir al siguiente nivel. Una idea interesante sería que algunas de las variables desencadene el surgimiento de una nueva especie.

Desde el punto de vista de la tecnología se plantea armarlo dentro de la plataforma Pytari (que se desarrollo el Pycamp pasado), la cual permite acelerar y retroceder el juego. Dentro del marco del desarrollo del juego, se propone utilizar el siguiente patrón de gamming Component · Decoupling Patterns · Game Programming Patterns que se adapta bien a Pytari.

  • Propone: Lorena Fumarola (Neritica), Juan Manuel Schillaci (Ska), Hugo Ruscitti
  • Tecnologías:
    • Python
    • Pygame/Pyglet
    • Pytari
  • Repo

Se nos había ocurrido el nombre EvoluTRON, pero resulta que no fue demsaiado original y ya existen juegos similares que encontramos al googlear el nombre:

Juego Tipo Arcade-Grafico

  • Propone: Don Cabra Felipe Batista
  • Habilidades:
    • Estar dispuesto a usar Arcade Library (Una con la que estoy familiarizado)
    • Aguantar a un novato que apenas entienda (yo)

La idea es hacer una aventura gráfica en la que tengas que vencer minijefes para avanzar en la historia y que si encontras algunos objetos aparte puedas usarlos para hacer nuevas armas.Pero para este pycamp solo un entorno con el que puedas interactuar con tu personajes y tener animaciones de moverse y cinematicas :smiley:

No hay una historia preparada,solo un dibujo de ejemplo.

WhatsApp Dialer for Desktop (pensar otro nombre)

  • Propone: Matías Demarchi
  • Tecnologías:
    • Python
    • Bibliotecas gráficas como TKinter, Qt o cualquier otra
    • Interacción con el SO (lanzar navegador web o WebApp)
    • Manipulación de CSV o bibliotecas referidas a prefijos telefónicos
    • Repositorio en GitHub

Siempre me ocurre que debo contactar a alguien o algún comercio por WhatsApp. Como yo casi no uso smartphone, y me manejo por el WhatsApp Web, siempre me encuentro con el clásico problema de tener que agendar el número que quiero contactar, entre los Contactos del smartphone donde WhatsApp está instalado. Me gustaría no tener que hacer esto, y que funcione como quien manda un SMS o llamado telefónico, marcando el número manualmente, sin depender de la agenda de Contactos.

Esto es posible completando manualmente el link:
https://api.whatsapp.com/send?phone=+código de país+número

Y mi idea con este proyectito es tener una app local, con interfaz gráfica, a la que le pueda especificar el país, y escribir el número al que quiero contactar con WhatsApp Web, para que automáticamente me abra una pestaña en el navegador que se dirija automáticamente. Actualmente lo tengo en formato de consola de comandos.

Mi idea es trabajar con las dos issues especificadas en el repositorio, uno tiene que ver con la corrección de un problema con los prefijos diferenciados entre teléfonos fijos y teléfonos celulares, que ocurren en algunos países (como el nuestro), y otro refiere a las intenciones de pasarlo de CLI a interfaz gráfica, sin importar la biblioteca que lleve. Se me ocurre que se podría usar el clásico TKinter para simplemente molestar lo menos posible con las dependencias, pero si hay una ganancia importante en rapidez de mantenimiento, desarrollo y escalabilidad, se podrían considerar otras opciones, como Qt. Lo importante es que sea multiplataforma a nivel desktop.

Linkode

  • Propone: @lecovi
  • Tecnologías:
    • Flask
    • PostgreSQL/SQLite3
    • repo
  • Conocimientos: intermedios

Linkode es el Pastebin de PyAR. Podés verlo funcionando en http://linkode.org/. Hay que hacerle un pequeño refresh para que funcione bien con Python3. Después estaría piola sumarle algunas otras features como por ejemplo: TTL por defecto a los linkodes, Auth, y algunas otras cosas que surjan.

MinutesTUI (el nombre es random)

La idea principal es aprender a usar Textual, un framework para hacer TUI (Textual User Interface). Will McGugan el creador de rich creó este framework y me parece súper copado. Te permite hacer cosas tipo ncurses pero del s.XXI, con un enfoque tipo Desarrollo Web. Quiero aprender a usar el framework y qué mejor que un Pycamp y un proyecto para hacerlo. La excusa es hacer una app para tomar minutas de reuniones. El ejemplo es un sitio que se llama https://minutes.io/. El objetivo es replicar un MVP súper básico funcional que ande al menos de manera local.

Help us to help you! asoc_members strikes again

La idea es sumarle algunas funcionalidades que tenemos pendientes al sitio de gestión que tenemos para eventos de la Asociación Civil y para gestionar sus miembros. Este proyecto nació en un PyCamp y qué mejor que otro PyCamp para darle una vuelta más de rosca. Hay cosas para hacer como soportar registro de pagos en otras monedas, automatizaciones varias, scripts que corren en consola que hay que llevar al front… tenemos un poco de todo.

Video juego de mini-autos

Hacer un juego de varios jugadores que funcione usando
un solo teclado. Cada jugador puede pulsar una tecla para
jugar y manejar su propio autito. El objetivo del juego es
durar la mayor cantidad de tiempo sin chocar.

Editor e intérprete de scripts online

  • Propone: Hugo Ruscitti
  • Tecnología: PyScript / jsviz (graphviz)
  • Resultado: Conversamos y pensamos cómo implementarlo, pero finalmente lo hicimos la implementación.

Integrar un intérprete de python con un visualizador de
datos. La idea es que el visualizador represente los datos
en memoria del intérprete, de modo que sea útil para dar
clases de programación o mostrar algunas ideas simples de
tipos de datos, cómo se ve una lista, una tupla, una
referencia etc…