diff --git a/pycon-fr-2025/category.json b/pycon-fr-2025/category.json new file mode 100644 index 000000000..9f487f190 --- /dev/null +++ b/pycon-fr-2025/category.json @@ -0,0 +1,3 @@ +{ + "title": "PyCon FR 2025" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/a_la_sauce_python_metaclasses_decorateurs_et_orm_fait_maison.json b/pycon-fr-2025/videos/a_la_sauce_python_metaclasses_decorateurs_et_orm_fait_maison.json new file mode 100644 index 000000000..461f21cb2 --- /dev/null +++ b/pycon-fr-2025/videos/a_la_sauce_python_metaclasses_decorateurs_et_orm_fait_maison.json @@ -0,0 +1,28 @@ +{ + "title": "\u00c0 la sauce Python\u202f: m\u00e9taclasses, d\u00e9corateurs et ORM fait maison", + "description": "Vous avez d\u00e9j\u00e0 crois\u00e9 `type` et pens\u00e9 \u00ab\u202fah oui, le truc pour savoir si c\u2019est un `int`\u202f\u00bb\u202f? Et si on jouait un peu plus s\u00e9rieusement avec\u202f?\r\n\r\nDans ce talk, on explore les coulisses de la cr\u00e9ation des classes Python\u202f: m\u00e9taclasses, cr\u00e9ation dynamique, cycle de vie\u2026 puis on met tout \u00e7a \u00e0 l\u2019\u00e9preuve dans un cas concret\u202f: un ORM fait maison, avec un bon go\u00fbt de bouchon lyonnais.\r\n\r\nDeux recettes au menu\u202f: l\u2019une \u00e0 base de m\u00e9taclasse, l\u2019autre avec un bon vieux d\u00e9corateur de classe. L\u2019occasion de comparer magie et lisibilit\u00e9\u202f\u2013 sans perdre son app\u00e9tit pour autant.\r\n\r\nPublic vis\u00e9\u202f: d\u00e9veloppeurs Python curieux, un peu bricoleurs, qui aiment comprendre comment \u00e7a marche sous le capot.", + "duration": 2265, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Pierre Verkest" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/a_la_sauce_python_metaclasses_decorateurs_et_orm_fait_maison.mp4", + "size": 283004549 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/6f113517-c111-470d-9ba2-6daf7de2ea4a" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/f273017c-3976-4a04-bfc2-d9c6ffb91377.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/accro_au_cafe_prenez_des_photos_et_suivez_l_utilisation_de_la_machine_du_bureau.json b/pycon-fr-2025/videos/accro_au_cafe_prenez_des_photos_et_suivez_l_utilisation_de_la_machine_du_bureau.json new file mode 100644 index 000000000..c648c4157 --- /dev/null +++ b/pycon-fr-2025/videos/accro_au_cafe_prenez_des_photos_et_suivez_l_utilisation_de_la_machine_du_bureau.json @@ -0,0 +1,28 @@ +{ + "title": "Accro au caf\u00e9\u202f? Prenez des photos et suivez l'utilisation de la machine du bureau\u202f!", + "description": "Le caf\u00e9 est au code ce que le gras est \u00e0 la vie.\r\n\r\nUn jour j'ai d\u00e9couvert le menu maintenance de la machine \u00e0 caf\u00e9 du bureau. Un monde merveilleux de statistiques d'utilisation s'est ouvert \u00e0 moi. Que boivent mes coll\u00e8gues\u202f? En quelles quantit\u00e9s\u202f? Y a-t-il des jours plus caf\u00e9in\u00e9s que d'autres\u202f? Tant de questions, mais il me faut d'abord acqu\u00e9rir les donn\u00e9es \u202f La machine n'ayant pas de connectique, cela se fera par photo et OCR.\r\n\r\nPour le fun, pour apprendre, pour me changer les id\u00e9es, je me suis lanc\u00e9 dans un projet perso _from scratch_. Dans ma vie pro, je fais du Python depuis 2009 et un peu de Django depuis 2018. Mais je n'ai jamais fait de Django sur un projet vide, j'ai toujours travaill\u00e9 sur des projets existants, parfois \u00e9normes (800k+ lignes).\r\n\r\nEt si je me lan\u00e7ais dans mon propre projet _from scratch_ et que j'en profitais pour d\u00e9couvrir plein de nouvelles choses, pour confronter la page blanche\u202f? Poetry, uv\u202f? Django-Ninja\u202f? Et les nouveaut\u00e9s de Python 3.13+, Django 5.2+ ?\r\n\r\nEnfilez votre plus bel impair et lunettes noires, et venez espionner vos coll\u00e8gues avec moi\u202f!", + "duration": 1272, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "R\u00e9mi Cardona" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/accro_au_cafe_prenez_des_photos_et_suivez_l_utilisation_de_la_machine_du_bureau.mp4", + "size": 186465762 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/2cd58d8e-e505-40bc-98f6-637c295e218e" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/f9ed2393-b535-4a4c-a28c-2603fc1ebbb4.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/advanced_alchemy_surcouche_puissante_de_sqlalchemy.json b/pycon-fr-2025/videos/advanced_alchemy_surcouche_puissante_de_sqlalchemy.json new file mode 100644 index 000000000..626bcfe0d --- /dev/null +++ b/pycon-fr-2025/videos/advanced_alchemy_surcouche_puissante_de_sqlalchemy.json @@ -0,0 +1,28 @@ +{ + "title": "Advanced Alchemy\u202f: Surcouche puissante de SQLAlchemy", + "description": "Vous adorez **SQLAlchemy** mais vous trouvez sa mise en place r\u00e9p\u00e9titive, fastidieuse ou peu productive\u202f?\r\n\r\n**Advanced Alchemy** est une surcouche puissante et flexible \u00e0 SQLAlchemy, con\u00e7ue pour les d\u00e9veloppeurs en qu\u00eate d\u2019efficacit\u00e9, de scalabilit\u00e9 et de lisibilit\u00e9.\r\n\r\nDans cette conf\u00e9rence, vous d\u00e9couvrirez comment ce projet issu de Litestar red\u00e9finit l\u2019exp\u00e9rience ORM avec SQLAlchemy, sans enfermer dans un framework particulier.\r\n\r\nGr\u00e2ce \u00e0 ses mod\u00e8les typ\u00e9s, sa configuration centralis\u00e9e, sa compatibilit\u00e9 asynchrone et sa gestion int\u00e9gr\u00e9e des migrations, Advanced Alchemy vous permet de cr\u00e9er des API robustes avec des mod\u00e8les Pydantic, une s\u00e9paration claire des entit\u00e9s, et des patterns inspir\u00e9s du DDD (Domain Driven Design).\r\n\r\nNous verrons ensemble\u202f:\r\n\r\n- Comment cr\u00e9er des mod\u00e8les scalables avec l\u2019h\u00e9ritage et les mixins d\u2019Advanced Alchemy\r\n- La gestion des migrations (Alembic) simplifi\u00e9e\r\n- L\u2019optimisation du cycle de vie des sessions avec SQLAlchemyAsyncConfig\r\n- L\u2019int\u00e9gration avec Litestar (mais aussi utilisable avec FastAPI ou autre)\r\n\r\nCe talk est id\u00e9al pour les d\u00e9veloppeurs Python backend qui utilisent d\u00e9j\u00e0 SQLAlchemy, ou pour ceux qui cherchent une alternative moderne aux ORM traditionnels.", + "duration": 1366, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Julien" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/advanced_alchemy_surcouche_puissante_de_sqlalchemy.mp4", + "size": 182563461 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/4325ec7f-5a26-4eb3-835c-ec2648b6b4f2" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/7c94c422-20b4-410a-99cb-8d49d4823766.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/au_secours_on_vient_auditer_mon_application.json b/pycon-fr-2025/videos/au_secours_on_vient_auditer_mon_application.json new file mode 100644 index 000000000..914979270 --- /dev/null +++ b/pycon-fr-2025/videos/au_secours_on_vient_auditer_mon_application.json @@ -0,0 +1,28 @@ +{ + "title": "Au secours, on vient auditer mon application", + "description": "Avez-vous d\u00e9j\u00e0 subi un audit de votre application\u202f? Comment avez-vous r\u00e9agi\u202f?\r\n\r\nLes audits de logiciels concernent des sujets divers\u202f: architecture, qualit\u00e9 du code source, choix de la stack technique, outillage, processus\u2026 Et pour chacune de ces pr\u00e9occupation, ils peuvent \u00eatre d\u00e9clench\u00e9s pour diff\u00e9rentes motivations\u202f: comprendre les causes des probl\u00e8mes r\u00e9curents, anticiper des grands projets, pr\u00e9parer un changement d'organisation.\r\n\r\nMais que faire en tant que d\u00e9veloppeur, tech-lead, chef de projet\u202f?\r\n\r\nNous verrons en quoi un audit logiciel va plus loin que Sonar, quelles sont les mani\u00e8res de s'y pr\u00e9parer (m\u00eame \u00e0 la derni\u00e8re minute) et surtout comment en tirer le maximum.", + "duration": 1565, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Thomas Cordival" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/au_secours_on_vient_auditer_mon_application.mp4", + "size": 209453148 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/ed7c170a-5287-4895-828a-eabc38792451" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/29f8ba75-abe2-422b-9750-9a8eb0eaaf21.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/bonnes_pratiques_de_l_integration_d_oidc_et_de_saml_pour_permettre_le_changement_de_login.json b/pycon-fr-2025/videos/bonnes_pratiques_de_l_integration_d_oidc_et_de_saml_pour_permettre_le_changement_de_login.json new file mode 100644 index 000000000..51e2a7a62 --- /dev/null +++ b/pycon-fr-2025/videos/bonnes_pratiques_de_l_integration_d_oidc_et_de_saml_pour_permettre_le_changement_de_login.json @@ -0,0 +1,28 @@ +{ + "title": "Bonnes pratiques de l'int\u00e9gration d'OIDC et de SAML pour permettre le changement de login", + "description": "Votre responsable arrive en r\u00e9union et vous explique qu'\u00e0 partir de maintenant, les applications doivent permettre de changer le nom d'utilisateur, citant vaguement des contraintes r\u00e9glementaires et des demandes utilisateurs. Comme votre parc d'applications utilise une authentification centralis\u00e9e et des biblioth\u00e8ques libres de qualit\u00e9, vous vous dites que \u00e7a n'est pas un souci, mais le premier test montre qu'h\u00e9las, \u00e7a n'est pas le cas et qu'il faut tout revoir.\r\n\r\n\u00c0 travers les exemples des applications cr\u00e9\u00e9es par le projet Fedora en Python et utilisant OIDC et SAML, nous verrons les probl\u00e8mes qui ont \u00e9t\u00e9 rencontr\u00e9s, les bonnes pratiques pour les \u00e9viter et pourquoi il a \u00e9t\u00e9 d\u00e9cid\u00e9 de permettre de changer ce qu'on estime immuable.", + "duration": 1570, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Michael Scherer" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/bonnes_pratiques_de_l_integration_d_oidc_et_de_saml_pour_permettre_le_changement_de_login.mp4", + "size": 206720054 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/f82177d3-8efc-40d8-9b33-c9090df26a0d" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/e8c78bf8-bc23-445f-9259-b60109998e99.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/calamars_et_pythons_creons_un_jeu_2d_avec_arcade.json b/pycon-fr-2025/videos/calamars_et_pythons_creons_un_jeu_2d_avec_arcade.json new file mode 100644 index 000000000..c2b0e46e5 --- /dev/null +++ b/pycon-fr-2025/videos/calamars_et_pythons_creons_un_jeu_2d_avec_arcade.json @@ -0,0 +1,28 @@ +{ + "title": "Calamars et Pythons\u202f: cr\u00e9ons un jeu 2D avec `arcade`", + "description": "Dans cette conf\u00e9rence, je vous propose d'apprendre \u00e0 cr\u00e9er ensemble un mini-jeu 2D avec la biblioth\u00e8que `arcade.` L'objectif\u202f: vous montrer \u00e0 quel point il est simple (et amusant) de concevoir un jeu, m\u00eame si vous n\u2019\u00eates pas expert en Python.\r\n\r\nAu programme\u202f:\r\n\r\n- ouverture d'une fen\u00eatre\r\n- dessin de forme et affichage d'images\r\n- sons et interactions clavier/souris\r\n- affichage des scores\r\n- quelques effets sp\u00e9ciaux \ud83c\udf87\r\n- et pour finir, la distribution du jeu\r\n\r\nAucun pr\u00e9requis avanc\u00e9 n'est n\u00e9cessaire\u202f: je m'engage \u00e0 rester dans un code simple, lisible et p\u00e9dagogique. Venez d\u00e9couvrir `arcade`, une biblioth\u00e8que moderne et intuitive, et repartez avec l'envie de cr\u00e9er vos propres jeux\u202f!\r\n\r\nEt longue vie aux calamars !", + "duration": 3155, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Vincent Poulailleau" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/calamars_et_pythons_creons_un_jeu_2d_avec_arcade.mp4", + "size": 419369682 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/4151b233-3a6f-4111-a45c-ae0779b3f7a0" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/4f5c845c-d4a9-4d6e-b1fa-5586621e48bd.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/canaille_un_fournisseur_d_identite_leger_en_python.json b/pycon-fr-2025/videos/canaille_un_fournisseur_d_identite_leger_en_python.json new file mode 100644 index 000000000..09e123f9e --- /dev/null +++ b/pycon-fr-2025/videos/canaille_un_fournisseur_d_identite_leger_en_python.json @@ -0,0 +1,28 @@ +{ + "title": "Canaille, un fournisseur d'identit\u00e9 l\u00e9ger en Python", + "description": "[Canaille](https://canaille.readthedocs.io) est un fournisseur d'identit\u00e9 l\u00e9ger qui impl\u00e9mente les normes OpenID Connect, OAuth2 et SCIM.\r\n\r\nC'est une sorte de Keycloak super l\u00e9ger, \u00e9crit en Python, qui utilise Flask et htmx.\r\n\r\nJe voudrais vous pr\u00e9senter les fonctionnalit\u00e9s de Canaille, d'o\u00f9 est venu ce besoin de r\u00e9inventer la roue, les autres projets dans lesquels ce d\u00e9veloppement m'a fait mettre les mains (et parfois devenir co-mainteneur).\r\n\r\nEnfin je voudrais pr\u00e9senter comment d\u00e9velopper des applications web en d\u00e9l\u00e9guant compl\u00e8tement l'authentification gr\u00e2ce \u00e0 OIDC et SCIM. Et comment utiliser Canaille pour avoir un serveur d'identit\u00e9 dans un environnement de d\u00e9veloppement ou dans des tests unitaires, sans mettre sa machine \u00e0 genoux.", + "duration": 1288, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "\u00c9loi Rivard" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/canaille_un_fournisseur_d_identite_leger_en_python.mp4", + "size": 163868976 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/9a032ba5-3e58-441a-864d-e150e426c1dc" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/9b8c710f-fe72-4dbb-8973-1a0e0393288f.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/cartographier_les_dommages_causes_aux_batiments_avec_python_et_le_satellite_sentinel_1.json b/pycon-fr-2025/videos/cartographier_les_dommages_causes_aux_batiments_avec_python_et_le_satellite_sentinel_1.json new file mode 100644 index 000000000..82df39871 --- /dev/null +++ b/pycon-fr-2025/videos/cartographier_les_dommages_causes_aux_batiments_avec_python_et_le_satellite_sentinel_1.json @@ -0,0 +1,29 @@ +{ + "title": "Cartographier les dommages caus\u00e9s aux b\u00e2timents avec Python et le satellite Sentinel-1", + "description": "En tant qu'organisation active dans la r\u00e9duction de la violence arm\u00e9e, la r\u00e9duction des risques de catastrophe et les situations d'urgence, Handicap International (HI) intervient dans de multiples contextes o\u00f9 les dommages caus\u00e9s aux b\u00e2timents sont tr\u00e8s fr\u00e9quents. L'\u00e9valuation de ces dommages est une information essentielle pour hi\u00e9rarchiser les zones d\u2019intervention et les activit\u00e9s \u00e0 mettre en \u0153uvre. Lorsque de vastes zones sont touch\u00e9es par des al\u00e9as d\u2019origine naturelle ou des conflits arm\u00e9s, l'imagerie satellite fournit des donn\u00e9es pr\u00e9cieuses pour mener \u00e0 bien ces \u00e9valuations. \r\n\r\nLes images radar du satellite Sentinel-1, coupl\u00e9es \u00e0 une analyse statistique r\u00e9alis\u00e9e avec Python, permettent d\u2019\u00e9valuer les dommages caus\u00e9s aux b\u00e2timents sans recourir \u00e0 des images \u00e0 tr\u00e8s haute r\u00e9solution ou \u00e0 des mod\u00e8les avanc\u00e9s d\u2019intelligence artificielle. Ce test statistique consiste \u00e0 calculer une *t-value* par pixel \u00e0 partir d\u2019images avant et apr\u00e8s la survenue des dommages, puis \u00e0 la moyenner sur les emprises de b\u00e2timent afin de caract\u00e9riser la pr\u00e9sence de dommages \u00e0 partir d\u2019une valeur seuil de cette *t-value* moyenne. \r\n\r\nNous pr\u00e9senterons comment la mise \u00e0 disposition en open-source du code du [Pixel-Wise T-Test](https://arxiv.org/abs/2405.06323) par Ollie Ballinger a permis \u00e0 HI de tester cet algorithme et de l\u2019adapter \u00e0 ses enjeux de priorisation des activit\u00e9s.", + "duration": 1887, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Fr\u00e9d\u00e9ric Lamy", + "Pierre-Henri Dubois" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/cartographier_les_dommages_causes_aux_batiments_avec_python_et_le_satellite_sentinel_1.mp4", + "size": 298128089 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/12feec47-6270-4ad1-b88d-582416392ea7" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/a31a31b8-ac0d-43c3-9277-566fb4cd8206.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/cloture_closing.json b/pycon-fr-2025/videos/cloture_closing.json new file mode 100644 index 000000000..1e51cef6b --- /dev/null +++ b/pycon-fr-2025/videos/cloture_closing.json @@ -0,0 +1,28 @@ +{ + "title": "Accueil / Welcome", + "description": "Session d'ouverture de PyConFR 2025.\n\nOpening talk for PyConFR 2025.", + "duration": 2447, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Lucie Anglade" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/accueil_welcome.mp4", + "size": 338779821 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/f9183556-f30e-4c75-8290-5aca6f72c20c" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/23317aea-1f7f-4398-8435-23f17a885329.jpg" +} diff --git a/pycon-fr-2025/videos/comment_enseigner_le_python_a_lere_de_lintelligence_artificielle_generative.json b/pycon-fr-2025/videos/comment_enseigner_le_python_a_lere_de_lintelligence_artificielle_generative.json new file mode 100644 index 000000000..29cb04b09 --- /dev/null +++ b/pycon-fr-2025/videos/comment_enseigner_le_python_a_lere_de_lintelligence_artificielle_generative.json @@ -0,0 +1,28 @@ +{ + "title": "Comment enseigner le Python \u00e0 l\u2019\u00e8re de l\u2019intelligence artificielle g\u00e9n\u00e9rative\u202f?", + "description": "L\u2019intelligence artificielle g\u00e9n\u00e9rative change notre rapport \u00e0 l\u2019apprentissage du code et en particulier du langage Python. De nombreux d\u00e9butants arrivent d\u00e9sormais \u00e0 Python via des outils g\u00e9n\u00e9ralistes comme ChatGPT ou plus sp\u00e9cialis\u00e9s dans le \u00ab\u202fvibe coding\u202f\u00bb comme Cursor. Comment adapter l\u2019enseignement du Python \u00e0 ces nouveaux profils\u202f? Quels concepts faut-il encore enseigner et comment\u202f? Cette conf\u00e9rence propose des pistes p\u00e9dagogiques concr\u00e8tes pour aider ces nouveaux utilisateurs \u00e0 acqu\u00e9rir une compr\u00e9hension r\u00e9elle et durable du langage.", + "duration": 1483, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Pierre-Loic Bayart" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/comment_enseigner_le_python_a_lere_de_lintelligence_artificielle_generative.mp4", + "size": 198020697 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/4a26ea4c-bcd2-4d51-8844-11fac319fe2a" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/45f8e243-160c-4993-a8c0-56db6ac4ffa0.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/comment_gerer_un_changelog_facilement_quand_on_est_plusieurs.json b/pycon-fr-2025/videos/comment_gerer_un_changelog_facilement_quand_on_est_plusieurs.json new file mode 100644 index 000000000..7f596afd9 --- /dev/null +++ b/pycon-fr-2025/videos/comment_gerer_un_changelog_facilement_quand_on_est_plusieurs.json @@ -0,0 +1,28 @@ +{ + "title": "Comment g\u00e9rer un changelog facilement quand on est plusieurs\u202f?", + "description": "G\u00e9rer un *changelog* **utile** pour les utilisateurs\u00b7trices d'une application/biblioth\u00e8que n\u2019est pas facile.\r\n\r\nLes messages de commit sont \u00e0 destination des d\u00e9veloppeurs\u00b7euses et peuvent difficilement \u00eatre utilis\u00e9s comme *changelog* coh\u00e9rent pour une version. Mettre \u00e0 jour un fichier unique `CHANGELOG.md` semble une solution simple\u2026 sauf quand on commence \u00e0 travailler \u00e0 plusieurs, avec des branches, *rebases*, *merges* et autres conflits possibles.\r\n\r\nJe propose d\u2019expliquer une solution que j\u2019ai mise en place dans un outil en Python (**ezchlog** `[easy changelog]`) qui permet de r\u00e9soudre cette probl\u00e9matique en utilisant de petits fichiers `changelog` qui se fusionneront dans le fichier g\u00e9n\u00e9ral quand on le veut (lors d\u2019une version par exemple).\r\n\r\nL\u2019outil est en Python 3.9+, typ\u00e9, test\u00e9 avec une couverture de +90% et enti\u00e8rement configurable.\r\n\r\nP.S.\u202f: J\u2019ai \u00e9galement d\u00e9velopp\u00e9 le m\u00eame outil en Rust et je peux bri\u00e8vement parler des diff\u00e9rences de d\u00e9veloppement si \u00e7a int\u00e9resse du monde.", + "duration": 1493, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Cyrille Pontvieux" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/comment_gerer_un_changelog_facilement_quand_on_est_plusieurs.mp4", + "size": 201370883 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/ae4f7d3e-4c40-4530-9138-6765d18b074e" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/0894f78d-252b-4a52-9f4c-d3907dfdb503.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/computer_vision_data_version_control_and_reproducibility_at_scale.json b/pycon-fr-2025/videos/computer_vision_data_version_control_and_reproducibility_at_scale.json new file mode 100644 index 000000000..63d7b1c94 --- /dev/null +++ b/pycon-fr-2025/videos/computer_vision_data_version_control_and_reproducibility_at_scale.json @@ -0,0 +1,30 @@ +{ + "title": "Computer Vision Data Version Control and Reproducibility at Scale", + "description": "Petabytes of unstructured data stand as the cornerstone upon which triumphant Machine Learning (ML) models are built.\u00a0One common method for researchers to extract subsets of data to their local environments is by simply using the age-old copy-paste, for model training. This method allows for iterative experimentation, but it also introduces challenges with the efficiency of data management when developing machine learning models, including reproducibility constraints, inefficient data transfer, alongside limited compute power.\r\n\r\nThis is where data version control technologies can help overcome these challenges for computer vision researchers.\u00a0In this workshop we'll cover:\r\n\r\n- How to use open source tooling to version control your data when working with data locally.\r\n- Best practices for working with data, preventing the need to copy data locally, while enabling the training of models at scale directly on the cloud.\u00a0This will be demoed with an OSS stack:\r\n - Langchain\r\n - Tensorflow\r\n - PyTorch\r\n - Keras\r\n\r\nYou will come away with practical methods to improve your data management when developing and iterating upon Machine Learning models, built for modern computer vision research.", + "duration": 3208, + "language": "eng", + "recorded": "2025-11-02", + "speakers": [ + "Tal Sofer", + "Itai Gilo", + "Joe Pringle" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/computer_vision_data_version_control_and_reproducibility_at_scale.mp4", + "size": 472177738 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/21bc5ccc-cb3b-4a9d-bb8a-abae4d17bc28" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/386fc1db-9ac7-4c30-8321-1ad85038b255.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/construire_des_logiciels_fiables_bases_sur_des_api_douteuses.json b/pycon-fr-2025/videos/construire_des_logiciels_fiables_bases_sur_des_api_douteuses.json new file mode 100644 index 000000000..36731661d --- /dev/null +++ b/pycon-fr-2025/videos/construire_des_logiciels_fiables_bases_sur_des_api_douteuses.json @@ -0,0 +1,28 @@ +{ + "title": "Construire des logiciels fiables bas\u00e9s sur des API douteuses", + "description": "Qui n'a jamais \u00e9crit un hack pour g\u00e9rer les d\u00e9faillances d'une API externe\u202f?\r\n\r\nLes deux causes principales de panne logicielle sont les erreurs humaines et les services externes. Consommant bon nombre d'API externes de qualit\u00e9\u2026 variable, notre qualit\u00e9 de service d\u00e9pend souvent de celle des services tiers, qu'on ne ma\u00eetrise pas (ou pas compl\u00e8tement). Et *in fine*, nos clients nous jugent (\u00e0 raison) sur la disponibilit\u00e9 du service final.\r\n\r\nCe talk pr\u00e9sente un retour d'exp\u00e9rience de notre \u00e9volution depuis une approche *ad hoc* vers une solution structur\u00e9e, r\u00e9p\u00e9table (et open-source). Comment nous sommes pass\u00e9s, en prod, du petit hack dans un coin \u00e0 un service d\u00e9di\u00e9, montrant les avantages et les inconv\u00e9nients de chaque approche, et les alternatives existantes.", + "duration": 1555, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Romain Dorgueil" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/construire_des_logiciels_fiables_bases_sur_des_api_douteuses.mp4", + "size": 220670006 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/8191cce4-1dc3-4a9f-b478-7f36e0612d40" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/181e16b8-1cf0-4a4e-99fd-51a0a23fa1a4.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/construire_un_type_frozendict_dictionnaire_immutable.json b/pycon-fr-2025/videos/construire_un_type_frozendict_dictionnaire_immutable.json new file mode 100644 index 000000000..2ba00c073 --- /dev/null +++ b/pycon-fr-2025/videos/construire_un_type_frozendict_dictionnaire_immutable.json @@ -0,0 +1,28 @@ +{ + "title": "Construire un type frozendict (dictionnaire immutable)", + "description": "Dans sa biblioh\u00e8que standard, Python propose des collections mutables (listes, ensembles, dictionnaires) comme immutables (tuples, frozensets), mais pas de dictionnaires immutables (inalt\u00e9rables apr\u00e8s leur cr\u00e9ation).\r\n\r\nVoyons comment on peut alors tordre Python pour cr\u00e9er notre propre frozendict (dictionnaire immutable) en pur Python.", + "duration": 1508, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Antoine Rozo" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/construire_un_type_frozendict_dictionnaire_immutable.mp4", + "size": 177498102 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/05ab1c2b-6cf8-40bf-a096-9db460034c0a" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/114cd009-a3f1-4dff-a240-5d1cfc8b7f60.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/creer_des_cartes_avec_python_vive_la_donnee_geographique.json b/pycon-fr-2025/videos/creer_des_cartes_avec_python_vive_la_donnee_geographique.json new file mode 100644 index 000000000..d7bd89180 --- /dev/null +++ b/pycon-fr-2025/videos/creer_des_cartes_avec_python_vive_la_donnee_geographique.json @@ -0,0 +1,29 @@ +{ + "title": "Cr\u00e9er des cartes avec Python\u202f: vive la donn\u00e9e g\u00e9ographique\u202f!", + "description": "Parmi tous les types de donn\u00e9es existantes, la donn\u00e9e g\u00e9ographique a un statut particulier. Elle poss\u00e8de une latitude, une longitude, une altitude, et \u00e7a change tout\u202f!\r\n\r\nSi vous ne lui parlez pas gentiment, votre belle carte du monde avec une s\u00e9paration distincte entre les oc\u00e9ans et les continents se transformera en un vague carr\u00e9 informe, et ne parlons m\u00eame pas de vos calculs de distances.\r\n \r\nFort heureusement, Python a tout ce qu'il vous faut pour transformer un incompr\u00e9hensible tableau de milliers de lignes en une magnifique carte\u202f: lire la donn\u00e9e, la convertir, la transformer, l'afficher gr\u00e2ce \u00e0 des librairies comme geopandas et folium.\r\n\r\nDans ce talk, on vous donne toutes les cl\u00e9s pour vous lancer dans l'aventure.", + "duration": 2478, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Micha\u00ebl Favel-Guidet", + "Emeline Lesmanne" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/creer_des_cartes_avec_python_vive_la_donnee_geographique.mp4", + "size": 356525290 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/38bd39cb-544a-4342-9776-3f98d8a6222a" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/9ebc062a-32bf-4fee-bdcf-9c6cb1c1a6af.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/demarrage_python_mesurer_avant_doptimiser.json b/pycon-fr-2025/videos/demarrage_python_mesurer_avant_doptimiser.json new file mode 100644 index 000000000..1d4ea636c --- /dev/null +++ b/pycon-fr-2025/videos/demarrage_python_mesurer_avant_doptimiser.json @@ -0,0 +1,28 @@ +{ + "title": "D\u00e9marrage Python\u202f: mesurer avant d\u2019optimiser", + "description": "Dans certains environnements\u202f\u2013 conteneurs, Raspberry Pi ou serverless\u202f\u2013 on a besoin que les services d\u00e9marrent rapidement pour servir des requ\u00eates avec peu de latence. Optimiser sans m\u00e9triques, c\u2019est bricoler \u00e0 l\u2019aveugle\u202f! Cette pr\u00e9sentation explique comment instrumenter simplement le lancement d\u2019un service Python pour rep\u00e9rer les goulots d\u2019\u00e9tranglement dans l\u2019initialisation du programme. \r\n\r\nCette session constitue une introduction \u00e0 `cProfile`, l\u2019outil standard de profiling en Python, ainsi qu\u2019\u00e0 l\u2019interpr\u00e9tation et la visualisation des r\u00e9sultats de profilage. Je prendrai l\u2019exemple d\u2019un serveur web en `Flask` pour illustrer ce qui peut ralentir un programme au d\u00e9marrage.", + "duration": 1363, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Florentin Labelle" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/demarrage_python_mesurer_avant_doptimiser.mp4", + "size": 208136399 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/651ea938-f80b-40ef-8d7b-0b846509bdc1" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/c298dc22-53cf-4a57-954d-d5d74d5f0930.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/des_structures_de_donnees_qui_vont_vous_etonner.json b/pycon-fr-2025/videos/des_structures_de_donnees_qui_vont_vous_etonner.json new file mode 100644 index 000000000..fae389000 --- /dev/null +++ b/pycon-fr-2025/videos/des_structures_de_donnees_qui_vont_vous_etonner.json @@ -0,0 +1,28 @@ +{ + "title": "Des structures de donn\u00e9es qui vont vous \u00e9tonner", + "description": "Vous avez d\u00e9j\u00e0 entendu parler de listes chain\u00e9es, de tables de hachage et d\u2019arbres binaires\u202f? Des structures de donn\u00e9es classiques, que vous avez peut-\u00eatre exploit\u00e9es dans vos applications\u202f?\r\n\r\nEt bien, il existe aussi de tr\u00e8s nombreuses autres structures de donn\u00e9es\u202f!\r\n\r\nAujourd\u2019hui, apr\u00e8s un mot autour de la complexit\u00e9 des algorithmes et sur la notation big-O, nous d\u00e9couvrirons quelques structures de donn\u00e9es trop souvent m\u00e9connues\u2026 Et qui, pourtant, r\u00e9pondent \u00e0 de vrais besoins\u202f!", + "duration": 1563, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Pascal Martin" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/des_structures_de_donnees_qui_vont_vous_etonner.mp4", + "size": 213690460 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/b7e62d4e-93da-49ca-bf20-8a176e74dc08" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/65fa8346-103f-48dd-9c82-22e3abaf0ea6.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/developpement_de_cpython.json b/pycon-fr-2025/videos/developpement_de_cpython.json new file mode 100644 index 000000000..9af6da725 --- /dev/null +++ b/pycon-fr-2025/videos/developpement_de_cpython.json @@ -0,0 +1,28 @@ +{ + "title": "D\u00e9veloppement de CPython", + "description": "D\u00e9couvrons ensemble comment le projet CPython est d\u00e9velopp\u00e9\u202f: tickets, pull requests, reviews, core developers, etc. Ce projet a plus de 30 ans et a plus de 1,6 millions de lignes de code. Nous aborderons aussi bien l'aspect technique que l'aspect humain.", + "duration": 1645, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Victor Stinner" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/developpement_de_cpython.mp4", + "size": 234750666 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/44f14e0a-fa6b-4faa-ac22-ea9032c986eb" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/79575373-c167-442a-aecb-8cc6e6e453b2.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/doc_busters.json b/pycon-fr-2025/videos/doc_busters.json new file mode 100644 index 000000000..8b23f7894 --- /dev/null +++ b/pycon-fr-2025/videos/doc_busters.json @@ -0,0 +1,29 @@ +{ + "title": "Doc Busters", + "description": "Incompr\u00e9hensible\u202f? Interminable\u202f? Introuvable\u202f? Obsol\u00e8te\u202f? Et en plus, vous n\u2019avez pas trouv\u00e9 la r\u00e9ponse pour d\u00e9bugger votre code\u202f?\r\n\r\nBienvenue dans le monde cauchemardesque de la documentation mal faite. Embarquez avec nous, dans un voyage au c\u0153ur des pires pratiques documentaires.\r\n\r\nComment allons-nous nous en sortir ? Comment am\u00e9liorer ce voyage, ou les prochains voyages dans la doc\u202f?", + "duration": 1520, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Sarah Ha\u00efm-Lubczanski", + "Pauline Rambaud" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/doc_busters.mp4", + "size": 202886195 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/b2a7eb2a-1506-4056-ae2f-b4c2529ae14b" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/490acdb2-4430-400b-8305-54685ae213a7.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/documenter_son_projet_avec_sphinx.json b/pycon-fr-2025/videos/documenter_son_projet_avec_sphinx.json new file mode 100644 index 000000000..970422c58 --- /dev/null +++ b/pycon-fr-2025/videos/documenter_son_projet_avec_sphinx.json @@ -0,0 +1,28 @@ +{ + "title": "Documenter son projet avec Sphinx", + "description": "Sphinx est le logiciel de documentation historique de la communaut\u00e9 Python.\r\nPeu m\u00e9diatis\u00e9, il est tr\u00e8s utilis\u00e9 avec plus de 60\u202f000 projets sur GitHub et tr\u00e8s riche.\r\nLa pr\u00e9sentation explique comment d\u00e9marrer et construire sa documentation de logiciel avec cet outil.", + "duration": 1491, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Fran\u00e7oise Conil" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/documenter_son_projet_avec_sphinx.mp4", + "size": 213385036 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/a1498dce-dd5a-45db-9993-10d62bd0bd1d" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/6bb93a19-3e64-4e9b-af88-ebdd38daa82a.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/dompter_les_mocks.json b/pycon-fr-2025/videos/dompter_les_mocks.json new file mode 100644 index 000000000..3ac0e4e99 --- /dev/null +++ b/pycon-fr-2025/videos/dompter_les_mocks.json @@ -0,0 +1,28 @@ +{ + "title": "Dompter les mocks", + "description": "Si vous avez d\u00e9j\u00e0 essay\u00e9 de mocker, vous avez s\u00fbrement eu du mal \u00e0 bien les appliquer.\r\nSi vous en avez plein vos tests, vous avez s\u00fbrement remarqu\u00e9 qu'ils sont faillibles et fragiles.\r\nMais ils peuvent aussi \u00eatre tr\u00e8s puissants, ce qui les rend tr\u00e8s utile pour le test.\r\n\r\nAfin de les utiliser efficacement, il faut d'abord **comprendre vraiment** comment ils fonctionnent, leur interaction avec le syst\u00e8me d'import, le mod\u00e8le objet de Python, et l'architecture des programmes. En particulier, il faudra apprendre \u00e0 discerner les \"r\u00e9f\u00e9rences\" que Python utilise partout (des sortes de \"pointeurs\"), et les concepts d'immutabilit\u00e9 et de passage-par-copie/r\u00e9f\u00e9rence.\r\nAvec tous ces savoirs, vous pourrez pr\u00e9dire le comportement des mocks, et r\u00e9ussir \u00e0 les utiliser sereinement.\r\nVous confronterez alors cette compr\u00e9hension \u00e0 des exercices concrets de comment appliquer des mocks.\r\nEnfin, vous aurez des conseils d'outils \u00e0 utiliser pour tirer un maximum de vos mocks, mais surtout de quand ne pas les utiliser.", + "duration": 3321, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Julien Lenormand" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/dompter_les_mocks.mp4", + "size": 475592132 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/afb8d107-314f-45ca-9e52-6224d30c99f1" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/0cb1b29d-75d1-41f6-bc3a-5af0cc51d177.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/du_comportement_humain_au_comportement_du_code_quand_laba_rencontre_la_programmation.json b/pycon-fr-2025/videos/du_comportement_humain_au_comportement_du_code_quand_laba_rencontre_la_programmation.json new file mode 100644 index 000000000..064b66702 --- /dev/null +++ b/pycon-fr-2025/videos/du_comportement_humain_au_comportement_du_code_quand_laba_rencontre_la_programmation.json @@ -0,0 +1,28 @@ +{ + "title": "Du comportement humain au comportement du code\u202f: Quand l\u2019ABA rencontre la programmation", + "description": "Cette pr\u00e9sentation \u00e9tablit un parall\u00e8le original entre l\u2019Analyse Appliqu\u00e9e du Comportement (ABA), une m\u00e9thode issue des sciences du comportement humain, et le d\u00e9veloppement logiciel. En s\u2019appuyant sur la grille ABC\u202f\u2013 Ant\u00e9c\u00e9dents, Comportement, Cons\u00e9quences\u202f\u2013 elle propose d\u2019analyser les bugs comme on analyserait un comportement humain\u202f: en identifiant ce qui s\u2019est pass\u00e9 juste avant, ce qui s\u2019est produit, et ce que cela a entra\u00een\u00e9.\r\n\r\nPlut\u00f4t que de subir les erreurs techniques, cette approche invite \u00e0 les consid\u00e9rer comme le r\u00e9sultat logique d\u2019un encha\u00eenement de causes. Par exemple, lors du d\u00e9veloppement d\u2019une application en Python, une erreur peut survenir au moment d\u2019\u00e9crire les premi\u00e8res lignes de code\u202f: appel \u00e0 une variable non initialis\u00e9e, mauvaise gestion d\u2019un objet 'None', import oubli\u00e9, ou configuration incompl\u00e8te dans un projet Django. Ces erreurs, fr\u00e9quentes au d\u00e9marrage, sont souvent li\u00e9es \u00e0 un contexte pr\u00e9cis qu\u2019il faut comprendre pour pouvoir corriger.\r\n\r\nLa pr\u00e9sentation illustre cette logique en croisant des situations issues du film Mamma Mia avec des exemples de d\u00e9veloppement, le tout avec humour et m\u00e9thode. Elle propose aussi des pistes concr\u00e8tes pour agir\u202f: consulter les logs, analyser les erreurs HTTP, utiliser un debugger, tester le code \u00e9tape par \u00e9tape ou \u00e9changer avec d\u2019autres d\u00e9veloppeurs.\r\n\r\nComme en ABA, comprendre les ant\u00e9c\u00e9dents et les cons\u00e9quences permet de modifier le comportement observ\u00e9\u202f\u2013 ici, celui du code Python.", + "duration": 1349, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Ewa Kadziolka" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/du_comportement_humain_au_comportement_du_code_quand_laba_rencontre_la_programmation.mp4", + "size": 188871966 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/a7d93ce0-99d1-47fb-b018-e24f26253d6c" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/23293226-b9ee-466a-814e-90cf8df8f82a.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/du_vrai_tdd_en_data_science_en_passant_de_pandas_a_polars_avec_pelage.json b/pycon-fr-2025/videos/du_vrai_tdd_en_data_science_en_passant_de_pandas_a_polars_avec_pelage.json new file mode 100644 index 000000000..f6e47693d --- /dev/null +++ b/pycon-fr-2025/videos/du_vrai_tdd_en_data_science_en_passant_de_pandas_a_polars_avec_pelage.json @@ -0,0 +1,28 @@ +{ + "title": "Du vrai TDD en data science en passant de Pandas \u00e0 Polars avec Pelage\u202f!", + "description": "Dans le monde des donn\u00e9es, les incoh\u00e9rences ou les impr\u00e9cisions repr\u00e9sentent souvent un obstacle majeur \u00e0 l\u2019extraction d\u2019informations pertinentes. Pourtant, les outils et pratiques robustes pour y faire face restent limit\u00e9s. En particulier, **la pratique du TDD (Test-Driven Development) reste difficile en data science**, alors qu\u2019elle est devenue un standard dans le d\u00e9veloppement logiciel classique, notamment \u00e0 cause d\u2019outils et de frameworks mal adapt\u00e9s.\r\n\r\nPour r\u00e9pondre \u00e0 ce probl\u00e8me, nous avons d\u00e9velopp\u00e9 Pelage, un package Python open-source con\u00e7u pour faciliter l\u2019exploration et les tests de donn\u00e9es, en s\u2019appuyant sur la syntaxe intuitive et la rapidit\u00e9 de Polars. Pelage permet aux data scientists et analystes de transformer les donn\u00e9es plus facilement, d\u2019am\u00e9liorer leur qualit\u00e9 et de rendre le code plus clair.\r\n\r\nNous d\u00e9montrerons, dans une approche orient\u00e9e tests, comment utiliser cette biblioth\u00e8que dans un workflow data science pour renforcer la confiance dans vos transformations de donn\u00e9es.\r\n\r\n[Lien GitHub](https://alixtc.github.io/pelage/)", + "duration": 2326, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Alix Tiran-Cappello" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/du_vrai_tdd_en_data_science_en_passant_de_pandas_a_polars_avec_pelage.mp4", + "size": 361961314 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/e6518502-b257-4304-b39d-3f4dfcf7a5f6" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/90e3afff-aabe-4b99-982f-6a64d618ee20.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/embracing_weird_code.json b/pycon-fr-2025/videos/embracing_weird_code.json new file mode 100644 index 000000000..a83d19d75 --- /dev/null +++ b/pycon-fr-2025/videos/embracing_weird_code.json @@ -0,0 +1,28 @@ +{ + "title": "Embracing Weird Code", + "description": "How often have you seen a piece of code that is just *weird*? The longer you stare at it, the more cryptic it becomes? And when you think you finally got it, you discover something that stumps you again?\r\n\r\nEvery line of code tells a story. As hard as it might be to believe when looking at it, someone, at some point, considered it the best way to solve *something*. (Just wait until you realize it was actually you, just a couple months ago.)\r\n\r\nJoin me on this journey through weird code, challenging your expectations, and dealing with ambiguity.", + "duration": 1999, + "language": "eng", + "recorded": "2025-11-02", + "speakers": [ + "Ivana Kellyer" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/embracing_weird_code.mp4", + "size": 251182722 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/b09178c8-8b8e-4abd-8f6e-02789bee77ee" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/5c23c4a0-c014-42a9-9cbd-034a7279d932.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/est_on_juste_paye_a_ecrire_du_code.json b/pycon-fr-2025/videos/est_on_juste_paye_a_ecrire_du_code.json new file mode 100644 index 000000000..9b81ca61d --- /dev/null +++ b/pycon-fr-2025/videos/est_on_juste_paye_a_ecrire_du_code.json @@ -0,0 +1,28 @@ +{ + "title": "Est-on (juste) pay\u00e9 \u00e0 \u00e9crire du code\u202f?", + "description": "Lorsque notre travail consiste \u00e0 \u00e9crire du code, l\u2019histoire a l\u2019air simple\u202f: nous \u00e9crivons du code, on nous donne de l\u2019argent en \u00e9change de ce code. C\u2019est tout\u202f? Pas vraiment.\r\n\r\nSi ce code est libre, et gratuitement utilisable, d\u2019o\u00f9 vient l\u2019argent\u202f? Lorsque l\u2019on se contente de mettre ensemble des logiciels existants, quel code vend-on\u202f? Quand on simplifie du code ou que l\u2019on enl\u00e8ve du code mort, m\u00e9rite-t-on de l\u2019argent pour d\u00e9truire le travail de quelqu\u2019un d\u2019autre\u202f? Puisque les machines savent plut\u00f4t bien \u00e9crire du code, leur donnera-t-on de l\u2019argent \u00e0 notre place\u202f?\r\n\r\nEt dans cette histoire, o\u00f9 sont donc pass\u00e9s l\u2019exp\u00e9rience, le savoir-faire, les comp\u00e9tences\u202f?\r\nDoit-on oublier la passion, le plaisir\u202f?\r\n\r\nAutant de questions que nous nous poserons au fil d\u2019une balade initiatique, o\u00f9 il sera question de jeu d\u2019\u00e9checs, d\u2019\u00e9clipses solaires, de Mario Kart, et de journ\u00e9es \u00e0 ne rien faire\u2026", + "duration": 2681, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Guillaume Ayoub" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/est_on_juste_paye_a_ecrire_du_code.mp4", + "size": 359827395 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/841a0852-45a9-40cd-927e-acf6271d1521" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/ef3ebb02-007f-468a-84c5-dc995b1e9520.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/etre_un_e_allie_e_du_numerique_pour_toustes_en_environnement_hostile.json b/pycon-fr-2025/videos/etre_un_e_allie_e_du_numerique_pour_toustes_en_environnement_hostile.json new file mode 100644 index 000000000..a9e5376e1 --- /dev/null +++ b/pycon-fr-2025/videos/etre_un_e_allie_e_du_numerique_pour_toustes_en_environnement_hostile.json @@ -0,0 +1,28 @@ +{ + "title": "\u00catre un.e alli\u00e9.e du num\u00e9rique pour toustes en environnement hostile", + "description": "Faisons ensemble un tour (tr\u00e8s) rapide de l\u2019actualit\u00e9 relative \u00e0 l\u2019inclusion et au num\u00e9rique de ces derniers mois\u202f: \r\n\r\nSuppression de la page \u00ab\u202faccessibilit\u00e9\u202f\u00bb de la Maison-Blanche, appel d\u2019un des plus gros patrons de la tech \u00e0 insuffler plus d\u2019\u00a0\u00ab\u202f\u00e9nergie masculine\u202f\u00bb, en France fonte comme neige en temps de r\u00e9chauffement climatique des budgets des conseillers num\u00e9riques. \r\n\r\nCes quelques exemples montrent, en creux, quels groupes sociaux sont d\u00e9barqu\u00e9s de nos soci\u00e9t\u00e9s num\u00e9ris\u00e9es\u202f: les handicap\u00e9.es, les femmes, les personnes \u00e2g\u00e9es, les personnes peu dipl\u00f4m\u00e9es. \r\n\r\nDans cette conf\u00e9rence nous allons r\u00e9fl\u00e9chir ensemble aux in\u00e9galit\u00e9s que renforcent et produisent le num\u00e9rique. \r\n\r\nSurtout, nous allons d\u00e9gager des pistes pratiques pour devenir un.e alli\u00e9.e d\u2019un num\u00e9rique plus r\u00e9flexif, \u00e9galitaire et inclusif.", + "duration": 2535, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Morgane Rozenn Hauguel" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/etre_un_e_allie_e_du_numerique_pour_toustes_en_environnement_hostile.mp4", + "size": 370193344 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/5a1d4101-8213-4900-aa4d-a21bfe6d44d1" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/0646d67e-81d4-44ac-b43c-58ae35d48518.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/from_fields_to_code_open_source_python_tools_for_european_farmers.json b/pycon-fr-2025/videos/from_fields_to_code_open_source_python_tools_for_european_farmers.json new file mode 100644 index 000000000..42a37c5c0 --- /dev/null +++ b/pycon-fr-2025/videos/from_fields_to_code_open_source_python_tools_for_european_farmers.json @@ -0,0 +1,28 @@ +{ + "title": "From Fields to Code: Open-Source Python Tools for European Farmers", + "description": "Farmers across Europe are using Python-powered tools to fight pests, conserve resources, and monitor livestock\u2014solutions that must work in a wide range of places, from vast crop fields to roaming animal herds, often with unreliable internet connectivity.\r\n\r\nThe **OpenAgri project** (an EU Horizon-funded project, now part of Linux Foundation\u2019s AgStack) developed these building blocks for **Agricultural Digital Solutions** with **Django**, **FastAPI**, supporting both Edge and Cloud deployments. We\u2019ll show:\r\n\r\n* How **Swagger**, **JSON-LD**, and a **common data model** help drones talk to tractors (yes, really!);\r\n* **Why edge computing matters** when your infrastructure is a barn;\r\n* **Improving sustainability**: from reducing water usage during irrigation to minimising tractor fuel consumption;\r\n* **The missing pieces**: auto-mapping DB models to agricultural ontologies.\r\n\r\nCome for the farming stories, stay for the Python-powered agritech solutions.", + "duration": 1575, + "language": "eng", + "recorded": "2025-11-01", + "speakers": [ + "Felipe Arruda Pontes" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/from_fields_to_code_open_source_python_tools_for_european_farmers.mp4", + "size": 228058426 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/ff59a201-b742-4907-9b4f-215c9f46c454" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/ec8b40ae-5bab-4225-9e9a-08c50192f7fe.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/gerer_ses_dependances_python_sans_douleur_avec_uv.json b/pycon-fr-2025/videos/gerer_ses_dependances_python_sans_douleur_avec_uv.json new file mode 100644 index 000000000..a8780b463 --- /dev/null +++ b/pycon-fr-2025/videos/gerer_ses_dependances_python_sans_douleur_avec_uv.json @@ -0,0 +1,28 @@ +{ + "title": "G\u00e9rer ses d\u00e9pendances Python sans douleur avec uv", + "description": "*Comment j\u2019ai nettoy\u00e9 mes projets Python avec uv.*\r\n\r\nJe g\u00e9rais mes d\u00e9pendances avec venv, puis avec pipenv. Quand on a commenc\u00e9 \u00e0 parler de uv, j'ai pens\u00e9 \u00ab\u202foh non, encore un nouvel outil qu'il va falloir apprivoiser\u202f\u00bb.\r\n\r\nEt puis via un tuto, j\u2019ai d\u00e9couvert uv, un gestionnaire d\u2019environnement et de d\u00e9pendances cod\u00e9 en Rust, rapide, simple, et diablement efficace. Et je me suis dit qu'il fallait que j'en parle.\r\n\r\nDans ce talk, je vous propose un **retour d'exp\u00e9rience concret**\u202f: comment je suis pass\u00e9e \u00e0 une gestion propre et reproductible de mes projets. On parlera de `uv init`, `uv add`, `uv sync`, de nettoyage avec `pipdeptree`, et m\u00eame de comment int\u00e9grer `uv run` dans des t\u00e2ches Cron.\r\n\r\nCe que vous apprendrez :\r\n\r\n- Pourquoi uv surpasse les outils traditionnels (pip, venv, pip freeze, etc.)\r\n- Comment fonctionne uv et pourquoi il est aussi rapide\r\n- Comment migrer un projet existant proprement\r\n- Comment organiser vos d\u00e9pendances avec des groupes (dev, test, doc, etc.)\r\n- Comment uv peut simplifier vos workflows (m\u00eame en prod ou en CI)\r\n\r\nUn talk **pratique**, **orient\u00e9 solution**, pour les d\u00e9veloppeur\u00b7ses Python qui veulent passer \u00e0 un outil moderne sans se noyer dans les d\u00e9tails techniques de Rust.\r\n\r\n*Pas besoin d\u2019avoir d\u00e9j\u00e0 utilis\u00e9 uv pour suivre ce talk.*", + "duration": 1616, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Ana\u00efs Gatard" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/gerer_ses_dependances_python_sans_douleur_avec_uv.mp4", + "size": 216485986 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/b900fe08-0152-4d61-82c3-3ab19e6ccd02" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/e01a7527-7e62-4980-b74c-83f321c373ef.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/how_to_solve_a_python_mystery.json b/pycon-fr-2025/videos/how_to_solve_a_python_mystery.json new file mode 100644 index 000000000..a1f198a7a --- /dev/null +++ b/pycon-fr-2025/videos/how_to_solve_a_python_mystery.json @@ -0,0 +1,28 @@ +{ + "title": "How to solve a Python mystery", + "description": "Has any of your Python applications become unresponsive? Has it deadlocked or is it busy doing something? How can you know? When troubleshooting some Python applications you often don\u2019t have time to analyze the source code and to understand how exactly it is working. Instead, you have to act fast and treat the application as a black box. In this talk, I will introduce useful Linux performance and observability tools that can be used to understand which files, connections, and OS system calls your application is performing. I will also share real-world mysteries that this approach has helped to solve.", + "duration": 3260, + "language": "eng", + "recorded": "2025-11-01", + "speakers": [ + "Aivars Kalv\u0101ns" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/how_to_solve_a_python_mystery.mp4", + "size": 400895766 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/a71ae01d-106f-4d3b-9fe3-5328a9cb2a73" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/ab7560f4-1300-4471-b632-02abbda65892.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/htmx_et_django_retour_dexperience_3_ans_plus_tard.json b/pycon-fr-2025/videos/htmx_et_django_retour_dexperience_3_ans_plus_tard.json new file mode 100644 index 000000000..d5ecec39a --- /dev/null +++ b/pycon-fr-2025/videos/htmx_et_django_retour_dexperience_3_ans_plus_tard.json @@ -0,0 +1,28 @@ +{ + "title": "htmx et Django\u202f: retour d\u2019exp\u00e9rience 3 ans plus tard", + "description": "Alors que la biblioth\u00e8que [annonce avoir atteint un stade de maturit\u00e9](https://htmx.org/essays/future/), j'aimerais partager avec vous un bilan de notre utilisation.\r\n\r\nNous avons int\u00e9gr\u00e9 HTMX dans notre monolithe Django il y a trois ans. Aujourd'hui, notre application comptabilise plus de 100 000 requ\u00eates HTTP par jour. Entre l'architecture na\u00efve des d\u00e9buts et son aspect actuel, nous avons \u00e9prouv\u00e9 l'outil pour l'adapter \u00e0 nos propres contraintes.\r\n\r\nVenez d\u00e9couvrir notre parcours, comment tester HTMX avec Pytest ainsi que quelques unes de nos bonnes recettes\u202f!", + "duration": 1466, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "C\u00e9line Martinet Sanchez" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/htmx_et_django_retour_dexperience_3_ans_plus_tard.mp4", + "size": 207003763 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/dbd61840-ea2e-42e8-9cc1-da0ba0e1c66d" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/501b8e41-318d-43b0-80f8-59cedc2901ca.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/l_orm_de_sqlalchemy_trop_intelligent_pour_etre_comprehensible.json b/pycon-fr-2025/videos/l_orm_de_sqlalchemy_trop_intelligent_pour_etre_comprehensible.json new file mode 100644 index 000000000..46b6333eb --- /dev/null +++ b/pycon-fr-2025/videos/l_orm_de_sqlalchemy_trop_intelligent_pour_etre_comprehensible.json @@ -0,0 +1,28 @@ +{ + "title": "L'ORM de SQLAlchemy\u202f: trop intelligent pour \u00eatre compr\u00e9hensible\u202f?", + "description": "En travaillant avec l'ORM de SQLAlchemy ces derni\u00e8res ann\u00e9es, plusieurs choses m'ont frustr\u00e9. Malgr\u00e9 des choix logiques sur son impl\u00e9mentation, le comportement de l'ORM est parfois compliqu\u00e9 \u00e0 comprendre.\r\n\r\nComment peut-on avoir des erreurs d'int\u00e9grit\u00e9 lorsque l'on fait une simple lecture dans une base de donn\u00e9es\u202f?\r\nComment la lecture d'une table de 10 lignes peut-elle entrainer des probl\u00e8mes d'allocation m\u00e9moire\u202f?\r\nPourquoi, malgr\u00e9 l'optimisation d'une requ\u00eate, peut-on se retrouver avec des probl\u00e8mes de N+1\u202f?", + "duration": 1637, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Xavier Ordoquy" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/l_orm_de_sqlalchemy_trop_intelligent_pour_etre_comprehensible.mp4", + "size": 213518760 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/b8653745-d74a-4e96-9ada-661134a4dbd1" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/44bab943-cd91-4900-8db4-dddcfe743484.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/la_theorie_et_la_realite_de_l_apprentissage_du_python_a_l_ecole.json b/pycon-fr-2025/videos/la_theorie_et_la_realite_de_l_apprentissage_du_python_a_l_ecole.json new file mode 100644 index 000000000..87d57a516 --- /dev/null +++ b/pycon-fr-2025/videos/la_theorie_et_la_realite_de_l_apprentissage_du_python_a_l_ecole.json @@ -0,0 +1,28 @@ +{ + "title": "La th\u00e9orie et la r\u00e9alit\u00e9 de l'apprentissage du Python \u00e0 l'\u00e9cole", + "description": "Le Python est un langage concis dont la syntaxe est simple. Par cons\u00e9quent, le Python est particuli\u00e8rement adapt\u00e9 pour l'apprentissage de la programmation\u202f; de plus, c'est un langage libre. Ainsi, l\u2019\u00c9ducation Nationale l'a choisi pour introduire les langages de programmation aupr\u00e8s des \u00e9l\u00e8ves. C'est pourquoi le Python est inscrit dans les programmes du lyc\u00e9e.\r\n\r\nCependant, il y a une grande diff\u00e9rence entre les discours volontaristes et la r\u00e9alit\u00e9 en classe. Le foss\u00e9 entre les programmes officiels et le v\u00e9cu des \u00e9l\u00e8ves sera pr\u00e9sent\u00e9 par une lyc\u00e9enne.", + "duration": 1717, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Luz" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/la_theorie_et_la_realite_de_l_apprentissage_du_python_a_l_ecole.mp4", + "size": 224601936 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/24956d92-6255-4a07-856b-6522f93435f0" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/a0a6c1d0-925c-453b-be54-ef51830f2a2c.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/le_duo_comique_accelere_une_suite_de_tests_django_pytest.json b/pycon-fr-2025/videos/le_duo_comique_accelere_une_suite_de_tests_django_pytest.json new file mode 100644 index 000000000..e4d6553a2 --- /dev/null +++ b/pycon-fr-2025/videos/le_duo_comique_accelere_une_suite_de_tests_django_pytest.json @@ -0,0 +1,29 @@ +{ + "title": "Le duo comique acc\u00e9l\u00e8re une suite de tests Django/Pytest", + "description": "Le TDD et l'int\u00e9gration continue, c'est cool\u202f! Mais \u00e7a devient vite p\u00e9nible quand on doit attendre plusieurs minutes voire dizaines de minutes pour jouer tous nos tests.\r\n\r\nNous vous proposons un petit tour d'horizon de ce qui ralentissait nos suites de tests Django, et de ce que nous avons mis en place pour acc\u00e9l\u00e9rer tout \u00e7a. Vous pourrez repartir avec quelques id\u00e9es \u00e0 essayer chez vous.\r\n\r\nTout cela sur un ton l\u00e9ger, parce qu'on n'est pas venu\u00b7e\u00b7s ici pour souffrir, OK\u202f?", + "duration": 1571, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Agn\u00e8s Haasser", + "Arthur Vuillard" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/le_duo_comique_accelere_une_suite_de_tests_django_pytest.mp4", + "size": 197496237 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/bda6b9cf-f45f-4d44-899e-8592d4081c15" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/aa234809-9d30-42f9-9b59-c92bb570ae39.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/le_reve_de_tout_enfant_devenir_dba.json b/pycon-fr-2025/videos/le_reve_de_tout_enfant_devenir_dba.json new file mode 100644 index 000000000..84c9cf136 --- /dev/null +++ b/pycon-fr-2025/videos/le_reve_de_tout_enfant_devenir_dba.json @@ -0,0 +1,28 @@ +{ + "title": "Le r\u00eave de tout enfant\u202f\u2013 devenir DBA\u202f?", + "description": "C'est le r\u00eave de tous les enfants, de devenir administrateur\u00b7rice bases de donn\u00e9es, n'est-ce pas\u202f?!\r\n\r\nJe travaille avec les bases de donn\u00e9es depuis plus de 25 ans parce que c'est ce que j'aime, mais je sais que ce n'est pas tout le monde qui partage mon enthousiasme\u202f! En tant que dev, vous pr\u00e9f\u00e9rez probablement que votre base de donn\u00e9es fasse son boulot discr\u00e8tement en mode \u00ab\u202fbo\u00eete noire\u202f\u00bb, afin que vous puissiez vous concentrer sur votre application. Ce qui semble raisonnable.\r\n\r\nMais il est tout de m\u00eame utile d'avoir au moins quelques notions, surtout concernant ce qui se passe lorsque vous envoyez une requ\u00eate \u00e0 votre base de donn\u00e9es. Comment les donn\u00e9es sont-elles stock\u00e9es, r\u00e9cup\u00e9r\u00e9es et modifi\u00e9es\u202f? Pourquoi cela vous concerne\u202f?\r\n\r\nEn comprenant le fonctionnement des op\u00e9rations de base de donn\u00e9es, il y a de fortes chances que votre code et votre base de donn\u00e9es fonctionnent bien ensemble.\r\n\r\nQui sait, peut-\u00eatre que j'arriverai m\u00eame \u00e0 vous convaincre d'aimer un peu les bases de donn\u00e9es\u202f!", + "duration": 2498, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Karen Jex" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/le_reve_de_tout_enfant_devenir_dba.mp4", + "size": 313532855 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/7828be16-eff3-4846-b16c-1f71461e76f8" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/bafe074f-99d0-44d4-9583-5c20c1fd9bef.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/les_accidents_du_travail_dans_la_tech.json b/pycon-fr-2025/videos/les_accidents_du_travail_dans_la_tech.json new file mode 100644 index 000000000..a15cd535d --- /dev/null +++ b/pycon-fr-2025/videos/les_accidents_du_travail_dans_la_tech.json @@ -0,0 +1,29 @@ +{ + "title": "Les accidents du travail dans la tech", + "description": "Dans l'imaginaire collectif un accident c'est d'abord \u00ab\u202fpas de chance\u202f\u00bb.\r\nAu travail c'est trop souvent \u00ab\u202fun probl\u00e8me individuel\u202f\u00bb.\r\nEt dans la tech \u00ab\u202fon est pas vraiment concern\u00e9s\u202f\u00bb.\r\n\r\nVraiment\u00a0?\r\n\r\nCette pr\u00e9sentation d\u00e9marrera par quelques g\u00e9n\u00e9ralit\u00e9s sur l\u2019accidentologie du travail, pour ensuite mettre le projecteur sur ce \u00e0 quoi nous sommes expos\u00e9es dans nos m\u00e9tiers.\r\n\r\nNotre exp\u00e9rience respective en repr\u00e9sentation du personnel permettra de rendre tout \u00e7a tr\u00e8s concret et on est pr\u00eat \u00e0 parier que vous allez apprendre des choses concr\u00e8tes pour vous et/ou vos coll\u00e8gues \u00ab\u202ftechos\u202f\u00bb.", + "duration": 3227, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Camille Dupont", + "Camille Dupond" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/les_accidents_du_travail_dans_la_tech.mp4", + "size": 360055865 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/5767d8b4-0f9f-4257-b78f-c9caf86f77b0" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/214eca83-9ed3-4d9c-91f3-0a1cb60b0ad2.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/micropython_programmation_python_pour_microcontroleurs.json b/pycon-fr-2025/videos/micropython_programmation_python_pour_microcontroleurs.json new file mode 100644 index 000000000..ffa59bc05 --- /dev/null +++ b/pycon-fr-2025/videos/micropython_programmation_python_pour_microcontroleurs.json @@ -0,0 +1,28 @@ +{ + "title": "MicroPython\u202f: programmation Python pour microcontr\u00f4leurs", + "description": "MicroPython permet aux d\u00e9veloppeurs d'utiliser une version all\u00e9g\u00e9e de Python\u202f3 pour programmer les microcontr\u00f4leurs, simplifiant ainsi la cr\u00e9ation d'applications embarqu\u00e9es pour les objets connect\u00e9s, les robots et les appareils \u00e9lectroniques.\r\n\r\nCette pr\u00e9sentation abordera les bases de MicroPython, notamment ses avantages, ses limites et ses performances compar\u00e9s \u00e0 C/C++ et au Python traditionnel.\r\n\r\nNous verrons \u00e9galement quelques exemples pratiques illustrant la simplicit\u00e9 de MicroPython pour cr\u00e9er des applications IoT.", + "duration": 1640, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Amine Bendahmane" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/micropython_programmation_python_pour_microcontroleurs.mp4", + "size": 256674924 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/64bfbab8-3862-470a-a138-b13db77aa50c" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/9f7f8ea8-2315-4f10-a1e6-32e2d915ce01.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/migrer_l_annuaire_ldap_d_un_nextcloud.json b/pycon-fr-2025/videos/migrer_l_annuaire_ldap_d_un_nextcloud.json new file mode 100644 index 000000000..4ad03cde4 --- /dev/null +++ b/pycon-fr-2025/videos/migrer_l_annuaire_ldap_d_un_nextcloud.json @@ -0,0 +1,28 @@ +{ + "title": "Migrer l'annuaire LDAP d'un Nextcloud", + "description": "Petit retour d'exp\u00e9rience de comment migrer un Nextcloud d'un ancien vers un nouveau annuaire LDAP. \r\n\r\nNous pourrons r\u00e2ler ensemble sur Nextcloud et sa documentation. De plus, nous parlerons sur comment les applications g\u00e8rent les utilisateurs et un peu du SSO parce que c'est bien.\r\n\r\nTout cela autour d'un script Python :)", + "duration": 1536, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Armando Femat Ortiz" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/migrer_l_annuaire_ldap_d_un_nextcloud.mp4", + "size": 224292772 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/a4659cb8-d352-438e-a9a7-0322d72fa615" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/805e32db-cb47-46c3-9e72-80305aeaa7d4.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/onzr_l_histoire_du_cli_deezer_un_peu_en_retard.json b/pycon-fr-2025/videos/onzr_l_histoire_du_cli_deezer_un_peu_en_retard.json new file mode 100644 index 000000000..3d153efba --- /dev/null +++ b/pycon-fr-2025/videos/onzr_l_histoire_du_cli_deezer_un_peu_en_retard.json @@ -0,0 +1,28 @@ +{ + "title": "Onzr\u202f: l'histoire du CLI Deezer un peu en retard", + "description": "Parce que Deezer ne fournit pas de client Linux officiel,\r\nparce que leur player web utilise une quantit\u00e9 absurde de RAM,\r\nparce que l'informatique c'est fun,\r\nparce qu'apprendre des nouveaux trucs c'est stimulant,\r\nparce que tout faire depuis son terminal c'est cool,\r\nje me suis lanc\u00e9 dans l'\u00e9criture d'un outil en ligne de commande pour streamer ma musique.\r\n\r\nJe me propose de vous conter l'histoire de ce side-project [open-source](https://github.com/jmaupetit/onzr).", + "duration": 1399, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Julien Maupetit" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/onzr_l_histoire_du_cli_deezer_un_peu_en_retard.mp4", + "size": 195244566 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/a450dc9f-d31b-46ed-a002-86ecba6ff489" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/4ee30ee5-4e9d-47f7-9903-d9724b3ccd52.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/pas_dalgo_pas_de_bug_pas_de_bug_pas_de_probleme_pas_de_probleme_pas_de_probleme.json b/pycon-fr-2025/videos/pas_dalgo_pas_de_bug_pas_de_bug_pas_de_probleme_pas_de_probleme_pas_de_probleme.json new file mode 100644 index 000000000..ca63cc744 --- /dev/null +++ b/pycon-fr-2025/videos/pas_dalgo_pas_de_bug_pas_de_bug_pas_de_probleme_pas_de_probleme_pas_de_probleme.json @@ -0,0 +1,28 @@ +{ + "title": "Pas d\u2019algo, pas de bug, pas de bug pas de probl\u00e8me. Pas de probl\u00e8me\u2026 pas de probl\u00e8me", + "description": "Vous arrive-t-il parfois de devoir r\u00e9soudre des probl\u00e8mes\u202f? Que ce soient des sudokus, des \u00e9checs, le placement de tables de votre mariage ou encore un emploi du temps aux contraintes interchangeables\u202f? En tant que d\u00e9veloppeureuses, vous devez probablement cr\u00e9er des algorithmes pour r\u00e9pondre \u00e0 ces probl\u00e8mes pour vous.\r\n\r\nC'est l\u00e0 que les probl\u00e8mes commencent\u202f: un algorithme, cela devient vite complexe, fouillis, illisible, surtout sur des probl\u00e8mes aux nombreuses contraintes.\r\n\r\nCe que je vous propose, c'est de venir d\u00e9couvrir des outils pour r\u00e9pondre \u00e0 ces soucis de mani\u00e8re d\u00e9clarative et \u00e9pur\u00e9e, avec des outils disponibles en Python\u202f! Pas la peine de d\u00e9terrer un langage au paradigme obscur, vous serez comme \u00e0 la maison.", + "duration": 1790, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Matthieu Sauboua-Beneluz" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/pas_dalgo_pas_de_bug_pas_de_bug_pas_de_probleme_pas_de_probleme_pas_de_probleme.mp4", + "size": 235700725 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/f36ab6da-c101-45d6-9d4f-445073a760b4" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/d61d9401-4143-4181-aa62-d96dc62e274e.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/proteger_les_secrets_de_vos_clients.json b/pycon-fr-2025/videos/proteger_les_secrets_de_vos_clients.json new file mode 100644 index 000000000..a7d087a4e --- /dev/null +++ b/pycon-fr-2025/videos/proteger_les_secrets_de_vos_clients.json @@ -0,0 +1,28 @@ +{ + "title": "Prot\u00e9ger les secrets de vos clients", + "description": "La gestion des secrets est un processus qui n'est pas \u00e0 n\u00e9gliger, une divulgation de ces informations vous expose \u00e0 de grosses probl\u00e9matiques.\r\n\r\nIl est important de prendre en consid\u00e9ration ce point, d'autant plus quand ce sont des secrets de vos clients\u202f!\r\n\r\nJe vais vous parler de la mise en place d'un coffre-fort num\u00e9rique vault dans une application, afin de stocker de mani\u00e8re s\u00e9curis\u00e9e les mots de passe de mes clients. Tout cela en isolant leur donn\u00e9e des autres clients bien entendu.\r\n\r\nNous parcourrons la configuration vault et sa mise en \u0153uvre dans une application Python de mani\u00e8re d\u00e9taill\u00e9e afin que vous puissiez la reproduire.", + "duration": 1913, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "David Rigaudie" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/proteger_les_secrets_de_vos_clients.mp4", + "size": 239387066 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/7c1c11e9-1863-45a0-9cd5-460ccdfb5fb1" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/1cd208a6-3bd7-4fc9-9894-6da6896a7b73.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/py_edu_fr_formations_modulaires_a_python_dans_l_esr.json b/pycon-fr-2025/videos/py_edu_fr_formations_modulaires_a_python_dans_l_esr.json new file mode 100644 index 000000000..cc1b04af0 --- /dev/null +++ b/pycon-fr-2025/videos/py_edu_fr_formations_modulaires_a_python_dans_l_esr.json @@ -0,0 +1,28 @@ +{ + "title": "py-edu-fr\u202f: formations modulaires \u00e0 Python dans l'ESR", + "description": "Python s'impose de plus en plus dans l'enseignement sup\u00e9rieur et la recherche\r\ncr\u00e9ant des besoins de formation de plus en plus importants.\r\n\r\nLa multiplicit\u00e9 et la sp\u00e9cificit\u00e9 des publics\u202f: \u00e9tudiants,\r\nenseignants-chercheurs, ing\u00e9nieurs et techniciens, de domaines tr\u00e8s vari\u00e9s et\r\ndont la programmation est rarement l'activit\u00e9 principale, a entra\u00een\u00e9 une\r\nmultiplication des initiatives locales de formation pour r\u00e9pondre \u00e0 ces besoins.\r\n\r\nLe projet py-edu-fr souhaite mutualiser ces efforts pour proposer du mat\u00e9riel de\r\nformation adapt\u00e9 \u00e0 nos publics dans une approche open-source, modulaire et\r\nfacile \u00e0 maintenir \u00e0 jour pour suivre les \u00e9volutions technologiques. Ainsi\r\nchaque formation pourra \u00eatre adapt\u00e9e \u00e0 son public sp\u00e9cifique, \u00e0 ses contraintes\r\nlocales (dur\u00e9e, ratio cours/pratique) tout en b\u00e9n\u00e9ficiant des efforts de tous\r\n[et par retour de faire \u00e9volution l'ensemble = je ne comprends pas l'intention, une reformulation].\r\n\r\nLe projet propose une collection de fiches en markdown (MyST) pouvant contenir\r\ndu code Python et assembl\u00e9es pour construire les formations \u00e0 l'aide de\r\nJupyterBook.", + "duration": 1771, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Jeremy Laforet" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/py_edu_fr_formations_modulaires_a_python_dans_l_esr.mp4", + "size": 210069731 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/be254e7f-e7b2-4f66-b560-60354bc0fa25" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/b4a8ce27-5074-4475-9375-98cccdabdc87.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/quand_le_terminal_devore_la_ui_tui_pour_tout_le_monde.json b/pycon-fr-2025/videos/quand_le_terminal_devore_la_ui_tui_pour_tout_le_monde.json new file mode 100644 index 000000000..5fbda8acc --- /dev/null +++ b/pycon-fr-2025/videos/quand_le_terminal_devore_la_ui_tui_pour_tout_le_monde.json @@ -0,0 +1,28 @@ +{ + "title": "Quand le Terminal d\u00e9vore la UI\u202f: TUI pour tout le monde !", + "description": "Lass\u00e9\u00b7es des interfaces graphiques gourmandes en ressources et complexes \u00e0 utiliser\u202f?\r\nVous n'avez pas de temps \u00e0 perdre entre votre terminal et un navigateur web\u202f?\r\nD\u00e9couvrez le pouvoir de l'interface utilisateur textuelle (Textual User Interface)\u202f!\r\n\r\nNous explorerons l'univers des TUI et leur potentiel pour enrichir les applications en ligne de commande.\r\nEn partant d'une CLI simple, je vous montrerai comment int\u00e9grer des \u00e9l\u00e9ments de TUI pour cr\u00e9er une exp\u00e9rience utilisateur plus intuitive et interactive. \r\n\r\nJe vous proposerai de faire un tour dans le monde de Textual, le framework TUI pour Python le plus populaire. Nous verrons comment l'utiliser \u00e0 travers des exemples concrets de code.\r\nPour ne pas fermer les yeux sur ce que le monde des autres langages propose, nous ferons un bref tour de ce qui se fait ailleurs en Go ou en Rust par exemple.\r\n\r\nVous repartirez donc\u202f:\r\n\r\n* en sachant ce que les TUI peuvent vous apporter\r\n* avec un tour d'horizon de solutions pour en d\u00e9velopper vous m\u00eame\r\n* avec des exemples concrets de code\r\n\r\nEt n'oubliez pas\u202f: ne quittez plus le confort de votre terminal quand les TUI sont l\u00e0 pour vous\u202f!", + "duration": 3162, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Thierry" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/quand_le_terminal_devore_la_ui_tui_pour_tout_le_monde.mp4", + "size": 412519904 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/11bfa001-8fea-45da-9828-9ae7332e34b4" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/004b35bf-7b8f-4785-9197-46a591f5e0c9.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/refactoring_at_scale_making_analytics_type_safe_with_codemods_and_ai.json b/pycon-fr-2025/videos/refactoring_at_scale_making_analytics_type_safe_with_codemods_and_ai.json new file mode 100644 index 000000000..e92225d6f --- /dev/null +++ b/pycon-fr-2025/videos/refactoring_at_scale_making_analytics_type_safe_with_codemods_and_ai.json @@ -0,0 +1,28 @@ +{ + "title": "Refactoring at Scale: Making Analytics Type-Safe with Codemods and AI", + "description": "This talk presents a large-scale refactoring effort of Sentry\u2019s backend analytics system, transforming a fragile, stringly typed event tracking API into a type-safe, maintainable solution. The original system lacked static validation, relied on manual event registration, and frequently caused subtle runtime bugs due to mismatched attributes and missing imports.\r\n\r\nThe team introduced a new approach using Python\u2019s dataclasses, a custom @eventclass decorator, and a stricter analytics.record API, enabling full mypy support and simplifying inheritance. However, migrating hundreds of event classes, call sites, and heavily mocked tests posed significant challenges.\r\n\r\nInitially, AI coding assistants like Copilot and Cursor were expected to automate the migration. In practice, they produced unreliable and inconsistent results. Instead, the team leveraged codemods built with libcst, with AI assisting in generating the migration tooling rather than performing the refactor directly. The migration was then split into smaller, team-owned pull requests to ensure reviewability.\r\n\r\nAttendees will gain insights into:\r\n\r\n- Designing type-safe replacements for legacy, stringly typed APIs\r\n- Building reliable Python codemods with libcst\r\n- Strategies for breaking down and managing large-scale migrations\r\n- Where AI can - and cannot - help in real-world refactoring efforts\r\n\r\nThis session provides practical lessons for anyone facing the daunting task of modernizing legacy Python systems.", + "duration": 1628, + "language": "eng", + "recorded": "2025-11-02", + "speakers": [ + "Fabian Schindler" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/refactoring_at_scale_making_analytics_type_safe_with_codemods_and_ai.mp4", + "size": 215471182 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/b8239f20-9bf9-4899-91b0-6ffc2e65c941" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/338a56f2-a03a-4377-bc14-7a7deea13bd9.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/retour_dexperience_une_base_de_projet_reutilisable_avec_litestar.json b/pycon-fr-2025/videos/retour_dexperience_une_base_de_projet_reutilisable_avec_litestar.json new file mode 100644 index 000000000..c954ca2da --- /dev/null +++ b/pycon-fr-2025/videos/retour_dexperience_une_base_de_projet_reutilisable_avec_litestar.json @@ -0,0 +1,29 @@ +{ + "title": "Retour d\u2019exp\u00e9rience\u202f: une base de projet r\u00e9utilisable avec Litestar", + "description": "Nous sommes ravis de vous inviter \u00e0 notre pr\u00e9sentation d\u00e9di\u00e9e \u00e0 l'utilisation du framework Litestar en Python. Lors de cette session, nous partagerons notre exp\u00e9rience de la cr\u00e9ation d\u2019une base de projet r\u00e9utilisable, con\u00e7u pour acc\u00e9l\u00e9rer le d\u00e9veloppement, am\u00e9liorer la maintenabilit\u00e9 et encourager les bonnes pratiques. \r\n\r\nAu programme :\r\n\r\n-\tPourquoi Litestar ? Une comparaison entre aiohttp, FastAPI et Litestar\u202f: avantages, performances et cas d'utilisation.\r\n-\tC\u2019est quoi Litestar ?\r\n-\tCr\u00e9ation d\u2019un mod\u00e8le de projet r\u00e9utilisable qui peut \u00eatre adapt\u00e9 \u00e0 diverses applications. \r\n-\tRetours d\u2019exp\u00e9rience.\r\n\r\nQue vous soyez d\u00e9veloppeur, architecte logiciel ou simplement curieux des frameworks Python modernes, cette pr\u00e9sentation vous donnera des pistes utiles pour structurer efficacement vos projets.", + "duration": 1792, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Mitiaieva Iryna", + "MONMOUTON" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/retour_dexperience_une_base_de_projet_reutilisable_avec_litestar.mp4", + "size": 246898277 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/abd86f47-e587-477b-b187-bef80967c3c6" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/1894ff7f-1ec0-4c0a-bdde-3ee9919dc647.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/rex_de_developpeuse_comment_jai_change_de_stack_technique.json b/pycon-fr-2025/videos/rex_de_developpeuse_comment_jai_change_de_stack_technique.json new file mode 100644 index 000000000..fb8064dc3 --- /dev/null +++ b/pycon-fr-2025/videos/rex_de_developpeuse_comment_jai_change_de_stack_technique.json @@ -0,0 +1,28 @@ +{ + "title": "REX de d\u00e9veloppeuse\u202f: comment j\u2019ai chang\u00e9 de stack technique", + "description": "L\u2019industrie du d\u00e9veloppement a tendance \u00e0 vouloir mettre les d\u00e9veloppeur\u00b7euse\u00b7s dans des cases, \u00e0 nous pousser \u00e0 devenir expert\u00b7e\u00b7s dans un seul domaine, une seule stack, un seul langage. Nos carri\u00e8res \u00e9voluent souvent soit vers du management soit de l\u2019expertise.\r\n\r\n\u00c0 la suite de mes \u00e9tudes, j\u2019ai commenc\u00e9 ma carri\u00e8re en Delphi en client lourd et je me suis sp\u00e9cialis\u00e9e dans ce langage et cet environnement pendant 13 ans. J\u2019\u00e9tais bien partie pour continuer dans cette voie.\r\n\r\nJusqu\u2019au jour o\u00f9 j\u2019ai eu l\u2019opportunit\u00e9 de sortir de ma zone de confort et de d\u00e9couvrir C# et l\u2019environnement .NET. Une fois l\u2019appr\u00e9hension initiale pass\u00e9e, je me suis rendue compte que ma formation et mon exp\u00e9rience allaient m\u2019\u00eatre tr\u00e8s utiles pour que la transition se passe sans accroc.\r\n\r\nAlors comment ai-je fait pour appr\u00e9hender cette nouvelle stack\u202f? Quels outils m\u2019ont aid\u00e9e\u202f? Quelles difficult\u00e9s ai-je rencontr\u00e9es\u202f? En partageant mon exp\u00e9rience, j\u2019aimerais vous montrer que gr\u00e2ce \u00e0 notre m\u00e9tier, nous avons toutes les cartes en main pour nous r\u00e9inventer si on le souhaite.", + "duration": 1564, + "language": "fra", + "recorded": "2025-11-02", + "speakers": [ + "Marjolaine Bouquet" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/rex_de_developpeuse_comment_jai_change_de_stack_technique.mp4", + "size": 205212705 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/bb8ee434-46ce-4c79-b369-54e327b25ca6" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/3010d096-684d-4672-807f-6eaa7e6d7275.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/running_every_street_in_paris_with_python_and_postgis.json b/pycon-fr-2025/videos/running_every_street_in_paris_with_python_and_postgis.json new file mode 100644 index 000000000..313f0d70c --- /dev/null +++ b/pycon-fr-2025/videos/running_every_street_in_paris_with_python_and_postgis.json @@ -0,0 +1,28 @@ +{ + "title": "Running Every Street in Paris with Python and PostGIS", + "description": "In 2006, Tom Murphy started a project of running every street in Pittsburgh (over 1,500 miles in total). He finished the project in 2022, covering 3661 miles in 269 runs. In this talk, we'll look at how we can do the same in our cities and track our progress, with Paris as an example.\r\n\r\nWe'll explore how to extract street networks from OpenStreetMap, process GPS tracking data from running activities, and build a system to track progress toward covering every street in a city. We'll dive into challenges like handling GPS inaccuracies, matching runs to streets, and maintaining a database of covered streets.\r\n\r\nThis talk is aimed at Python developers interested in working with geospatial data using Python libraries like `osmnx`, `shapely`, `geopandas`, and storing it for efficient querying in Postgres and PostGIS.", + "duration": 1342, + "language": "eng", + "recorded": "2025-11-01", + "speakers": [ + "Vinayak Mehta" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/running_every_street_in_paris_with_python_and_postgis.mp4", + "size": 207884156 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/134671ec-5c3d-4fbb-8bb4-b215ca2dca6d" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/b7673641-6045-4d4e-b213-e636588165b5.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/swh_fuse_or_how_to_put_a_whole_code_archive_behind_a_folder.json b/pycon-fr-2025/videos/swh_fuse_or_how_to_put_a_whole_code_archive_behind_a_folder.json new file mode 100644 index 000000000..7c068ee82 --- /dev/null +++ b/pycon-fr-2025/videos/swh_fuse_or_how_to_put_a_whole_code_archive_behind_a_folder.json @@ -0,0 +1,28 @@ +{ + "title": "swh-fuse, or how to put a whole code archive behind a folder", + "description": "Since 2015 [Software Heritage](https://www.softwareheritage.org/) is archiving all source code available on the Internet, and has collected more than 25 billion files over 400 million repositories. You can mount all this content transparently after a `pip install swh-fuse`.\r\n\r\nIn this talk we'll show how to implement such virtual filesystem, thanks to Python bindings to `libfuse`. swh-fuse aims to unlock a massively parallel access to the archive, so we'll also discuss how to enable a few thousand mounts at the same time on HPC clusters. We'll encounter a `ProcessPoolExecutor`, pluggable back-ends abstracted by `typing.Procotol`, a Python module implemented in Rust, and worry about free-threading.", + "duration": 1579, + "language": "eng", + "recorded": "2025-11-02", + "speakers": [ + "Martin Kirchgessner" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/swh_fuse_or_how_to_put_a_whole_code_archive_behind_a_folder.mp4", + "size": 206843416 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/e536605e-0635-432d-8d84-431870fb05d9" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/e6321e90-9d7f-4bb5-81fe-f98d8e3fb006.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/the_elegant_dependency_injection_mechanism_of_fastapi.json b/pycon-fr-2025/videos/the_elegant_dependency_injection_mechanism_of_fastapi.json new file mode 100644 index 000000000..622844931 --- /dev/null +++ b/pycon-fr-2025/videos/the_elegant_dependency_injection_mechanism_of_fastapi.json @@ -0,0 +1,28 @@ +{ + "title": "The Elegant Dependency Injection Mechanism of FastAPI", + "description": "FastAPI's Dependency Injection (DI) mechanism is undeniably one of its most elegant features, often feeling like magic in how it seamlessly handles everything from request parsing and validation to complex resource management. But beneath this powerful surface lies a robust system built on clever applications of core Python introspection.\r\n\r\nIn this deep-dive session, we'll peel back the layers to demystify how FastAPI\u2019s DI truly works. We\u2019ll explore the fundamental role of Python's `inspect` module and the power of type hints in enabling FastAPI to intelligently analyze your dependencies. We'll also tackle common challenges like identifying and resolving circular dependencies, and showcase how we can customize the behaviour of this mechanism for more control over our applications. \r\n\r\nBy the end of this talk, you'll not only appreciate the elegance of FastAPI's DI but also gain a profound, actionable understanding of its inner workings. This knowledge will empower you to debug with confidence, design more robust application architectures, and truly harness one of FastAPI's most powerful features.", + "duration": 2787, + "language": "eng", + "recorded": "2025-11-01", + "speakers": [ + "Mohamed Rebai" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/the_elegant_dependency_injection_mechanism_of_fastapi.mp4", + "size": 354681688 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/20b22bc4-4e53-44d7-8505-3ab0bdd966a7" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/8d8c1e4f-4aa0-4e3b-8dd8-5bbb3a3d0ead.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/tout_ce_dont_votre_package_a_besoin.json b/pycon-fr-2025/videos/tout_ce_dont_votre_package_a_besoin.json new file mode 100644 index 000000000..903fe1955 --- /dev/null +++ b/pycon-fr-2025/videos/tout_ce_dont_votre_package_a_besoin.json @@ -0,0 +1,28 @@ +{ + "title": "Tout ce dont votre package a besoin", + "description": "Un bon package inspire confiance. Il facilite les contributions. Il s\u2019installe sans surprise. Et surtout, il donne envie d\u2019\u00eatre utilis\u00e9.\r\n\r\nCr\u00e9er un bon package Python, ce n\u2019est **pas seulement** \u00e9crire du bon code. C\u2019est aussi penser \u00e0 tout ce qui l\u2019entoure\u202f: les tests, la documentation, l\u2019automatisation, la gestion des d\u00e9pendances, etc.\r\n\r\nDans cette pr\u00e9sentation, on verra ensemble tout ces choses primordiales dans les packages Python mais qui **ne sont pas du Python**. On parlera de\u202f:\r\n\r\n- Comment ne jamais commit une erreur\r\n- Comment tester dans les meilleures conditions\r\n- Cr\u00e9er la meilleure documentation possible\r\n- Gestion des d\u00e9pendances et des environnements\r\n- Configuration du `pyproject.toml`\r\n\r\nEt pour aller plus loin, un template complet et pr\u00eat \u00e0 l\u2019emploi sera partag\u00e9.", + "duration": 1550, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Joseph Barbier" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/tout_ce_dont_votre_package_a_besoin.mp4", + "size": 218032640 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/fa635d6a-27ae-42e2-b377-76894b4cea83" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/a19a63f4-3b5d-477a-872c-fcb1ea22e620.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/travailler_avec_des_data_lakehouses_en_python_sans_spark.json b/pycon-fr-2025/videos/travailler_avec_des_data_lakehouses_en_python_sans_spark.json new file mode 100644 index 000000000..2fb32047a --- /dev/null +++ b/pycon-fr-2025/videos/travailler_avec_des_data_lakehouses_en_python_sans_spark.json @@ -0,0 +1,28 @@ +{ + "title": "Travailler avec des Data Lakehouses en Python, sans Spark", + "description": "Beaucoup d'\u00e9quipes utilisent Spark pour traiter de petites et moyennes quantit\u00e9s de donn\u00e9es, complexifiant inutilement leurs projets. Cette pr\u00e9sentation montre comment utiliser les formats Data Lakehouse (Delta Lake, Apache Iceberg) directement en Python, sans Spark.\r\n\r\nNous verrons comment obtenir les fonctionnalit\u00e9s avanc\u00e9es (tables ACID, historique des versions) avec des biblioth\u00e8ques Python telles que `delta-rs` et `pyiceberg`, ainsi que des int\u00e9grations comme DuckDB.\r\n\r\nCette conf\u00e9rence s'adresse aux ing\u00e9nieurs data, ing\u00e9nieurs ML et data scientists souhaitant simplifier leur stack technique sans perdre les fonctionnalit\u00e9s essentielles.", + "duration": 1396, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Romain Clement" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/travailler_avec_des_data_lakehouses_en_python_sans_spark.mp4", + "size": 205293216 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/222201dc-1112-4c72-ad55-3b9c95fac17f" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/b6b50979-a939-4c31-9ed7-e89cc684fc89.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/universal_python_extensions_performance_compatibility_sustainability_and_less_co2.json b/pycon-fr-2025/videos/universal_python_extensions_performance_compatibility_sustainability_and_less_co2.json new file mode 100644 index 000000000..b0cc7c7ee --- /dev/null +++ b/pycon-fr-2025/videos/universal_python_extensions_performance_compatibility_sustainability_and_less_co2.json @@ -0,0 +1,28 @@ +{ + "title": "Universal Python Extensions: Performance, Compatibility, Sustainability, and Less CO\u2082", + "description": "Python's long-term relevance for numerical computing faces a long-term threat, not from\r\nexternal competition alone, but from fundamental architectural decisions that prevent the\r\nentire ecosystem from achieving better performance. While PyPy and GraalPy can make pure\r\nPython code 4x faster than CPython, they face an existential crisis: the moment you\r\nimport NumPy or any package with C extensions, that performance advantage disappears\r\ncompletely.\r\n\r\nThis isn't just a technical curiosity. It's putting alternative Python implementations in\r\ngenuine danger of end-of-life status.\r\n\r\n#### The Hard Truth about Python's Performance Future\r\n\r\n**The compatibility trap:** Python's C extension system creates an insurmountable barrier\r\nbetween implementations. Popular packages like NumPy, Pandas, and scikit-learn are locked\r\ninto CPython-specific APIs, making faster interpreters effectively unusable for\r\nreal-world numerical work. Worse, the current C API also constrains CPython itself,\r\npreventing future performance improvements that would break existing extensions.\r\n\r\n**HPy: promise and reality:** The HPy project aimed to solve this with a universal C API,\r\nshowing impressive preliminary results with extensions that work across CPython, PyPy,\r\nand GraalPy. However, the project has stalled without sufficient corporate and community\r\nsupport, a critical opportunity slipping away.\r\n\r\n**The limited API alternative:** CPython's limited C API offers another path, but with\r\nsignificant constraints and unclear long-term viability for the ecosystem's needs.\r\n\r\n#### What this Talk Proposes\r\n\r\nRather than accepting this situation, we need coordinated community action. This talk\r\nargues for:\r\n\r\n- **Community recognition:** The Python community must acknowledge these performance\r\n limitations as a serious long-term challenge, not just a nice-to-have improvement.\r\n\r\n- **Official support:** A PEP process to formalize the need for universal C API/ABI\r\n solutions compatible with JIT Python compilers, with a dedicated working group to study\r\n possible solutions and coordinate actions across different ecosystem actors.\r\n\r\n#### Why We Need to Act Now\r\n\r\nThe stakes extend far beyond technical performance. Enabling more efficient Python\r\ninterpreters would have two transformative effects:\r\n\r\n- **More Python:** More performance-sensitive code could be written in pure Python with\r\n object-oriented patterns and small objects, rather than requiring native extensions,\r\n simplifying development and deployment.\r\n- **Environmental impact:** Given Python's massive global usage, significant performance\r\n improvements would translate to measurable CO2 emission reductions across millions of\r\n applications worldwide.\r\n\r\nWithout community mobilization, we risk losing both alternative Python implementations\r\nand Python's competitive position in performance-critical domains. The technical\r\nfoundations exist but need coordinated effort to become reality.\r\n\r\n#### Target Audience\r\n\r\nThis talk is for Python developers who care about the ecosystem's long-term health.\r\nWhether you're a package maintainer or concerned user, you'll understand the stakes and\r\nlearn how to contribute to solutions.\r\n\r\nCome prepared to discuss hard truths about Python's future and leave with concrete\r\nactions for community engagement.", + "duration": 2901, + "language": "eng", + "recorded": "2025-11-02", + "speakers": [ + "Pierre Augier" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/universal_python_extensions_performance_compatibility_sustainability_and_less_co2.mp4", + "size": 296793665 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/e064f283-3b3f-4ba2-939f-f7903fdc3fb1" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/c7a8d5a3-34cd-46cc-96b4-1080825e733e.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/virtual_environments_and_lockfileshow_python_is_improving_reproducibility.json b/pycon-fr-2025/videos/virtual_environments_and_lockfileshow_python_is_improving_reproducibility.json new file mode 100644 index 000000000..b27731164 --- /dev/null +++ b/pycon-fr-2025/videos/virtual_environments_and_lockfileshow_python_is_improving_reproducibility.json @@ -0,0 +1,28 @@ +{ + "title": "Virtual Environments and Lockfiles\u2014How Python Is Improving Reproducibility", + "description": "\"It works on my machine!\"\r\n\r\nMemes about this sentence are popular on the internet, and express a typical phenomenon that the \"reproducible builds\" initiative aims to eradicate.\r\n\r\nPython has evolved a lot in the last 20 years in this aspect, and we have recently seen the introduction of lockfiles.\r\n\r\nLet's dig more into the history of virtual environments and how they improve the build reproducibility, yet not achieving *perfect* reproducibility.", + "duration": 1676, + "language": "eng", + "recorded": "2025-11-01", + "speakers": [ + "Ivo Bellin Salarin" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/virtual_environments_and_lockfileshow_python_is_improving_reproducibility.mp4", + "size": 282377448 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/d1b0048e-80a7-4396-abba-869fdcf86892" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/077ce632-6db7-45e5-a082-f5e1fbdd48ef.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/visualiser_les_reseaux_sociaux_a_echelle_planetaire_un_milliard_de_pixels_a_la_fois.json b/pycon-fr-2025/videos/visualiser_les_reseaux_sociaux_a_echelle_planetaire_un_milliard_de_pixels_a_la_fois.json new file mode 100644 index 000000000..177261c1f --- /dev/null +++ b/pycon-fr-2025/videos/visualiser_les_reseaux_sociaux_a_echelle_planetaire_un_milliard_de_pixels_a_la_fois.json @@ -0,0 +1,28 @@ +{ + "title": "Visualiser les r\u00e9seaux sociaux \u00e0 \u00e9chelle plan\u00e9taire, un milliard de pixels \u00e0 la fois", + "description": "Les r\u00e9seaux sociaux ont r\u00e9volutionn\u00e9 les interactions humaines et les m\u00e9canismes de propagation de l\u2019information.\r\n\r\nAfin de comprendre ces nouvelles dynamiques sociales et combattre les campagnes de manipulation \u00e0 grande \u00e9chelle, la th\u00e9orie des graphes fournit des outils fantastiques pour analyser et visualiser des r\u00e9seaux gigantesques. Cependant, tout ordre de grandeur d\u00e9passant 10 millions de n\u0153uds s\u2019accompagne d\u2019une s\u00e9rie de d\u00e9fis techniques fascinants mais tr\u00e8s difficiles \u00e0 surmonter.\r\n\r\nSi vous \u00eates curieux\u00b7se de d\u00e9couvrir des probl\u00e8mes absurdes comme des images qui ne tiennent pas dans 200 Go de m\u00e9moire, ou d\u2019une carte graphique capable d\u2019\u00e9conomiser des centaines de milliers d\u2019euros sur une facture cloud, cette conf\u00e9rence est pour vous\u202f! Venez \u00e0 la d\u00e9couverte des solutions cr\u00e9atives que nous d\u00e9veloppons pour franchir progressivement les barri\u00e8res technologiques et explorer une \u00e9chelle de visualisation de graphes jamais vue auparavant.", + "duration": 3240, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Mathis Hammel" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/visualiser_les_reseaux_sociaux_a_echelle_planetaire_un_milliard_de_pixels_a_la_fois.mp4", + "size": 575520201 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/f0f4a26a-d551-4125-9fc7-2ee7aae00f52" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/a1a65909-6c49-4cde-8cbb-a9f30fdd560f.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/vous_netiez_pas_prets_pour_les_design_systems.json b/pycon-fr-2025/videos/vous_netiez_pas_prets_pour_les_design_systems.json new file mode 100644 index 000000000..3061a9996 --- /dev/null +++ b/pycon-fr-2025/videos/vous_netiez_pas_prets_pour_les_design_systems.json @@ -0,0 +1,28 @@ +{ + "title": "Vous n\u2019\u00e9tiez pas pr\u00eats pour les Design Systems", + "description": "Les Design Systems sont parmi nous, avec leurs promesses : innovation, collaboration transverse, pont entre designers, d\u00e9veloppeurs, accessibilit\u00e9 et s\u00e9curit\u00e9. Les enjeux de livraison frontend n'ont jamais \u00e9t\u00e9 aussi critiques.\r\n\r\nSur une stack JS/TS moderne, le d\u00e9fi reste ma\u00eetrisable. Avec un backend r\u00e9cent et une API solide, un BFF peut sauver la mise. Mais que faire quand on h\u00e9rite d'un monolithe Django de 18 ans qui g\u00e8re encore le rendu HTML c\u00f4t\u00e9 serveur et la livraison d'assets, sans possibilit\u00e9 de r\u00e9\u00e9criture compl\u00e8te\u202f?\r\n\r\nEst-ce m\u00eame techniquement possible\u202f? Comment architecturer un Design System quand votre backend n'a jamais \u00e9t\u00e9 pens\u00e9 pour \u00e7a\u202f? Comment int\u00e9grer Vite.js, Stimulus et Storybook dans une infrastructure qui pr\u00e9datait ces outils de plus d'une d\u00e9cennie\u202f?\r\n\r\nRetour d'exp\u00e9rience sur l'impl\u00e9mentation d'une architecture Design System dans un contexte technique hostile\u202f\u2013 les questions qu'on s'est pos\u00e9es, les impasses qu'on a rencontr\u00e9es, les solutions qu'on a invent\u00e9es, et comment on a r\u00e9ussi \u00e0 pr\u00e9server l'exp\u00e9rience d\u00e9veloppeur malgr\u00e9 tout.\r\n\r\nVous n'\u00e9tiez pas pr\u00eats pour les Design Systems\u202f? Nous non plus, mais on l'a fait quand m\u00eame\u202f!", + "duration": 3300, + "language": "fra", + "recorded": "2025-11-01", + "speakers": [ + "Mads" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/vous_netiez_pas_prets_pour_les_design_systems.mp4", + "size": 480827908 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/54f71c73-2460-4ea5-a38f-7376ea30007e" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/fr/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/5cf942e4-b392-4086-8237-53eb735a4626.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/what_if_you_became_an_open_source_contributor_in_2025.json b/pycon-fr-2025/videos/what_if_you_became_an_open_source_contributor_in_2025.json new file mode 100644 index 000000000..4bba7b8da --- /dev/null +++ b/pycon-fr-2025/videos/what_if_you_became_an_open_source_contributor_in_2025.json @@ -0,0 +1,28 @@ +{ + "title": "What if You Became an Open Source Contributor in 2025?", + "description": "The classic open source dichotomy is well known: everyone uses it, but few give back for the convenience we've all grown so used to. What sustains a community? And how can we help ensure that the frameworks and libraries we rely on daily remain viable and healthy in the long run?\r\n\r\nContributing is easier than it seems. Maintainers are, more often than not, more welcoming and kind than you'd expect, and I want to show you how simple it can be to take your first steps in this world. After all, it wasn't that long ago that I was in that exact same place.\r\n\r\nIn this talk, you can expect to:\r\n\r\n- Learn a bit more about the open source ecosystem;\r\n- Understand how these decentralized communities operate at a basic level;\r\n- Get practical tips on how to start contributing and explore possible paths you can take.", + "duration": 1600, + "language": "eng", + "recorded": "2025-11-02", + "speakers": [ + "Amanda Savluchinske" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/what_if_you_became_an_open_source_contributor_in_2025.mp4", + "size": 206876631 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/abd5a633-e9d1-40f7-80d6-40426f7bf9fe" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/ef7e0c55-1c67-4c27-aee1-9616c95e28d5.jpg" +} \ No newline at end of file diff --git a/pycon-fr-2025/videos/who_does_python_trust_and_why.json b/pycon-fr-2025/videos/who_does_python_trust_and_why.json new file mode 100644 index 000000000..e8a0377bb --- /dev/null +++ b/pycon-fr-2025/videos/who_does_python_trust_and_why.json @@ -0,0 +1,28 @@ +{ + "title": "Who Does Python Trust, and Why?", + "description": "We all know how important it is to make sure that you see the \"secure\" padlock icon when paying for something online. It's simple, easy to understand, and automatic. \r\n\r\nIs your code the same? How would you start to make sure it is? Let\u2019s dive into those questions in this talk.\r\n\r\nFirst off, the basics: security is based on trust, but trust must be verified. This is especially true in the design of \"zero-trust\" networks. Knowing who your code trusts, and how you verify that trust, is therefore essential. \r\n\r\nThis talk will briefly go through some of the basics, such public/private key cryptography, DNS, and x509 certificate signing, before examining some of the wider implementation and regulation of PKI (Public Key Infrastructure) online. We'll look at how python interfaces with this, along with some history, and look towards the future of important integrations like certifi and truststore.\r\n\r\nWe'll then look at the problems of Supply Chain Attacks and ask how much you should trust your dependencies, before looking at some of the other basic services your code relies on like DNS. \r\n\r\nWe\u2019ll then see how you can leverage these trust mechanisms to your advantage to make your code as secure as possible, especially when working in your own cloud environment. \r\n\r\nHopefully, this talk will give you a headstart or a refresh on the knowledge required to have genuinely constructive paranoia when coding. \r\n\r\nFailing that, at the very least, I promise to make you the go-to expert on how your company's VPN and proxy cause headaches in python and how to fix them securely, rather than giving up and setting a \"trusted-host\". Hopefully you\u2019ll come away having learned a new swear word that you\u2019ll never type again: `pip config set global.verify_ssl false`.", + "duration": 1603, + "language": "eng", + "recorded": "2025-11-02", + "speakers": [ + "Dom Weldon" + ], + "videos": [ + { + "type": "mp4", + "url": "https://dl.afpy.org/pycon-fr-25/who_does_python_trust_and_why.mp4", + "size": 222494237 + }, + { + "type": "peertube", + "url": "https://indymotion.fr/videos/watch/991eba2d-0da3-45fc-a29f-30eb35187882" + } + ], + "related_urls": [ + { + "label": "Conference schedule", + "url": "https://www.pycon.fr/2025/en/schedule.html" + } + ], + "thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/e4994758-d74e-4c12-b5a3-d7dca9c31031.jpg" +} \ No newline at end of file