Présentations

Keynote

JUG Summer Camp Team & guest   Keynote  /  Keynote  /  beginner   09:30 - 10:00   Salle Casoar Tadorne

React en 2019

Benjamin Cavy Yvonnick Frin   Conférence  /  Web  /  intermediate   10:00 - 11:00   Salle Casoar Tadorne

React 16 a apporté son lot de nouveautés mais a aussi préparé le terrain pour des changements plus importants comme la refonte du cycle de vie des composants. Sans parler des annonces faites récemment à propos de Suspense… Vous l’aurez compris le monde React bouge beaucoup en ce moment. Il est temps de faire le point.

Ensemble, parcourons les nouveautés comme la Context API, la gestion des références, lazy et memo mais aussi les propositions encore à l’écriture comme l’API Hooks ou Suspense. Nous présenterons ces concepts au travers d’explications théoriques appliquées à la migration d’une application React 15.

J'ai déployé mes apps sur Minikube... maintenant je fais quoi ?

Horacio Gonzalez (LostInBrittany)   Conférence  /  DevOps  /  beginner   10:00 - 11:00   Salle Chanchardon

Ces derniers mois Kubernetes est partout, en terme de buzz word on peut difficilement faire mieux. Et comme souvent lorsqu'un sujet est si populaire, vous avez des tutoriels, billets de blog et talks par milliers, expliquant comment bien démarrer sur Kubernetes. Tout va donc bien dans le meilleur des mondes, non ?

Et bien non, pour être honnête. Car l'immense majorité de ces tutoriels, articles et talks s'arrêtent juste après le Hello Kube, lorsque vous avez quelques applications tournant sur votre MiniKube sur le laptop. Et là, c'est pas la fin, mais à peine le principe…

Dans ce talk je vais parler de cet écart entre MiniKube et une infra de production, de l'intérêt des infrastructures Kubernetes managées, des pièges et du vendor locking, de comment arriver à faire assez confiance dans sa solution pour faire tourner du Kubernetes sur Kubernetes et d'autres sujets de ce type.

Créons notre première API avec NestJS

Aurélien Loyer Emmanuel Demey   Lab  /  Web  /  beginner   10:00 - 13:00   Hall de l'espace Encan

Depuis le temps que vous allez à des conférences, vous avez sûrement participé à des codelabs JavaScript essentiellement sur vos framework frontend.

Depuis peu, un nouveau framework sort du lot, et c’est un framework backend : NestJS.

Simple à prendre en main, respectant les principes d'Angular et sa facilité d'utilisation, NestJS sera réconcilier les “insatisfaits” de Node, Express et ses plugins grâce aux principes de Controllers, Providers, Modules, ou encore Middlewares qui vous aideront à organiser votre projet.

Pendant ce codelab, mettons en place notre premier backend à base de NestJS et ses bonnes pratiques poussées par la communauté de ce framework.

#Node.js #Express #TDD #Beer #NestJS #Angular

CI/CD FIVE MILLION WORKERS

Coenen Benjamin Richard LT Guiheux Steven   Conférence  /  DevOps  /  beginner   11:00 - 12:00   Salle Chanchardon

Venez découvrir comment toutes les applications du SI OVH sont construites, testées et déployées. Aujourd'hui après avoir fait un bilan de l'année 2018 nous avons comptabilisé 5,7 millions de jobs qui ont été lancés sur notre infrastructure sur une année. Pour en arriver là nous avons donné naissance à CDS, un outil de CI/CD totalement opensource développé en Go qui nous permet chez OVH de scale sur différentes infrastructures sans compromis. Au travers de workflows et de pipelines, découvrez une nouvelle façon de tester, construire et déployer vos applications. Plate-forme CI/CD évolutive, scalable, multi-tenant, self-service. Définissez vos workflows comme vous l'entendez et soyez prêts à déployer une multitude de services en un clic.

