 Bonsoir tout le monde, on est à Paris la soirée. Aujourd'hui, je suis comme pas mal énervé et stressé en même temps parce que on a comme, je vais vous dire pourquoi parce que on a des bons présentateurs et aussi on va aujourd'hui c'est notre quatrième événement. Donc, c'est le temps de célébrer. Yeah, for those who don't know why I am really excited tonight is because we are going to have a lot of presenters and also we are at our AD event. So just to remind you a bit about the rules of Montreal Python is we want everybody to be happy and to be nice with each other. So and pour notre code de conduit, ce que nous avons c'est on veut que tout le monde soit, comme on dit, gentil avec tout le monde et en partage fait qu'on a notre petit code de conduit pour ça. J'aimerais aussi remercier nos partenaires qui invado. Yeah, I want to thanks our partners, which is invado. And yeah enough talking. We are going to kick off our first presenter right away. Sans plus tarder, je vais vous présenter tout de suite notre premier moderator, Tarek. Hello Tarek. Bonjour. Bonjour. Je te laisse continuer. Juste une question, je le fais en français ou en anglais? C'est comme tu veux. On est bilan ici, préfère à fond en anglais. Mais sinon, on n'a pas... Je le fais en anglais et puis je répondrais aux questions en fonction de la langue. Donc du coup, je mets mes slides ici et puis je vais partager mon écran avec les slides. Alors, Montréal Piton autorisé. Voilà, alors normalement, tout le monde voit mes slides. Attends, je n'ai pas ajouté. Ok, là, j'ai ajouté ton slide à l'écran. Est-ce que tout le monde vous voit? Ok, c'est bon. Ça marche, oui. Bon, je te laisse reprendre la scène et on se part tantôt. Ça marche. Ok, donc je suis Tarek Zadeh. Je travaille à Mozilla depuis France, et j'ai été invité dans beaucoup de projets utilisés par Python. Et l'un des projets qu'on utilise pour faire des tests contre nos services web, c'est Moilotov. Et cette présentation explique ce qu'il y a et ce qu'il y a. Moilotov est un tool test pour services web. Et on a créé ce tool, parce que il y a eu quelques années, il y a eu des requises, la Mozilla QA a besoin d'un tool d'essayer les services web. Il n'y a pas d'utilisation d'interface, pas d'HMA web sur les websites. On voulait pouvoir faire des tests contre les services web qui proviennent des valeurs JSON. Par exemple, on voulait faire sure que Firefox sync pouvait couper avec nos utilisateurs. On voulait avoir un tool qui était facile de déployer, de rouler localement et de rouler dans notre CI et notre CD. Donc notre environnement et notre déploiement. Et on voulait avoir un peu de gens dans le QA qui n'étaient pas d'évoilés par là-bas. Et ils ont besoin de pouvoir faire des tests sans être très avancés en termes de programming et des langues, soit Python ou autre. Donc j'ai été en charge de cet projet, j'ai commencé à regarder les taux que nous avions dans la communauté, que vous pouvez utiliser dans la ligne de commande. Il n'a pas travaillé très bien. Il a eu beaucoup de limitations. Vous ne pouvez pas faire un test très grave avec ça. Et c'était difficile de tester des services web avec ça. J'ai écrit un outil qui s'appelle Boom. C'était un placement de bench, mais en même temps on n'a pas besoin d'un test web spécialement. Il y a beaucoup d'autres outils qui existent. Il y a Apache GMeter qui est un peu frustrant parce qu'il faut utiliser l'interface user ou un large XML file, donc c'est très difficile de travailler. Il y a un autre Python qui s'appelle Locust qui est très intéressant. Il y a des classes et il utilise un service client qui est un peu overkill pour ce qu'on veut faire. Il y a beaucoup d'autres outils. J'ai décidé d'écrire mon outil et c'est fun d'écrire un nouveau outil, donc c'était pas difficile pour moi de prendre la décision. J'ai commencé par écrire un outil qui s'appelle Loads et on n'a pas vraiment utilisé ce qu'on voulait faire. Le premier problème est que on a utilisé pour produire des métriques sur le site client et pour produire des métriques sur le site client quand tu fais des tests contre les services web, ça ne marche pas parce que c'est trop noisy. Tu ne sais pas ce que la nettoyage va faire entre toi et le service web et le device ou le laptop tu vas ajouter un peu d'overhead sur la nettoyage et le CPU et toutes les métriques que tu vas avoir donc c'était le premier erreur de faire tout sur le site client ça ne marche pas. Le deuxième problème est que nous essayons d'avoir quelque chose qui est distribué avec un service client comme Locust ça ne marche pas aussi parce que nous avons des tests qui ont besoin d'avoir des heures et quand tu fais des systèmes distribués et qu'ils doivent être en train d'avoir des heures surtout pour les tests ça fait beaucoup de choses que tu transfères les données entre les notes parce qu'il y a beaucoup de données quand tu fais des tests comme ça j'ai décidé de faire ceci on a vraiment besoin de faire quelque chose plus simple d'avoir le casse principal d'avoir le casse simple et j'ai aussi décidé que les tests sont juste fonctionnels qui pourraient être utilisés comme tests basés donc avec ça en mind j'ai commencé de Moltoff avec quelques principes de design c'est d'être un code IO donc je pouvais faire beaucoup de requêtes en faisant mes tests basés j'ai décidé d'être aussi close comme possible pour vanilla python donc quand quelqu'un aurait besoin d'avoir des tests il n'y aurait pas besoin d'avoir des experts et j'ai décidé de être très simple et le scope de Moltoff c'est d'avoir tous les scripts sur une machine qui pourrait être utilisée comme test basé et d'ici nous pouvons l'élaborer sur ce script et l'enlever dans des environnements comme on le verra plus tard donc c'est un exemple très simple de test basé vous importez le décorateur et vous décorez la fonction Async et dans cette fonction il n'y a plus que un objectif IO-HTP pour les gens qui connaissent le project IO-HTP et avec cette session vous pouvez faire des postes de quoi que vous voulez sur le web service vous pouvez assurer que vous avez les résultats que vous avez vous pouvez vérifier l'état de la réponse et avec ce script je peux aller faire des tests pour faire des tests sur le web service c'est un exemple plus complexe il y a deux scénarios et les idées que nous allons dire les gens QA si vous voulez faire un test sur le web service commentez avec une liste de différents scénarios d'utilisation de votre service web et créez une fonction par scénario et pour chaque fonction sur le décorateur on y va dans cet exemple on a 10% d'usagers que vont faire les questions correctes 90% des restes qui vont juste être mouldés et avec ce deux fonctionnementes on va mouler la scénario pour que vous puissiez le load de 90% de la scénario 1 et 10% de la scénario 2 Concurrentement. Donc, comment on le fait ? Vous pouvez appeler Motov. C'est le script. Vous pouvez vérifier que tout fonctionne. Ici, sur le second call, je fais 150 concurrents. C'est le code routine en Python. Et je vais le faire pour 60 secondes. Sur le troisième exemple, il y a 4 processus. Et chaque processus se tourne avec 10 travailleurs. Vous pouvez tourner autant de processus que vous voulez. Peut-être des milliers de milliers. Mais vous pouvez faire beaucoup de loads avec un script Motov. Et ici, dans ce dernier exemple, je vais juste tourner jusqu'à un fail. Vous l'avez vu dans le slide que j'avais dans mon scénario une certaine assertion. Par exemple, je vais faire sure que les services sont de 200. Si j'ai un fail, je n'ai pas de 200, mais de 500. Parce que le service est sous-load et il commence à faire des erreurs. Je vais arrêter là-bas et dire que je peux faire 110 requests. Et c'est fail. Et ensuite, nous avons des outils d'advance avancés. L'une est l'option de la sizing. Donc, la option de la sizing est faite. C'est un node avec votre service web. Et ensuite, vous appelez Motov avec l'option de la sizing. Il va remplir 500 travailleurs et ajouter plus et plus et plus de loads. Et ça va arrêter quand il y a un ratio de % d'erreurs avec toutes vos assertions. Et ici, par default, c'est 5 %. Quand il y a 5 % d'erreurs, ça s'arrête. C'est pas trop de loads. Et la dernière minute, j'ai eu beaucoup de failures et j'ai arrêté là-bas. Et c'est très utile parce que ça peut être utilisé d'utiliser votre service pour savoir quand il va s'arrêter de travailler, combien de requests vous allez pouvoir faire contre ce service. Et si vous allez conserver un CPU ou un membre, vous allez pouvoir décider si vous voulez utiliser un VM sur Amazon ou Google qui est spécifiquement regardé sur le RAM ou le CPU et vous allez pouvoir déployer votre cloud avec cette information. Et de là-bas, j'ai dit que nous ne voulions pas être un service très compliquant que vous devez déployer un système ad hoc distribué. Nous voulions être un script qui peut être déployé avec tous les outils qui sont en part. J'ai ajouté un autre script qui s'appelle Moleslave qui va simplement déployer un script motif de repository. Donc, si vous appelez Moleslave github.com c'est un motif qui contient la description de tous les scripts que vous avez dans la repository. De cette façon, à l'aide de la download et de votre script vous pouvez utiliser votre script motif dans la repository et vous appelez Moleslave. C'est pour ça que le file de Moleslave décide tous les tests que vous avez avec toutes les options que vous devez utiliser. Vous pouvez ajouter un file de pips qui est installé avant le transit. Vous pouvez avoir des variables d'environnement et de là-bas Moleslave Github et le grand nom de test de là-bas avec Moleslave on peut prendre le next step qui est un image docker donc, j'ai un image docker qui prend 2 variables d'environnement le repo Github et le nom de test et je peux faire un run docker avec un script et un fail et c'est pour ça que vous pouvez distribuer la download dans votre cloud par orchestrer des notes de Moleslave avec un docker vous pouvez le faire avec Amazon ECS ou Kubernetes ou toutes les outils qui vous permettent des features d'orchestration et de la collection des métriques par des tools comme Datadog, Grailog ou tout ce que vous utilisez pour votre service web et cela va retourner à l'initial design qui est qu'on ne collectionne pas de métriques sur le site client en termes de requises par seconde ou tout ça donc, vous n'aurez pas de bruit dans vos mesures vous pouvez ajouter des métriques sur le site client mais il y aura des métriques sur le test pas sur le service nous avons d'autres features comme des avances que vous pouvez utiliser pour faire un scénario plus complexe je n'ai pas de temps mais nous avons aussi des features d'avance où vous pouvez partager le token si vous faites des services web que vous avez besoin de l'authentication il y aura des exemples sur la github repo oui, c'est terminé wow en 20 minutes bon pour la conclusion c'est un tout très simple mais c'est très puissant parce qu'il utilise des features juste pour vous donner une idée on peut mettre plus de services sur la github avec juste un multi-running pour que vous ayez le bandwidth vous pouvez faire ça par exemple, Firefox sync qui a requiert il y a 40 000 requises par seconde l'infrastructure nous pouvons faire avec un single multi-running juste parce qu'il y a un peu de requises et qu'on sit et saturé le service jusqu'à il n'est pas capable d'accepter plus de connections, c'est pour ça que vous breakz les services web vous n'aurez pas besoin d'avoir de faim mais c'est une autre histoire c'est très proche de vanilla python qui n'est pas familier avec Async ça devrait être ok c'est juste qu'ils ont de la fonction Async et d'ici tout le monde peut faire un GET ou un POST vous regardez la documentation c'est facile de l'utiliser localement c'est aussi facile d'intégrer au CI parce que nous n'avons pas d'utiliser des choix spécifiques pour faire un test ou quelque chose comme ça vous pouvez utiliser MOTOV pour produire un load contre un endpoint il y a des documentations vous pouvez cliquer sur ce lien je vais le mettre ici c'est tout ok, merci très bien pour votre présentation je vais vous donner KOTAM il va prendre soin de la question ok KOTAM vous êtes là ? vous vous avez mis oui, oui je vais vous prendre soin de la question je vais vous donner la question oui je suis désolé je dois bouger je pense que on n'a pas de questions mais c'est une très bonne présentation comme je travaille sur IT c'est très intéressant de faire ce type de test c'est bien merci c'est incroyable ok, quelqu'un s'est demandé d'accompagner quelqu'un d'utiliser l'attaque oh oui, bien rien oui, vous pouvez probablement faire ce type il y a beaucoup de trucs je veux dire vous allez probablement être coupés par d'autres tools je vais l'adder pour la documentation et les crédits ok, merci j'ai un autre question quelqu'un s'est demandé Est-ce que c'est plus facile que zTest ? ZTest ? Ah, zTest. ZTest, oui. Oui. Parce qu'on a juste besoin d'avoir une petite fonction. Donc je pense qu'on a un peu moins de code de boiler plate. Donc je dirais oui, c'est plus facile de faire. Et nous avons une question d'un mécanique. Il s'est dit, est-ce que vous êtes réellement en train d'avoir un zTest, ou juste de l'essence dans les points ? C'est seulement pour des services web. C'est donc seulement de l'essence sur les points HTTP. Nous ne supportons pas, comme, un complet UI. Je veux dire, vous pouvez demander un point où c'est un rendering html. Mais ce n'est pas going to run the JS, sur cette page. Vous devez utiliser tous les outils qui rendent un JavaScript, à l'aide d'un vrai browser, ou à l'aide d'un outil où il y a tous les outils qui mémoirent les browsers et qui rendent le JS. Donc oui, c'est juste pour les services web. Et quelqu'un a écrit quelque chose pour aussi donner des outils autour des websockets, mais ce n'est pas intégré. C'était une réponse. Quelqu'un a aussi demandé ce que les services web soutiennent, comme SOAP, ou d'autres services web ? Tout ce qui parle de HTTP peut être testé. Donc, puisque SOAP est utilisée par HTTP pour faire la back and forth pour échanger les données, la réponse est oui. Parce que l'objectif des sessions dans la fonction va vous donner d'autres contenus à l'aide d'un request et de prendre d'autres réponses sur le service. Donc, il peut être SOAP et XML ou JSON ou Plantex ou tout ce que votre service vous demande. Ou comme GraphQL comme GraphQL. Je pense que c'est super. Oui, parce que ce qui est important ici n'est pas les données qui transitent. Ce qui est important c'est le protocole que vous utilisez et MOLTOF utilise le protocole HTTP. Donc, dès que votre application s'adresse à un point HTTP, vous êtes bien. Ok, bien. Je pense qu'on a beaucoup de questions qui sont venus. Samuel s'est demandé que l'adaptation s'est créée dans Mozilla. Nous avons 4 ou 5 services qui sont testés avec ça. Dans Mozilla, je sais quelques gens qui utilisent ça mais je pense que c'est ça. J'espère que vous êtes tous allés utiliser ça. Alors que l'adaptation va augmenter. Mais oui, ce n'est pas souvent utilisé, mais c'est été très stable pour les années. C'est très simple. Je pense que l'une des raisons n'est pas très adoptée c'est que c'est un très délicieux de l'utilisation. Et beaucoup de gens qui font des tests en général si ils ont des apps qui ont d'autres choses que les services web ils utilisent d'autres outils ou qu'ils créent leurs outils mais je pense que c'est très facile d'utiliser dans beaucoup de places. Qu'est-ce que c'est possible d'utiliser le cookie ? C'est très facile. Les cookies sont juste d'informations que vous faites dans vos requests, headers et responsables. C'est pas un problème. Vous pouvez manager les sessions. Vous devez partager ces informations dans ce document. Il y a des informations sur GEDVAR et CEDVAR. Vous pouvez utiliser ça pour partager ces informations. Cool. Je pense que ça est très fort. Si vous avez d'autres questions ou d'autres points je pense que Tarek sera là dans le Slack. Je ne suis pas mais je peux. J'ai également ajouté mes emails dans le Slack si vous avez d'autres questions. Je vais essayer d'aller dans le Slack. Si vous avez d'autres questions ou d'autres questions que vous voulez parler de Tarek vous pouvez joindre 2 Slack ou d'autres emails. Je pense qu'il sera plus heureux d'answer d'autres questions. Merci Tarek. Merci d'avoir moi et de voir le reste de vos questions. Merci Kotam. Je vais aller à la prochaine présentation. Je vous donne un peu d'intro parce que l'année dernière nous avons un code spin. Nous avons 2 projets et on a travaillé tout le mois de septembre. Un de projets c'est volontariat. Donc, nous avons un code spin. Nous avons un code spin. Nous avons un code spin. Nous avons un code spin. Nous avons un code spin. Nous avons le code**** l' winter que ce soit Through Breakup live r. Russian espaço C'était très cool. Il y a uneee im CSS C'est bon. Je te laisse prendre le contrôle et ça va. On a travaillé sur Volontaria. Volontaria, pour ceux qui ne connaissent pas encore, c'est un logiciel libre qui permet aux associations de pouvoir profiter de bénévoles. C'est vraiment une plateforme permettant d'afficher des posts de bénévolats que vous essayez de remplir et aussi des emplois. On essaie de diversifier un peu l'outil pour avoir un système de donation bientôt et d'essayer de l'améliorer toujours pour avoir l'application mobile et divers moyens d'attirer des bénévoles dans vos organisations. C'est notre site promotionnel. Ce dernier mois, on a essayé de travailler sur quelques issues avec la communauté. On a eu 4 ou 5 contributeurs qui sont venus de Python Montréal. On a travaillé notamment sur des systèmes d'import d'events pour que les gens puissent importer des évents en bulk. Ils peuvent faire des fichiers CSV avec tous les évents des prochains mois au lieu de tout remplir sur l'interface évents après évents et que tout soit importé automatiquement avec une gestion des erreurs. On a aussi commencé à travailler sur un système de donation avec l'intégration de Stripe qui est un système bancaire en ligne. On a une bénévole qui a travaillé à ce sujet-là et qui est toujours en train de travailler dessus. Et puis, on a tout système d'emploi qu'on a mis aussi en place. Maintenant, on peut poser une annonce pour avoir un bénévole ou une personne payée à moyen ou long terme, pas juste sur une activa stiléoptionnelle mais vraiment sur quelque chose de répétitif. On décrit la tâche et les personnes peuvent venir candidater. On peut venir les prendre au sein de la plateforme elle-même sans passer par LinkedIn ou autre chose. Donc, ça reste vraiment avec vos valeurs sur une plateforme policiale avec le respect de leur droit privé. On a pas mal travaillé là-dessus. Je ne sais pas exactement ce que vous voudriez voir. On va surtout voir avec vos questions. On a travaillé en Sprints. Les gens sont venus tous les lundis aux horaires de Python Montréal pendant ce mois-ci. On a travaillé ensemble sur le Discord. On a vu un petit peu les questions et on a relu leur pull request une par une pour toutes les intégrées. C'est pas mal ça ? Ok, merci Noën pour le recap de comment ça est contribué. J'ai acheté Quotam encore une fois pour voir s'il n'y a pas des questions. C'est très bien amusé. C'était très intéressant. Il y a des contributeurs très variés. Ça peut venir comme Yann qui est surtout incontable, qui s'expérimente à faire du logiciel maintenant. On en a d'autres qui étaient vraiment des Python guys très aguerris mais qui travaillaient pas forcément dans le domaine du web. On a des personnes qui ont fait déjà de la recherche, qui ont travaillé pour le gouvernement mais qui sont pas forcément dans le développement actif. On s'adapte un petit peu à chaque personne. C'est toujours très intéressant de venir discuter les soirs avec eux. On apprend tous les uns des autres. Ok, c'est cool. Félicitations. Merci pour proposer ton projet à notre communauté et t'es partagé de savoir et tout ça avec la communauté. Jusqu'à date je ne vois pas de questions. J'imagine qu'on va passer au prochain. Qu'est-ce que tu penses de Spline pour tout un mois comparé à une session plus intense comme une fin de semaine? Je pense que c'est intéressant surtout que là par exemple on a eu beaucoup de bénévoles qui étaient des grands débutants en logiciel. Des gens qui ont des fois travaillé dans le secteur du logiciel mais qui ne faisaient pas du tout de développement actif, qui était plus en de la gestion de projet. Ou des gens qui justement ont juste fait un petit peu de script et que c'était vraiment leur premier gros projet dans du web avec des logiciels externes, des dépendances en rest API et autres. C'était très intéressant justement de pouvoir leur laisser le temps, d'aller lire la documentation et leur apprendre à lire le manuel. C'est quand même ça le plus important dans la vie. Des fois les sessions plus intenses qu'on peut faire sur un week-end, des fois même sur une soirée que j'ai pu faire par exemple avec les Pi Ladies à quelques reprises, c'est aussi très intéressant parce qu'on va sur des choses beaucoup plus concrètes et vraiment on t'accole des problèmes réels du projet. Ici il faut être beaucoup plus patient, il ne faut pas que ce soit des problèmes très impératifs pour le projet parce qu'il y a quelque chose qui va prendre beaucoup de temps et si l'utilisateur attend derrière, c'est sûr que ça va être difficile à livrer. Mais pour des grosses fonctionnalités, ça peut être la première occasion pour quelqu'un qui n'a jamais encore contribué à faire une vraie fonctionnalité de A à Z avec la documentation, les tests, l'analyse, le design, l'implémentation, toute l'intégration avec des logiciels tiers. C'est vraiment une super occasion pour des bénévoles d'avoir des choses aussi longs comme ça sur plusieurs sessions. Ok, c'est cool. Je vais vérifier une dernière fois. Ok, je ne pense pas qu'on a d'autres questions pour toi, mais de toute façon tu restes sur Slack avec nous. Tout à fait? Oui, si les gens ont des questions, vous pouvez poser directement sur Slack à Noël. Je suis passé au prochain invité. Ok, merci Noël. Bon, notre prochain invité, c'est justement Noël a introduit un peu. Il s'appelle Yann, et il a contribué au projet de volontariat. Ok, salut Yann. Salut tout le monde, très bien. Je te laisse prendre le contrôle et on se repart tantôt. D'accord, merci. Donc c'est ça, j'ai travaillé avec Noël tout au long du mois de septembre et puis même un peu au-delà sur le sprint pour volontariat et notamment sur la branche qui l'a mentionné, la dernière branche qui était de mettre une fonctionnalité pour permettre aux organismes d'afficher directement des postes et puis à des candidats de candidatés directement. Donc juste pour donner un petit peu de contexte et puis finalement, pouvoir vous montrer, alors attendez, j'essaye de partager mon écran, ça va pas être long. Un instant. Donc c'est ça, contribution au projet volontariat, témoignage d'un amateur. Donc comme l'a dit Noël, je travaille en comptabilité et pas beaucoup d'expériences du codage, mais depuis un an à peu près, j'avais envie de me mettre au développement web et puis mon expérience ressemblait un petit peu à ce qu'on voit à Gophici, c'est-à-dire peut-être pas en cevelis sous les livres, mais plutôt en cevelis sous les tutoriels et puis les vidéos YouTube et puis tout ce qu'il peut y avoir sur Internet comme ressources, sans trop savoir finalement qu'est-ce qui se fait aujourd'hui, quels sont les bonnes pratiques. On voit par exemple un tutoriel sur Django ou sur Flask, pas évident de savoir finalement à quoi ça s'applique. Donc devant ce nuage noir, j'étais un petit peu confus et puis en fait ce que je retiens beaucoup de l'expérience du mois dernier, c'est une sorte d'illumination. J'ai allumé sur beaucoup de choses parce que justement j'ai eu l'occasion avec Noël et puis avec son équipe, les autres personnes qui étaient présentes les lundis soir d'avoir un exemple finalement de projets organisés de façon professionnelle avec des outils récents comme par exemple du REST API et j'ai trouvé ça vraiment très enrichissant et puis ça permettait de progresser très rapidement. Puis également très très motivant, la possibilité finalement d'entrer directement dans un code avec des enjeux, des issues comme la mentionnait Noël et puis tout de suite on peut choisir un enjeu qui a été défini par un organisme sans but lucratif comme étant important, comme étant une fonctionnalité dont ils avaient besoin. Et donc là immédiatement il y a un processus qui se met en place, on est sur des rails, on fork, on clone, on crée sa branche en passant, c'est des choses que j'ai appris à faire parce que je ne savais même pas ce que c'était que forker sur GitHub avant que Noël m'explique. Et puis c'est agréable de travailler en collaboration, d'avoir ces points de rencontre au moins une fois par semaine le lundi pour échanger, avoir des commentaires sur le code. Puis quand ça commence à être un petit peu prêt ou tout simplement quand ça progresse un peu, possibilité de faire une pool request, là encore d'avoir des commentaires de Noël, de pouvoir dialoguer avec lui sur les différentes choses. Et puis on revient à la caisse départ avec de nouveau la base de code. On espère que le nombre d'enjeux c'est maintenant n-1 et puis on peut repartir sur un enjeu nouveau qui est également quelque chose qui a été défini, qui a été demandé par une association Benevol. Donc là encore vraiment très gratifiant de sentir qu'on fait quelque chose qui finalement est immédiatement utile. Sinon, sans vouloir faire une liste d'épiceries, juste pour donner une idée des choses qu'on peut apprendre vraiment en peu de temps, en quelques séances. Au niveau de Django, je ne connaissais pas Django, des notions basse comme serialisateur, je ne savais pas du tout ce que c'était. J'ai découvert pareil, le Django Rest Framework, j'avais jamais entendu parler de ça. Même la notion de Rest API, c'est quelque chose que j'ai découvert en mois de septembre, ainsi que des librairies comme Django Money. J'en ai un petit peu parlé aussi au niveau du contrôle de version. Qu'est-ce que c'est que 4K ? Comment est-ce qu'on peut faire après avoir cloné en local pour travailler alternativement sur deux branches différentes ? Très naïvement, je me demandais si on avait besoin finalement de travailler dans deux environnements en parallèle de cloner comme deux fois le projet dans deux folders différents. Donc là encore, Noël m'a donné une façon beaucoup plus efficace de le faire, qui est la pratique du métier. Et puis pour terminer encore quelque chose que je ne connaissais pas qui est Travis Continuous Integration, que là, le dernier jour quand la pull request a été acceptée, j'ai pu voir comment effectivement ça fonctionnait. Donc vraiment beaucoup de choses intéressantes que j'ai eu la chance d'apprendre en peu de temps et qui m'a permis de bien avancer dans mon projet finalement d'apprendre. Ne serait-ce qu'en amateur, ne serait-ce que pour le loisir, pour le plaisir, à faire un petit peu de développement web ? Également agréable en plus de apprendre Django, apprendre toutes sortes de choses. Noël a un petit peu dit quand il a parlé des avantages d'avoir un sprint qui dure sur un mois avec la possibilité finalement tous les lundis soir de se rencontrer virtuellement au moins. C'est sympa, c'est enrichissant d'entendre parler aussi les gens qui travaillent sur d'autres branches. C'est une occasion d'entendre parler de choses un peu techniques comme Stripe pour les systèmes de paiement ou l'authentification mais parfois des débats ou des choses un peu plus larges. La sécurité sur Internet au sens large, pendant une demi-heure, trois quarts d'heure à lundis soir, il y a eu une discussion vraiment intéressante avec plein d'infos. Aussi ce que j'ai apprécié c'était la possibilité de parler de projets personnels au niveau de programmation, un peu des idées de site web que je pouvais avoir et puis là encore Noël qui me dit de ne pas réinventer la roue, qui me fait découvrir des choses que je connaissais pas. Bon là encore c'est un témoignage de débutants, je pense que tous les professionnels qui sont là ce soir vont trouver ça un peu naïf de dire qu'on sait pas ce que c'est que Elastic Search mais oui, j'ai découvert ce que c'était que Elastic Search il y a quelques semaines. Donc pour terminer, merci à Piton Montréal, à Volontaria, à Doug d'avoir mis tout ça en place, à Noël d'avoir animé et puis de m'avoir donné la possibilité de participer à l'expérience du Zen de Piton, ça a été un mois de septembre très agréable et puis je continue lentement de désespérer à Noël, j'avance très lentement parce que oui il y a les contraintes professionnelles par ailleurs mais vraiment un projet très très sympa que ce Volontaria et ça m'a donné envie de vraiment continuer. Voilà, merci, merci à tout le monde de votre attention. Merci Yann pour cette partage d'expérience que tu as eue à travers cette code Sprint. En fait je suis très content que tu as appris beaucoup de choses. Je pense que je ne pense pas que le monde n'aura des questions à poser à moi que je me trompe. C'est plutôt moi qui est toujours plein de questions. Mais je pense que c'est une question qu'on avait posé à Noël aussi mais je me promets d'opposer aussi en fait c'est que justement on se demandait la formule de fait code Sprint qui dure une fin de semaine ou faire pendant un mois et toi tu penses de quoi le fait qu'on fait pendant un mois ou comme tu peux avoir plusieurs séances pour le temps d'apprendre puis faire des tests puis ensuite d'aller de l'avant. J'ai beaucoup aimé la formule pendant un mois parce que effectivement comme disait Noël il y a la possibilité d'aller lire tranquillement la documentation, de se faire une tête sur des choses que j'avais jamais vu avant. Maintenant j'ai jamais eu l'occasion de faire un Sprint de 24 heures d'une soirée donc je peux pas comparer mais en tout cas l'expérience la formule un mois c'est je trouve ça très fructueux. D'accord parfait merci c'est mais je pense qu'il y avait d'autres personnes comme toi aussi qui ont participé à cette code Sprint là puis c'est le but justement pour nous c'est la mission c'est avant tout de encourager les gens à participer à une cause au BNL comme question communautaire puis de notre côté en même temps de faire un impact puis faire apprendre la langage depuis ton aux gens qui veulent connaître la programmation en fait qui sont soit ils ont l'expérience d'expertise ou soit quelqu'un qui veut juste apprendre de base comme toi en fait. Donc merci en même temps pour ton partage de l'expérience puis on va seulement refaire cette formule là dans le futur aussi. Super merci beaucoup je vois qu'il y a une petite question de Melanie. Des choses à ajouter en fait pas forcément parce que je trouve que c'est très bien organisé sur le site GitHub de Volontaria les issues sur lesquels on peut travailler sont déjà comme ordonnés puis il y a des des issues qui sont étiquetés pour commencer pour justement un débutant j'essaie plus quelle est la formule c'est peut-être bon pour une première découverte mais en tout cas c'est très bien pour pour un débutant vraiment très très bien bon je pense que merci Kota mais Yann pour que merci à vous. Bonne continuation de soirée je reste pas loin. C'est bon oui merci beaucoup. Je vais continuer avec notre un autre présentateur qui comme j'ai dit tantôt c'est que lui c'est Yannick qui a participé au projet de pour la traduit la documentation de Python en anglais en français donc je vais vous inviter Yannick ici. Salut Yannick. Je te laisse prendre le contrôle puis on se voit tantôt. Merci Duc. Bonsoir pithonneurs et pithonneuses et comme Duc le mentionné je vais parler du print de traduction de la documentation de Python qu'on a fait pendant le mois de septembre et donc qu'est ce qu'on a fait c'était vraiment traduit la documentation officielle de Python 3.9 qu'on peut aller chercher sur docs.python.org et Python 3.9 vous savez peut-être qu'il vient juste d'être sorti ça fait trois semaines et donc c'était le bon moment de faire un petit un petit push pour avoir le plus de documentation en français possible pour la sortie de ces pithons 3.9 et puis qu'est ce que je veux mentionner comme choix de projet si vous avez déjà fait la traduction traduit Python ça a des enjeux assez intéressant comme la complexité de la chaîne d'outils je le blamme pas sur Python mais il y a beaucoup d'outils qui sont utilisés pour faire la traduction Python donc il y a des projets pour lesquels on traduit petit fichier texte on ajoute les messages en français on commette ça et c'est réglé pour la documentation Python il y a plein d'outils pour valider le formatage valider la gramma de ces outils là ensuite il y a toute le format toute la chaîne d'outils sur github on fait les pour lui quest on attend que les mainteneurs réagissent à ça et ça c'est un enjeu parce que tous ces outils là bien faut les installer il y en a plusieurs qui sont décrits en Python et donc si on peut les installer avec pip si on est sur un Linux récent on a eu des contributaires qui étaient sur un OS qui était un peu plus vieux et il y avait des problèmes de ce côté là mais je vous donne un exemple ça ici c'est P O edit c'est l'outil qu'on utilise principalement pour changer ces messages là donc vous voyez en haut on a la liste des messages en français et en anglais le message original est en anglais vous avez la version longue du message en anglais et puis la version longue du message en français et j'ai une faute de gramma là dedans donc let me let me switch in english a little bit to to help other people follow so so this tool is helping me to to translate all the messages is listing all the messages and then i i made a mistake here there is a grammatical error and and the tools are really good because they spotted that when i when i validated that file they told me oh look um in french you need to uh your uh adjectives have to agree in number with the subject and and it gives me a really good message here that that's helping me not only to change the message but to understand what i did wrong to and so to become a better french writer at the same time um what else i would say that um the main challenge though was not about the tools it really was about uh building my own internal lexicon of these technical terms that i should be using for translating python so it's about finding good adequate technical terms but also finding technical terms that are consistent with uh the rest of the python documentation so think of of words like duck typing dick like argument parser so if i was speaking with a a french colleague for uh let's say an argument parser i would say parser i would just pronounce it in french and and that would be it you would understand perfectly what i what i mean and that would be good but for the french documentation of python we want something better and so the proper term here is analyzar so it's other terms would work but since analyzar was already used somewhere in the french documentation we go for that top all is an interesting case i won't talk about that i'm and then multi part is very interesting so multi part in the context of emails me dit si parti would work pretty well however if you look at the wikipedia article in french for emails they use composite and composite is actually better because composite think of a composite material it really highlights that you're using two parts that are of a different nature think of fiberglass a composite material you have the glass fibers and the epoxy resin they're completely different but they merge together to form something better so a multi part email typically contains text and images or text with other attachments so composite here is the word that we go for and an interesting one rock paper scissor i'm pretty sure i asked any french canadiens here and they're going to say that we should translate that to rush patisserie and i was surprised when when my pro request was refused and my uh european reviewers said no no no this is pia patisserie and then i researched it and indeed uh pia patisserie is the most common translation through the world for rock paper scissor i thought this was très intéressant et c'est surprenant aussi alors donc on parle de progress oh on parle d'abord donc quand on est en train d'utiliser un mot priori il y a un très bon outil que nous pouvons utiliser c'est-à-dire p o greppe c'est-à-dire qu'il greppe dans les translations précédentes et ça m'a aidé à voir si un mot a été utilisé quelque part d'autre dans la documentation donc ici dix like on peut voir que pour la première translation c'est dix compatible mais sans blab ou dix en aie a été utilisé aussi une fois si vous regardez pour d'autres termes comme file ou quelque chose comme ça c'est-à-dire qu'il serait le plus common translation donc la deuxième instance ici devrait probablement être changée pour dix compatible alors on parle de progress donc on a transité un bunch de files au cours de ce mois et pour beaucoup d'entre eux on a réussi à les mettre à 100% translation 100% completion donc nous sommes vraiment heureux de ça et certains de eux nous n'avons pas été là mais c'est l'effet que nous avons disponibles et nous nous focussons sur le library standard python donc en général nous avons réussi à bouger le library standard python de 55% que l'on a transmis à 49% c'est assez bon mais attends 49% j'ai probablement mis ces numéros dans le bon ordre ou probablement que quelque chose d'autre s'est passé j'ai eu un petit chat with Bukash Langa, the release maintainer, the release manager of python 3.9 and I learned because these numbers were surprising to me as well I learned that python core developers they write software like every one of us they write the documentation last so even though python 3.9 was in a code freeze during that sprint that's that's exactly that moment that the maintain the core developers took to write a lot of documentation in particular with regards to with regards to have it in my notes here random and typing so lots of good improvements that were done in the random and the typing modules for python 3.9 I invite you all to check that but this is what happened here so so even though we did some good progress unfortunately there's still a lot to be done to fully translate the python documentation over the month we worked mostly over Slack so short messages like I have a small I have a problem with using one of the tools or I'm not sure how to translate multi part we had these discussions over Slack and then once a week every Monday we would get together and do something bigger like fully proofread one file or things like that I have a more deeper discussion on on how to translate something how to work a deeper issue with the tool and and one of the benefits of sprinting well mostly is that you get a lot of help you get help with the tools so let's say I'm less familiar with the translation toolchain but I'm more familiar with the git toolchain so I can help people to get their pull request through and they can help me with how to to get a pull grab or pat po to work how it should also help with finding the good technical terms because sometimes yeah there's a couple technical terms that could work for a given word a couple translations and it's a matter of discussing it through to see like which one should we pick and so that the rest of the documentation is going to standardize upon it and then there's motivation I think it's it's a it really helps when you tell a bunch of people okay I'm going to translate our parts and then basically you know that they're expecting you to to to work on that so so the fact that you're sprinting that there are other people with the peer pressure I think that really helps compared to self motivating yourself and say oh I'm just going to translate some stuff today and if nobody is expecting you to finish it it's really easy to not finish it and then why translate well the a big a big benefit of translating relates to the faimment technique if you're familiar or if you're not familiar with the faimment technique it says that if you want to learn something really well practice teaching it practice explaining it to someone and then it's exactly what you're doing when you're translating a file you take a message and you figure out how to explain it in your your native language or in french in this case so in my case it really forced me to reread the english message to run some examples to make sure that I really understood what the original message was trying to convey so that the french message would convey it just as well sometimes I even had to read the the standard library code to make sure that I really understood all the edge cases properly and then the other thing that is really important is that by translating the python documentation in french we're helping a really big crowd that is not as lucky as the people from montreal let me say that in french je pense que pour la plupart des pittonneurs à montréal on n'a pas besoin de la documentation de pitton en français on on a des des programmeurs qui sont très bilingues qui ont une bonne maîtrise de l'anglais qui ont pas vraiment de problèmes à lire de la documentation technique en anglais mais c'est pas le cas partout dans le monde c'est pas le cas pour toutes les sous-groupes de population peut-être que en france les programmeurs dans l'industrie comprennent bien la documentation en anglais mais est-ce que les enfants qui commencent à apprendre à programmer c'est le cas pour eux aussi probablement pas et puis les montréalais ben on a cette chance là d'avoir un un gros niveau d'autonomie dans deux langues et puis on a ce pouvoir là de faire facilement la traduction et puis on peut faire ce don là une grande population et sur ça peut-être que je vous ai incité à vous appliquer so if you would like to contribute to to help bring that number 49% of the standard library that is translated today closer to 100% it's really easy actually you go to the python github there's a sub project called python docs fr and the read me is going to tell you everything you need to know to get started and then you might have un answered questions and and we're there to help you so join our slack go in channel hackathon and channel hackathon docs python fr and ask your questions and and even though the sprint is technically ended a lot of us really enjoyed translating so we're going to keep doing it and if you have questions about it just come and ask us and we'll be really happy to answer your questions and and who was part of that sprint i think this list is very interesting so james fillet myself gabrielle and is it a part of the sprint but i want to mention james in particular because james joined us from cam room absolutely unrelated to montreal but but this person wanted to help translate the python documentation and he saw that we had a sprint and that there was that support group that was meaning regularly to help him with translating some technical terms with a toolchain so he decided to join us and he was very active during that month so so might have to this guy and then is it she also deserves a shout out because she did all the research prior to the sprint to make sure that she could onboard everyone on the tools and uh yeah she did a really good job here on bringing everybody up to speed on what we had to do to sprint and this is it thank you everyone cool thank you so much enic for the presentation and for your feedback c'est vraiment intéressant de donner un point de vue d'où l'importance de tradire comment ça peut aider les gens à initier à plein de nouvelles langages de présentation je pense que la danse tellement claire que je pense pas que monde m'ont posé des questions excellent so i think we are ready to go to the next we do we have next yes yes yes sure sure we have thank you kota when yeah next then so uh okay i we will but uh before move on to the next presentation we will take 15 minutes break to our event that we already create which is the social event so everybody can talk and can like open the camera and try to yep we have the link here for the meet jessey so see everybody there and we will restart 15 minutes later all right thank you mais merci du je me permets de répéter ça en français là mais oui on va se faire un petit 5 à 7 virtuel tout le monde donc on se rejoint sur jettie ça va nous permettre de tout le monde voir nos faces prendre une bière ensemble moi j'ai envie de j'ai manu du bénélux et au prendre un café c'est peu importe c'est quoi votre breuvage favori et puis on on va discuter on va se faire une couple de jokes ou si vous n'avez pas le goût de parler ben c'est le bon temps d'aller faire votre votre pause pour aller à la toilette donc on se prend une petite pause de 15 minutes on recommence à quoi à 16h15 environ 16h17 et on se rejoint sur jettie il y a un mot de passe c'est snake donc meet point jib point ci kayak à pédale on va on va mettre ça sur sur slack et dans les commentaires youtube et le mot de passe est snake on vous va te dire hello hello all right it's time to restart so i will present you then on next presenter who is vahan he will join us about sorry i am okay vahan i let you take the control all right hi everybody my name is vahan as you already guessed from duks presentation and i'm a software engineer that's been working with python 10 plus years now and i i'm i'm about to present to one of my libraries that i worked on throughout the years and i'm gonna share my screen i'm alive okay sorry about that sorry about that let me just try to share your screen yeah there you go there you go good there you go so we beat we beat mac i hope everybody can see what's on the screens i i'm sharing my jupiter notebook here and then let's let's get into it so slow bar slow bar it's basically dict on steroids right it's it's a it's a from so from russian word slow bar which which means basically dictionary no mystery there and you can pip install it from pi pi some notable features you can see on the screen we're gonna go through quickly and let's dive in and see what slow war can do so we're gonna we're gonna import slow bar from slow war i prepared this dictionary beforehand so you guys don't have to watch me type all these things and then let's let's let's create a slow war object we would do it it's straightforward all right so we have a we have a slow war here so what we can do with this guy obviously one of the first things that mentioned in the features we're gonna discuss is the dot access dot notation as you would expect you'd be able to do as many of you guys i'm sure been working slow war having to type a lot of brackets and and quotes at some point if you're doing exploratory work with the with the dictionaries you you come to appreciate less typing i'm sure obviously you would expect nested stuff to work as well yes none of your business 123 that's that's my street so yeah now that's that's pretty straightforward now the question is how do we deal with how do we deal with non-existing stuff right non-existing keys well as you would expect it throws key error but the key point here to notice is that it raises this it raises whatever missing key error class is returning which gives a flexibility to basically redefine it if we take a look at what the default one is it's it's simply a method that returns the object the exception object so you one could think to redefine the class so to subclass a type let's say my slow bar from slow bar there's a lot of Russian words today right more lot of slower and then you would basically redefine this self and return whatever you want let's say we're talking about the restful service contacts in this case you would be happy to do to return a bad request let's say right and obviously i don't have the class imported but you would see you would see how this this would work right anytime you're missing something it would return you a bad request so great so that's basically what what this access dot dot notation brings us right so now that we successfully managed to avoid a lot of typing and stress on our wrists let's move on to a little more serious stuff a little more interesting as I mentioned if you're missing the missing the key it would raise the exception but what if we want to handle this little more gracefully that's where has a method comes in if we look at the signature this these are the things we can pass to has so bio has name true that's bio has age right yes but also we can see that we can pass we can also do so other kind of check let's say age was int it is intentionally string which is not correct but it's it's further down I'll explain but let's say we want to check the type here so what we do is we say check type int and that's gonna basically blow up in your face saying don't think so you had to you had to have a string so if we had obviously a ages int it would pass other helpful other helpful things you can pass to has is let's say allowed values right let's say we only take people that are 50 years or ages right so it's gonna basically throw exception saying your value at age is not from the allowed values obviously forbidden values it would be the opposite and then basically it's a no I think I mis-type something here what do you know might be above well let's not concentrate on this so yeah so that's has right what else we can do with slova let's move on to as as methods so if we do bio and type we see all these as functions here basically it helps you to typecast the different kind different kind of values into whatever you want let's say we had age here right which is a string so naturally would want to have this as an int so that's where as int comes into play and would specify age what it does is also so it's going to return you the value in it all it's also it's going to basically update in place so if we look at bio age here it's going to be actually updated with int let's take un little more interesting case of the birth date so it's seemingly just a no no loose sort of a string and then let's try to see if we get something and you're useful out of it as dt daytime you met guest birth date you know it turns into the time object and also at the same time it's going to update in place the birthday so that's that's the power of as functions so to go back to something i missed a book go back to has so one could use has to build basically validation against your against your data so you could you could you could have something along the lines of schema right and obviously want it to be slower because they turn turn to be a cool thing to have and then you would have to you would build your schema right so name and then possibly going to let's say type it's going to be string string required true etc so one would have this schema and then it's easy to basically imagine a validate bio validate early date if i can spell and then against a schema and then you would basically have errors report it and check by if bio is actually validated against the schema that you build right it's easy to add it's not it's not there though but let's let's you know let's move on to other helpful features so flat on flat let's see now all i can i don't think i have to sort of imagine sort of a to a ridiculous scenario to to think that people use a lot of dictionaries and csv interchangible a lot of us working with data would like to be able to flatten and flatten data and dictionaries are by nature are nested and csv files by law they're flat so let's flatten the dictionary and see what we get so as you can you can see it does take a default separator to flatten things but also it is possible to pass an argument saying i want this to be used and then you would have a flat structure well not exactly as you can see we have we have we have lists which are not flattened for that we would do keep lists false now so now as you can see everything is flattened ready to show up into csv file but what if i mean the other the other way around is just as just as useful right let's say you had this flat structure and then obviously you can do a flat one thing i forget forgot to mention that majority of the the methods that we went through are immutable basically they're returning a new copy of the of slow war without actually modifying the the source and then they majority of them are returning the slow war so you can basically chain you can basically chain things with it chain call it so moving on to next extract and update so these are the one big features that are the basically really a meat of the library itself extract let's say webed by right and then as name suggests you can extract data from it right so more than more than often you you want to to have a waste of extracting a lot of deep nested data from from from dictionaries and it almost always requires a lot of boilerplate code lot of if else is in your code and frankly i don't know how about you i i hate if else a whole throughout my code so i it's it's much cleaner than when they're tucked away and you just can't uh clearly see the logic so obviously this is not super interesting we could have done this before we just got notation but let's see what else we can do with this so we can we can say uh we can add other fields to it right we can we can exclude things from it so basically give me everything except this we can we can do a prefix sort of prefix query doing let's say a star and it's going to return you everything that start with a obviously we can do a lot of nested stuff that we've seen before address let's say a country code this is what you're gonna end up with well what else obviously once you start working on the on this kind of extraction and then you feel the basically power you want to go steps further let's let's see if we can rename this to something more friendly so we can say country code as country code well now we we see that we return actually we were named in the fly on the fly without writing a whole lot of code and if we do want the rest of the stuff also we just add star so now we have everything and i'll talk with we have country code renamed and then actually we do have the address object here as well let's see what else we can what else is possible to do with this magic name right so i don't like the way it's spelled i think it should be titled looks very good what else let's say age now we did we did already typecast it and updated the age so let's let's let's put it back 45 and then let's see age and then we say why don't you typecast it for us yeah so this this is going to return again a new slovar object without actually changing your source source objects which brings you when you're passing things along it gives you a lot of it gives you a things don't break the things don't break when you pass things on and in the call stack and something got changed within the call stack somewhere and then you don't know where exactly it happened so it's good to have an option of doing doing this let's see what else we can do with extract really but let's let's let's see how we can work with with with lists right so i want to be able to what am i what do i want to be able to do let's say i want to be able to add add things on to the list within the within slovar without actually doing a lot of checks if the key is there or or other other other checks beforehand so there's a convenient methods called add add to list which basically gives you gives you a way to add to the existing list let's say let's say music let's say i'm going to add the same thing so if we see now we have we have hobbies but there's you know it's not fun to have things repeating but let's see let's see what what options we have what options we have here oh what do you know we have unique here right i forgot so um what do we do here then we go and say well after you add this why don't you make sure it's unique now we see it is unique right um also as you can guess by the signature you can you can specify the position you want this to be added and also you can pass on a sort key just like you would pass into a sort routine to to make to make this sort uh let's move on to un autre big chunk uh so of of the feature it's it's called update with so just you know so far we we we looked at methods and features that you would work with one like a given a slovar object but what about working with more than one right let's say we want to merge things together which you know as you would do you would do when you're working with data um so i'm gonna i'm gonna quickly create another object another slovar okay let's say var and in it i'm gonna the list and the list of objects basically right and then it's company asl ai et let's let's say this update is going to add another another we want this to add another uh field uh let's say technology used is a list of Python java scripts right okay so okay so obviously what we want to do is we want to update this so obviously update native update won't do it it's going to just override things here let's see how this update with works okay so if we if we could take a look at what i'm gonna make it a little easier to see oh as if we can see it overwrote basically data that we had or with other data with other uh you know other other entries within this list so obviously we have to do something else here uh there's a handy uh if we look at if we again look at uh by the way it's the best way to learn a library uh to do this now the signature we have here we can see uh not bio on it but right so the signature here we have a lot of things that we can use actually so the one thing that we need here is merge to which basically going to let us do the merge the way we want it update work let's say merge to so we want to merge it with work and we run it it's going to complain so basically what it tries to do is tries to merge with the specific item within the list but it doesn't know which one right so that's where it complains and it says well it it must contain a set key what set key ease is basically you specify a key name within the object in this case it's it's company and when we do this you guys can notice it's basically we successfully edit techno without affecting other stuff within the list it could be pretty powerful when you're dealing with a lot of data or you're writing some kind of etl pipelines this kind of sort of functionalities clean up your code nicely and there i say very intuitive to use i'm gonna i'm gonna do one basically use case where this is basically used i i put together quick quickly a flask app and where you can see here i'm using slow bar as a setting incoming setting so you could you could imagine this is something that's passed in a file or from you know from command line when you run your your your app i'm going to use es from prf library you don't have to you don't have to know a whole lot about this only that it works with elastic search and you this is the this is the index that i have in running in my local elastic search and it's basically going to be my model region models i'm going to instantiate flask and i'm going to have a route regions and i'm going to use slow bar again as you can see here i'm getting the query string from the request and parsing it into slow bar having it as parameters and and the rest of the stuff i can explain while i show you what it does so basically here is the endpoint it serves a lot of data it's it's regions as you would imagine from the endpoint and it has different levels admin one admin two country latitude so what we can do with this guy fields which is the the basically a query a keyword i pass in as you could see here this is the fields i fish out from the parameters from query string and i'm passing on basically same thing that i showed you when you couldn't do with with with extract on slow bar so let's say we do you where we have let's say country right oops country now you can see the whole list is filtered down and we have only country within this forgive me to interrupt here can you zoom a little bit here it's very small i think oh yeah yeah sorry about that how is it thank you so much there you go thank you anik so yes now everybody else can see besides me so now what we do here is basically we're passing all the stuff that we type in query string within extract method that i showed you already earlier because because this is what each item is going to go through once we basically query elastic search endpoint which is this don't mind the the lingo here so basically what it does is it gets all the documents from elastic search and then it goes processes cause process item and each item is going to go through so slow bar extract which means we can pass anything that i showed you before for example namely this guy so now we can see all the admin one admin two admin three we can do something like this and then you will have all the flat flatness flat flatty goodness here as you imagine this would be very useful if you want to let's say save it in CSV files again so yeah so just to to use this slow bar to transform basically you're doing etl transformation on very on very granular level for each document and you're getting basically power off there i say you know graphql here but actually running restful restful endpoint so the the lines are actually blurring between graphql and rest and you could imagine you could do basically you could do everything that i showed you and more stuff that i didn't show you right from here without writing a whole lot of code else let's say that's going to be float right there you go so we have now floats instead of strings um let's see uh that's basically it guys uh i would love for you guys to check this out it's on my github as you can see from here you're welcome to check it out we're welcome to contribute it's it's it's public open and basically back to you duk or yanny yeah yeah so i'll be monitoring the questions for this one anyone if you have questions ask them on slack or on youtube tout le monde si vous avez des questions je vais me faire plaisir des traduits pour van vous pouvez les poser sur youtube ou sur slack van maybe you mentioned it and i i was not paying attention uh you said i can pip install it what's the license oh yes right it's MIT license so you guys can take it you can use it can abuse it can do whatever you want with it nice preferably not abuse it but you can use it oh right don't be shy anyone on slack or on youtube or maybe van was just too clear and and there's nothing else too to be asked thank you well you can always reach me on github ping me there if you have any questions on slack or on or on my email which i don't show anywhere here uh uh let me just type it here doesn't have email in their bio so you guys are welcome to contact me with any questions here okay zoom that a little bit more so so people can easily see so it's ivo char at gmail.com is that correct yes yes all right yes very good perfect uh and i guess oh wait wait i think there is a question there is to be a comment one moment uh oh so so what's your next step uh for for this one van like where are you going to take the development of slovar that's yeah interesting question so i've been i've been basically working on this maintaining this throughout the years basically it grew organically you know i i've added features as i needed them um so for example if you if you if you look at the name extract now it's actually not extracting anymore it's not just extracting it's extracting transforming it's doing all a lot of i should probably rename it at some point to etl because it's doing a lot more than extracting so yeah it it evolves you know as as new uh basically uh uh you know use cases come to play but i don't have any definite direction with this uh i'm welcome you know i'm welcoming anybody with directions otherwise you know adding documentation to it is not some something that i could do uh but otherwise yeah i'm welcome to suggestions excellent and we'll probably help you to translate the document the documents once they're written it's already in russian a lot some of it so that's a good step most people don't start with two languages because um and pardon me for for for the the uh bifurcation here but yes once you start anything with more than one language you understand that that the structure has to be different to support translations all right thank you man all right all right uh thank you hawan and yannick so pretty uh cool uh let keep things uh continues and uh interesting i will bring up uh our last uh presenter uh here you go here's shan hey shan hey so uh oui bonjour bonjour toutes et tous je vais juste partager aussi ton écran oui c'est ça okay c'est bon je te laisse prendre le contrôle puis on se voit tantôt parfait merci bonjour à vous donc tel que vous l'avez entendu je m'appelle jean j'ai 42 ans j'ai attendu longtemps avant de pouvoir lire ça et je vais vous raconter une petite histoire de micro contrôleur en tout cas tel que je l'ai perçu donc aussi vous attendez pas à aller en en détail dans des sujets techniques et en profondeur parce que c'est pas le but que vu la présentation c'est de montrer encore une fois à quel point python nous simplifie la vie donc j'ai commencé la petite histoire mon histoire à moi ce ne sera pas trop long je suis une génération des des des jeunes qui ont eu un ordinateur 8 bits il y a quelques années et j'ai fait mes armes là dessus donc un petit peu de basique un petit peu d'assembleur et j'ai j'ai toujours été fasciné par les microprocesseurs avec les mémoires penchées dessus les les éprômes parfois qu'il fallait passer aux ultraviolets et donc j'ai grandi avec avec cette notion là de micro contrôleur c'est à arranger un petit peu à l'école où là il y a une première révolution où j'ai pu toucher un 68 hc 11 qui avait déjà tout intégré donc il y avait un microprocesseur une mémoire une éprôme et on pouvait vous pouvez programmer ce micro contrôleur là en assemblure assez facilement plus tard j'ai l'occasion aussi d'utiliser une un os qui s'appelle os9 qui n'est pas os9 de macOS mais qui a un os toriel qui tourne sur une architecture 68000 mais c'était vraiment vraiment compliqué ça ressemble ça ressemble beaucoup à unix mais c'est pas un unix et je crois que moi sur parole c'était assez compliqué d'utiliser ça ça se programmait en c c'était en regard il y avait plein de choses intéressantes mais compliqué un petit peu plus tard j'ai fini par commencer une carrière et j'ai eu à programmer des micro contrôleurs pique pique de l'impression que j'ai eu était vraiment vraiment populaire mais là où j'étais ils n'étaient vraiment pas pratiques à utiliser les piques qu'on avait devaient programmer en c avec un environnement à la ture bosser sous dose et il fallait effectivement les effacer en les passant 20 minutes sous une entre à ultraviolet comme ça ce qui n'est pas dans nos dans nos développements j'ai fini par proposer l'architecture atmel puis c'est là que le fun commence donc je trouve micro contrôleur atmel j'en ai j'en ai un exemplaire ici qui ressemble beaucoup à ce que je vais à l'époque donc c'est encore micro contrôleur il y a tout ce qu'il faut dedans il y a de la mémoire un microprocesseur de une épreuve pour stocker les programmes je ne sais pas combien sur celui là là dans très sorti et ça se programme en c sous linux autant pour compiler les sources que pour envoyer le programme compilé sur le micro contrôleur donc ça a été une nouvelle révolution j'ai pu avoir des chaînes de développement faciles à utiliser je me suis beaucoup amusé avec cette architecture là j'ai une petite anecdote là où je travaillais des machines à café ont été installées puis ces machines à café évidemment n'étaient pas connectées sur internet à l'époque mais on on pouvait avoir une espèce de portefeuille numérique pour ces machines là donc pour prendre un café fallait insérer sa carte de machine à café puis mettre de l'argent sur la carte acheter son café etc et là j'ai découvert enissant quelques recherches que quelqu'un s'est amusé à fabriquer des cartes à puce comme celle ci pardon avec un design évoquateur et ces cartes là contiennent exactement un micro contrôleur à mail comme celui ci avec une épreuve et tout aussi facile à programmer sur linux je vous laisse deviner la suite donc ces cartes là s'appelle fun six je sais plus qui les fabrique en tout cas le temps est passé et une nouvelle révolution chez là les micro contrôleurs sont devenus vraiment accessibles à tout le monde tous les hobbyistes parce que une compagnie a décidé de sortir de l'ardu inoc beaucoup de monde connaît donc ça c'est un ardu inoc puis ici on retrouve retrouve un micro contrôleur à mail comme je l'ai montré ce qui est très rigolo c'est que on en a un ici aussi qui sert uniquement à la programmation de celui ci donc c'est une étape de plus pour dans la simplification de la programmation sur des environnements embarqués pour le néo de liste d'art du inoc était vraiment populaire il y a eu plein de plein de clout quand on pense à du inoc on pense aussi au rasberry pie et ça commence à devenir sérieux rasberry pie on a un véritable système exploitation je fais tourner avec de bien mais avec les systèmes d'exploitation vient d'autres responsabilités comme avoir des scripts de dénarrage avoir la rotation des log qui va remplir le disque si on ne fait pas attention donc ça vient un petit peu plus compliqué à mettre en oeuvre ce qui est sympa aussi si on le trouve sous ce format là ardu inoc à d'autres inconvénients aussi selon moi j'aime pas tellement leur langage de programmation qui c'est un pseudo c ça ressemble beaucoup à du c c'est du c une sorte de macro c je pense mais les numérotations des pattes d'envers de langage correspond pas à la numérotation des pattes en vrai du micro contrôleur je n'ai jamais vraiment beaucoup utilisé cette cette plateforme là puis l'année dernière en en faisant des recherches pour un projet je suis tombé sur sur l'épicom l'épicom c'est merveilleux c'est une nouvelle révolution donc voici un loupi c'est un produit comme donc c'est un grosso modo la taille micro contrôleur atmel et il y a énormément de choses de suite donc un petit comme basiquement c'est une plateforme usp 32 c'est une autre sorte de micro contrôleur qui embarque un environnement micro python micro python est sous licence et miti si vous vous posez la question donc le comme lui même est fourni comme ça il n'y a pas grand chose dessus donc pour pouvoir développer de suite il y a plusieurs façons il y a les cartes de développement donc celle ci une carte simple avec quelques entrées sorties puis un lecteur de cartes sd mais on en trouve autre oui bien un connecteur pour faire le le charger non on trouve d'autres cartes avec avec un capteur de température d'unité comme je sais c'était l'accès et remettre un gps lte d'autres choses dont je parlais plus tard c'est extrêmement bien documenté donc la doc et c'est à cet adresse là c'est facile à retenir vraiment je courage à aller voir ça et c'est extrêmement facile à utiliser donc on oublie les outils de programmation compliquée les langages compliqués évidemment puis comme propose ses propres outils de programmation un éditeur avec deux choses pratiques mais j'ai plus à l'étude d'utiliser les outils standard pour développer donc j'ai fait un petit démonstration de pour vous montrer quel point c'est compliqué je commence par le mettre à son boitier et ceci c'est un câble usb simple que je branchais qui est connecté à mon ordinateur donc voilà j'ai simplement branché un usb et maintenant j'ai un nouveau port série qui est apparu sur mon ordinateur donc vous allez voir que c'est vraiment simple à utiliser j'ai juste ouvrir un terminal série épiton raide déjà là donc il est apparu sous le port acn0 il ressemble à un modem sous un mac ce serait un autre port puis sous windows ce serait encore un autre nom mais c'est la même chose donc faut utiliser ce port série là à 115 000 200 beaux et voilà je me retrouve avec un simple interprèteur petit on reconnaît au petit flèche je peux essayer de faire quelque chose d'amusant juste pour essayer de vous prouver que c'est bien petit ongles derrière genre pardon interruption je suis persuadé que tu dois être capable de aussi augmenter la taille de la police du côté des mots ah merci beaucoup c'est drôle il n'y a pas de futur dans ce petit ongles c'est rigolo j'avais jamais essayé avant en fait en tout cas c'est petit ongles il y a une exception vous l'avez vu donc c'est facile à reconnaître donc c'est basiquement pour avoir l'interprèteur petit ongles j'ai branché mon contrôleur sur la prise usb et j'ai pris un simple terminal série et j'ai utilisé et c'est tout c'est pas plus compliqué que ça je vais vous montrer un petit démonstration de ce qui peut fonctionner dessus donc j'ai simplement rebranché j'ai mis un petit programme de sa constance donc peut-être qu'on voit les couleurs un petit peu sont les couleurs d'un arc ancienne ça peut vous dire quelque chose en ce moment puis je peux vous même montrer les sources du programme pour montrer à quel point elles sont compliquées donc je vais repartir mon programme avant de leur partir je vais vous montrer aussi à quel point c'est compliqué d'avoir une sortie standard je fermais mon terminal et puis j'ai le rouvrir parce que j'ai débranché et rebranché depuis et si tout va bien oui tout va bien ça va bien j'ai une sortie standard rien à faire de plus donc maintenant je vais vous montrer à quel point ce programme est compliqué puis comment l'obtenir donc je reprends mon dernier étape le le pied contient un espace de stockage puis c'est ce qui va être utilisé pour pour mettre nos programmes ils sont simplement écrit dans un programme main et puis on va aller le regarder tout de suite donc voici un programme extrêmement compliqué où on a une liste de couleurs puis on passe au travers de la liste on change la couleur de la led et puis on affiche la sortie standard que tout va bien on fait ça en boucle avant on prend soin de désactivé de heartbeat heartbeat c'est simplement une petite aide qui est plachée la led pour montrer que le système est en marche donc extrêmement simple comment faire pour mettre ce programme là dessus mais on peut passer par des outils fourni par le pied ou aussi on peut se débrouiller soi même donc quelqu'un est allé écrire un petit programme qui s'appelle ampie qui se connecte sur cette carte là puis qui grosso modo prend l'interprèteur piston à droite le chapitre à droite va ouvrir un fichier et puis écrire le contenu dedans puis c'est vraiment ce qui fait je vais les voir les sources et c'est aussi simple que ça on a d'autres façons de le faire ce que j'ai pas dit tout à l'heure volontairement c'est que en plus de toutes ces belles fonctionnalités fourni par les bordes on regarde attentivement on va voir quelques noms donc on peut utiliser ce module là en wi-fi en bluetooth et puis avec deux arguments un petit peu cryptique lora sx fox donc je vais vous montrer ça donc ce micro contrôleur a du wi-fi intégré je peux même vous montrer je suis connecté et même une adresse sp le système qui est dessus comprend un serveur tel net et fdp fdp peut être pratique aussi pour les mettre le programme dessus j'ai essayé de faire des mots ici et je retrouve mon appartement appartement il peut aussi se connecter aussi facilement en fdp et on va retrouver notre notre arbre essence avec flash et nos programmes donc main main point p c'est ce que je montre tout à l'heure donc on a du réseau intégré dessus évidemment il y a tout ce qu'il faut tous les clients cdp depuis temps disponible dessus et quoi c'est etc on on a un module serveur aussi mais on a aussi d'autres d'autres fonctionnalités intéressantes bluetooth vous savez ce que c'est pas besoin d'en parler il faut aussi bluetooth il y a une limitation pour l'instant c'est qu'on ne peut pas associer de devise comme on fait habituellement je profite d'expérience avec pour l'instant il reste lora et six fox lora je ne parlerai pas aujourd'hui six fox c'est un réseau qui en développement au canada il est un peu plus développé en europe c'est un un réseau radio qui permet de transmettre des messages de faire des choses avec je vais vous montrer un simple programme qui qui tourne dans mon autre ok donc je trouve que j'ai un autre j'ai un autre le p4 sur le bord sur le bord de ma fenêtre je mets dans une boîte une belle antenne puis ce programme là envoie un message qui indique qu'une batterie il reste toutes les minutes j'ai juste des cartes un petit peu parce que les notions intéressantes dans ces contrôleurs là donc il y a un petit peu de poutine au début il montre comment on utilise les bibliothèques précise ici que on veut utiliser le six fox avec les normes en rigueur au canada et aux états unis puis peut-être mexique aussi donc ces deux ça en gros ça indique quelle fréquence on peut utiliser après on mimique on mimique un socket parce que c'est pas vraiment du réseau on va chercher la batterie va chercher l'heure en fait l'heure n'est pas l'heure c'est l'heure depuis quand il a été réveillé la dernière fois une petite chaîne ça on se moque mais ce qui est intéressant c'est que on va envoyer ça sur notre réseau six fox l'autre chose qui est intéressant c'est que ces contrôleurs là sont faits pour avoir le minimum de consommation possible donc le principe c'est ils font leur affaire puis après on les envoie dormir un certain temps ils vont se réveiller ils vont refaire leur affaire et ils vont retourner dormir donc le dernier institution du programme et va dormir pendant 60 secondes donc ce programme là qui tourne actuellement sur mon autre mon autre le pi est en fonction et envoie des messages et ce qu'on fait avec ça après ça je vais partager dans six fox j'ai retrouvé les deux devices j'en ai deux je vois que le deuxième le verse je vous montrais et je sens les verts et en ligne en tout cas vivant on a eu de ses nouvelles il n'y a pas très longtemps on peut aller voir les messages qu'il a envoyé puis on va voir qu'il a envoyé tous ces messages donc qu'il a envoyé à batterie donc il a envoyé que la batterie des 3 volt 91 avant la fois d'avoir le message avant elle était à 3 volt 91 aussi effectivement ça ne consomme pas beaucoup j'ai fait un petit test juste pour avoir de quoi vous montrer et donc j'ai laissé ce programme tourner au rythme de un message par minute et pour une batterie de 1200 mille ampereurs ce qui est environ un tiers de ce qu'est sur nos téléphones portables le programme a fonctionné pendant trois jours et demi c'est une petite idée de consommation donc ces messages a été envoyé puis une fois qu'un message a envoyé à six fois qu'est ce qu'on peut faire avec ça en fait on peut aller configurer des hoocs ou des décolles bacs qui disent ce qu'on fait quand on reçoit un message donc quand on reçoit un message ici on a j'ai paramétré qu'on fasse une requête http à cet endroit là donc si je vois cet endroit là je vais pouvoir trouver des traces de mes messages et je vois mes requêtes récentes avec les mêmes messages ici c'est relativement simple à mettre en place ça fonctionne je peux même vous montrer une preuve comme quoi les messages sont bien envoyés puis c'est amusant dans une démonstration donc j'essaye de vous montrer ça là j'ai dit tout à l'heure que ce sont des messages radio à la fréquence de 902 hertz donc c'est ce que je vais vous montrer normalement on trouve un message par minute donc si on attend une minute on devrait voir un message passé ici j'ai indiqué à mon récepteur radio que je voulais être dans le coin des 903 c'est juste pour mettre 902 au milieu et vous devriez voir un message passé dans très très longtemps c'est assez caractéristique alors ça c'est un bruit qui vient de juste pas ouf alors si on a inquié voilà on a un message ici donc on voit qu'il envoyait en trois morceaux on voit les fréquences fondamentales qu'on a été utilisés ici donc autour de 902 le principe étant que ces fréquences sont plus ou moins aléatoires mais on voit toujours trois messages sur message France y a des gens qui sont amusés à aller observer de plus près ce qu'on voit ici puis essayer de décrypter les messages mais c'est pas assez évident pour des raisons de sécurité les messages sont chiffrés je vais pas élaborer là dessus parce que je vais pas encore rechercher exactement comment c'était fait je vais terminer avec deux petites précisions ok donc une fois qu'on a développé notre application sur notre pico sur les cartes expérimentales on pourrait vouloir passer ça à l'échelle de production pour ça puis comme fourni donc ce module là puis en fait si on regarde de près je sais pas si on pourrait le voir ici on peut voir deux composants il y en a deux il y a le sp32 et puis son voisin juste à côté c'est lui qui est l'interface l'opille et l'aura donc puis comme fourni c'est deux compensants là qui peuvent être soudés ou installés sur sur les cartes les cartes que vous avez fabriqué encore une fois tout est vraiment bien documenté de les schémas de toutes leurs cartes sont disponibles sur leur site internet donc c'est tout à l'heure que l'environnement est micro python dessus il y a possibilité si on veut protéger nos chers développements et qu'on fait du logiciel propriétaire qu'on veut absolument pas qu'on puisse retrouver qu'elles étaient des sources nos programmes il y a possibilité de chiffrer de chiffrer les programmes installés dessus j'ai pas gardé en détail mais basiquement il faut recompiler l'environnement micro python chiffrer les programmes et le tour est joué je me suis demandé aussi ce que coûter six six fox j'ai pas trouvé le prix au canada parce que je regardais tout à l'heure en europe c'est environ 16 euros par an pour pouvoir envoyer les messages qu'on veut voilà ça fait le tour de ce que je voulais présenter des questions merci beaucoup jean et j'ai rappel à tout le monde vous pouvez poser vos questions sur youtube ou sur slack everyone you can ask your questions on youtube or on slack i will be happy to translate them for jean even though i know we can understand english very well jean première question tu nous a mentionné ton âge et puis je me suis dit mais mon dieu cet homme doit avoir beaucoup d'expérience et de sagesse après après ces années à évoluer dans ce monde donc qu'est ce que tu nous recommanderais à jean comme une bonne serviette pour voyager mais il y a des serviettes faites dans un espèce de dessus dont je connais pas le nom mais en général sont grises et très fines elles absorbent beaucoup d'humidité et sèchent rapidement donc si tu as besoin de voyager très loin ce serait la serviette que tu veux en plus dans différents formats je peux aller en chercher une si tu veux l'avoir mais bon je pense que c'est quoi je parlais ok excellent donc micro fibre peut-être ça se peut ok on va inviter les gens à se doter d'une serviette micro fibre ou quelque chose du genre légère pour voyager et je regarde ici si on a des questions oui il y a une question ici est-ce que ça existe un programme comme top dans l'inux pour voir les ressources de notre que notre programme appuyer au consomme j'imagine sur le micro contrôleur alors je connais pas assez un micro pailleton pour ça j'ai découvert et puis j'étais très enthousiasmé de voir à quel point c'était facile de développer avec la première utilisation que j'aurai bientôt c'est de refaire la régulation de mon frigo à bière avec à place du vieux raspberry pie rouillé qui traîne dans le coin à ce moment là sans doute que je regarderai mais pour l'instant j'ai pas de réponse à la question ok ben te mentionner que la consommation en électricité est minimum mais combien de temps ça roule ton truc avec deux batteries qu'est ce que tu as comme batterie et puis qu'est ce que tu as comme comme tendre de l'utilisation l'exemple que j'avais fait pour la présentation c'était un message envoyé toutes les minutes et avec une batterie de 1200 milliamperheurs le système a tenu trois jours et demie donc ça c'est avec un message toutes les minutes 1200 milliamperheurs c'est environ un tiers de ce qu'est sur sur nos téléphones j'avais fait un autre un autre test avec un message envoyé toutes les 15 minutes et le micro contrôleur a fonctionné par pendant environ trois semaines avec la même batterie mais je n'ai pas de j'ai pas de nombre en tête par contre oui c'est bon mais ça me semble beaucoup plus long alors que tu utilises le contrôleur plus souvent non tous les quart d'heure tu fais 15 minutes à la place de toutes les minutes à toutes les minutes oui ok c'est bon excellent donc on va se me voir si on a d'autres questions il semble que non si les gens des questions par la suite c'est quoi la meilleure manière de te rejoindre ben tu m'as envoyé un courriel genre genre surger point au rg excellent mais merci beaucoup genre merci bon c'est ben c'est c'est vraiment intéressant parce que ça fait longtemps qu'on n'a pas eu de présentation avec les les budules comme ça on a eu beaucoup de présentes avant avant on en avait mais là c'est vraiment intéressant j'en merci beaucoup merci aussi yannick pour que les questions donc j'imagine qu'on conclut notre soirée mais c'est toi le mc du c'est donc yeah I think I think we we we done with our presentation and we will keep post the email and on the contact of our presenter to to you if you want to reach out to them to continue the question and discussion and I we would like to thank our partner which is Iwado and thanks all presenters who tellesse à traduire en français yannick oui ok tu nous as de la partie facile merci beaucoup à tous nos présentateurs on avait qui on avait on avait tarik noël yann moi même van et jean et merci à notre partenaire Iwado avec qui on s'associe pour faire des présentations orientées sur la diversité surtout dans le domaine de l'informatique ça va venir très bientôt je pense qu'on va avoir des sujets intéressants associés associés et on vous invite très chaleureusement je mets ici quelques petites notes en bas remplir notre sondage général bit li bit point li slash mtl pie tirer server ça c'est pour les gens qui parlent en anglais je veux mettre plus tard bit point li slash mtl pie tirer sondage notre sondage général il est un petit peu plus long que le sondage qu'on vous donne d'habitude parce qu'on veut comprendre tout ce qui se passe dans votre tête et puis comment on peut mieux vous aider avec montréal piton à quelle heure on devrait faire nos rencontres quel genre de contenu on devrait avoir ce genre de choses donc ça va peut-être prendre un petit cinq minutes mais ça va nous aider grandement à vous donner des rencontres plus intéressantes pour vous je répète sans anglais sondage général bit dot li slash mtl pie tirer sondage c'est un petit peu plus long que la dernière qu'on a usually to ask how you liked the previous meeting so this one we want to know a little bit more about when we should do our meetings what kind of topics we should be covering so please feel that should take you about five minutes and it's going to help us a lot to give you meetings that should be more tailored towards your interest and I see we have a comment here yes oh oui très très bonne mention if you don't want to type that whole thing you can just click in the description of the youtube video it's right there and en français si vous voulez pas taper le url du sondage ce qui est raisonnable vous pouvez cliquer dessus dans la description en vue du vidéo et vous pouvez remplir le tout jusqu'au 10 novembre ça va être la date à laquelle on va compilé les résultats je mets un petit commentaire sur youtube avec la petite bannière qui vient avec pour vous inviter à vous joindre à nous le 30 novembre prochain pour mon alpiton 81 libation octre quoi d'autre je pense que ça conclut tout ce qu'on avait dit à zuc oui c'est ça conclut pas mal donc mais c'est ça fait que ah aussi mais vu que on va faire le présentation le 30 donc ben on a toujours besoin les les présentateurs qui sont intéressants comme aujourd'hui à nous rejoindre donc on vous invite tout à envoyer votre code pour person so mais il y a une chose que je dois absolument le faire c'est ce qui est conclu mon alpiton 81 on vous dit à la prochaine pour mon alpiton 81 non ça conclut 80 et on vous revient à 81 le 30 novembre bye