Several sessions were filmed and we have photos.
You can see all the available medias for this edition

MiXiT soul

Even if it's difficult, each year we try to catch the soul of our event with photos or videos

► See photo album "MiXiT 2019 jour 1"
► See photo album "MiXiT 2019 jour 2"
► See photo album "MiXiT 2019 random"
► See photo album "MiXiT 2019 soirée Sucre"
► See photo album "MiXiT 2019 repas speaker"
► See photo album "MiXiT 2019 visite Lyon"
► See photo album "MiXiT 2019 mixteen"

 

Talk videos

  • 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 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
    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
    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
    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
    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 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 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
    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
    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 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 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.

  • 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 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
    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
    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 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
    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.