PyBAQ / website

Repositorio del sitio web de Python Barranquilla
http://pybaq.co
15 stars 26 forks source link

Perfiles: Refactor a los eventos #394

Open pyjavo opened 1 year ago

pyjavo commented 1 year ago

Solicitud de mejora en sitio web PyBAQ

Cada evento dentro de la página debería tener su propio perfil.

Ventajas

Desventajas

Scot3004 commented 10 months ago

Buenas noticias, el script que descarga la información no hay que tocarlo :D se puede hacer que el script jale el fichero json de la carpeta de databags. Si que va a requerir tiempo, y adaptar este script https://github.com/ColombiaPython/sitio-web/blob/develop/scripts/create_events.py que ya hace lo que buscamos solo que este itera una carpeta .MEETUP_DATA dentro de script, y hay una diferencia entre el script que usamos en python colombia y el que usamos para python barranquilla, el archivo json que se guarda es tal como lo trae la respuesta, y para python barranquilla lo adaptamos para hacerlo compatible con el databag llamandolo meetup.json, pero... los listados future_events y past_events tienen la misma estructura que los listados en python colombia

El script reemplaza los textos anteriores, pero dado que nosotros tenemos anexos no se que tan buena idea sea hacerlo de la misma manera, se puede usar de base, pero toca hacerle ajustes

Por otro lado, hay que migrar la información que tenemos de los eventos como flowblow, esto se hace con otro script que se ejecute una vez para pasar dicha información (no lo veo viable manualmente por que tomaria mas tiempo que desarrollar el script ya que hablamos de cientos de eventos)

Este es el ejemplo de nuestro ultimo evento en la pag de python colombia