Mots clés: opensource, ci/cd, continuous delivery, kubernetes, openstack, golang, workflow, pipeline, devops.

Comment se faire hacker bien comme il faut!

Julien Topçu   Conférence  /  Architecture  /  beginner   11:00 - 12:00   Salle Casoar Tadorne

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…

Kubernetes, attention aux apprentis magiciens

Louis Tournayre   Quickie  /  DevOps  /  beginner   12:00 - 12:15   Salle Chanchardon

La promesse de kube est belle : Déployer et manager vos applications. Mais est-ce réellement si simple ?

Dans cette présentation je vous partagerai 5 points qui me semblent importants avant de basculer sous K8S :

  • Vous devez comprendre et connaître les différentes typologies d’applications de votre SI, attention au golden hammer !
  • Vos applications doivent être “kube friendly”, qu’est-ce que cela signifie et implique ?
  • Votre (ou vos) cluster doit être supervisé, comment, par qui/quoi ?
  • Kube peut/va tomber en panne, comment allez vous gérer ces pannes ?
  • Tous les 3 mois une nouvelle release de kube est disponible, vous allez arriver à suivre (sans compter les potentiels CVE qui exigent de mettre à jour le cluster…)?

3 techniques faciles de manipulation

Marie Viley   Quickie  /  Random  /  beginner   12:00 - 12:15   Salle Casoar Tadorne

Qui ne s’est jamais fait manipulé ? Évidemment, on est tous allé à une soirée alors qu’on en avait pas envie, on a tous acheté un truc sans en avoir besoin et on a tous été influencé par ses proches.

L’idée de cette présentation est de vous ouvrir les yeux sur les relations et les influences entre les gens. Je vous exposerai les mécanismes de prise de décision au travers de 3 techniques simples de manipulation.

A la sortie de ce talk, vous devriez être moins influençable et maître de vos décisions (voir même manipuler les autres).

CORS, XSS, CSRF, SQL injection #BackToTheBasics

Adrien PESSU   Quickie  /  Web  /  beginner   12:15 - 12:30   Salle Chanchardon

Pas besoin d'être RSSI ou DevOpsSec pour se soucier de sécurité. Que l'on soit développeur back ou front, la sécurité est l'affaire de tous. Pourtant, on l'a confit souvent aveuglement à nos frameworks. Mais alors comment vérifier la sécurité de nos données et de nos utilisateurs. A travers quelques démos, nous allons voir les failles les plus basiques : CORS, XSS, CSRF et SQL injection

Gagner des super pouvoirs avec le terminal

Siegfried Ehret   Quickie  /  Random  /  beginner   12:15 - 12:30   Salle Casoar Tadorne

Nous allons parcourir le monde merveilleux du terminal, en démarrant par le shell pour aller vers quelques applications bien pratiques comme abook, feh, fzf, httpie, pass, ranger, thefuck, tig…, pour faire de vous la seule personne capable d'utiliser votre ordinateur.

Note: je ne répondrais pas au débat ultime: (neo)vim vs emacs :-P

Project Loom : la concurrence au bout du fil

Arnaud Bos   Quickie  /  Langages  /  intermediate   13:20 - 13:35   Salle Casoar Tadorne

Le domaine de la programmation concurrente utilise le champ lexical de la filature et nous met les nerfs en pelote avec des concepts qui s'entrelacent : fibers, threads, lightweight-threads, green threads, loom…
Peut-être avez vous également entendu parler de coroutines ? Rassurez-vous, tout est lié.

En 15 minutes je vous donnerai un aperçu de ce que le projet Loom ambitionne d'apporter à la JVM et de quelle façon vous pouvez déjà en profiter, sans trop tirer sur la corde, avec Quasar.

REX : entamer une migration Kotlin dans une DSI Java

Jean-Phi Baconnais   Quickie  /  Langages  /  beginner   13:20 - 13:35   Salle Chanchardon

