planning jour 1 matin 2019
planning jour 1 après midi 2019
planning jour 2 matin 2019
planning jour 2 après midi 2019

Thursday May 23rd


  • Tech Tech
    Thursday May 23rd 10:40 - 11:30

    Voyage au pays merveilleux des Unikernels

    Amphitheatre K

    Venez découvrir ce que sont les unikernels, entités hybrides repoussant les limites entre OS et applications. Si vous vous demandez comment faire tourner une application en ring 0, cette présentation est faite pour vous ! En démo : unikernels bare metal, kvm et sur un provider cloud !

    Les architectures logicielles d’aujourd’hui reposent de plus en plus sur les OS généralistes, les conteneurs et les machines virtuelles. Avec tout ce que ces outils ont apporté, des problèmes perdurent : sécurité, temps de démarrage, poids des images (embarqué)…

    Les unikernels apportent de nouvelles réponses et une approche alternative du déploiement logiciel. Il ne s'agit plus de reposer sur un OS mais d'en extraire les briques utiles à votre application. Les outils dans ce domaine progressent dans leur maturité et leur niveau d’industrialisation. Ils déplacent les frontières entre OS et application, votre application tournant en ring 0 !

    Dans cette présentation, nous aborderons :

    • ce qu’est un unikernel, les concepts associés et son fonctionnement,
    • leurs champs d’application et l’écosytème,
    • une démonstration avec une application distribuée (standard: un reverse proxy, un front et un back) sur unikernels dans le cloud GCP et en local (le tout connecté, grâce aux projets IncludeOS, RumpKernels et RuntimeJS),
    • Q/A.

    Les démos sont un unikernel sur du bare metal communiquant avec un unikernel tournant dans un kvm en local qui lui-même appelle un unikernel déployé sur GCP.

  • Tech Tech
    Thursday May 23rd 10:40 - 12:30

    D'une architecture N-Tiers à une architecture Clean Hexagonale

    Eich room (S02)

    Aujourd'hui, de nombreuses applications ont été développées en suivant l'architecture N-Tiers.

    La promesse de l'architecture hexagonale et de la clean architecture est de simplifier la maintenabilité de nos applications et l'évolutivité qui nous fait souvent défaut.

    En partant d'une base de code java 3-Tiers (Controller/Service/Repository), nous ferons évoluer ce code pour passer à une architecture hexagonale en isolant le coeur métier de tout le reste (outils, briques d'infrastructures). Nous verrons comment séparer les accès à une base de données/un système de fichier/un serveur de mail de notre code métier. Et nous comprendrons ce que ça peut nous apporter dans notre quotidien de développeur.

  • Tech Tech
    Thursday May 23rd 11:40 - 12:30

    Vanilla JS 2019

    Gosling room (S03)

    Imaginez une application Web qui utiliserait toutes les nouvelles APIs des navigateurs en même temps. Ce n'est peut être pas le projet le plus raisonnable pour un besoin client mais pour de la veille, c'est passionnant ! Je vous propose un retour sur cette expérience un peu hors du commun.

    Après une première édition 2018 et des retours encourageant, j’ai poussé toujours plus loin l’expérience avec encore de nouvelles APIs, la principale nouveauté : Web Assembly !

    Je vous propose le retour d'expérience du développement d’un application Web combinant toutes les nouvelles normes du Web. Pour me guider, il y a des règles strictes (sinon on s'ennuie !) :

    • Interdiction totale de l'utilisation de code source externe au projet
    • ‎Volonté d'utiliser autant de nouvelles normes que possible. Quelque soit les univers : HTTP, HTML, DOM, JS, CSS.
    • ‎Tout est autorisé du moment que ce soit une norme non propriétaire et que cela fonctionne dans au moins 2 navigateurs (flags autorisés).

    Nous parlerons d'un bon nombre de sujets :

    • HTTP/2
    • Web Components
    • Web Assembly
    • Virtual Dom
    • State Management
    • Web Workers
    • Service Workers

    Je vous propose de vous présenter les résultats d'un "fun project" qui, pour moi, a sûrement été le plus intéressant et enrichissant depuis longtemps si ce n'est depuis toujours.

  • Tech Tech
    Thursday May 23rd 14:30 - 16:20

    Sortir de son code de confort

    Eich room (S02)

    Nous avons tous nos petites habitudes de code, nos petits réflexes. Et on aime travailler dans cette situation. Cependant, cela biaise notre jugement. Grâce à trois petits exercice d’une heure, je vous forcerai à explorer des solutions dont vous n’avez pas l’habitude.

  • Tech Tech
    Thursday May 23rd 14:30 - 16:20

    Una-Gitlab, le TP à Roulette !

    Lovelace room (S123)

    A l’image de Perceval et Karadock, Logan et Kevin reviennent d’une quête dans la contrée de Gitlab et vont vous compter leurs aventures pleines de découvertes et de rebondissements. L’on espère que Père Blaise réussira à prendre des notes…

    Lors de cette quête, il sera nécessaire de mettre en place une intégration continue pour une armée de développeurs sanguinaires qui ont plein de besoins bizarres… Et à la force de leur épée, de leur courage et pas du tout de l’aide de Merlin (qui ne sait toujours rien faire…), Logan et Kevin vous guidereront afin de créer une CI complète avec job, stage, intégration avec des outils externes (PostgreSQL, Artifactory, Google Cloud Platform, Docker in Docker, SAST, DAST…) tout en la gardant simple et versionnable 😍.

    L’on pourra même finir sur un exemple de mise en place de la CI dans le cloud (Google Cloud ou Clever) pour avoir une CI qui file dans les nuages 🚀.

  • Tech Tech
    Thursday May 23rd 14:30 - 16:20

    Introduction aux Word Embeddings avec Word2Vec

    Dijkstra room (S121)

    Comment utiliser un modèle de réseaux de neurones pour utiliser l'analyse sémantique dans une application ?

    Nous vous présenterons le modèle Word2Vec, qui permet d'encoder mathématiquement la sémantique des mots.

    Durant ce workshop, nous vous guiderons dans la construction de votre propre moteur de suggestion sémantique en Python :

    • vous construirez votre propre modèle Word2Vec ;
    • vous l'entraînerez sur différents jeux de données ;
    • vous apprendrez à l'explorer pour en comprendre le fonctionnement et les impacts des paramètres d'entraînement ;
    • vous construirez un moteur de suggestion.
  • Tech Tech
    Thursday May 23rd 14:30 - 15:20

    WebAssembly dans la vraie vie

    Amphitheatre K

    Une petite conférence pour essayer de cerner ce qu'est cet OVNI dans l'univers des technos web. Ce nouveau standard vient de débarquer dans les navigateurs et soulève pas mal de questions sur ses promesses (rapidité ! cible de compilation universelle !) et sur ses cas d’utilisations concrets.

    Lors de cette conférence je commencerai par un peu d'histoire et de technique pour s'éclaircir les idées et pour voir comment on travaille avec cette techno. Je présenterai ensuite mon retour d'expérience sur une étude menée pour le CNES pour expérimenter l'apport de WebAssembly pour la visualisation et le traitement de très grandes images satellites dans le navigateur. Il y aura de la lecture de format de fichier exotique (JPEG 2000), de la détection d'avions par machine learning et de la détection de nuages par deep learning. On ira même jusqu’à utiliser les Google Cloud Functions pour voir ce que WebAssembly a à raconter en dehors du navigateur.

  • Tech Tech
    Thursday May 23rd 15:30 - 16:20

    Tensorflow, there is no spoon EN

    Amphitheatre K

    With the advance in Artificial Intelligence, neural networks are everywhere! But like all technologies, it has its flaws. Adversarial examples are able to fool neural networks used for critical applications such as self-driving cars, face recognition apps, security cameras... Together, we will see how to generate your own adversarial images and fool a neural network into seeing things that are not there. We'll also see how to defend against adversarial attacks. No Tensorflow, there is no spoon!

  • Tech Tech
    Thursday May 23rd 15:30 - 16:20

    Modern Web Testing: Going Beyond Selenium EN

    Amphitheatre D

    It is safe to say that Selenium WebDriver is the number one testing tool for many software engineers across the globe. However, as the tech world has been growing rapidly, so has the testing industry. More and more UI testing frameworks besides Selenium are gaining popularity.

    These new test frameworks are especially appealing to its users because of the promise to solve speed, maintenance, development and other concerns of WebDriver implementations. These new, non-Selenium frameworks emphasize Rapid Test Development practices, and it has been resonating with the development community.

    In this talk, we dive into test solutions evolved from Selenium like Protractor, and talk about non-Selenium frameworks like TestCafe and Cypress.io. We discuss why these new tools are gaining popularity and continue to disrupt the traditional testing standards of Selenium WebDriver. More importantly, we address how to get started and what mistakes to avoid when first implementing TestCafe or Cypress.io in your team.

  • Tech Tech
    Thursday May 23rd 16:50 - 17:40

    Comment se faire hacker bien comme il faut!

    Gosling room (S03)

    Et encore une fuite de numéros de cartes de crédit sur internet! https://www.infoq.com/news/2018/11/british-airways-data-breach

    C'est révoltant n'est-ce pas ? Mais attends, qu'est-ce qu'on fait nous pour s'assurer que notre appli n'est pas une passoire?

    Dans cette live-coding-hacking session, venez découvrir les erreurs les plus communes en sécurité, que la grande majorité d'entre nous font sans même le savoir!

    Après cela, vous ne verrez plus votre application de la même manière...

  • Tech Tech
    Thursday May 23rd 16:50 - 17:40

    Mettre en place une chaîne de livraison continue pour vos applications serverless

    Amphitheatre K

    Les architectures sans serveur vous permettent de construire et deployer des applications sans avoir à provisionner, gèrer et surveiller des infrastructures classiques (serveurs, OS, middleware etc). Après avoir montré comment créer rapidement une API sans serveur, nous vous montrerons comment mettre en place une chaîne d'intégration et de déploiement continu pour vos backends sans serveur sur AWS.

  • Tech Tech
    Thursday May 23rd 16:50 - 17:40

    La 5G, 40' pour (presque) tout comprendre

    Dijkstra room (S121)

    La 5G arrive à grands pas et de nombreux médias et industriels commencent à en parler. Ce fut notamment le cas lors du Mobile World Congress (MWC) qui s'est tenu à Barcelone en février dernier.

    Alors que le processus de standardisation n'est pas encore tout à fait finalisé, certains d'entre vous se posent sûrement de nombreuses questions : qui sont les acteurs ? quand ? que cela va-t-il changer ? quelles sont les technologies qui se cachent derrière le terme "5G" ?

    Au cours de cette présentation, j'essayerais de répondre à ces questions. Nous parlerons notamment de 3GPP, de mmWave, NFV, 5G-New Radio, Massive IoT, LPWAN, ou de beamforming.

  • Tech Tech
    Thursday May 23rd 16:50 - 17:40

    Machine Learning in an Agile World: Keeping Models Fresh with Continuous Intelligence EN

    Amphitheatre D

    Increasingly, machine learning is finding its way into production systems. More and more people are learning data science, and AI tools and frameworks are getting better every day. Nevertheless, researching, implementing, deploying, and maintaining a machine learning application is still a challenge, and many struggle to develop AI systems with the same pace, flexibility, and agility that they develop deterministic software and service. In this talk, we'll explore Continuous Intelligence—a set of working principles to keep machine learning models up-to-date and maintainable, including why it is critically important that they are so.