_model: event
---
_slug: 2023/08/pentesting-con-jupyter-notebook
---
title: Pentesting con Jupyter Notebook
---
information: 
<p>\*\*\* Recordatorio:\*\*\* Para el ingreso al edificio de Koombea **será obligatorio diligenciar el siguiente formulario**: [<a href="https://forms.gle/Av1R7c7zMwaorBnS8](https://forms.gle/Av1R7c7zMwaorBnS8" class="linkified">https://forms.gle/Av1R7c7zMwaorBnS8](https://forms.gle/Av1R7c7zMwaorBnS8</a>)</p> <p>La charla tiene como finalidad resaltar los fines prácticos y funcionales de jupyter a la hora de hacer tareas de reconocimiento. La etapa de reconocimiento engloba la primera etapa de todo buen pentesting y es una de las más importantes.</p> <p>**Ponente:** Sergio Molinares</p> <p>Apasionado de la seguridad informática, los CTF y el Red Teaming</p> <p>***</p> <p>Adicionales:</p> <p>1. El evento será híbrido. Presencial en Barranquilla y transmisión vía el **YouTube** de Python Colombia [<a href="https://www.youtube.com/watch?v=SuJOOqAL8yk](https://www.youtube.com/watch?v=SuJOOqAL8yk" class="embedded">https://www.youtube.com/watch?v=SuJOOqAL8yk](https://www.youtube.com/watch?v=SuJOOqAL8yk</a>)<br/>2. Para el ingreso al edificio de Koombea **será obligatorio diligenciar el siguiente formulario**: [<a href="https://forms.gle/Av1R7c7zMwaorBnS8](https://forms.gle/Av1R7c7zMwaorBnS8" class="linkified">https://forms.gle/Av1R7c7zMwaorBnS8](https://forms.gle/Av1R7c7zMwaorBnS8</a>)<br/>3. El formulario cierra a las 12 del medio día del día del evento.<br/>4. Solo las primeras 50 personas podrán tener su cupo asegurado debido al aforo máximo del lugar</p> 
---
web: https://www.meetup.com/pythonbaq/events/295451737/
---
city: Barranquilla
---
country: Colombia
---
longitude: -74.81694793701172
---
latitude: 11.00793743133545
---
location: Koombea. Calle 85 #53-14
---
date_start: 2023-08-24 19:30 -0500
---
date_end: 2023-08-24 19:30 -0500
---
province: Atlántico
---
organizers: 

#### organization ####
username: python-barranquilla

Descartaria el campo organizers y tambien Province que se calculan automaticamente basandose en el modelo Usuarios de python colombia

pyjavo commented 10 months ago

¡¡Excelente trabajo @Scot3004 !! Quedamos pendientes de reunirnos a ver cuales son los datos que vamos a mostrar

Scot3004 commented 5 months ago

Obtener attach desde el flowblock actual

Crear un virtualenv con lektor instalado

from lektor.project import Project
project = Project.discover()
env = project.make_env()
pad = env.new_pad()
eventos = pad.get('/eventos/')
[{"title": evento["title"], "attach": evento["attach"]} for evento in eventos["body"].blocks[1]["body"].blocks[0]["anexos"].blocks]

ya con eso se puede hacer el resto, pero queda para una proxima iteración, lo importante es que ya encontre como extraer la información de los attach en un dict, ahora solo faltaria como editar un registro y hacer map con esta información

[{'title': '1er meetup Django Barranquilla', 'attach': Markup('<a href="http://slides.com/javidazac/bienvenidos-a-django-barranquilla-1">Presentación1</a> / <a href="https://docs.google.com/presentation/d/1qW4VIlzwQuGIVyTtOFA-qwI1GFGYD4YhyIHwZ7PClGQ/edit">Presentación2</a>')}, {'title': '2ndo meetup Django Barranquilla', 'attach': Markup('<a href="https://drive.google.com/file/d/0B2a5TeZyq4RZOUVGYjFZVkZLYzg/view">Presentación</a> / <a href="https://www.meetup.com/pythonbaq/photos/26134119/#437661975">Galería Fotos</a>')}, {'title': '3er Meetup Django Barranquilla', 'attach': Markup('<a href="http://slides.com/javidazac/bienvenidos-a-django-barranquilla#/">Presentación</a>')}, {'title': '4to Meetup Django Barranquilla', 'attach': Markup('<a href="https://github.com/PyBAQ/proyectopaulwalker">GitHub</a> / <a href="https://www.meetup.com/pythonbaq/photos/26167990/#438233642">Galería Fotos</a>')}, {'title': '5to Meetup Django Barranquilla', 'attach': Markup('<a href="https://secure.meetupstatic.com/photos/event/9/9/8/highres_436922456.jpeg">Poster</a>')}, {'title': '11vo Meetup Django Barranquilla', 'attach': Markup('Marketing para ingenieros <a href="https://secure.meetupstatic.com/photos/event/b/0/8/6/highres_442065190.jpeg">Poster</a>')}, {'title': '12vo Meetup Django Barranquilla', 'attach': Markup('Como usar GeoDjango <a href="https://github.com/ingenieroariel/loco">GitHub</a> / <a href="https://secure.meetupstatic.com/photos/event/5/e/4/e/highres_442764142.jpeg">Foto</a>')}, {'title': '13vo Meetup Django Barranquilla', 'attach': Markup('Buenas practicas en Python y el uso de métodos mágicos <a href="http://slides.com/leonardofabioorozcopadilla/buenas-practicas#/">Presentación</a>')}, {'title': 'Taller de Co-creación #1', 'attach': Markup('<a href="https://docs.google.com/document/d/1qw0X4cegrbEtWMlGp81Lu2rX6hTYv7NL9_ZtojlCAhw/edit#heading=h.ksbuleho9b2p">Documento</a>')}, {'title': '14vo Meetup Django Barranquilla', 'attach': Markup('Code like a pythonista <a href="https://docs.google.com/presentation/d/1Tt_2Oe5c9jjuVMwv3_8wMo2S2dwX6p-5YXv7y6Pc_68/edit#slide=id.p">Presentación</a>')}, {'title': '15vo Meetup Django Barranquilla', 'attach': Markup('Como hacer API Rest en Django y como integrarlo con AngularJS <a href="https://github.com/cristiangrojas/meetup-barranquilla">GitHub</a> / <a href="https://github.com/johnpapa/angular-styleguide">Guía estilos Angular</a>')}, {'title': 'Taller de Co-creación #2', 'attach': Markup('<a href="https://github.com/PyBAQ/temii">GitHub</a>')}, {'title': 'Taller de Co-creación #3', 'attach': Markup('<a href="https://trello.com/b/pKAeEDBT/temii">Trello</a>')}, {'title': 'Bienvenida de Año 2016 Django Barranquilla', 'attach': Markup('<a href="https://secure.meetupstatic.com/photos/event/f/7/d/highres_462963965.jpeg">Foto</a>')}, {'title': 'Taller de Co-creación #4', 'attach': Markup('<a href="https://secure.meetupstatic.com/photos/event/1/9/9/4/highres_462966548.jpeg">Foto</a>')}, {'title': 'Cómo usar Django smart selects', 'attach': Markup('<a href="https://drive.google.com/file/d/0B4hMNhBB6brgWVVVSldCT0l2bjg/view?usp=sharing">Presentación</a>')}, {'title': 'Introducción a la Visión por Computadora', 'attach': Markup('<a href="https://github.com/JorgeMartinezG/django_meetup">GitHub</a>')}, {'title': 'Como desplegar django apps en producción', 'attach': Markup('AWS <a href="https://github.com/PyBAQ/dq">GitHub</a> / <a href="https://gist.github.com/panchicore/39d6e5395850f4c5e264e4a07ba89aa1">Anotaciones</a>')}, {'title': 'Como crear sitios web estáticos con Lektor', 'attach': Markup('<a href="https://github.com/PyBAQ/django-quilla-web">GitHub</a>')}, {'title': 'Análisis de sentimientos y cómo obtuve datos de un avión', 'attach': Markup('<a href="https://github.com/waybarrios/Django_Meetup">Análisis de sentiemientos</a> / <a href="https://github.com/piensa/gigi">GiGi</a>')}, {'title': 'Integrando una aplicacion en Django con otros servicios', 'attach': Markup('<a href="http://slides.com/leonardofabioorozcopadilla/integrando-aplicaciones#/">Presentación</a>')}, {'title': 'Python desde 0', 'attach': Markup('<a href="https://1drv.ms/f/s!AkrCjEwFpMNbarRjm4ADSBm9pEE">Recursos</a> / <a href="https://pybaq.co/blog/primeros-pasos-en-python/">Artículo</a>')}, {'title': 'Aprendamos a hacer testing con Mock', 'attach': Markup('<a href="https://scot3004.github.io/pymock/#/">Presentación</a>')}, {'title': 'PyCon Colombia 2017', 'attach': Markup('<a href="https://medium.com/pycon-colombia-2017/pycon-colombia-2017-pasando-del-sue%C3%B1o-a-la-realidad-cf1f7808447e">Reseña</a>')}, {'title': 'Celery y tareas asíncronas', 'attach': Markup('<a href="http://slides.com/leonardofabioorozcopadilla/celery#/">Presentación</a> / <a href="https://secure.meetupstatic.com/photos/event/6/0/b/3/highres_459324755.jpeg">Foto</a>')}, {'title': 'Pimpeando tu antigua versión de Django', 'attach': Markup('<a href="http://slides.com/javidazac/migrando-de-django-1-5-a-1-11#/">Presentación</a>')}, {'title': 'Aprende Machine Learning básico jugando con Python y Flappy Bird', 'attach': Markup('<a href="https://github.com/waybarrios/meetup_pythonbq_deeplearning/tree/solution">GitHub</a> / <a href="https://secure.meetupstatic.com/photos/event/a/c/b/9/highres_460664217.jpeg">Foto</a>')}, {'title': 'Cómo crear un teclado virtual con técnicas de Visión por Computadora', 'attach': Markup('<a href="https://drive.google.com/file/d/0ByBWRK2LX_-CMkNRMXhSYWMyODA/view">Presentación</a> / <a href="https://github.com/jorgemartinezg/virtual_keyboard">GitHub</a>')}, {'title': 'Post-evento Django Girls', 'attach': Markup('<a href="https://secure.meetupstatic.com/photos/event/8/f/9/7/highres_462876759.jpeg">Foto</a>')}, {'title': 'Construyamos un software de reconocimiento de rostros en una Microcomputadora', 'attach': Markup('<a href="https://github.com/efflorez/facerecognition">GitHub</a> / <a href="https://docs.google.com/presentation/d/1MR92AgvipBkpqThc8PE30TGKpJQNZj22c1-A-9iYr-E/edit#slide=id.g23336596a2_0_55">Presentación</a> / <a href="https://pybaq.co/blog/reconocimiento-de-rostros-en-una-microcomputadora/">Artículo</a>')}, {'title': 'Programadores! Vamos a comer', 'attach': Markup('<a href="https://secure.meetupstatic.com/photos/event/e/3/e/f/highres_464158351.jpeg">Foto</a>')}, {'title': 'Beneficios tributarios para freelancers, emprendedores y empresas TIC', 'attach': Markup('<a href="https://pybaq.co/blog/beneficios-tributarios-para-el-sector-tic/">Artículo</a>')}, {'title': 'Traducción automática usando redes neuronales', 'attach': Markup('<a href="https://github.com/waybarrios/meetup_translation">GitHub</a>')}, {'title': 'Herramientas para hacer ciencia con Python', 'attach': Markup('<a href="https://www.meetup.com/pythonbaq/photos/28345278/466396879/">Fotos</a> / <a href="https://github.com/PyBAQ/Notebooks/blob/master/HerramientasCiencia/HerramientasCiencia.ipynb">GitHub</a>')}, {'title': 'Reconocimiento facial con redes neuronales usando TensorFlow y Python', 'attach': Markup('<a href="https://drive.google.com/open?id=1tC4elGmYVWl5gb0HoG0Wlw3AFgD6Iy00f-PAvHrEXEw">Presentación</a> / <a href="https://github.com/GudarJs/Facial-Recognition-Tensorflow">GitHub</a>')}, {'title': 'Conectando Flask con VueJS en el desarrollo de una Single-Page Application', 'attach': Markup('<a href="https://github.com/Scot3004/meetup_vue_back">Código Back-end</a> / <a href="https://github.com/Scot3004/meetup_vue_front">Código Front-end</a>')}, {'title': 'Cómo crear una empresa en USA sin morir en el intento + Pasarelas de Pago', 'attach': Markup('<a href="https://medium.com/@joseguzmanlopez404/c%C3%B3mo-cobrar-en-internet-265acf3e9b6f">Post Pasarelas</a> / <a href="http://slides.com/rafaelvillarreal/deck-3#/">Slides Empresas</a> / <a href="https://www.meetup.com/pythonbaq/photos/28650493/469001617/#469001617">Fotos</a>')}, {'title': 'Segmentación y caracterización de imágenes de células tomadas por microscopio', 'attach': Markup('<a href="https://drive.google.com/file/d/1-OYPDWkpSIkVYVleryihpjjtB5z4fbPc/view?usp=sharing">Slides</a> / <a href="https://www.meetup.com/pythonbaq/photos/28720332/469598936/">Fotos</a>')}, {'title': 'Zen de Python + Saca el mejor provecho a Redis', 'attach': Markup('<a href="https://slides.com/javidazac/zen-de-python/fullscreen">Slides Charla Zen</a> / <a href="https://drive.google.com/file/d/1TATNvBekIoPe8dCsW3O9cyWcj22Rmb_r/view?usp=sharing">Slides Charla Redis</a>')}, {'title': 'Carros autónomos + Creación de APIs para tus apps', 'attach': Markup('<a href="https://www.instagram.com/p/BlGG5-egLdp/?taken-by=pybaq">Video 1</a> / <a href="https://www.instagram.com/p/BlGHPi_hzEW/?taken-by=pybaq">Video 2</a>')}, {'title': 'Emprender con Inteligencia Artficial + Intro Análisis de Datos con Jupyter', 'attach': Markup('<a href="https://docs.google.com/presentation/d/1um9BTCwfbLw1Ccm-V-2ZlbhdAXFDwHrtLV-w17nlsR0/edit?usp=sharing">Slides Emprender</a> / <a href="https://github.com/Xaraxx/meetup-python-Quilla">Jupyter</a>')}, {'title': 'Integrar GraphQL a Django + Entiende el poder de los datos con Spark', 'attach': Markup('<a href="https://www.meetup.com/pythonbaq/photos/29170444/473804369/">Fotos</a>')}, {'title': 'Diseña tu proyecto de Machine Learning + Patrones de automatización de pruebas', 'attach': Markup('<a href="https://docs.google.com/presentation/d/12DPuf1-uGa-j_xZfAQtJAx9Et_w2i8VjpTzShH6k0jk/edit?usp=sharing">Slides ML</a> / <a href="https://docs.google.com/presentation/d/157LQAGm-UV3xAX7qRnaeHOSa4OBZ6MtnX8zDpWG-488/edit?usp=drivesdk">Slides Selenium</a> / <a href="https://www.meetup.com/pythonbaq/photos/29267016/474690179/">Fotos</a>')}, {'title': 'Ciencia de datos para dummies + Define y estructura un proyecto personal', 'attach': Markup('<a href="https://docs.google.com/presentation/d/1ehJK1l0gNC81J1fB_p4Z3Ud4hHbgHD0Bxj5oixk3M70/edit?usp=sharing">Slides ciencia de datos</a> / <a href="https://andresperezcera.xyz/presentaciones/pybaq20181023/#1">Ppts Proyectos personales</a>')}, {'title': 'Seguridad informática en la web + Aprender inglés: ahora es mejor que nunca', 'attach': Markup('<a href="https://drive.google.com/open?id=11L8uOcmRJPKujCB6G1Ugw9zb1mhOG6RI">Slides seguridad</a> / <a href="https://drive.google.com/open?id=1zw9ISDz9IoViS56HM8m_kTpTPYq5qRNv">Slides Aprender inglés</a>')}, {'title': 'PowerBI y Python: Inteligencia de Negocios + Introducción a servicios de AWS', 'attach': Markup('<a href="https://drive.google.com/open?id=18lNOfFPZOPGn0yoLimruIOGEQ61_wFqq">Ppts powerBI</a> / <a href="https://drive.google.com/open?id=1M6TqDKhrBCqv_A8Y5ILjVp2vy5Zh-0CU">Ppts AWS</a>')}, {'title': 'Finanzas cuantitativas para análisis de mercados + App del manto de la Tierra', 'attach': Markup('<a href="https://github.com/PyBAQ/Notebooks/blob/master/finanzasCuantitativasAnalisisMercado/haufgabe_y_criptocurrencies.ipynb">GitHub Finanzas cuantitativas para análisis de mercados</a>')}, {'title': 'Crea un sitio web en tiempo real tipo Google doc  + Creando comunidades exitosas', 'attach': Markup('<a href="https://github.com/GudarJs/paint_backend">GitHub Backend</a> / <a href="https://github.com/GudarJs/paint_frontend">GitHub Frontend</a> / <a href="https://drive.google.com/file/d/1KTpy7l9CZSsa-uUACkXA-fr1l5ayNuEF/view?usp=sharing">Diapositivas Crea un sitio web en tiempo real tipo Google doc</a> / <a href="https://docs.google.com/presentation/d/1Nk4lRdtKiGHHSQYnAJSeOso_vN0T1hP3Qg1BwtWM544/edit?usp=sharing">Diapositivas Creando comunidades exitosas</a>')}, {'title': 'Un algoritmo artístico de estilo neural  + PyBAQ: Detrás del escenario', 'attach': Markup('<a href="https://drive.google.com/file/d/1YlhbZevyfYqTc0lzacIgeShqT7n4LRjF/view?usp=sharing">Diapositivas Un algoritmo artístico de estilo neural</a> / <a href="https://drive.google.com/file/d/1Ot6W_wCsk8R4eSPIhVnp-9Q6SaPwI3Wl/view?usp=sharing">Diapositivas PyBAQ: Detrás del escenario</a>')}, {'title': 'Estudiar Machine Learning en el Exterior+ Intro a la Visión por Computador', 'attach': Markup('<a href="https://drive.google.com/file/d/1cXumlUM4gmbVbSYEG3z1PUgowVVzt5_5/view?usp=sharing">Diapositivas Estudiar Machine Learning en el Exterior</a> / <a href="https://drive.google.com/file/d/1XmMDzjxphOHgZUDM348Cyl0xTmfXplka/view?usp=sharing">Diapositivas Intro a la Visión por Computador</a>')}, {'title': 'App serverless y auto escalable con AWS Lambda + Consigue un trabajo en dólares', 'attach': Markup('<a href="https://drive.google.com/file/d/1paeQ69ycefeRzdFJrPBqZiFN5MJgP6Ar/view?usp=sharing">Diapositivas App serverless</a> / <a href="https://drive.google.com/file/d/1vEDU9LV8XD_dWcEN8GopGVEKfssfhPHS/view?usp=sharing">Diapositivas Consigue un trabajo en dólares</a>')}, {'title': 'Inteligencia Artificial y sus Aplicaciones + Ciberseguridad: Vectores de Ataque', 'attach': Markup('<a href="https://drive.google.com/file/d/1Mk99-prLjBfmpF9CDpnw_xIhftfv3k4a/view?usp=sharing">Diapositivas Inteligencia Artificial y sus Aplicaciones</a> / <a href="https://drive.google.com/file/d/1BA4cowactgoOEvaMWeqzkHAH1HSKnoGo/view?usp=sharing">Diapositivas Ciberseguridad: Vectores de Ataque</a>')}, {'title': 'Capturando credenciales en Google Chrome con DRF & DRF + ElasticSearch', 'attach': Markup('<a href="https://drive.google.com/file/d/1Ul6RinnwuHrss5MlnNiTAsz6hAL0Jbtj/view?usp=sharing">Diapositivas DRF + ElasticSearch</a>')}, {'title': 'Procesamiento de imágenes de tejido con Python + Project Management 101', 'attach': Markup('<a href="https://drive.google.com/file/d/1B3tUl68eJCa19B9SA99UuFi_H4opJZQ6/view?usp=sharing">Diapositivas Project Management 101</a>')}, {'title': 'Conociendo Oauth2 + Python para principiantes: Dónde empezar', 'attach': Markup('<a href="https://drive.google.com/file/d/1_UQB0yA2ndhcxW-1hu1JPyBElNESuOLV/view?usp=sharing">Diapositivas Conociendo Oauth2</a> / <a href="https://drive.google.com/file/d/1VmlqnFNISuCRsboedaep5RBs02_yZNBV/view?usp=sharing">Diapositivas Python para principiantes</a>')}, {'title': 'Piloteando Docker usando Python + Saca provecho a eventos internacionales', 'attach': Markup('<a href="https://drive.google.com/open?id=11X_jPQiwZizm0CwhtmjhAuk3DzDF0DKc">Diapositivas Docker usando Python</a> / <a href="https://slides.com/javidazac/saca-maximo-provecho-eventos">Diapositivas saca provecho a eventos</a>')}, {'title': 'Bienvenida 2020 y despedida Python 2', 'attach': Markup('<a href="https://www.meetup.com/pythonbaq/photos/30756208/488997608/">Foto grupal</a>')}, {'title': '📣 [ONLINE] 👨\u200d💻👩\u200d💻The Best of Both worlds: R meets Python 🎂 PyBAQ 5 años 🎉', 'attach': Markup('<a href="https://www.facebook.com/watch/?v=274039276919040">Video Facebook</a>')}, {'title': '📣 [ONLINE] 👨\u200d💻👩\u200d💻¿Por qué Kubernetes? & Implementa Scrum en organizaciones', 'attach': Markup('<a href="https://drive.google.com/file/d/1Srd91Y-nAwU_RV3IY0ZWnN4SAa4Sn7ed/view?usp=sharing">Diapositivas SCRUM</a> / <a href="https://slides.com/jesusdaviddiaz/por-que-todo-el-mundo-quiere-usar-kubernetes/fullscreen">Diapositivas Kubernetes</a> / <a href="https://www.facebook.com/watch/?v=2919451251483961">Video Facebook</a>')}, {'title': 'Intro python & django + Breaking the enigma: what if Turing had python?', 'attach': Markup('<a href="https://drive.google.com/open?id=1pJ0-viy9ZVbfAo4e9FJ1kJ5PB3w4_Ohg">Diapositivas intro Python & Django</a> / <a href="https://www.youtube.com/watch?v=Ibwp5Ny46fk&feature=emb_logo">Video Enigma</a> / <a href="https://www.slideshare.net/MariaCamilaRemolinaG/breaking-the-enigma-what-if-turing-had-python">Diapositivas Enigma</a>')}, {'title': 'Aprende Machine Learning con Flappy Bird/ Despliegue a Heroku con GitHub Actions', 'attach': Markup('<a href="https://github.com/waybarrios/meetup_pythonbq_deeplearning">GitHub Flappy Bird</a> / <a href="https://slides.com/sjdonado/deploy-to-heroku-with-github-actions">Diapositivas Github Actions</a> / <a href="github.com/sjdonado/pybaq-heroku-meetup">Repositorio Github Actions / <a href="https://www.facebook.com/watch/?v=653172022193087">Video Facebook</a>')}, {'title': '7 técnicas para sacarle el máximo potencial a Django REST Framework', 'attach': Markup('<a href="https://drive.google.com/file/d/1u09Vh_QUNP9Je6vrpDHNK6SFOpb5zYa5/view?usp=sharing">Diapositivas</a> / <a href="https://youtu.be/T90qyrcHvqM">Video Youtube</a>')}, {'title': 'Python y DevNet: Aplicabilidad en la programabilidad de redes', 'attach': Markup('<a href="https://drive.google.com/file/d/15pBxVLMz0ntGsRnSqn7PDIrq4YsLJGUp/view?usp=sharing">Diapositivas</a> / <a href="https://www.youtube.com/watch?v=NW7_U_wljic">Video Youtube</a>')}, {'title': 'Geodjango: Aprovechando las funciones geográficas para tus aplicaciones', 'attach': Markup('<a href="https://www.youtube.com/watch?v=piSDhPAswHs">Video Youtube</a>')}, {'title': 'Manejo de archivos grandes con una Django app & DRF', 'attach': Markup('<a href="https://drive.google.com/file/d/1HJTkMmzHf0hc6gDeAo2FDdP07qon69ve/view?usp=sharing">Diapositivas</a> / <a href="https://www.youtube.com/watch?v=xFbdytRPK9Q">Video Youtube</a>')}, {'title': 'Edición Hacktoberfest: "Únete a traducir la documentación de Python"', 'attach': Markup('<a href="http://maureira.xyz/python-docs-es/index.html#/">Slides</a> / <a href="https://youtu.be/YmwSdVVF8BM">Video Youtube</a>')}, {'title': 'Automatización de Redes con Python', 'attach': Markup('<a href="https://drive.google.com/file/d/1RuamS46QNQggeiZdVfGk0dbMbvn6bxUn/view?usp=sharing">Diapositivas</a> / <a href="https://drive.google.com/file/d/1roE-5BppgmpcAOOSZaxAve1bCBHQ70R1/view?usp=sharing">Recursos</a> / <a href="https://youtu.be/XUiIGJNdqlo">Video Youtube</a>')}, {'title': '¿Cómo escalar tu infraestructura?', 'attach': Markup('<a href="https://slides.com/jesusdaviddiaz/deck/fullscreen">Diapositivas</a> /\n<a href="https://youtu.be/jXjchEAOhgA">Video Youtube</a>')}, {'title': 'Lightning Talks 2020', 'attach': Markup('<a href="https://drive.google.com/drive/folders/12k-k47aD2YI5FSVf1rbcOrCLAWU4XQrz?usp=sharing">Diapositivas</a> / <a href="https://youtu.be/8wAWzRrLF8A">Video Youtube</a>')}, {'title': 'Minería de Textos para Monitorear Impacto de Covid-19 en América Latina', 'attach': Markup('<a href="https://github.com/jecs89/Charlas_2021">Diapositivas</a> / <a href="https://www.youtube.com/watch?v=oJ_cpUUguaI">Video Youtube</a>')}, {'title': 'Extendiendo la Monitorizacion de Infraestructura TI con Nagios + Python', 'attach': Markup('<a href="https://drive.google.com/file/d/1_QDtVVC7cZwNQTH5j2mBzYeeXx-vZzlc/view?usp=sharing">Diapositivas</a> / <a href="https://www.youtube.com/watch?v=yP1AhZJeZOc">Video Youtube</a>')}, {'title': 'Aspectos Básicos del Derecho de Autor para Programadores', 'attach': Markup('<a href="https://youtu.be/3aBd1oeLq94">Video Youtube</a>')}, {'title': 'Los datos son el camino: de administración de empresas a programación', 'attach': Markup('<a href="https://docs.google.com/presentation/d/1K9I4fFG5Vc-HoMXS9PBoW63rDocxHEIiG7e3Ea3mZQA/edit?usp=sharing">Diapositivas</a> / <a href="https://youtu.be/5KKyVDrbmIw">Video Youtube</a>')}, {'title': 'Usando Selenium Python en el sitio de PyBAQ', 'attach': Markup('<a href="https://drive.google.com/file/d/1tqIzY5ddLt1NnBujZVr9Xy0gRxqxCCBV/view?usp=sharing">Diapositivas</a> / <a href="https://youtu.be/u1wK27M0G_0">Video Youtube</a>')}, {'title': 'Liga Python: Semifinales Grupo 1', 'attach': Markup('<a href="https://www.youtube.com/watch?v=9fvHu0WceO0">Video Youtube</a>')}, {'title': 'Liga Python: Semifinales Grupo 2', 'attach': Markup('<a href="https://www.youtube.com/watch?v=YIv-PrGLoQ4">Video Youtube</a>')}, {'title': 'Liga Python: Final', 'attach': Markup('<a href="https://www.youtube.com/watch?v=YibzuncI8AI">Video Youtube</a>')}, {'title': 'Roadmap de la seguridad informática sin morir', 'attach': Markup('<a href="https://docs.google.com/presentation/d/1yqkTBLlb8z0FmugXrnoKRaOwxbUYm64O/edit?usp=sharing&ouid=102875902266955155312&rtpof=true&sd=true">Diapositivas</a> / <a href="https://www.youtube.com/watch?v=CYMsDz14f5Q">Video Youtube</a>')}, {'title': 'NLP con HuggingFace 🤗', 'attach': Markup('<a href="https://www.youtube.com/watch?v=qQEBoAVkvmk">Video Youtube</a>')}, {'title': 'Uso empresarial de Python', 'attach': Markup('<a href="https://drive.google.com/file/d/1elenlrR_oytRtdWc78URE1Y9os21MdlG/view?usp=sharing">Diapositivas</a> / <a href="https://www.youtube.com/watch?v=Ld52Wz_K8XQ">Video Youtube</a>')}, {'title': 'Detección de Cáncer Pulmonar usando Procesamiento de Imágenes', 'attach': Markup('<a href="https://youtu.be/fAG3_nMPpjU">Video Youtube</a>')}, {'title': 'Cross Modal: Conectando el mundo de NLP con el de Computer Vision', 'attach': Markup('<a href="https://youtu.be/hLOxurqMOkQ">Video Youtube</a>')}, {'title': 'Conversatorio de junior a senior: Conmemorando 7 años de comunidad', 'attach': Markup('<a href="https://youtu.be/M5-witzXkDk">Video Youtube</a>')}, {'title': 'SymPy como herramienta de aprendizaje en matemáticas y programación', 'attach': Markup('<a href="https://youtu.be/L7PsaOu0bSQ">Video Youtube</a> / <a href="https://docs.google.com/presentation/d/1-651PmUg0vtHeAPZdi5ieuokoVrLJ5x0/edit?usp=sharing&ouid=102956723374392876682&rtpof=true&sd=true">Diapositivas</a> / <a href="https://colab.research.google.com/drive/1iIknZcj1TEfKTEKGHvdTJCBBmNrsoIw6?usp=sharing">Google Colab</a>')}, {'title': 'Principios SOLID en Python', 'attach': Markup('<a href="https://youtu.be/ZjQyjDWyLCc">Video Youtube</a> / <a href="https://github.com/emimartin26/solid_python/tree/master/practices">Github</a>')}, {'title': 'Automatización de UI en Python aplicando el patrón Screenplay', 'attach': Markup('<a href="https://youtu.be/s_h5uAZB8yU">Video Youtube</a> / <a href="https://github.com/Scot3004/web2021/blob/master/content/blog/2022-08-14-screenpy.mdx">Github</a>')}, {'title': 'Fomentando la programación desde la infancia', 'attach': Markup('<a href="https://youtu.be/RIx-Wf1dZ6U">Video Youtube</a>')}, {'title': 'Consiguiendo trabajo como programador a los 45 años', 'attach': Markup('<a href="https://youtu.be/kOSqcrgTlhI">Video Youtube</a> / <a href="https://drive.google.com/file/d/1vTU5p44bn4mrOBzt5q6araKo0Rx0wm5O/view?usp=sharing">Diapositivas</a>')}, {'title': 'Introducción al Pentesting', 'attach': Markup('<a href="https://youtu.be/pDu87a3lr78">Video Youtube</a> / <a href="https://drive.google.com/file/d/1sgH0tlUf-eJJWp4isNgLiT7mZPfkUEQW/view?usp=sharing">Diapositivas</a>')}, {'title': 'Crea tus propias videollamadas con Python y WebRTC', 'attach': Markup('<a href="https://youtu.be/XtJncjNegvQ">Video Youtube</a> / <a href="https://drive.google.com/file/d/1WYbWcpyNCRr-D914ifhtQYG7l7NPHjMA/view?usp=sharing">Diapositivas</a>')}, {'title': 'De psicólogo a programador ¿cambio o complemento de carrera?', 'attach': Markup('<a href="https://youtu.be/Dzi89oXcRUg">Video Youtube</a> / <a href="https://drive.google.com/file/d/1d6CbU_B0RvFyjJzwPQ9jkmmUC0X0vBs5/view?usp=share_link">Diapositivas</a>')}, {'title': 'DeepDream: Visualizando que aprende una red neuronal convolucional', 'attach': Markup('<a href="https://www.youtube.com/live/t3B0ENK7Ktk">Video Youtube</a> / <a href="https://github.com/PyBAQ/Notebooks/blob/master/DeepDream/DeepDream.ipynb">Notebook</a> / <a href="https://drive.google.com/file/d/1P2o3Ma_Vmkc1dGhQnmYA0-hrjw4zbEd1/view?usp=share_link">Diapositivas</a>')}, {'title': 'Linux Amigable', 'attach': Markup('<a href="https://www.youtube.com/live/tZuATaA3Bjc">Video Youtube</a>\n')}, {'title': 'CaribeDev: Encuentro de comunidades Tech', 'attach': Markup('<a href="https://drive.google.com/drive/folders/1HnLoaYxpS_6ek_rtaXx4q8viw6zMAd4c?usp=sharing">Las 3 diapositivas</a>\n')}, {'title': 'Del LLM al ChatBot: Cómo funcionan, su entrenamiento y produccion sin usar GPU', 'attach': Markup('<a href="https://docs.google.com/presentation/d/15a3RMm9d_1h9BuQAJUxYHSbzAUPyJxQ8OBwUfYT7ldE/edit?usp=sharing">Diapositivas</a> / <a href="https://www.youtube.com/watch?v=5AeNWW25YiM">Video Youtube</a>\n')}, {'title': 'Modelado de Data Warehouses con DBT', 'attach': Markup('<a href="https://docs.google.com/presentation/d/15f8xRC-ArOWBwZzl_7crgqMF1V9c2lte/edit?usp=sharing&ouid=102956723374392876682&rtpof=true&sd=true">Diapositivas</a> / <a href="https://www.youtube.com/live/CPxE3aC9xdQ">Video Youtube</a> / <a href="https://github.com/jdaguilar/data-warehouse-modeling-with-dbt-pybaq">Repositorio</a>')}, {'title': 'Pentesting con Jupyter Notebook', 'attach': Markup('<a href="https://www.youtube.com/live/SuJOOqAL8yk">Video Youtube</a>')}, {'title': 'Serverless + Devcontainers en localhost + automatizando tareas repetitivas', 'attach': Markup('<a href="https://docs.google.com/presentation/d/1sbATjk1bKXDp61DYvHrmiL6aXe3h5Fte/edit?usp=sharing&ouid=102956723374392876682&rtpof=true&sd=true">Diapositivas devcontainers</a> / <a href="https://www.youtube.com/live/jnZatfMc6rM">Video Devcontainers y automatización de tareas</a>')}]
Scot3004 commented 5 months ago

Ya con el pad se puede hacer algo tan interesante como:

eventos_index = {evento["title"]: evento["attach"] for evento in eventos["body"].blocks[1]["body"].blocks[0]["anexos"].blocks}
eventos_index["De psicólogo a programador ¿cambio o complemento de carrera?"]

que da como salida

>>> eventos_index["De psicólogo a programador ¿cambio o complemento de carrera?"]
Markup('<a href="https://youtu.be/Dzi89oXcRUg">Video Youtube</a> / <a href="https://drive.google.com/file/d/1d6CbU_B0RvFyjJzwPQ9jkmmUC0X0vBs5/view?usp=share_link">Diapositivas</a>')
>>> 
pyjavo commented 5 months ago

Comentarios que surgieron de nuestra última reunión:

Listado tareas

Campos importantes de evento

El unico campo que es de charla es Github y anexos, ademas del ponente. Charla tiene su propio titulo

Inspiración

Scot3004 commented 5 months ago
  1. 473

  2. 474

  3. https://deploy-preview-474--vigilant-neumann-d109b9.netlify.app/nosotros/sergio-orozco/ se muestra como se puede implementar dicha relación, para llegar a dicho resultado fue necesaria la implementación de un plugin, proximamente abrire el respectivo PR https://github.com/PyBAQ/website/tree/5505413041e411c08a24f315633f2ead1c063c70/packages/speaker-events y aca se usa https://github.com/PyBAQ/website/blob/5505413041e411c08a24f315633f2ead1c063c70/templates/nosotros-miembro.html#L72
  4. Se implemento en el poc tambien https://github.com/PyBAQ/website/blob/5505413041e411c08a24f315633f2ead1c063c70/scripts/create_events.py
  5. no me vas a creer, el mismo script del punto anterior, solo habria que quitarle la parte donde se va a los anexos de la implementación actual, tal vez si le creamos sus test unitarios quede mas bonito
  6. creo que este es un duplicado del punto anterior
  7. TODO
  8. TODO