Au sein de la DSI de Pôle emploi, les infrastructures back end sont depuis une dizaine d’années faites en Java et le choix des langages n’est pas (encore) déterminé par les équipes de développement.

Kotlin utilisant la JVM, il est désormais possible d’intégrer du Kotlin dans des projets java. Dans ce REX je vous présenterai la manière dont nous avons pu entamer l'intégration du Kotlin dans nos composants back end Java, les problématiques rencontrées, mais aussi les opportunités qui s'ouvrent à nous pour la suite.

Event loop et asynchronisme en JavaScript

Benjamin Cavy   Quickie  /  Langages  /  intermediate   13:35 - 13:50   Salle Casoar Tadorne

Sans utilisation des web workers, JavaScript est un langage monothread, qui offre toutefois la possibilité d'exécuter du code de manière asynchrone.

A travers une exploration du fonctionnement de la stack, des diverses queues et de l'event loop, ce quickie sera l'occasion de mieux comprendre le fonctionnement et les limitations de cette gestion l'asynchronisme en JS.

Postgresql + json : bye bye JPA et passe le bonjour à mongo

Delegue Alexandre   Quickie  /  --  /  beginner   13:35 - 13:50   Salle Chanchardon

  • Quelqu'un : Les ORMs c'est vraiment de la @%ù%$, franchement moi j'en utilise pas
  • Moi : à ouais tu utilises quoi alors? Par exemple pour gérer ton mapping objet quand il y a des relations
  • Quelqu'un : Au fait, t'as pensé quoi du dernier épisode de game of throne ?

Une des features star de JPA, c'est la possibilité de mapper les relations entre objets. Malheureusement tout le monde sait que cette feature amène aussi beaucoup de souffrance.

Dans ce talk 100% (ouais ok 80%) live coding, je vous proposerai une alternative à JPA en utilisant le support json de postgresql. On parlera requêtage json, aggrégations json et on ira jusqu'à stocker et indexer du json voir même faire des jointures entre json. Tout ça afin de pouvoir gérer facilement le mapping objet côté java.

101 - Self-Marketing for Developers

Julien Landuré   Conférence  /  Random  /  beginner   14:00 - 15:00   Salle Casoar Tadorne

Nous sommes tous curieux et passionnés dans les communautés de dev. Nous aimons partager nos connaissances, présenter nos idées et challenger l'existant avec notre ouverture d'esprit.

Comment diffuser cela plus largement à l'extérieur ? Quelles sont les bases pour créer "sa" marque ? Comment initier cette démarche ?

L'idée est de présenter quelques concepts du Self-Marketing et d'imaginer ensemble une déclinaison pour nous développeur.

A la découverte de la réalité augmentée avec ARCore

Jérémy Voisin Christophe Jollivet   Conférence  /  Mobile  /  beginner   14:00 - 15:00   Salle Chanchardon

Avec les annonces de l'arrivée de la réalité augmentée (ou RA) dans Google Maps et Google Search sur Android lors de Google IO 2019, nous constatons que la RA va prendre une place de plus en plus importante dans notre quotidien. La sortie d'ARCore en mars 2018 sur Android a simplifié le développement d’application en RA sur Android.

Au cours de cette session, nous vous proposons de découvrir ARCore, via l’utilisation dans un navigateur, des applications natives ou des moteurs 3D comme Unity ainsi que les CloudAnchors qui permettent la persistance et le partage de positions d’objets dans les scènes de réalité augmentée, y compris avec des utilisateurs d’iOS.

Après une initiations aux concepts liés à la RA (meshes, 6 DoF,…), nous présenterons les différentes fonctionnalités d’ARCore. Nous discuterons aussi des différentes approches d’utilisation, de leurs limitations et avantages au travers d'une application de cartographie 3D en réalité augmentée.

Apprenez à sécuriser votre cluster kubernetes par la pratique

Eric Briand Pierre-Yves Aillet   Lab  /  Architecture  /  advanced   14:00 - 17:00   Hall de l'espace Encan