Friday May 24th


  • Tech Tech
    Friday May 24th 10:40 - 12:30

    Venez coder votre 1ère application Flutter !

    Eich room (S02)

    Le 4 décembre dernier Google sortait enfin la 1.0 de Flutter, leur nouveau SDK open-source pour créer des application iOS et Android performantes et adaptées à l’OS. Sur le papier ça a l'air intéressant, mais est-ce que ça vaut la peine de s'y investir ? Pour nous la réponse est clairement oui !

    C'est comment coder avec du Flutter ? ‘Un peu comme React Native ou Xamarin ?’ Oui, un peu… mais avec une intégration avec les widgets natifs et des niveaux de performance qui vont au delà de ce que Xamarin ou React Native peuvent proposer, le tout avec très peu de lignes de code.

    Dans ce bootcamp nous allons faire une introduction pratique à Flutter. Et lorsque je dis pratique, c’est du pratique, vous allez code : vous partez à la fin en ayant développé une petite application Flutter tournant sur Android et iOS, et plus important encore, en ayant intégré les principes basiques du développement sur cette plate-forme.

    PREREQUIS INDISPENSABLE, vous devez apporter un ordinateur (PC portable ou MacBook) avec un environnement Flutter opérationnel en ayant suivi les 3 étapes suivantes :

    Si vous affichez l'application de base dans un émulateur c'est tout bon !!!

  • Tech Tech
    Friday May 24th 10:40 - 11:30

    Vers l’infini et au-delà avec Angular !

    Amphitheatre K

    L'un des problèmes que l'on rencontre souvent avec Angular est: "Comment faire évoluer mon projet tout en gardant de bonnes performances et une structure propre ?"

    Pourtant, de nombreuses pratiques et outils existent et sont simples à mettre en place pour qu'Angular reste très performant à la fois au chargement et au runtime. Il suffit de venir les découvrir au travers de ce talk qui sera accompagné de live coding afin de directement passer de la théorie à la pratique !

    De l'AOT au Lazy Loading en passant par les stratégies de détection de changement, venez découvrir comment aller vers l'infini et au-delà avec Angular.

  • Tech Tech
    Friday May 24th 10:40 - 11:30

    Meetings With Remarkable Trees EN

    Amphitheatre D

    Everybody knows the classic cons list. Clojeurs brag about their bitmapped vector tries. Haskell weenies took it up a notch with their impossible finger trees. Rustaceans turned back the clock and gave us simple arrays again.

    All of these have shortcomings. Hickey tries are magically indexable but the only other thing you can do to them is add things to the end. Finger trees are absurdly flexible but you can't index them efficiently. And so the search goes on...

    And today, you're going to learn about the ultimate list data structure: the RRB tree ("relaxed radix balanced tree") is an improved version of the tried and tested Hickey trie, which has achieved the impossible: /every/ basic operation is efficient - push and pop on either end, index lookup, split and join. RRB trees pull no punches.

    Watch as Bodil shows you diagrams with brightly coloured boxes in an enthusiastic effort to explain why data structures are amazingly exciting.

  • Tech Tech
    Friday May 24th 11:40 - 12:30

    Building stateful, resilient and complex serverless systems while orchestrating old-school services EN

    Amphitheatre D

    Serverless functions are by definition stateless. Also, when they crash there's no „top function“ out-of-the-box that will notice it. Building complex workflows with them mean that you'll usually use a whole bunch of queues, and place logic that determines what's the next step inside of each function (where it shouldn't be), instead of in a central place. Now enter Durable Task Framework and its Azure „implementation“ Azure Durable Functions. They come with event-sourcing available out-of-the-box, meaning that all of a sudden your functions can remember state. Developing complex workflow is no different that awaiting for some Tasks in your „console C# app“, and chaining and error handling is built in. So all of a sudden your serverless system start having simple, and clean code while being resilient. Not only that, but you'll be able to call some non-functions services, place your function to sleep (which doesn't incur costs), and wake out once the external event URL has been triggered. Enough said, let's build some live demos during this session 😉

  • Tech Tech
    Friday May 24th 11:40 - 12:30

    Knative, OpenFaaS, Kubeless : la guerre des frameworks serverless est lancée !

    Amphitheatre K

    Avec le récent lancement de Knative par Google, la guerre des frameworks serverless est officiellement déclarée ! Durant ce talk, je vous propose de revenir sur la genèse de ces frameworks et de vous présenter les pour et contre de chacun de ces frameworks.

  • Tech Tech
    Friday May 24th 14:30 - 15:20

    Introduction au T(ype)DD avec F# et web app réactive avec Fable.io

    Gosling room (S03)

    La programmation fonctionnelle est de plus en plus mise en avant, mais pourquoi? Qu’y a-t-il de différent avec la POO?

    Nous vous proposons de partir d’un kata bien connu pour illustrer les différences (implémentations en C# existantes) et dédiaboliser la soi-disant complexité de la programmation fonctionnelle. Les différences de notation forment le principal obstacle, une fois passé, la programmation fonctionnelle n’est pas plus compliquée. Nous aborderons le langage F# pas à pas en illustrant notamment le système de type (dit de “types algébriques”) pour avoir un design piloté par les types (TypeDD).

    En bonus, nous vous montrerons comment créer une web app réactive du kata en F# avec Fable.io (transpiler F# vers JavaScript) et Elmish (oui la référence au langage Elm est fait exprès).

  • Tech Tech
    Friday May 24th 14:30 - 15:20

    Le Web, ses frameworks et ses standards : déconstruire pour mieux (re?)construire

    Amphitheatre C

    Dans le monde merveilleux du frontend Web, les frameworks et leurs écosystèmes vont et viennent. Cette course folle fatigue une grande partie des développeurs. Pourtant, nous continuons à faire des choix d'architecture qui nous pousseront demain, à jeter et réécrire beaucoup de code.

    Il est devenu trop facile de s'enfermer dans un framework/écosystème X ou Y et trop facile de limiter ses connaissances à ce qu'il propose. On en oublie les problèmes de bases, les fondamentaux, et le plus souvent cela nous pousse à écrire du code qui mélange les couches (UI, accès au DOM, accès aux données, router, state manager...) et qui résiste mal au temps.

    Au menu de cette session, je vous propose de décortiquer les différentes parties qui composent les frameworks Web modernes :

    • Pourquoi utilisons-nous ces outils ?
    • Quels problèmes nous aident-ils à résoudre ?
    • Comment réduire l'adhérence et le couplage de notre code avec ces écosystèmes ?
    • Comment produire du code de meilleure qualité, à l'épreuve du temps, de la hype et des évolutions des standards du Web ?
  • Tech Tech
    Friday May 24th 15:30 - 16:20

    Applications web efficaces avec Spring Boot 2

    Amphitheatre C

    Comment peut-on améliorer l'efficacité et la scalabilité d'une application web existante? On pourrait complètement la réécrire, avec de la programmation concurrente, fonctionnelle, ou réactive. Mais est-ce que ça vaut vraiment le coup, sans mesurer et savoir où concentrer nos efforts?

    Dans cette présentation, Stéphane et Brian vont travailler sur une application Spring Boot MVC existante pour la rendre plus efficace. Ils vont remplacer `RestTemplate` par `WebClient` et utiliser des opérateurs Reactor pour améliorer la scalabilité, sans tomber dans les pièges de la programmation concurrente. Ils vont utiliser des métriques fournies par Spring Boot, en ajouter des personnalisées, et garder un oeil sur les gains de capacité dans des dashboards.

  • Tech Tech
    Friday May 24th 15:30 - 16:20

    REX après 2 ans de PWA en production chez un client

    Amphitheatre K

    Le but de ce talk est de partir d'un retour d’expérience sur la mise en place depuis 2 ans d'une PWA (Progressive Web App) dans le cadre d'une refonte complète du SI chez ENEDIS (pour les industriels et non linky). Le contexte projet a comme particularité différentes contraintes comme la seule utilisation d'un navigateur et l'existence de situation où le réseau est en mode dégradé voire inexistant.

    Différents axes seront ici expliqués :

    • Historique/explication du pourquoi d'une PWA dans ce contexte et notamment dans le cadre d'une application devant fonctionner en mode "déconnecté"
    • Possibilités/Evolution mais aussi les limitations et "zones de flou" autour de ces technologies (service-worker, stockage navigateur, etc.)
    • Comment tester (utilisation du BDD et TDD via JGiven et Jest)
    • Comment les utilisateurs ont accueillis le passage d'une application bureautique lourde à une Web App

    Bref, ici plutôt que de "prêcher" une technologie et/ou un framework, nous allons voir en quoi ce choix nous a aidé à répondre à un ensemble de contraintes, de besoins et d'usage. Mais surtout, quels en sont les avantages et les inconvénients.

  • Tech Tech
    Friday May 24th 15:30 - 16:20

    ⏰ CSS Clockwork

    Gosling room (S03)

    Souvent décrié, le CSS est pourtant puissant, et surtout fun. Aujourd’hui alors qu’on est entré dans l’ère post-IE, on peut utiliser beaucoup plus sereinement cette puissance ; pourquoi passer à côté !

    Cette session de live-coding d’une horloge est l’occasion de montrer quantité de trucs et astuces utiles quotidiennement pour les développeu·rs·ses web. Nous aborderons en particulier les custom properties (c.-à-d. CSS variables), les transformations, les animations, les compteurs, et un peu de positionnement.

  • Tech Tech
    Friday May 24th 16:50 - 17:40

    Mon premier service en Rust

    Lovelace room (S123)

    Vous avez surement entendu parlé de Rust, ce langage qui est à la mode mais qui ne semble pas vous concerner.
    Parce que bon, un langage sans VM, ultra performant, c'est sympa, mais c'est difficile de voir comment l'utiliser pour des besoins "standards". Et à chaque fois on présente comment faire des outil en CLI ou comment la mémoire est efficacement gérée ...
    Bref on a l'impression que c'est un langage réservé aux ingénieurs systèmes et on le compare à du C.

    Et si je vous disais que l'on peut faire des webservices en Rust, de manière simple et élégante et que l'on garde tout les avantages classique du langage (performance, safety, ...) ? C'est ce que je vous propose de découvrir dans cette session.

  • Tech Tech
    Friday May 24th 16:50 - 17:40

    Choisir entre une API RPC, SOAP, REST, GraphQL? Et si le problème était ailleurs ?

    Dijkstra room (S121)

    Posons-nous et profitons de ce talk pour prendre un peu de hauteur sur l'état de l'industrie tech autour de la création d'API de persistence (CRUD).

    D'où venons-nous, ou allons-nous ? Pourquoi le choix entre RPC, SOAP, REST et GraphQL n'est peut-être qu'un sujet de surface qui cache un problème bien plus profond.

  • Tech Tech
    Friday May 24th 16:50 - 17:40

    Migration de 6play vers Le Cloud, retour d’expérience

    Turing room (S122)

    En 2018, nous avons entamé la migration de la plateforme 6play vers Le Cloud. À présent, nous pilotons notre infrastructure AWS avec Terraform, utilisons des services managés et déployons nos applications sous Kubernetes.

    Pendant cette conférence, vous découvrirez comment nous avons réalisé cette migration. Vous trouverez des réponses aux questions que vous vous posez si vous envisagez de revoir votre hébergement. Comment avons-nous transformé notre infrastructure ? Quels impacts sur nos projets ? Comment nous sommes-nous organisés ? Quels choix avons-nous effectués tout au long du processus ? Qu’avons-nous appris, qu’avons-nous fait évoluer ? Comment nos équipes se répartissent-elles les tâches ? Avons-nous dû adapter nos applications PHP ? Quelles difficultés avons-nous rencontrées, quels compromis avons-nous acceptés et quelle route nous reste-t-il à parcourir ?

    Je commencerai par présenter les bases de l’Infrastructure as Code avec Terraform et de l’orchestration de conteneurs avec Kubernetes. Nous enchainerons avec un retour d’expérience de notre migration de la plateforme 6play vers Le Cloud.

  • Tech Tech
    Friday May 24th 16:50 - 17:40

    Que deviennent nos mots de passe après un leak de données ?

    Eich room (S02)

    De nos jours, les leaks de données sont devenus monnaie courante. On entend parler quotidiennement de failles exploitées sur nos sites préférés, qui ont rendu nos données vulnérables et disponibles dans la nature. Dans ce talk, nous vous proposons de découvrir ensemble à quoi peut ressembler une base de données fuitée et ce qu’on peut en faire.

    Nous vous montrerons entre autres (avec des démos) comment récupérer des mots passe à partir de ces fuites ainsi que les différentes fonctions de hachage, mais surtout comment les craquer !

    Pour finir, nous verrons ce que chacun peut faire pour se protéger en tant qu’utilisateur.

  • Tech Tech
    Friday May 24th 16:50 - 17:40

    Remake de jeux rétro avec Vue.js

    Amphitheatre C

    Quoi de mieux que de recoder son jeu préféré pour apprendre une nouvelle techno ? Nous allons nous replonger dans notre enfance pour découvrir les concepts de Vue.js en codant un clone de Pokemon Red.

    Un jeu n'est rien d'autre qu'un joueur interagissant avec un univers représenté à l’écran. Et Vue est un framework pensé pour isoler interactions, informations (qui décrivent l'univers du jeu) et la représentation visuelle basée sur ces informations. Nous verrons ensemble pourquoi Vue est un outil adapté au développement de jeu et qu'inversement, le développement d'un jeu offre un bon angle pour découvrir les concepts clés de Vue.