Conférences de 30 minutes

Django Admin comme framework pour développer des outils internes

Par Romain Clement − Salle Charles Darwin − Samedi à 10 h 00

Si vous développez des applications avec le framework Django, vous connaissez sûrement Django Admin pour introspecter votre base de données et effectuer quelques opérations de maintenance. Mais savez-vous qu'il est possible de développer des applications complètes grâce à Django Admin ?

Django Admin possède des secrets bien gardés mais une fois découverts, beaucoup de possibilités s'offrent à nous. De la gestion de permissions avancée à l'ajout de pages et formulaires personnalisés en passant par l'intégration d'automatisations, développer des outils métiers devient un jeu d'enfant.

Dans cette présentation, je vous partagerez mon retour d'expérience sur l'utilisation de Django Admin comme framework à part entière dans le cadre de développement d'applications internes centrées sur les données.

Les applications "no-code" n'ont qu'à bien se tenir !

OCR : apprenez à extraire la substantifique moelle de vos documents scannés

Par Bérengère Mathieu − Salle Charles Darwin − Samedi à 10 h 30

S'il vous arrive comme moi, de traîner sur Gallica, vous savez que depuis de nombreuses années, les techniques d'OCR permettent la numérisation à grande échelle d'ouvrages divers. Et peut-être vous demandez vous si ces technologies sont également adaptées pour traiter vos documents d'entreprises (factures, contrats, etc.).​

A l'issue de cette conférence vous saurez non seulement répondre à cette question, mais vous disposerez aussi d'une vue d'ensemble des différents solutions sur l'étagères. ​

Plan de la conférence :

  1. Situation initiale : qu'est ce qui est simple pour un logiciel d'OCR ?​
  2. Premières complications : déformation, bruit, polices hétéroclites​
  3. Péripéties additionnelles : temps de calculs, maîtrise des coûts, multi-languages et alphabets diversifiés​
  4. Cerises sur le gâteau : quels outils pour augmenter la valeur de vos données numérisées ?​

Contribuer à l’open source sur des projets Python… sans coder

Par Anne-Laure Gaillard − Salle Charles Darwin − Samedi à 12 h 00

Les motivations pour contribuer à l’open source peuvent être diverses : apprendre, construire une expérience valorisée professionnellement, ou par altruisme. Cependant, les freins sont nombreux, notamment le symptôme de l’imposteur, le manque de temps, la méconnaissance des types de contributions possibles et le fait que le mouvement soit souvent cité comme ayant un problème de diversité.

J’ai expérimenté plusieurs manières de contribuer. Aujourd’hui, je suis persuadée que la contribution à l’open source est ouverte à tous les profils et ne se limite pas au développement ! Vous êtes polyglottes ? Vous réalisez de l’art graphique ? Vous parlez aisément en public ? Vous appréciez animer des communautés ? Vous aimez écrire ? Vous parcourez les dernières nouveautés de votre logiciel préféré ? Autant d’opportunités pour vous lancer !

À la fin de cette présentation, vous serez non seulement convaincu·e que vous pouvez contribuer à l’Open Source mais vous dresserez la liste de ce que vous allez faire et pour quelles communautés.

À la découverte de Polars (ou pourquoi vous pourriez quitter pandas)

Par Olivier Hervieu − Salle Charles Darwin − Samedi à 14 h 00

J'utilise pandas pour gérer des datasets depuis 2016. C'est encore aujourd'hui la librairie de référence quand il s'agit de manipuler des données. Cependant, cette librairie n'est pas exempte de défauts. Polars propose une alternative intéressante à pandas. Migrer vers polars est facile car cette librairie propose une API proche de pandas. Enfin, son api "lazy" et ses performances finiront par vous convaincre que, oui, il faut au moins essayer polars.

Monorepo Python avec environnements de développement reproductibles et CI scalable

Par Clément Hurlin − Salle Charles Darwin − Samedi à 16 h 00

Cette année j'ai été chargé de la mise en place d'un monorepo python dans une startup du domaine médical/machine learning. J'aimerais partager l'expérience acquise en présentant le setup choisi, qui s'appuie sur pip, poetry, et pants; avec certains contraintes imposées par des paquets de data science (pytorch). Dans cet exposé je détaillerai le setup initial du monorepo, la communication requise pour expliquer nos choix et faire passer notre expérience à des équipes pas toujours au point sur les meilleurs pratiques d'ingéniérie et de reproducibilité, et mentionner l'importance de la motivation des choix techniques.