Habituellement, lors d’un challenge de sécurité type CTF ( https://ctf101.org/ ) l’objectif est de trouver la faille. Nous vous proposons de faire l’inverse : sécurisez un cluster kubernetes pour faire face à des mauvaises pratiques et failles courantes.

Lors de cet atelier, vous aurez à disposition un cluster kubernetes soumis à différentes attaques. Vous serez alors accompagnés pour mettre en place les bonnes contre-mesures et sécuriser votre cluster.

Prérequis : avoir son ordinateur, être à l’aise avec le shell et connaître les concepts de kubernetes et des conteneurs

Du load balancing sans load balancer

yan bonnel   Tools in Action  /  DevOps  /  intermediate   15:00 - 15:30   Salle Chanchardon

Tous le monde n'a pas les moyen de s'offrir du "vrai" load balancing.

Nous verrons comment mettre en place un load balancing à l'aide des DNS tout en ayant du fail over.

Leaflet: it’s time to leave GoogleMaps

Guillaume Soldera   Tools in Action  /  Web  /  beginner   15:00 - 15:30   Salle Casoar Tadorne

Pour afficher une map sur le web, la plupart des développeurs pense directement à GoogleMaps. Mais il existe une vraie alternative gratuite : Leaflet.

Leaflet est une lib JavaScript open source qui offre de nombreuses possibilités, permettant des cas d'utilisation basiques comme des scénarios plus avancés. Durant cette session, je présenterai les bases de cette lib et je montrerai sa simplicité d'utilisation avec différents exemples.

Micronaut, le framework JVM ultra-light du futur

Olivier Revial   Tools in Action  /  Langages  /  beginner   15:30 - 16:00   Salle Casoar Tadorne

Temps de démarrage proche de la seconde, empreinte mémoire de 10 MB, pas de réflection, approche orientée "cloud native" : autant de caractéristiques qui font du framework Micronaut le compagnon idéal de développement de vos microservices Java/Kotlin.

DESCRIPTION COMPLETE

Si des frameworks comme Spring Boot ont grandement facilité l'écriture d'applications en permettant de générer des applications standalone et auto-configurées, ils souffrent néanmoins de l'historique Spring et de sa "lourdeur". En effet, l'injection de dépendances au runtime et la réflection rendent plus longs les temps de démarrage et font grossir l'empreinte mémoire de nos applications.

En partant de 0, Micronaut prend le contre-pied de ses prédécesseurs en se passant de la réflection et en utilisant la "Ahead-Of-Time compilation" (AOT) pour des temps de démarrage en dessous de la seconde !

Nous verrons également que le framework Micronaut a été pensé de base pour supporter et faciliter le développement de microservices et d'applications serverless : il offre par défaut le support de nombreux providers et outils cloud, il est basé sur Netty qui permet l'écriture d'applications réactives, il rend les applications (très) facilement testables… bref, il apporte tout ce dont on a besoin pour développer des applications modernes !

web-crypto, end-to-end encryption et privacy: le lab

Mathieu ANCELIN Fedy Salah   Tools in Action  /  Web  /  beginner   15:30 - 16:00   Salle Chanchardon

Depuis 2017, des apis de crypto bas niveau sont disponibles directement dans le navigateur via quelques lignes de javascript. Déjà qu'on est pas forcément habitué à faire de la crypto côté serveur en Java, le faire côté client semble d'autant plus fou et peut être un peu aberrant. Cependant, la privacy devenant de plus en plus importante dans les applications que nous auront à réaliser dans le futur (voir dès maintenant), une petite introduction semble assez opportune.

Durant ce lab, après avoir revu quelques bases de cryptographie ;), nous verrons comment appréhender les apis fournies par le navigateur, quels wrappers choisir pour en simplifier l'usage et comment les utiliser concrètement dans une application de messagerie chiffrée de bout en bout écrite en React.

