Talks
By Denys Makogon
− Room Alfred Wegener
− Saturday, 10:30
We all do cloud applications, no matter if they were built with the cloud (an app that consumes cloud services) or for the cloud (an app that was designed to run within cloud/container). The only thing that we, as Python community, haven’t talked out loud is imports performance that is so critical for business especially when you run your own business and cloud provider charges your own credit card.
Until Python 3.7 it was quite challenging to profile application code dependencies and imports specifically. With a new imports profiler, Python developers can measure how much time each import takes at the startup. The interesting thing, a new profiler opened the whole new Python problem - cold start issue. In this talk, we will go through one very challenging case: Python in serverless and why most of the Python libraries were never been designed to start fast.
If you’re going to attend this talk you’d get the following key takeaways:
- Python coding strategy (placement, efficient and delayed imports)
- New things in Python 3.7 related to imports
- Module coding strategy
and my favourite ones:
- Why you should be careful with python code in serverless.
- How to profile cold start and measure overall startup time.
- The best CPU/RAM configuration for performing cold startup time measures.
By Carine-Belle + Yonatan
− Room Alfred Wegener
− Saturday, 11:00
We will build a working blockchain with all the basic functionality, and deploy our own currency, pyconCoin - from scratch.
Let’s take a complicated topic, break it up into simple building blocks, and connect the dots in our favorite way - by implementing them in Python.
It's incredibly cool to see how easy it is to create things that sound relatively complex.
No understanding in blockchain is needed for this talk.
By Julie Pierson
− Room Alfred Wegener
− Saturday, 12:00
GIS software is used to analyze spatial data. In some cases, GIS data can be voluminous and Python can come in handy.
Such a case will be described here. I was trying to visualize superpositions between rectangular extents (a lot of rectangular extents !) and found QGIS and PostGIS too slow for the job (although I must say I'm no PostGIS guru). I then used Python to convert my extents into arrays of 0 and 1 and could add them all in a few minutes, and visualize superpositions by turning the resulting array into an asc file. Sorry if this is not quite clear, it's easier to explain with a few pictures, as often is the case with spatial data !
I then tried to substract 2 of the resulting asc files to visualize the evolution between 2 dates, and stumbled upon a problem in Python : the files were too big to be held in memory. A developer helped me solved this problem and I undestood better how memory is used in Python and how to hold in memory only one line of a file.
All in all, this is a story about GIS people venturing into Python programming !
Scripts can be found here : https://github.com/UMR-PASSAGES/metadata-extents
By Neeraj Pandey
− Room Alfred Wegener
− Saturday, 14:00
Art is everywhere and it’s beautiful. Unleash the creative artist inside you with the beauty of Generative Art. Learn how algorithms are used to create these aesthetic art forms, how motion and structures emit sounds and what toolkits are required to do so. The talk will take the audience to a small history of Generative Art and how autonomously these art forms are created using algorithms with various examples using Processing, Numpy, PyCario and more.
By Gajendra Deshpande, Shrirang Kulkarni
− Room Alfred Wegener
− Saturday, 14:30
The session begins with a discussion on homomorphic properties of cryptographic algorithms such as RSA, Elgamal, Paillier, Elliptic Curve and Gentry's Cryptosystems with demonstration. The session discusses the concept of recryption for secure computation. This session also discusses a case study on how machine learning technique can be applied on encrypted data for secure computation and protecting machine learning model. Finally the utility of homomorphic encryption for block chain will be discussed.
By Philippe Boulanger
− Room Alfred Wegener
− Saturday, 15:00
Python est un langage qui permet de laisser libre-court à son imagination: même la CAO, un domaine plus souvent couvert par le C++, est accessible aux développeurs Python grâce à pythonOCC (merci M. Paviot). FreeCAD est le parfait exemple d'application scriptable en Python. Mais il y a aussi Blender ou les outils de C4W-Digiléa et bien d'autres...
By Itamar Haber
− Room Alfred Wegener
− Saturday, 16:30
Redis is an in memory, key-value, database written in C. The main advantages of Redis are performance, simplicity and extensibility. It introduces some common datatypes (like Strings, Hashes, Lists) and allows you to query the data using simple commands like GET/SET which retrieve the exact key you were asking for or allowing single key in-place update
One shortcoming of Redis is that it does not support cross-key/cross-shards aggregation queries, while there are several use-cases in which users might want to e.g count how many times a property appears in subset of all hashes or group by some value and return a unique count.
In order to achieve these things a user usually has three patterns he can use:
1. Retrieve all the data from the Redis and run the aggregation on the client side.
2. Analyze the data by another system like spark/hadoop and perform those queries there.
3. Use Redis embedded Lua capabilities and write some lua code that performs the aggregation on the server side.
The first and the second option require moving all the data over the network. While the third option is good for a single Redis server, but it does not support clustering and requires writing a Lua script which is not a common programming language that most engineers/data scientists are familiar with.
In the last couple of months we, at Redislabs, developed a new programming module called RedisGears. RedisGears utilizes an embedded python interpreter to allow the users to run their Python based Map-Reduce on Redis. The API allows to the user to perform aggregation queries on all or part of the data by defining python lambda functions that will be executed on all or part of the data in Redis.
RedisGears uses an internal CPython C API like sub-interpreter and GIL handling to allow environment distinction between different Redis clients executions. In addition RedisGears uses the CPython API to expose inner Redis capabilities via a Python script (like command execution and internal modules integration).
Last, following the Streams support in Redis, it also supports Streaming API processing, allowing the user to trigger a Python based execution plan on a Stream event.
By Guillaume Ayoub, Lucie Anglade
− Room Charles Darwin
− Saturday, 10:30
Mettre en place des gros outils de monitoring peut être assez complexe, surtout lorsqu'on n'a que quelques sites à surveiller. À partir de ce constat, nous avons décidé il y a quelques années de développer nos propres petits outils libres de monitoring en Python, simples à installer et à maintenir.
By Mathis Hammel, Hugo Delval, Nicolas Bonfante
− Room Charles Darwin
− Saturday, 11:00
Lors de cette conférence présentée par trois passionnés de compétitions en cybersécurité, nous vous parlerons de tous les outils et astuces que nous utilisons pour décrocher la première place !
Les grandes thématiques abordées seront :
- Reverse Engineering : Dans ce type d'épreuve, il faut comprendre la logique d'un programme (souvent compilé et/ou obfusqué) afin d'y injecter un bug ou de contourner une protection logique.
- Sécurité web : Exploiter des failles de sécurité d'un site web parmi les grandes familles connues - Injection SQL, XSS, et bien d'autres...
- Cryptographie : Pour percer les secrets les mieux gardés, il faut parfois user des faiblesses de conception des cryptosystèmes.
- Pwn : Souvent combiné au Reverse Engineering, cette discipline complexe consiste à manipuler l'exécution d'un programme en assembleur pour effectuer des actions non autorisées.
- Programmation : Pour pouvoir répondre à un problème trop complexe pour les humains, il faut savoir combiner un peu d'astuce et beaucoup de scripting.
- Forensics : Retrouver une aiguille dans une botte de foin en utilisant une grande variété de supports : capture réseau, contenu d'un disque dur, dump de mémoire vive, etc.
By Arthur Vuillard, Samira Rabaâoui
− Room Charles Darwin
− Saturday, 12:00
À des fins expérimentales, nous avons monté un micro data center dans la cave de l'immeuble de bureau. L'objectif de ces expérimentations est d'amener plus d'écologie dans l'hébergement de services informatiques.
Pour ce faire, nous nous sommes appuyés sur ce que nous savions faire : du Python, du logiciel libre, du Do It Yourself, avec en particulier le µ ordinateur Raspberry Pi.
Nous allons vous présenter les idées que nous avons eues, leurs mises en oeuvres, les problèmes rencontrés et les perspectives pour la suite. Nous parlerons en particulier du dispositif pour surveiller la température dans la pièce et évacuer la chaleur, du dispositif pour suivre la consommation énergétique, et de l'orchestration des services installés sur les serveurs.
By Maxime Morinière
− Room Charles Darwin
− Saturday, 14:00
Le notebook de Jupyter est un grand succès, si bien que certains y voient le nouvel Excel. La version 1.0 de son successeur, JupyterLab, est sortie cet été. Après un rapide coup d'oeil des nouveautés visuelles et fonctionnelles, je présenterai quelques cas d'utilisation que j'ai apprécié, spécifiques à JupyterLab ou non (édition LateX, visualisation de cartes, utilisation de nbformat pour créer des notebooks de manière programmatique, conversion en pages de documentation avec nbsphinx, ...). Je donnerai enfin quelques références utiles et parlerai d'autres projets reliés à l'écosystème jupyter que je n'ai pas encore testé mais qui me semblent intéressants à suivre.
https://gitlab.com/mmoriniere/pyconfr_2019
By Jean-Sébastien Suzanne, Hugo Quezada
− Room Charles Darwin
− Saturday, 15:00
AnyBlok est un framework python open source, dont l'objectif est de faciliter le développement d'applications métiers. Il est basé sur des librairies python réputées telles que : SQLAlchemy, Pyramid ...
En prod depuis 3 ans, résultat de 6 ans de travail de son créateur Jean-Sébastien Suzanne, passionné et persévérant, il a basé ses travaux sur plus de 15 ans d'expérience en développement d'applications métiers.
Retour d'expérience sur la reprise progressive d'une application PHP avec 15 ans d'historique, en python et en utilisant la même base de données. Quelles ont été les évolutions à apporter à AnyBlok et comment AnyBlok nous a facilité la tâche.
By Fourcot Florent, Victorien Molle, Charles Daymand
− Room Charles Darwin
− Saturday, 16:30
Le noyau, le système, le débug noyau, sont des sujets habituellement associés à des langages bas niveau (avec omniprésence de C). C'est assez limitant, coûteux à maintenir (imaginez de l'export JSON sur toutes les commandes réseaux). Moins connues d'autres solutions existent, surtout avec Python.
Chez Wifirst (un opérateur Internet), nous n'utilisons que Python afin de configurer nos routeurs : VLANs, routage, namespaces, IPSet, QoS. Y compris pour des sujets émergents, comme les fonctionnalités eBPF et même XDP.
Cette présentation présentera les outils et bibliothèques (pyroute2 / bcc), comment nous les utilisons aujourd'hui mais aussi comment contribuer afin d'ajouter de nouvelles fonctionnalités à ces bibliothèques. La présentation comportera trois parties :
Présentation de Pyroute2:
Pyroute2 est un module python permettant principalement de piloter la configuration réseau (création d'interface, adressage IP, gestion de la QoS, contrôle du part feu) sur Linux via des sockets Netlink. Netlink étant de plus en plus utilisé, d'autres sous-systèmes du noyau (par exemple quota) sous également joignables par ce moyen.
Présentation de BCC:
BCC est une boite à outils gérant plusieurs langage notament python et permettant d'ajouter des filtres eBPF dans le noyau linux pouvant actionner des évènements vers la partie utilisateur, et donc python.
Présentation de la fonctionnalité XDP de BCC:
XDP est une sous partie du noyau permettant d'ajouter des filtres eBPF sur une interface réseau avant la prise en compte d'un paquet par la couche réseau du noyau (mécanisme de « bypass »). L'intérêt est la flexibilité (vous pouvez injecter n'importe quel code de traitement des paquets, y compris pare-feu, routage, redirection...) et les performances impressionnantes. Le tout pilotable toujours en python.
Les trois présentations montreront des exemples concrets d'utilisation de ces bibliothèques.
By Georges Racinet
− Room Henri Poincaré
− Saturday, 10:30
Heptapod est un projet communautaire dérivé de GitLab pour y intégrer
Mercurial, le système de contrôle de version distribué
(DVCS) écrit principalement en Python.
Après un prototype en 2018, le projet Heptapod monte actuellement en
puissance, suscitant d'autant plus d'intérêt que la communauté
Mercurial cherche des alternatives à Bitbucket.
La présentation fournira les prérequis nécessaires s'agissant de
Mercurial, puis se focalisera avec des exemples sur l'interaction avec
Heptapod dans le cadre d'un workflow Mercurial moderne.
Enfin, on évoquera l'état d'avancement et le futur du projet, notamment les
développements Python en cours et à venir, pour ceux qui seraient intéressés à contribuer.
By Kevin Samuel
− Room Henri Poincaré
− Saturday, 11:00
Saviez-vous que Python avait une variable magique __debug__
? Que functools.partial()
pouvait remplacer de nombreuses lambdas ? Que vous pouviez décompresser un zip dans un faux fichier en mémoire avec io.ByteIO
? Que PYTHONSTARTUP
rendait votre shell plus beau et musclé ?
À moins d'avoir lu tout doc.python.org, cette petite heure va vous faire pétiller de découvertes !
By Geoffroy Bailly
− Room Henri Poincaré
− Saturday, 12:00
A l'heure actuelle la technologie est un sujet sensible, notre métier est ainsi controversé entre impact climatique et social. Nous explorerons les problèmes de la technologie numérique avec des exemples inattendus de conséquences et les moyens afin de concevoir des outils plus respectueux, durables et bénéfiques. Cette présentation ne traitera pas de technique et se destine au grand public autant qu'aux développeurs/développeuses.
By Antoine Wecxsteen
− Room Henri Poincaré
− Saturday, 14:00
Plusieurs technologies existent pour appeler du code C ou C++ depuis Python. Cette conférence se propose de présenter les principales.
Nous partirons du très standard et très basique « ctypes » pour en montrer les limites, puis nous explorerons des approches alternatives, de la librairie d'interfaçage « Boost.Python » au langage « Cython », en passant par le générateur de code « SWIG ».
On comparera ces solutions en soulignant leurs forces et leurs faiblesses respectives, au regard du type et de la quantité de code à interfacer.
Cette conférence à donc pour but de donner au développeur Python désireux d'interfacer du code C ou C++ une idée générale de la technologie la plus adaptée à ses besoins. Elle n'a pas vocation à présenter de manière détaillée les performances de chacune de ces technologies, cela pourra cependant être évoqué dans le comparatif.
By Romain Bellan
− Room Henri Poincaré
− Saturday, 14:30
L'asynchrone dans les versions récentes de Python n'est plus à présenter. Nous vous proposons donc une autre approche, avec un voyage commençant par Python 2.7 pour bien comprendre les concepts et comment les couches bas niveaux peuvent être implémentées. On utilisera ensuite progressivement les fonctionnalités des versions plus récentes (3.4, 3.5...) pour simplifier ce moteur.
Cette présentation contiendra du « live coding ».
By Robin Huart
− Room Henri Poincaré
− Saturday, 15:00
Les tests sont nécessaires à la qualité logicielle; ils se déclinent de différentes manières : unitaires, fonctionnels, etc... Les méthodes agiles via le BDD et le TDD lui font la part belle. Quels frameworks pour quels objectifs? Comment faire les bons choix?
By Alexandre Garel
− Room Henri Poincaré
− Saturday, 16:30
Octopusmind fait une utilisation intensive d'Elasticsearch.
Je vous ferais découvrir une partie des possibilités qu'offre Elasticsearch du point de vue du développeur.
Nous verrons rapidement comment utiliser des bibliothèques Python afférentes: elasticsearch-dsl, django-elasticsearch-dsl et luqum.
Il y aura bien sûr quelques astuces et aperçus d'utilisation avancée..
By François Girault
− Room Rosalind Franklin
− Saturday, 10:30
Lors de PyConFr 2018, l'intervention "Tkinter, toujours de la partie ?" ( https://github.com/fgirault/pyconfr2018 ) revenait sur les possibilités d'usages modernes du toolkit graphique fourni en standard avec Python en démystifiant sa rusticité.
Cette année, nous verrons comment construire un micro framework "flat design", à la manière des design frameworks populaires dans le monde du web, pour produire des interfaces graphiques ergonomiques et cohérentes.
By Mehdi Raddadi
− Room Rosalind Franklin
− Saturday, 11:00
Explication de la construction d'un squelette de projet déployé avec docker-compose ainsi que le processus de développement associé. Tests en local et sur gitlab-ci puis déploiement.
By Yoan Mollard
− Room Rosalind Franklin
− Saturday, 12:00
Python est, avec C++, l'un des 2 langages officiels du middleware robotique opensource ROS (Robot Operating System).
Il s'agît d'un couteau suisse logiciel permettant de piloter des robots de toutes tailles, allant de petits robots roulants jusqu'à des manipulateurs industriels de plusieurs tonnes.
Au dessus d'un automate assurant le contrôle et la sûreté électromécaniques, Python peut intervenir sur toute ou partie du cycle de fonctionnement robotique : perception de l'environnement, prise de décision, contrôle des moteurs et des trajectoires, interface homme-robot.
Durant cette conférence nous verrons les rudiments de l'écosystème ROS, nous démarrerons un robot martien simulé que nous contrôlerons en 4 lignes de code Python, et nous ouvrirons sur comment aller plus loin avec les ressources de formation robotique ROS4PRO à destination des techniciens et ingénieurs en activité ou en devenir.
By Pierre Bousquié
− Room Rosalind Franklin
− Saturday, 14:00
Retour d'expérience sur ma participation à la traduction de la doc suite à la précédente pyconfr.
Mon objectif: vous donner le virus également :).
By François Séguin
− Room Rosalind Franklin
− Saturday, 14:30
Câbles diplomatiques américains, emails de Sony Pictures, photos de prototype d'iPhone : on sait que ces informations sont confidentielles, et elles ont pourtant été victimes de fuites. Les informations personnelles de nos utilisateurs sont tout aussi confidentielles, et nous devons les protéger.
Les logs et interfaces d'une application web exposent souvent des données personnelles: comment les expurger et/ou restreindre leur accès?
Je partagerai mes travaux sur la protection des données personnelles dans un écosystème mature de plusieurs millions de lignes de code, et du paquet open-source pour Django que nous avons créé.
By Nathanaël Langlois, Amaury Carrade, Titouan Soulard
− Room Rosalind Franklin
− Saturday, 15:00
Python, aussi bien utilisé pour du développement d’application que pour des programmes de calculs complexe, ouvre par sa facilité de prise en main un champ gigantesque de possibilité à toutes les populations. L’association “Zeste de Savoir”, fédérée autour d’un site communautaire de partage de connaissances éponyme, organise régulièrement des ateliers dans des universités à destination de collégiens et lycéens en proposant notamment aux enfants de quartiers défavorisés de s’y joindre. Comment rendre la programmation simple et attractive ? C'est ce à quoi nous tentons de répondre dans nos ateliers et cette conférence.
By Bruno Bord
− Room Rosalind Franklin
− Saturday, 16:30
La réponse à la question "combien y a-t-il de jours ouvrés entre le 16 avril et le 3 mai ?" peut paraître simple... Mais on se rend vite compte qu'il faut préciser un peu...
De quelle année ?
Mais aussi et surtout : dans quel pays ?
Parce que toutes les nations du monde n'offrent pas les mêmes jours fériés ou chômés à leur population, parce que même au sein d'un même pays on peut avoir plusieurs calendriers et parce que la vie serait trop rasoir sans cas particuliers, il a fallu essayer de trouver une réponse logicielle à la question initiale.
Workalendar est une bibliothèque Python, développée pour la société PeopleDoc en tant que logiciel libre (licence MIT, 50+ contributeurs). Elle compte plus de 230 calendriers du monde entier, capables de calculer les jours fériés d'une soixantaine de pays... autant que possible.
Cette conférence présentera un tour d'horizon de la bibliothèque et ces usages, et vous en apprendrez sûrement sur le Jour de la Réconciliation en Afrique du Sud, le Premier Jour de l'Été islandais... et le calendrier de la Mongolie !
By Nicolas Vivet
− Room Thomas Edison
− Saturday, 10:30
The audit hooks were added to Python 3.8 with the PEP 578. This security mechanism gives you more visibility and control over what your application does at runtime. After a short introduction of the new feature, we will explore ideas on how web developers, library maintainers and security engineers can leverage it to detect and block security vulnerabilities, illustrated with concrete examples.
By Antoine "entwanne" Rozo
− Room Thomas Edison
− Saturday, 11:00
Tout mécanisme Python, que ce soit les itérables, les conteneurs ou encore les appelables, repose sur des interfaces simples.
Le modèle de programmation asynchrone et ses coroutines n'échappent pas à la règle et se basent aussi sur des méthodes spéciales que nous allons découvrir.
L'objectif de cette présentation est d'explorer ces interfaces et de construire pas à pas un équivalent minimaliste d'asyncio.
By Estelle Scifo
− Room Thomas Edison
− Saturday, 12:00
La représentation des données sous forme de graphes, encore à la marge il y a quelques années, croit de jour en jour. Avec l'essor des bases de données graphes comme Amazon Azure ou Neo4j, ce type de données n'est plus réservé au GAFA et les applications sont nombreuses.
Dans cette présentation, je vous ferai découvrir certains algorithmes indispensables pour caractériser des données graphes comme la détection de communautés, mais aussi comment aller vers des algorithmes prédictifs de machine learning tels que la prédiction de liens.
By Bruno Cauet
− Room Thomas Edison
− Saturday, 14:00
Le processus de « readability » (lisibilité) de code à Google est un mécanisme qui, pour chaque language de programmation, garantit la bonne qualité de la codebase en déterminant qui peut soumettre du code dans quel langage.
Je compte aborder les points suivants :
* le rôle de la « readability » dans les revues de code
* les différents acteurs du système
* les outils logiciels qui forment le système
* le travail du « readability reviewer »
* le style Google
* Bilan et futur du système
By Michel Casabianca
− Room Thomas Edison
− Saturday, 14:30
La fin du support de Python 2 est annoncée pour le 1er janvier 2020, donc la question du passage à Python ne se pose plus. La seule question qui reste est comment ? Cette conférence présente les différences majeures entre Python 2 et 3 et comment migrer dans de bonnes conditions du code vers Python 3.
By Michael Scherer
− Room Thomas Edison
− Saturday, 15:00
À travers l'exemple de l'infrastructure du projet Fedora et de la 20aine d'applications métier écrite par les membres du projet, nous examinerons la problématique du cross site scripting (injection de javascript dans la page web), comment trouver ce genre de souci en examinant le code, et comment y remédier dans les frameworks modernes et moins modernes. Nous verrons notamment l'exemple de Pagure, une forge logicielle écrite avec le framework Flask et un certain nombre de soucis trouvé l'année dernière.
By Mindiell
− Room Thomas Edison
− Saturday, 16:30
Le Captcha (ou Completely Automatized Public Turing test to tell Computers and Humans Apart) est un moyen a priori simple de déterminer si l'utilisateur stué derrière un site web est un humain ou un robot.
Cet outil est aujourd'hui souvent synonyme de ReCaptcha, technologie rachetée par Google en 2009. Malheureusement, cet outil est surtout utilisé à des fins de surveillance et d'espionnage, voire pour améliorer des IA utilisées par l'armée américaine.
C'est en souhaitant lutter contre les abus de Google via cette technologie que j'ai travaillé sur un prototype fonctionnel qui pourrait facilement remplacer l'actuel. Pas forcément plus compliqué, pas forcément plus fiable, ce test est, par contre, beaucoup plus libre, son code source est ouvert et chacun peut l'installer chez soi (ou dans son entreprise).
On parlera donc de ce qu'est un Captcha, de ce que ça demande comme travail de recherche pour générer des tests de manière automatisée, de gérer des tests pour les déficients visuels (accessibilité quoi), de l'adapter pour remplacer un ReCaptcha le plus facilement possible, bref de comment faire un Captcha de A à Z !
By Nathaniel Manista
− Room Alfred Wegener
− Sunday, 10:00
We all are always finding complex and novel ways of making mistakes and introducing defects into our software, and we all want all the help we can get and all the tools we can carry in our toolbox to fix our mistakes and defects. I’ll relate how experience changed me from a detractor of Pytype to one of its biggest fans and why I believe that it is one of the best tools we can use to craft correct Python code.
By Arnault Chazareix
− Room Alfred Wegener
− Sunday, 10:30
Over the years, we have flooded the Internet with information and opinions about everything.
We are at the point where it is impossible to read everything about a subject.
The purpose of this talk is to demonstrate how we can build a text processing pipeline to extract information by reading website pages.
We will go through the conception of a text processing pipeline to detect relationships between Fictional Characters of any show.
The goal is to be able to remember the characters and their relationships before the release of the next season without having to binge-watch all the seasons again.
By Guillaume Gelin
− Room Alfred Wegener
− Sunday, 11:00
There is a lot of hype about Kubernetes those days, but do you know what Kubernetes really gives you, out of the box? Not as much as you might expect.
« Kubernetes is a platform for building platforms. It's a better place to start; not the endgame. » Kelsey Hightower (Developer Advocate at Google)
In this talk, I will present my experience as a software engineer who started building a bare-metal Kubernetes cluster without much knowledge in networking or other low-level infrastructure concepts, but with a developer background and mindset that ended up being quite useful.
By Taneja Ankisetty
− Room Alfred Wegener
− Sunday, 12:00
Working individuals, top management and investors are in constant turmoil to find the right company from plethora of options. This presentation aims to help find answers for them. An individual could gauge if he’s being underpaid or overpaid. Top management could have a quick, summarized and transparent feedback from their employees. A company could discover about its competitors strengths and weaknesses.
Attendees will learn how to scrape numerical and text data (reviews) from online websites and transform into structured data. Analyze trends and aggregate numerical data at different levels to form the big picture about the company. However, compiling text is a powerful means to understand details and also sentiment of employees. So we form tf-idf matrix, apply dimensional reduction techniques and explore clustering to summarize reviews. Finally, we will delve into simpler methods that are more apt than ML algorithms for this problem statement.
By Sonal Sannigrahi
− Room Alfred Wegener
− Sunday, 14:30
Have you wanted to know in real time what everyone’s saying about anything—ranging from the Amazon fires to the latest iPhone release? Fear not, Twitter is the key. Learn about engaging with the Twitter API and using language processing as a tool to discover interesting patterns about your data! In this talk, I’ll cover the concept of the Twitter REST API, along with a new geolocating tool developed for Python, and lastly, a simple way to analyse tweet sentiments.
By Santiago E Fraire Willemoes
− Room Alfred Wegener
− Sunday, 15:00
My intention with this talk is to help people understand how tests can help us write better code and how it can guide our designs. In this opportunity I'll show how to do this using pytest, and get most of its power.
I'm a Python developer who also happens to have written some Java, which has a strong influence in how mocks came to be, and this has influenced my way of testing.
Combine this with a sudden motivation to start doing TDD, and I'd say there's a lot to be shared.
I will show different pytest features and how they can assist us in writing easier, and understandable tests.
Overview
- Some words about testing
- Understanding the core of pytest
- Tests as documentation
- Fixtures
- Parametrize
- Mocks
- Understanding mocks
- Using mocks
- Refactoring with tests in mind
- TDD
- Plugins
By Bogdan Balas, Thibault Poisson
− Room Alfred Wegener
− Sunday, 16:00
Cover a brief history of YouTube and Python, our frontends and our Python based templating language (Spitfire). Follow up with the challenges of optimizing for latency in a Python web server. Then talk about how we used Clif and Cython as well as other tricks to optimize key parts of our serving infrastructure to meet our latency needs. Spitfire, Clif and Cython are all open source tools available for the python community
By Gavin Chan
− Room Alfred Wegener
− Sunday, 16:30
Developing Python applications is handy and rapid, but performance is always concerned, especially on the CPU bound components. We'll first go through the common tools and tricks which may surprise you on the performance improvement, and compare the two prevailing tools, Cython and Pybind11. Finally, their similarity and difference, in terms of implementation and performance, will be listed out so that attendees can thoroughly understand the criteria to choose the right library in their projects.
By Constance de Quatrebarbes
− Room Charles Darwin
− Sunday, 10:00
Comment rendre un projet scientifique plus ouvert, plus lisible et s'assurer que les résultats soient reproductibles?
Ce talk propose de montrer comment réaliser un carnet de recherche scientifique d'équipe
avec Git + Jupyter Notebook et Pandoc pour dévoiler la recherche en train de se faire.
- Mise en place de l'environnement de travail
- développement en équipe
- test et validation
- publication
- peer reviewing
By Raphael Delhome
− Room Charles Darwin
− Sunday, 10:30
Oslandia est un prestataire de service spécialisé en architecture SIG (Systèmes d'Information Géographique) et en développement Open Source utilisant Python au quotidien. Dans le cadre de notre activité de R&D, nous avons été amenés à développer un programme pour la segmentation automatique de nuages de points en 3D.
La présentation sera l'occasion de faire un retour sur ce projet, entre description du contexte du projet, développement en Python, et construction d'algorithme de machine learning.
Tout d'abord, un besoin métier : en environnement montagneux, il convient donc de maîtriser les risques d'éboulement en répondant à une question très simple : de quoi sont constituées les falaises ? Ensuite, très vite, un constat douloureux : impossible de faire de l'apprentissage supervisé sans données labellisées (exit le Deep Learning...).
À partir de prises de vue photogrammétriques, nous détaillerons le petit pipeline de traitement de données développé pour l'occasion, qui mobilise des bibliothèques telles que laspy
, pandas
ou encore scikit-learn
. Compte tenu des quantités de données mobilisées, une bonne touche de multiprocessing
agrémentera aussi un exposé où la question des performances aura une place de choix.
By Pierre Verkest, Audrey Braun
− Room Charles Darwin
− Sunday, 11:00
Venez découvrir la vie en entreprise chez Anybox, nos difficultés personnelles ou collectives ainsi que les réussites, petite ESN (20 personnes), organisée en télétravail généralisé depuis 2016 et en holacracy depuis 2017, nous revenons sur nos explorations, en passant par l'agilité depuis la gestion des projets clients à la gestion de l'organisation.
C’est avec enthousiasme que nous viendrons mêler nos expériences aux vôtres !
By Raphaël Gomès
− Room Charles Darwin
− Sunday, 14:30
Historiquement, le gestionnaire de version Mercurial utilise des modules en C pour améliorer ses performance lorsque Python ne suffit plus. L'année dernière, des contributeurs ont commencé à utiliser des modules en Rust comme une alternative plus sécuritaire, plus agréable et mieux outillée que C afin de compléter la base Python de Mercurial.
Depuis fin 2018, Octobus a le plus grand nombre de contributions Rust dans Mercurial. Nous avons découvert des problèmes liés l'interaction de ces deux langages et trouvé des solutions qui n'avaient jusque-là - à notre connaissance - jamais été publiées sur Internet.
Au programme :
- Une vue d'ensemble de l'intégration de Rust à Python
- Les points positifs et négatifs de notre solution et les alternatives
- Des chiffres comparatifs de performance
- Une porte ouverte à la curiosité quant aux détails excessivement techniques.
By Lionel Atty
− Room Charles Darwin
− Sunday, 15:00
mots clés: Python gRPC micro-services NPL Spacy packaging architecture Docker
Après une (courte) présentation du framework Google gRPC (paradigmes, protocoles, API de communications, ...), on s'intéressera à son binding spécifique Python.
On présentera une utilisation (concrète) des outils du framework gRPC (Python) via le développement d'une (mini) application Python.
L'application permet d'analyser des contenus textes (texte associé à des tweets).
Cette analyse (sémantique) s'appuie sur des outils (python) de NPL (Natural Processing Langage).
L'étude (du développement) de cette application nous offre un cadre de (semi)production,
à travers lequel on pourra aborder des considérations de production (ou mise en production) d'applications python.
On s'intéressera particulièrement à des notions d'architecture et (un peu) d'infras:
- propositions de stratégie de packaging/structuration/versionnement de projets python avec micros-services
- tests unitaires: comment tester des micro-services gRPC ? (framework de tests: PyTest)
- docker: outils de dev, containeurs de production, stratégie de releases
- CI/CD: CircleCI, TravisCI
By Dom Weldon
− Room Charles Darwin
− Sunday, 16:00
Aujourd’hui, on ne veut plus simplement produire un rapport PDF pour son projet de data science ou d'apprentissage automatique. De plus en plus, les utilisateurs souhaitent des outils interactifs permettant d'explorer des données avec des visualisations et des graphiques interactifs. Ces outils étant exécutés dans un navigateur web, soit il faut embaucher un spécialiste front end qui respire le Javascript dans son équipe soit il faut que les data scientists apprennent les technologies web. Ces alternatives ne sont pas pratiques et sont coûteuses. L’alternative se nomme Dash !
Dash, une bibliothèque de Plotly, peut résoudre le dilemme ainsi: les scientifiques de données peuvent faire les sites interactifs utilisant uniquement le Python et une connaissance minimale du HTML, et absolument aucun JavaScript.
À decisionLab, une société de conseil en modélisation mathématique du centre du Londres, nous avons adopté Dash pour créer des interfaces pour nos POCs et les premiers alphas de nos projets. Bien que nous ne fassions pas officiellement partie du projet Dash, en l’utilisant quotidiennement, à travers de nombreux projets, nous avons acquis de nombreuses connaissances. Nous aimerions les partager ainsi que des conseils et des bonnes pratiques. Puis obtenir vos retours!
Cette conférence donnera un aperçu de Dash, de son fonctionnement et de son utilité, avant de présenter certains problèmes pouvant survenir lorsque les data scientists sont laissés à eux-mêmes pour créer des applications Web, et que les ingénieurs informatiques doivent travailler avec l'écosystème pydata. Nous identifierons aussi certaines des limites de Dash, et discuterons de la façon de prendre la décision d'arrêter d'utiliser Dash pour commencer à créer une application Web complète.
By Pierre-Loïc Bayart
− Room Henri Poincaré
− Sunday, 10:00
L'intelligence artificielle a permis des avancés très intéressantes dans de nombreux domaines. Alors pourquoi ne pas s'en servir pour analyser une série? Grâce à de l'analyse du langage naturel principalement, je vous propose une analyse de la série Chernobyl qui permettra une mise en perspective de la série avec les évènements qui se sont réellement déroulés.
Site de la présentation :
https://pierre-loic.github.io/
By Romain Colle, Thibault Derousseaux
− Room Henri Poincaré
− Sunday, 10:30
Python est aujourd’hui le langage principal pour l’analyse de données, mais il y a une étape qui reste encore longue et mal optimisée : le passage du notebook vers la visualisation dans les applications BI des utilisateurs métier. Dans quasiment tous les cas il faut réécrire le code dans le langage de l’application BI, c’est long et très mal adapté à une approche agile d’itérations successives.
Chez ActiveViam j’ai voulu accélérer ce process et concevoir un système qui permette de sauter entièrement cette étape. Le but du projet était de mettre la visualisation directement dans le notebook, pas juste des graphes statiques mais quelques chose de vraiment dynamique.
Le résultat, que je propose de présenter, c’est une librairie Python que nous avons mise en open source et qui permet de visualiser les données en continu à mesure qu’on les charge et qu’on les travaille en Python dans son notebook. C’est utile pour faire ses propres analyses, mais surtout quand il faut concevoir des dashboards qui seront utilisés par d’autres services dans l’entreprise. Les allers-retours avec le métier se font beaucoup plus vite et une fois que les specs et l’apparence du dashboard sont validées par les utilisateurs finaux, passer en production est aussi rapide puisque cela peut se faire en quelques clics – avec ce système on ne construit pas juste une preview ou un mock-up avec Python mais bien l’application analytique finale.
By Thierry Chappuis
− Room Henri Poincaré
− Sunday, 11:00
L'écosystème de packaging et de gestion des dépendances de Python a un historique riche, mouvementé, qui évolue à son rythme et qui propose aujourd'hui deux nouveaux PEP, les PEP 518 et PEP 517, supportés respectivement par pip depuis ses versions 10.0 et 19.0. Quelles sont les implications de ces changements? Quels problèmes résolvent-ils ? Quelles opportunités offrent-ils pour le futur ? Cette présentation propose de faire un état de lieux sur le packaging fin 2019, sur ses pratiques et sur ses outils. Au délà des religions, préférences ou frustrations individuelles, je propose d'explorer les limitations actuelles de pypi, de pipenv ou de poetry et et de voir quelles évolutions on peut attendre pour le futur proche.
By Constance de Quatrebarbes
− Room Henri Poincaré
− Sunday, 12:00
Dans la lignée de l'intervention de Joachim Jablon en 2018, cette intervention présentera quelques pistes pour un environnement de développement plus inclusif: retour d'expérience, partage de réflexion et de lecture, mais surtout propositions de bonnes pratiques notamment en terme de management/gestion de projet pour mieux intégrer la variété des profils et leur spécificité - notamment celle des femmes.
Elle recensera les initiatives qui donnent leur place aux profils encore minoritaires dans la communauté Open Source.
By Alexis Benoist
− Room Henri Poincaré
− Sunday, 14:30
Vous avez vu un décorateur avec leur traditionnel @ au dessus d'une fonction et vous vous demandez comment ça marche ? Cette session est faite pour vous !
Nous montrerons leur comportement et comment les implémenter pour maitriser leur magie.
By Jérôme Lafréchoux
− Room Henri Poincaré
− Sunday, 15:00
La question de la sérialisation des données se pose quand on doit échanger des objets métier via un service web, ou bien les enregistrer en base de données ou simplement dans des fichiers.
Pour cela, on a recours à une bibliothèque de sérialisation telle que marshmallow.
Dans un premier temps, on expliquera succinctement les enjeux de la sérialisation et l'intérêt d'une bibliothèque dédiée.
Puis on détaillera les fonctionnalités majeures de marshmallow : validation, customisation de champs, imbrication,
pré/post-traitements,...
Ensuite, on abordera les fonctionnalités fournies par quelques bibliothèques de son écosystème : génération de schémas marshmallow depuis un ORM/ODM, désérialisation des requêtes d'un service web, génération automatique de documentation OpenAPI (Swagger).
Et enfin on présentera flask-smorest, un cadriciel de développement d'API REST basé sur Flask et marshmallow :
- Définition des entrées/sorties de l'API avec des schémas
- Génération automatique de doc OpenAPI et exposition de cette doc via une interface interactive
- Pagination
- Génération et vérification d'ETag
- Messages d'erreur structurés et explicites
By Pascal Chambon
− Room Henri Poincaré
− Sunday, 16:00
Cette conférence présentera la façon dont Python, et ses bibliothèques cryptographiques/web de haut niveau, sont mis au service du premier prototype de "Witness Angel".
Le Witness Angel est un huissier personnel, un dispositif qui permet d'assurer le respect de la vie privée des citoyens, tout en offrant de puissants moyens de preuve aux victimes de violences/chantages/harcèlements et autres, grâce à un mécanisme innovant appelé "Écriture Seule" (plus d'infos sur https://medium.com/@pakaldebonchamp/le-concept-witness-angel-bdfb7025f4f8).
La conférence exposera les tenants et aboutissants de ce projet, rappellera les fondamentaux de la cryptographie, évoquera l'avancement à ce jour (en particulier suite au Hackathon), et les pistes pour contourner à terme les possibles limitations de CPython (performance, autonomie de batterie sur périphériques mobiles...).
By Joachim Trouverie
− Room Henri Poincaré
− Sunday, 16:30
Découvrez les avantages de découper votre application Python en utilisant un système de plugin.
En utilisant un système de plugin votre code sera plus facilement maintenable et pourra être plus facilement couvert par vos tests unitaires. Il sera également plus aisé de participer au code du projet pour un nouveau venu.
By Estelle Scifo
− Room Rosalind Franklin
− Sunday, 10:00
Dans cette présentation, je vous parlerai de bases de données graphes, en particulier comment passer d'un modèle de données orienté tables en SQL à un modèle de type graphe en prenant l'exemple de la base de données en vogue, Neo4j. Après une petite introduction à Neo4j et à son langage de requête, Cypher, je vous montrerai des exemples d'intégration entre python et Neo4j.
By Lionel Porcheron, Pierre Fersing
− Room Rosalind Franklin
− Sunday, 10:30
Avant, on monitorait les serveurs avec un ping et un check de connection tcp. En 2019, on observe les applications et l'infrastructure qui la supporte.
Le but de cette présentation et de montrer comment avec quelques outils Open Source autour de Prometheus vous pouvez récolter des tonnes d'informations précieuses sur la santé de votre application et de votre infrastructure qui peuvent être utiles pour mieux comprendre ce qui se passe dans et autour de votre application.
By Laurent Picard
− Room Rosalind Franklin
− Sunday, 11:00
« Il y a plus de quarante ans que je dis de la prose sans que j'en susse rien, et je vous suis le plus obligé du monde de m'avoir appris cela. » — Monsieur Jourdain
40 ans, c'est le temps qui a été nécessaire aux experts pour parvenir à ce stade de l'apprentissage machine : surpassant les algorithmes traditionnels, des modèles de réseaux neuronaux peuvent maintenant comprendre texte, image, audio et vidéo. De 4 à 40 heures, c'est le temps désormais suffisant à tout développeur pour utiliser un tel modèle, voire en créer un nouveau et résoudre un problème métier unique.
« Serait-il alors possible de générer des modèles sur mesure, sans aucune expertise, et sans même le savoir ? » — Moi (développeur gentilhomme)
Dans cette session, nous verrons ce que permettent des modèles pré-entraînés (API de machine learning), comment aller au-delà en générant un modèle personnalisé (nouvelles techniques AutoML), et nous participerons à une démo live tous ensemble. Ne mettez pas vos smartphones en mode avion !
By Fred Zind
− Room Rosalind Franklin
− Sunday, 12:00
Présentation d'un chatbot basique utilisant une application mono-page Flask (avec une larme de JS) qui répond avec des données provenant des API MapQuest et Wikipedia.
La particularité offerte par Zappa est d'avoir un Flask des plus classique en local (pour le dev) et de simplifier le déploiement vers AWS-Lambda pour la mise à dispo vers le monde. Gitlab permet d'automatiser l'usage de Zappa, mettre à jour le JS avec la réponse AWS, puis héberger les fichiers statiques .
Le niveau technique nécessaire est faible : les débutant(e)s sont bienvenue et les expérimentés prévenus !
By Arthur Lutz
− Room Rosalind Franklin
− Sunday, 15:00
Déployer une infrastructure avec SaltStack avec l'assurance qualité assurée dans Gitlab avec des linters, et des tests en machine virtuelle avec Kitchen et testinfra.
Pour une infrastructure complexe géré en infrastructure-as-code avec SaltStack, comment nous avons mis en place de l'assurance qualité, des tests pour faciliter l'intégration de modifications, ainsi que l'assurance que la description de l'infrastructure peux s'appliquer. Retour d’expérience de travaux effectué avec un hébergeur utilisant Salt pour sa gestion d'infrastructure et ses déploiements.
Composants exposés :
- saltstack pour décrire son infrastructure
- salt-formulas pour un déploiement de services avec du code mutualisé
- yamllint pour tester la syntaxe et les conventions du yaml
- flake8 pour le code python (pep8 compliance)
- pytest pour tester certains templates jinja
- doc8 pour tester la documentation d'infrastructure
- tox pour lancer les tests dans des environnements reproductibles
- kitchen (ruby) pour piloter le cycle de test (création machine virtuelle, application de l'état désiré, lancement des tests, destruction de la machine virtuelle)
- testinfra pour écrire des tests d'infrastructure en python
- gitlab pour lancer l'ensemble en intégration continue
By Hugo Delval, Lucien Deleu
− Room Rosalind Franklin
− Sunday, 16:00
Les CMS sont parmis les types de site les plus demandés, souvent déployés pour de simples sites vitrines. Le compromis entre légèreté et personnalisation n'est pas simple. En résulte des pages de sites vitrines contenant des centaines de requêtes, du javascript venant de tous les horizons, tout cela pour permettre d'observer une animation de chargement. Nous avons travaillé sur une solution pour mettre fin à tout ça, pour le découvrir, venez voir notre présentation.
Topics abordés : impact écologique, éco-conception, pages statiques, django, wagtail, nginx
By Navid Nobani
− Room Thomas Edison
− Sunday, 10:00
Although there are tens of transit applications available in national and global levels, most of them (more or less) perform in the same way: mapping the desired path asked by the user (origin, destination) on the timetable provided by the transportation company and providing official schedules to the user. While this process was acceptable years ago, with the advances in the computer science and evolution of unstructured databases we can expect to receive something more robust than a digital version of the (train, bus, …) timetable, something that provide us with the expected delays based on the current situation (weather, temperature, events,…)
In this talk, I show you how I’ve used python to create a database for various parameters impacting transportation delays using web scrapping and how using Neo4j, I’ve created a transportations network which is used for finding the best path based on transportation times.
Topics: - Scrapping and data storage (structures and Unstructured): Getting weather, temperature, local events, planned maintenances and saving them in MongoDB and SQL databases - Creating a Neo4j database: Mapping the actual connections between transportation means - Finding the best path: using Dijkstra and A* algorithms to find the best paths, minimizing the travel time.
Level of expected Audience: Basic knowledge of Python and databases
By Manoj Pandey
− Room Thomas Edison
− Sunday, 10:30
Python may be one of the simplest and most flexible programming languages out there, but it is still a programming language. It still has syntax, datatypes, and some occasional dark corners. Python “warts” are things for which people have criticised Python, typically aspects of the language or mechanisms of its implementation, because such aspects either expose certain surprising inconsistencies, are regarded as omissions, or cause irritation for parts of the community in some sense.
This talk will be about common pitfalls (termed warts/landmines) that people face using Python programming language.
All gotchas would be explained with proper examples and after it bites the audience, the reason would be revealed ;)
Some notes already at: gist.github.com/manojpandey/41b90cba1fd62095e247d1b2448ef85b
By Pierre Augier
− Room Thomas Edison
− Sunday, 11:00
Transonic is a pure Python package (requiring Python >= 3.6) to easily accelerate modern Python-Numpy code with different accelerators (like Cython, Pythran, Numba, Cupy, etc...).
We will first present the context of the creation of this package, i.e. the Python's High Performance Computing (HPC) Landscape. We will show how Transonic can be used to write elegant and very efficient HPC codes with Python, with examples taken from real-life research simulation codes (fluidfft and fluidsim). We will discuss the advantages of using Transonic instead of writing big Cython extensions or using Numba or Pythran directly.
We won't forget to also discuss some limitations of Transonic, and more generally of Python and its numerical ecosystem for High Performance Computing.
By Laura Mendoza
− Room Thomas Edison
− Sunday, 12:00
Nuclear fusion comes along with great promises of almost limitless energy with little risks and waste. But it also comes with significant scientific and technological complexities. Decades of efforts may find an echo in ITER, an international tokamak being built to address this challenge. A tokamak is a particular kind of advanced experimental nuclear fusion reactor. It is a torus-shaped vacuum vessel in which a hydrogen plasma of very low density is heated up to temperatures (10-100 millions of degrees Celsius) allowing nuclear fusion reactions to occur. The torus-shaped plasma radiates light, which is measured in various wavelength domains by dedicated sets of detectors (called diagnostics), like 2D cameras observing visible light, 1D arrangements of diodes sensitive to X-rays, ultra-violet spectrometers... Due to the torus shape, the plasma is axisymmetric, and like in medical imaging, tomography methods can be used to diagnose the light radiated in a plasma cross-section.
For all diagnostics, one can seek to solve the direct or the inverse problem. The direct problem consists in computing the measurements from a known plasma light emissivity, provided by a plasma simulation for example.
The inverse problem consists in computing the plasma light emissivity from experimental measurements. The algorithms involved in solving both the direct and inverse problem are very similar, no matter the wavelength domain.
Like many, the fusion community tends to suffer from a lack of reproducibility of the results it publishes. This problem is particularly acute in the case of tomography diagnostics since the inverse problem is ill-posed and the solution unicity is not guaranteed. There are also many possible simplifying hypotheses that may, or may not, be relevant for each diagnostic. In this regard, the historical uses of the community display a large variety of single-user black-box codes, each typically designed by a student, and often forgotten or left as is until a new student is hired and starts all over again.
In this context, a machine-independent, open-source and documented python library, ToFu, was started to provide the fusion community with a common and free reference tool.
We thus aim at improving reproducibility by providing a known and transparent tool, able to efficiently solve both the direct and inverse problem for tomography diagnostics. It can use very simple hypothesis or very complete diagnostics descriptions alike, one of the ideas being that it should allow users to perform accurate calculations easily, sparing them the need to simplify hypotheses that are not always valid.
A zero version of tofu, fully operational but not user-friendly enough, was first developed between 2014 and 2016 when it was used for published results. Strong with this first proof of principle, a significant effort was initiated in 2017 to completely re-write the code with a stronger emphasis on python community standards (PEP8), version control (Github), performance (cython), packaging (pip and conda), continuous integration (nosetests and travis), modularity (architecture refurbishing), user-friendliness (renamings, utility tools) and object-oriented coding (class inheritance).
This effort is still ongoing to this day and is scheduled to go on for the next 2.5 years. However, the first milestones have been reached, and we would like to present the first re-written modules to the python community, for publicity, advice, feedback, mutually enriching exchanges and more generally because we feel tofu is part of the large open-source python scientific community.
The code is composed of several modules: a geometry module, a data visualization module, a meshing module, and an inversion module. We will present the geometry module (containing ray-tracing tools, spatial integration algorithms...) and the data module (making use of matplotlib
for pre-defined interactive figures). Using profiling tools, the numerical core of the geometry module was optimized and parallelized recently in Cython
making the code more than ten thousand times faster than the previous version on some test cases. Memory usage has also been reduced by half on the largest test cases.
By Shubhadeep Roychowdhury
− Room Thomas Edison
− Sunday, 14:30
“Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.” - Jamie Zawinski
I was staring to my screen and there was this — `^(http|https|ftp):[\/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})(:[0-9]+)?\/?([a-zA-Z0-9-._\?\,\'\/\+&%\$#\=~]*)
I could understand that it is, may be, talking about some kind of URL pattern. But what the meaning of it? No answer. And Stackoverflow was no help.
This when I started my project to automatically generate the intent of any RegEx expression given the expression itself. Without any prior domain knowledge.
I will walk you through the data I used, how I built my models, and the outcomes achieved.
I will also provide a notebook so you’ll be able to play with it.
By Facundo Calcagno
− Room Thomas Edison
− Sunday, 15:00
A major French telecom provider has entrusted our team to develop a tool capable of accurately detecting anomalies in their network. This tool is to be deployed in a central surveillance cockpit that monitors the whole network in order to assist analysts in detecting and identifying risks, vulnerabilities and incidents in the network in real time.
The solution proposedis based on state-of-the-art Deep Learning technology, more specifically, we developed the "Croissant" model, a Bidirectional LSTM Variational Autoencoder (VAE) that monitors the traffic in the network and triggers an alarm when an anomaly is detected. To cope with the large amounts of data, e.g., the number of inbound and outbound bytes of more than 300K devices within the network every 5 minutes, our model was developed to function at scale and using an adapted software and hardware solutions such as DGX stations for training and server equipped with NVIDIA T4s for inference/operations.
The talk with go deeply into the architecture of the selected model and explaining step by step why it works and how it is going to be implemented.
By Paul Amar, David Rigaudie
− Room Thomas Edison
− Sunday, 16:00
Hundreds of vulnerabilities are getting disclosed each week and the number of CVE has just been exploding during the last few years. When a new vulnerability comes out, the usual questions from the management are : "Are we impacted? If so, how many servers are vulnerable to X?". During this presentation, we will release "ChopChop", an internal tool we built aimed at solving problematics around vulnerability detection/regression.
Chopchop aims at providing a fully-featured scanner allowing you :
- to easily scan your servers
- integrate new plugins (aka new vulnerability checks) without pain.
- get pragmatic results in term of security
We created this tool back in 2017 at Michelin integrating popular checks (eg. non-interpreted .htpasswd, .git folder accessible in the webroot, wildcard in crossdomain.xml, ...) and is now, one of our go-to tool, also integrated inside our CI/CD pipeline in order to tackle security in its whole.
By Carine Dengler, Simon Chabot
− Room Thomas Edison
− Sunday, 16:30
The access to data stocks made publicly available has never been easier than in present times. Among
many others, FranceArchives and the Muséum National d’Histoire Naturelle are examples of public institutions
providing access to their data. FranceArchives is a service by the Service interministériel des archives de France (SIAF) to help researchers and enthusiasts explore the French archives by grouping and enriching information about their contents. The Muséum National d’Histoire Naturelle (MNHN) is launching the « data.mnhn.fr » project which aims to unify their data stocks and integrate additional information in order to present their naturalists' academic career. In order to
help navigate these enormous amounts of data, both institutions aim to enrich their data stocks by integrating
additional information from third-party sources, such as e.g. Wikidata and Geonames.
To this end, tools such as Nazca are used to align the datasets in question. There are two main challenges: the datasets' sizes and the heterogenity between them. Nazca is an open-source highly adaptable Python tool addressing both challenges by providing blocking algorithms to reduce the number of comparisons and normalization functions to clean up the data. The tool provides a customizable pipeline containing the normalization, blocking and alignment steps and automatically collects and re-assembles the results at the end.
The talk is split into two major parts: we begin by shortly introducing Nazca and its pipeline. We then illustrate how its used in FranceArchives to align geographical data to Geonames and close by explaining how it is used to create controlled vocabularies for names in data.mnhn.fr.