Enfin mon exposé comprendra une présentation de notre utilisation de Pants (https://www.pantsbuild.org/) pour obtenir un CI modulaire et scalable, qui limite le boilerplate et supporte des usages locaux/CI similaires.

Apprendre Python, c’est pour tout le monde en 2023 ! 💞

Par Thierry Chantier − Salle Charles Darwin − Samedi à 16 h 30

Qui veut apprendre à utiliser Python en 2023 et d'ailleurs pourquoi ce langage ? Quels sont les moyens d'apprentissage à notre disposition en 2023 ? Je vais essayer de vous décrire tout cela et vous pourrez repartir avec plein de suggestions et d'outils.

De plus en plus fréquemment, la question d'apprendre un langage de programmation se pose et ce pour des profils très variés.

En premier lieu, il y a les enfants bien sûr, que ce soit par l'école ou par eux même. Pas forcément dans l'objectif d'en faire une profession, mais connaître les bases de la programmation est une clé pour appréhender le monde numérique qui les entoure et avoir une chance de comprendre au delà de consommer.

Les adultes ensuite, et là les besoins sont très variés. Certain·es seront en reconversion et sont à la recherche d'une nouvelle voie professionnelle ou bien compléteront leurs compétences avec une touche de programmation. D'autres auront de nouveaux projets informatiques et auront besoin d'ajouter Python à la liste des languages et outils qu'ils maîtrisent.

A tout ce petit monde, Python permettra d'apprendre à son rythme, en ajoutant peu à peu les concepts, sans jamais fermer de portes pour le futur. Python est en effet un langage à la fois simple dans les premiers pas, mais également très complet quand par la suite on souhaite aborder des architectures logicielles complexes dans des domaines aussi variés et différents que des applications web, du Machine Learning ou de l'outillage d'intégration continue...

Viendra ensuite la question des outils à notre disposition et là, le temps qui s'écoule a apporté une grande palette de solutions. Nous verrons ce que l'on peut faire avec des outils graphiques comme Makecode ou Edublocks, puis nous verrons comment effectuer la transition vers le code lui même avec des éditeurs de plus en plus aptes à accompagner l'apprentissage. Je vous proposerait également un tour des plateformes permettant d'avoir de véritables curriculum complets le tout dans un environnement riche où textes d'explications et vidéos s'accompagneront parfois de petits jeux pour gravir une à une les marches menant à la connaissance de Python.

Vous devriez alors être capable de vous lancer vous même ou bien accompagner les personnes dans votre entourage qui souhaiterai plonger dans cet univers passionnant de la programmation Python.

NucliaDB, une base de données pour le machine learning et les données non-structurées

Par Éric Bréhault − Salle Henri Poincaré − Samedi à 10 h 00

NucliaDB (https://github.com/nuclia/nucliadb) est une nouvelle base de données vectorielles conçue pour être utilisée dans des applications de recherche sémantique et de machine learning. Elle combine recherches full-text, fuzzy, sémantique et par graphe de relations. Elle constitue le système de stockage parfait pour des datasets et des sorties de modèles de machine learning et de les rendre opérationnels dans des applications réelles.

Je suis nul·le !

Par Guillaume Ayoub − Salle Henri Poincaré − Samedi à 10 h 30

Je ne sais rien faire de vraiment utile. Toutes les personnes que je côtoie sont bien meilleures que moi. C’est pour cela que je n’ai rien à dire d’intéressant, et encore moins le talent pour faire une conférence. Si vous avez le sentiment d’être un peu comme moi, venez m’aider !

sphinx-lint : un linter pour ta doc

Par Julien Palard − Salle Henri Poincaré − Samedi à 12 h 00

sphinx-lint est, comme son nom l'indique, un linter pour de la doc Sphinx rédigée en reStructuredText.

Rédiger du code → utiliser un linter sur son code. Rédiger de la doc → utiliser un linter sur sa doc ?

Son but : zéro faux positifs, et rapide.

Cette conférence présentera sphinx-lint sous différents angles :

  • Pourquoi un nouveau linter pour la doc Sphinx ?
  • Mais au fait, comment c'est parsé le reStructuredText ?
  • OK, vendu, comment ça s'utilise ?
  • Retours d'expériences de gros projets utilisant sphinx-lint.

Writing Great Test Documentation

Par David Andersson − Salle Henri Poincaré − Samedi à 14 h 00

Have you ever needed to understand a new project and started reading the tests only to find that you have no idea what the tests are doing? In this talk we will discuss how to write great test documentation to make this a thing of the past! Writing great test documentation as you are writing tests will improve your tests and help you and others reading the tests later. We will first look at why test documentation is important both when writing tests and for future readers, then look at a framework that helps give some structure to your test documentation. Next, we will look at a showcase of the flake8-test-docs tool that automates test documentation checks to ensure your documentation is great! Finally we briefly discuss how this framework would apply in more advanced cases, such as when you are using fixtures or parametrising tests.

Une bonne quantité de Python peut-elle rendre Firefox moins vulnérable aux supply chain attacks ?

Par Johan Lorenzo − Salle Henri Poincaré − Samedi à 16 h 00

La sécurité informatique, c’est dur ! On doit : * écrire du code qui ne contient aucun exploit, * monitorer nos dépendances (y compris les transitives), * éviter de faire fuiter des secrets, * utiliser une infrastructure dans laquelle on a confiance, * et plus encore !

Si on néglige un de ces points, on fait courir un risque à nos utilisateurs. 3 de ces exemples peuvent être regroupés en un type de menace : les “supply chain attacks”, les attaques sur la chaîne d’approvisionnement. En d’autres termes, les attaquants ne s’en prennent pas à votre produit en lui-même, mais ils cherchent des vulnérabilités sur ce qui entoure votre produit.

Il y a plusieurs manières de pallier ce risque. Par exemple : une entreprise peut tout à fait mettre en place une infrastructure privée pour builder, tester et déployer ses produits. Cependant, lorsqu’il s’agit de logiciel open source, on se doit de rendre public le plus de choses possibles.

Au cours de cette présentation, j’aimerais vous montrer comment une bonne quantité de Python permet à Mozilla de publiquement builder, tester et déployer Firefox. Tout ceci en ayant une confiance raisonnablement grande, pour dire que les binaires que Mozilla publie correspondent au code que les Mozilliens ont écrit.

Apprentissage statistique adapté aux données sales avec dirty-cat

Par Jovan Stojanovic − Salle Henri Poincaré − Samedi à 16 h 30

Les data scientists sont souvent amenés à travailler avec des données non standardisées (avec erreurs de frappes, abréviations, duplications, valeurs manquantes...).

Le traitement ou nettoyage des données prend un temps considérable sans fournir la garantie d'un bon résultat final.

dirty-cat est une librairie open source en Python qui permet de faciliter le traitement des données sales dans le but de faire de l'apprentissage statistique.

Le point de départ est souvent une collection de tables provenant de sources différentes. Il faut par la suite:

  • joindre ces tables sur des catégories imprécises (par exemple 'Bordeaux, FR' et 'Bordeaux');
  • dédupliquer les valeurs d'une catégorie;
  • faire de l'encodage de ces catégories sachant que leur cardinalité peut être grande due à la présence de valeurs inexactes.

Dans cette présentation, je vais vous montrer les méthodes et fonctions de dirty-cat et comment elles nous permettent d'obtenir de meilleurs résultats tout en diminuant le travail nécessaire à la préparation des données.

Pour quelques exemples d'utilisation de dirty-cat voir:

  • https://dirty-cat.github.io/stable/
  • https://github.com/dirty-cat/dirty_cat/tree/main/examples

Un membre très discret de la famille Jupyter mais pourtant si utile !

Par Pierre-Loic Bayart − Salle Rosalind Franklin − Samedi à 10 h 00

Si vous travaillez avec des données en Python, vous connaissez très certainement l’écosystème Jupyter avec les Jupyter Notebooks et Labs. Mais connaissez-vous les Jupyter Hubs ? Cet outil permet de gérer plusieurs comptes utilisateurs de Jupyter Notebooks ou Labs. Comme il faut commencer de manière modeste, je vais plutôt vous parler du plus petit Jupyter Hub (the littlest Jupyter Hub ou TLJH pour les intimes). Très simple à déployer et à utiliser, il est très pratique à utiliser dans le cadre de formations. Durant cette conférence, je vous présenterai le retour d'expérience de mes utilisations dans le cadre de formations.

Lutter contre le déréglement climatique avec Django

Par SebCorbin − Salle Rosalind Franklin − Samedi à 10 h 30

Quel titre aguicheur, n'est-il pas ? Et bien pourtant c'est vrai.

J'aimerais vous présenter un projet qui nous tiens à coeur : CANARI (pour Climate ANalysis for Agricultural Recommendations and Impacts), une application bientôt open-sourcée qui a pour but de faciliter l'anticipation du déréglement climatique pour les acteurs du monde agricole.

C'est le résultat du partenariat entre Solagro, spécialiste des questions agricoles et du changement climatique, et Makina Corpus, concepteur d'applications web open source, en s'appuyant sur l'utilisation des projections climatiques fournies par l'Institut Pierre Simon Laplace, spécialiste de la modélisation climatique, et l'unité MARS du JRC (centre de recherches de l'Union Européenne) impliquée sur les enjeux d'adaptations de l'agriculture. Tout ça notamment financé par l'ADEME et le ministère de l'Agriculture.

Cette session sera ainsi destinée à vous donner de l'espoir sur ce monde qui change, et à vous présenter la stack technique basée sur :

  • Django et Django Rest Framework
  • CDO et celery pour les calculs
  • VueJS, Bootstrap et Plotly pour l'interface

et surtout comment nous avons rapidement et habilement (?) transformé les pre-requis métiers en une application simple et fonctionnelle.

Pour en savoir plus d'ici là https://canari-agri.fr/

Rejoignez le Fediverse, ajoutez ActivityPub à votre site !

Par Jérôme Tanghe − Salle Rosalind Franklin − Samedi à 12 h 00

En 2022, Elon Musk rachète Twitter. S'ensuit une série de décisions désastreuses amenant de nombreux internautes à se réfugier sur Mastodon, un réseau social qui revendique ne pas être à vendre, et qui a la particularité d'être distribué : le logiciel, publié sous licence libre, est installé sur des serveurs administrés par des volontaires, capables de communiquer entre eux grâce à un protocole nommé ActivityPub

Ce protocole est par ailleurs également utilisé par de plus en plus nombreux logiciels, comme Pixelfed (partage de photos), PeerTube (vidéos) ou Writely (blogs), ce qui les rend capables de communiquer entre eux, créant le "Fediverse".

Durant cette conférence, je vous expliquerai comment fonctionne ce protocole et comment l'implémenter sur votre propre site.

PyScript for data science

Par Sophia Yang − Salle Rosalind Franklin − Samedi à 14 h 00

Are you a data scientist or a developer who mostly uses Python? Are you jealous of developers who write Javascript code and build fancy websites in a browser? How nice would it be if we can write websites in Python? PyScript makes it possible! PyScript allows users to write Python in the browser. In this talk, I will introduce PyScript and discuss what does PyScript mean for data scientists, how PyScript might change the way data scientists work, and how PyScript can be incorporated into the data science workflow.

Supercharging Jupyter notebooks for effective storytelling

Par Jo-fai Chow − Salle Rosalind Franklin − Samedi à 16 h 00

Jupyter notebook is a popular tool for data analysis, but once the analysis is complete, it can be challenging to share the insights in a presentable and accessible way.

In this talk, I will show you some practical steps to organise and present your results in a friendly way to your viewers. I will also demonstrate how to turn a Jupyter notebook (or just the selected cells in a notebook) into an interactive web app with a few lines of code.

All examples will be based on typical data analyses with open-source packages such as Datapane. You will walk away from this session with tips and code snippets to improve your own Jupyter notebooks straight away.

On a testé pour vous... méthodologie, outils

Par Nicolas Ledez − Salle Rosalind Franklin − Samedi à 16 h 30

« Tester c’est douter » ? Viens donc me voir pour apprendre à douter avec moi. Je te présenterai pourquoi et comment tester, avec différents niveaux que l’on peut mettre en place sur un projet.

Driving down the Memray lane - Profiling your data science work

Par Cheuk Ting Ho − Salle Thomas Edison − Samedi à 10 h 00

In this talk, we will be exploring what memory profiling is, and how it can help with data science work. We will start the talk with a basic explanation of how Python arrange memories for various objects. This lays the foundation explanation of why we need a special tool to memory profile Python programs.

Then we will be going through a data science use case where we memory profiles some part of the process with the Memray Jupyter plug-in. This would be a use case that a data science practitioner or learner would be familiar with and they can see how memory profiling could be useful.

We will then explain how to interpret the frame diagram in Memray, a commonly used diagram in memory profiling to understand how much memory a process and its sub-process uses. This is something that for a new user, it could be hard to understand and not know what to look into. From this example, audiences can see what they can learn about from the frame diagram.

Goal

This talk is for data scientists, learners or anyone who is interested in memory profiling their Python program. Although the talk will be using a data science use case as an example, the explanation and the tool can be expanded to be used in any Python program. However, for data science practitioners and learners who have been using Python to process data, this may be a step forward for them to improve their data workflow and prevent memory leaks from their programs.

Uncovering Python’s surprises: a deep dive into gotchas

Par Mia Bajić − Salle Thomas Edison − Samedi à 10 h 30

Are you a Python programmer looking to expand your understanding of the language? Join us for a discussion on some of Python's most counterintuitive examples. We'll delve into how these behaviors work under the hood and explore why they don't always behave as we expect. This talk is suitable for programmers of all levels who have a curious mind and enjoy learning.

Continuous performance analysis for Python

Par Arthur Pastel − Salle Thomas Edison − Samedi à 12 h 00

We'll start by covering the basics of benchmarking in python and explore the limits of time-based measurements. Then, we'll see how CodSpeed helped Pydantic throughout the rust migration, demonstrating the actual impact of the Rust migration on the overall performance. Finally, we'll cover how CodSpeed can be set up on any Python project to consistently track the performances of your codebase.

Fear the mutants. Love the mutants.

Par Max Kahan − Salle Thomas Edison − Samedi à 14 h 00

Code coverage (the percentage of your code tested by your tests) is a great metric. However, coverage doesn’t tell you how good your tests are at picking up changes to your codebase - if your tests aren’t well-designed, changes can pass your unit tests but break production. And what better way to explain this than with penguins?

Mutation testing is a great (and massively underrated) way to quantify how much you can trust your tests. Mutation tests work by changing your code in subtle ways, then applying your unit tests to these new, "mutant" versions of your code. If your tests fail, great! If they pass… that’s a change that might cause a bug in production.

In this talk, I’ll show you how to get started with mutation testing and how to integrate it into your CI/CD pipeline. After the session, you’ll be ready to use mutation testing with wild abandon. Soon, catching mutant code will be a routine part of your release engineering process, and you'll never look at penguins the same way again!

Domain-driven design: what can Python do for you?

Par David Kremer − Salle Thomas Edison − Samedi à 16 h 00

Through various examples, we will start defining the advantages of domain-driven design and how it translates using the latest improvements in Python, notably with the use of data classes and typing.

We will aim to write better, clearer, and simpler Python in this talk.

Giving and receiving great feedback through PRs

Par David Andersson − Salle Thomas Edison − Samedi à 16 h 30

Do you struggle with PRs? Have you ever had to change code even though you disagreed with the change just to land the PR? Have you ever given feedback that would have improved the code only to get into a comment war? We'll discuss how to give and receive feedback to extract maximum value from it and avoid all the communication problems that come with PRs. We'll start with some thoughts about what PRs are intended to achieve and then first discuss how to give feedback that will be well received and result in improvements to the code followed by how to extract maximum value from feedback you receive without agreeing to suboptimal changes. Finally, we will look at a checklist for giving and receiving feedback you can use as you go through reviews both as an author and reviewer.

Traitement de données géographiques avec Rasterio, NumPy, Fiona et Shapely

Par Arnaud Morvan − Salle Charles Darwin − Dimanche à 10 h 00

Dans le cadre d'un projet de traitement de données sur les riques naturels, nous avons été amenés à utiliser:

  • rasterio et fiona pour l'accès aux données
  • numpy et shapely pour l'analyse des données

Cette présentation sera donc l'occasion de présenter :

  • les données géographiques matricielles et vectorielles
  • ainsi que des bibliothèques Python de haut niveau pour les exploiter.

Cerveau, Biomarqueurs et Deep Learning

Par Facundo Calcagno − Salle Charles Darwin − Dimanche à 10 h 30

Construction d'une plateforme de calcul et de visualisation de biomarqueurs de une maladie dégénérative à l'aide d'images IRM du cerveau et du deep learning sur Google Cloud

Psycopg, troisième du nom

Par Denis Laxalde − Salle Charles Darwin − Dimanche à 12 h 00

Psycopg, sans doute l'adaptateur PostgreSQL pour le langage Python le plus populaire, a récemment connu une nouvel élan via une réécriture complète : pourquoi et comment cette refonte a-t-elle eu lieu ? Et comment se situe Psycopg dans l'écosystème aujourd'hui ?

Mais en fait, communiquer avec un serveur de bases de données PostgreSQL, qu'est-ce que ça veut dire ?

En enfin, quoi de neuf dans Psycopg 3 ?

Nous tenterons de répondre à ces différentes questions qui traitent de sujets aussi divers que : le financement du logiciel libre et la conduite du changement ; le protocole client/serveur Postgres ; la programmation asynchrone, les performances, le typage statique ; et bien sûr la communauté Python !

Geographic visualization using Streamlit

Par Mickaël Carlos − Salle Charles Darwin − Dimanche à 14 h 00

Among the plethora of libraries available in Python, I would like to discuss with you about some of the capabilities of the Streamlit library towards geographic data visualization. Using Streamlit we can create standalone web-apps. And here I want to show you how I got to make Streamlit apps where the user could choose between different treatment/function to apply :

  • interacting with the OSM database, (OSMNX)
  • extracting the content of the OSM database in a specific area described by a Polygon interactively (OSMNX),
  • filtering the results during and after the request (OSMNX, (Geo)pandas) with regard to the location, or any other attribute,
  • etc...

After treatment of the spatial data you could also do statistics on attributes, or display it on a map using different libraries to display different types of diagrams and maps. All these repre- sentations having parameters that can be dynamically customized by « non-dev » people through the Streamlit app, such as :

  • the color map,
  • the variable displayed,
  • the boundary shown on the graph,
  • the animation time
  • etc...

I’ll show what I thought I could do with it and how I did it and maybe we could discuss other means or ideas...

Monitorez vos applications Python (et pas uniquement votre infra)

Par Lionel Porcheron − Salle Charles Darwin − Dimanche à 14 h 30

Savoir quand son infrastructure et son application ne fonctionnent pas est un des défi que l'on rencontre quand on exploite une application. Le monde du monitoring a évolué ces dernières années: Prometheus s'est imposé comme un standard. Au delà des métriques de votre infrastructure, nous verrons comment instrumentaliser votre code avec les SDK de Prometheus et d'OpenTelemetry pour avoir des métriques pertinentes pour vos applications.

GEMSEO : une bibliothèque pour l’optimisation multi-disciplinaire

Par Jean-Christophe Giret, Antoine Dechaume − Salle Charles Darwin − Dimanche à 15 h 00

De nombreux problèmes d’ingénieries impliquant des disciplines diverses (physiques, économiques, ...) cherchent à trouver un meilleur compromis comme solution. Cela implique l'utilisation d'algorithmes mathématiques (optimisation, DOE, ...) ainsi qu'une orchestration du processus impliquant les différentes disciplines. La librairie GEMSEO propose de simplifier l’accès à des algorithmes open sources (et propriétaires), ainsi que de simplifier la création et la reconfiguration du processus. GEMSEO facilite également l'exploitation des résultats avec des outils de visualisation.

REX analyse antivirus des fichiers de la plateforme emplois de l’inclusion

Par François Freitag − Salle Henri Poincaré − Dimanche à 10 h 00

500,000 fichiers à (re)scanner tous les mois.

  • Calibration (mesure des perfs de ClamAV)
  • Contraintes principales, métiers (et historiques)
  • Première tentative (scan des fichiers récents et scan mensuel de toute la base)
  • Seconde tentative (traitement par lots avec un choix intelligent des lots)
  • Côté infra ?
  • Aller plus loin ?
    • Gestion des fichiers infectés
    • Et s’il fallait scanner plus ?
    • Comment faire mieux ?

Réinventer le tour du monde en (beaucoup) moins de 80 jours

Par Bérengère Mathieu − Salle Henri Poincaré − Dimanche à 10 h 30

Tout commence avec l'envie d'utiliser l'intelligence articifielle pour découvrir autrement l'oeuvre de Jule Vernes. Très vite les idées s'enchaînent : ouvrir une page au hasard, en comprendre le contenu, retrouver le parcours des personnages, retranscrire l'ambiance de cette étape...​

Ainsi né Homem : au croisement de l'analyse d'images, du search, de la compréhension automatique du langage et de la génération de contenu. Le tout sous forme d'application web. ​

Open-source et polymathe, Python était tout indiqué pour mener à bien un tel projet. Au delà de son caractère ludique, Homem illustre l'incroyable potentiel de ce langage pour utiliser l'intelligence artificielle au sein d'une application industrielle. ​

J'ai hacké ma chaudière pour avoir un thermostat !

Par Pierre Verkest − Salle Henri Poincaré − Dimanche à 12 h 00

Développé avec Anyblok, 2 Raspberry Pi et quelques services python !

En achetant ma nouvelle maison il y a 4 ans j'ai récupéré une vielle chaudière au fioul !

Objectif avoir un thermostat pour arrêter de chauffer inutilement la maison (en attendant de changer cette vielle chaudière) !

Retour d expérience sur les choix d architectures et outils développés !

Transformez vos algorithmes de données/IA en applications web complètes en un rien de temps avec Taipy

Par Florian Jacta − Salle Henri Poincaré − Dimanche à 14 h 00

Dans l'écosystème open source Python, de nombreux packages sont disponibles pour :

  • la construction de puissants algorithmes

  • la visualisation des données

Malgré cela, plus de 85 % des pilotes en science des données restent pilotes et n'arrivent pas à l'étape de la production. Avec Taipy, les Data Scientists/développeurs Python pourront créer d'excellents pilotes ainsi que de superbes applications prêtes pour la production pour les utilisateurs finaux.

Taipy fournit deux modules indépendants : Taipy GUI et Taipy Core.

Dans cette conférence, nous montrerons comment :

  • Taipy-GUI permet de créer des applications web rapidement et facilement. Il va bien au-delà des capacités de la pile graphique standard : Gradio, Streamlit, Dash, etc.

  • Taipy Core permet de gérer différents modèles, fonctions et datas grâce à un système facile de pipelines et de scénarios. Il est plus simple mais plus puissant que la pile back-end Python standard : Airflow, MLFlow, Luigi, etc.

Nua, un PaaS open source en Python pour l'auto-hébergement de vos applications

Par Stéfane Fermigier − Salle Henri Poincaré − Dimanche à 14 h 30

Résumé

Nua est un projet de plateforme cloud open source lancé par Abilian en 2021. Il propose un PaaS (platform as a service) qui peut s'installer facilement sur des serveurs bare metal ou virtualisés, et qui permet de faire tourner des applications web conteneurisées, en gérant leur cycle de vie, les ressources dont elles ont besoin (stockage, bases de données, etc.), les droits d'accès des utilisateurs, les backups, le monitoring, les logs...

Nua permet de gérer des applications issues d'un portefeuille applicatif ("marketplace"), i.e. packagées et optimisées par les développeurs de la plateforme (ou des tiers). Nua permet aussi de déployer des applications en cours de développement (démo / qualif / prod), y compris plusieurs instances d'une même application, et y compris en déploiement automatique (exemple de use case: créer des instances de démo à la demande de prospects, en optimisant la consommation de ressources).

Nua est basé sur les principaux standards du monde open source et du cloud: base de données (Postgres, MySQL, Mongodb, Redis), stockage (S3), OCI, dockerfiles et buildpacks, LDAP et SSO, etc. Nua s'appuie actuellement sur Docker, mais permettra à terme de déployer des applications dans d'autres environnements d'exécution (autres conteneurs, VMs classiques ou légères, SlapOS...).

Documentation et code source:

  • https://nua.rocks
  • https://github.com/abilian/nua

Plan de la présentation

  • Vision et caractéristiques principales du projet

    • Simplification du packaging et du déploiement multi-instances,
    • Auto-hébergement, souveraineté numérique
    • Architecture générale
  • Pourquoi python ?

    • Un runtime python dans le container
    • Un orchestrateur pilotant les containers
    • Réutilisation de composants entre le packaging, l'exécution de scripts et l'orchestration
  • Exemples et démo

    • Fichier de configuration (vue du packageur)
    • Déploiement de configurations (vue CLI de l'utilisateur)
  • Roadmap et comment contribuer

Take-aways

  • Pour les développeurs / devops : comment Nua peut aider à déployer rapidement des versions de dev en phase de dev / préprod / prod, et à gérer les contraintes de la production (backup, upgrades) ?
  • Pour les responsables informatiques: comment Nua permet de déployer et de gérer facilement un portefeuille d'application Web open source (intranet / extranet / Web) ?
  • Pour les développeurs d'applications tierces: comment porter ses applications sous Nua?
  • Pour les contributeurs open source: quelle est la roadmap de Nua et comment y contribuer ?

Garder le contrôle de ses données géolocalisées avant de les partager

Par Fred − Salle Henri Poincaré − Dimanche à 15 h 00

Strava, runkeeper, runtastic, … sont des réseaux sociaux pour les activités sportives basé sur l'usage de grandes quantité de données géolocalisés pour fournir en retour divers services.

Le fonctionnement par défaut ne permet pas facilement de limiter les données transmises et le coût d'usage en données personnel devient très vite élevé si on n'utilise pas la totalité des services proposé.

J'ai souhaité construire un outil qui permettrait de choisir les données que je transmet, me permettant de bénéficier des quelques services de mon choix en limitant les données utilisé par les services qui ne m'intéressent pas.

C'est un projet expérimental et ouvert qui permet de mettre en lumière l’économie de la donnée des grands services en ligne.

Python web performance 101: uncovering the root causes

Par Alex Ptakhin − Salle Rosalind Franklin − Dimanche à 12 h 00

Web engineers meet issues with performance with fast-growing or even maintaining existing products. It’s always unexpected and we have limited time for decisions. With our hero, we meet real-faced RAM, CPU and IO problems and learn troubleshooting approaches to monolithic and distributed systems.

We try different existing tools from Python and the cloud ecosystem including, but not limited to: cProfile, yappi, memory-profiler and tracing.

This talk will be more focused on backend parts and designed for intermediate-level web engineers, but all skill levels are welcome.

pip install malware

Par Max Kahan − Salle Rosalind Franklin − Dimanche à 14 h 00

pip install malware: it’s that easy. Almost all projects depend on external packages, but did you know how easy it can be to install something nasty instead of the dependency you want? I'll be showing this live, as I make malware and infect my own computer with it during the talk!

You might remember classic typosquatting examples like goggle.com, but it’s now common to see malicious code hidden in spoofed or otherwise fraudulent PyPI packages or nested dependencies. Malware developers can also use techniques like starjacking to appear legitimate, so these unpleasant packages become even more difficult to spot. It’s estimated that over 3% of packages on PyPI could be using this technique.

By the end of this talk, you’ll know how to protect yourself when installing and updating dependencies and you’ll leave with a checklist to follow to help you stay safe in future.

Introduction à Devops (le vrai)

Par Nicolas Ledez − Salle Rosalind Franklin − Dimanche à 14 h 30

Devops, tout le monde en parle, tout le monde semble en faire. Mais est-ce que l’on utilise ce terme correctement ? Nous allons redéfinir la base et qu'est-ce que c'est vraiment. Cette conférence est faite pour vous si vous vous demandez ce qu'est un DevOps. Mais aussi si vous voyez des recrutements de “devops” et pourquoi les recruteurs/RH se trompent. Bref, viens rétablir la vérité avec nous.

Interactive web pages with Django or Flask, without writing JavaScript

Par Coen de Groot − Salle Rosalind Franklin − Dimanche à 15 h 00

Python has many excellent back-end frameworks, but we can't use it yet for mainstream front-end development. How do we bring our web pages to life without having to write Javascript, and without learning a front end framework like React or AngularJS?

The htmx library uses simple tag attributes to add behaviour to HTML tags. It gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML for modern user interfaces.

Learn how, without refreshing the page, you can: create, update and delete data; change the date range for a chart; drill down using a sequence of dropdowns; and create an interactive search box.

Discover how to use htmx with any Python web framework. The examples will mostly use Django, plus a single example of how to use the same ideas in Flask.

You will also see how to create an infinite scrolling page, a sortable drag and drop table, and more.

Introduction to Sigstore: cryptographic signatures made easier

Par Maya Costantini − Salle Thomas Edison − Dimanche à 10 h 00

The last few years have seen a significant raise in Supply Chain attacks targeting third party software used in larger projects. With the need for developers to attest of the integrity and provenance of their software dependencies, alternatives have emerged to make tracing software back to the source more accessible, without a need for specific knowledge of cryptographic protocols used for generating and verifying artifact signatures.

Project Sigstore (https://www.sigstore.dev/) is a new standard for signing, verifying and protecting software. This talk will provide an introduction to Sigstore, explaining the different components the project is built upon and how developers can use it to sign and verify software artifacts (Python packages, container images...) in a secure way. Notably, Sigstore solves the issue of private key storage and management by implementing "keyless" signing, where users can generate ephemeral key pairs and sign an artifact using an identity provider such as GitHub, Microsoft or Google.

The focus of this talk will be on the efforts made by the Python community to adopt Sigstore, showing how it is used to sign CPython releases and with a demo of the new sigstore-python client developers can use to get started with securing their Python projects.

Trying no GIL on scientific programming

Par Cheuk Ting Ho − Salle Thomas Edison − Dimanche à 10 h 30

In this talk, we will have a look at what is no-gil Python and how it may improve the performance of some scientific calculations. First of all, we will touch upon the background knowledge of the Python GIL, what is it and why it is needed. On the contrary, why it is stopping multi-threaded CPU processes to take advantage of multi-core machines.

After that, we will have a look at no-gil Python, a fork of CPython 3.9 by Same Gross. How it provides an alternative to using Python with no GIL and demonstrates it could be the future of the newer versions of Python. With that, we will try out this version of Python in some popular yet calculation-heavy algorithms in scientific programming and data sciences e.g. PCA, clustering, categorization and data manipulation with Scikit-learn and Pandas. We will compare the performance of this no-gil version with the original standard CPython distribution.

This talk is for Pythonistas who have intermediate knowledge of Python and are interested in using Python for scientific programming or data science. It may shine some light on having a more efficient way of using Python in their tasks and interest in trying the no-gil version of Python.

From a Python script to an open-source project

Par Kanishk Pachauri − Salle Thomas Edison − Dimanche à 12 h 00

Did you write a cool and useful Python script? Would you like to share it with the community but are unsure how to go about it? If so, then this talk is for you. We'll go over a list of simple steps to turn your script into a fully-fledged open-source project.

The Python community has a rich set of tools which can help verify the quality of your code through automated code review and linting. You can benefit by taking advantage of this ecosystem. Complete the steps in this checklist, and your project will be easier to maintain, you'll be ready to take contributions from the community and those contributions will be up to high standards. Your project will also keep up with other projects on PyPI and you will be alerted if any new release causes an incompatibility with your code.

The same checklist can be used for non-open-source projects as well.

The project maturity checklist includes:

Properly structure your code Use a setup.py file Add entry_points for your script command Create a requirements.txt file Use Black to format your code Create a tox.ini config and include code linters Set up a Git repo Refactor your code to be unit-testable and add tests Add missing docstrings Add type annotations and a MyPy verification step Upload to GitHub Add a continuous integration service (e.g. Travis) Add a requirements updater (e.g. pyup.bot) Add test coverage checker (e.g. coveralls) Add a Readme file and documentation Publish your project on PyPI Advertise your project

Interactive HoloViz Visualization and Dashboards

Par Sophia Yang − Salle Thomas Edison − Dimanche à 14 h 00

Are you a data scientists who use data visualization to understand data and tell stories? Are you interested in building interactive plots and dashboards in Jupyter Notebook? HoloViz is a high-level Python visualization ecosystem that gives you the superpower to visualize easily even for big and multidimensional data, build visualizations for streaming data, turn nearly any notebook into a deployable dashboard, and help deploy your dashboards with the help of WebAssembly.

Cloud infrastructure from Python code: how far could we go?

Par Asher Sterkin − Salle Thomas Edison − Dimanche à 14 h 30

In this talk, I'm going to clarify the Infrastructure As Code (IaC) paradigm and its limitations, analyze the exact problems that Infrastructure From Code (IfC) is supposed to solve, compare recent IfC offerings, and propose what could and, in my opinion, should be done for the Python ecosystem. I will also share my personal experience of implementing such a system, code-named Cloud AI Operating System (CAIOS): what went well, what still needs to be resolved, and where, in my view, the Python community could contribute in making Python as the number one choice for cloud programming language.

Infrastructure as Code - the use of repeatable scripts or SDKs to configure the cloud environment for an application - has expanded the possibilities of Serverless with Continuous Delivery. However, there are fundamental issues with IaC: it is a time-consuming and tedious process to prepare the scripts, the activity requires the involvement of DevSecOps experts, and the scripts are only loosely related to the application code. For any non-trivial application, these scripts grow very quickly in complexity and size. Applying IaC to optimize the configuration of the test, staging, and production environments only exacerbates these issues.

Infrastructure from Code is a recent advancement over IaC that addresses these obstacles. IfC interprets a mainstream programming language code and automatically generates the specifications needed to configure a cloud environment. So far, the most advanced solutions, such as ServerlessCloud, Ampt, or Nitric, were proposed for the TypeScript ecosystem. While, for Python, AWS Chalice is a cloud-vendor-specific solution and offers a relatively limited feature set.

The power of AWS Chalice for quick serverless API development in Python

Par Namrata Kankaria − Salle Thomas Edison − Dimanche à 15 h 00

The Serverless Framework enables us to create and deliver high-quality applications fast and easily without having to worry too much about setting up resources and configurations. AWS Chalice is a serverless Python framework that can help you launch your serverless application quickly. In this presentation, you will discover the key features of AWS Chalice and how it can be used to quickly write, build and deploy serverless applications in python.