Back to Basics : Ne perdez plus votre Temps avec les Dates

Frédéric Camblor   Conférence  /  Web  /  beginner   16:15 - 17:15   Salle Chanchardon

La gestion du Temps sur une application client/serveur peut sembler simple de prime abord, mais se révélera beaucoup plus complexe au fur et à mesure des usages : timezones multiples, heures récurrentes, heure d'été/d'hiver, traitements cron, leap seconds sont des exemples parmi tant d'autres.
Saviez-vous même que la Commission Européenne envisage d'abolir le passage en heure d'hiver ? Quels impacts cela aurait sur nos applications ?

Mon objectif : qu'à partir de lundi prochain, vous vous posiez les bonnes questions à chaque fois que vous travaillerez sur une date ou une heure dans vos applications.

Pour cela, reprenons les bases du Temps en informatique : composantes d'une date, norme ISO 8601, Timezones et IANA.

Une fois ces bases posées, nous verrons, au travers d'un certain nombre de cas d'utilisation issus de la vraie vie, les bonnes questions qu'il convient de se poser pour mettre le doigt sur les complexités d'implémentation et éviter de tomber dans une faille spatio-temporelle lors du prochain changement d'heure.

Ce talk est accessible à tous et ne se focalisera pas sur un langage / une API en particulier : les concepts prévaudront sur le code.

Benchmark HTTP grandeur nature

Julien Viet   Conférence  /  Web  /  intermediate   16:15 - 17:15   Salle Casoar Tadorne

Le benchmark TechEmpower compare plus de 400 frameworks web écrits dans différents languages. La compétition est féroce et tout le monde veut être le premier!

Eclipse Vert.x est un boite à outil populaire pour écrire des applications réactives sur la JVM, reconnu pour sa scalabilité et qui participe à cette compétition depuis de nombreuses années.

Les benchmarks de performances sont souvent utilisés pour comparer des serveurs HTTP ou des frameworks web ainsi que pour faire un choix. Nous étudierons ce que ces benchmarks veulent dire et mesurent vraiment.

Cette présentation révèlera les secrets de fabrication de Vert.x qui ont un impact direct sur ces benchmarks, depuis l'optimisations réseaux jusqu'au compilateur à la volée de bytecode de la JVM.

20 choses à connaitre quand on fait du Kubernetes

Alain Regnier   Conférence  /  Cloud  /  beginner   17:15 - 18:10   Salle Chanchardon

En quelques années, Kubernetes s’est imposé comme l’orchestrateur incontournable quand on utilise des containers. Mais avec la maturité est venu la complexité: il est difficile de maitriser Kubernetes en détails et on se pose souvent des questions, notamment quand on se lance.

Cette présentation est un retour d’expérience autour de bonnes pratiques, d’astuces et d’erreurs à éviter pour utiliser Kubernetes plus efficacement. Bref des choses qu’il vaut mieux connaitre le plus tôt possible quand on fait du Kubernetes.

Streaming Apps Poison Pill: Comment Kafka-Streams compte faire passer la pilule

Loïc Divad   Conférence  /  Big Data  /  intermediate   17:15 - 18:10   Salle Casoar Tadorne

Kafka-Streams, la librairie de traitement de données en temps réel de Apache Kafka permet de traiter une grande quantité de messages avec de très faibles latences. Les messages peuvent avoir des formats différents, des schémas différents et même être sérialisés de manières différentes. Alors que se passe-t-il quand un message indésirable se retrouve dans un flux ? Ces applications de stream processing ne peuvent pas se permettre d’attendre une remise en route manuelle. Comment notre librairie de stream processing gère donc ces événements?

Ce talk propose d’explorer l’API Stream DSL de Kafka-Streams. Des techniques comme les sentinel values ou encore les dead letter queues y sont proposées. Voyons ensemble comment elles rendent possible la gestion des messages erronés, appelés aussi poison pills.

Ils soutiennent le Jug SummerCamp