Skip to content

Latest commit

 

History

History
961 lines (657 loc) · 65.2 KB

breizhcamp-2019-schedule.md

File metadata and controls

961 lines (657 loc) · 65.2 KB

Mercredi

Venez coder votre 1ère application Flutter !

[Lab] 10:00 - 12:00 @ Amphi A Pierre Tibulle, Horacio Gonzalez, Romain Rastel

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 !!!

Chérie, j'ai mis du fonctionnel dans mon Java !

[Université] 10:00 - 12:00 @ Amphi B Édouard Siha, Charles Dufour

  • Chérie ! Je dois t’avouer quelque chose…
  • Quoi ?
  • J’ai mis du fonctionnel dans mon Java… Juste une fois ! C’était une exception !
  • Mais pourquoi ? Ce n’est pas incompatible ?
  • Bien sûr que non ! Ne t’inquiète pas, je garde mes fonctions et j’ai toujours la classe.
  • Tant que mon héritage reste intact.
  • Rien ne changera ! Je vais tout t’expliquer, comment j’ai géré les erreurs, rendu mon code immutable et transformé mon code avec des fonctions pures. Tout ça avec la bibliothèque VAVR !

Kubernetes meublé, disponible de suite

[Université] 10:00 - 12:00 @ Amphi C Aurélien Maury, Aymen Lamara

Kubernetes, c’est LA plateforme de containers qui déboite. Pour tous ceux qui en déploie à la main, de nombreux toolkits existent, mais il manque toujours ces petits riens de finitions pour qu’ils partent en prod. On vous propose d’analyser le projet Kubespray, outillage d’installation de Kube en Ansible, et l’architecture qui va autour pour être à même de maintenir une plateforme complète en production, avec du monitoring, de la centralisation de logs, une gestion propre des utilisateurs, le chemin de déploiement pour les développeurs. Venez découvrir un cluster en mode all-inclusive.

Le web décentralisé, comment ça marche ?

[Conférence] 10:00 - 10:55 @ Amphi D Antoine Cailly

Aujourd’hui l’inquiétude monte devant l’emprise qu’ont certaines entreprises ou gouvernement sur notre utilisation d’internet.

Face à cette situation, beaucoup de personnes prônent la décentralisation du web un peu à la manière de Mastodon face à Twitter, néanmoins les concepts nécessaires sont assez éloignés des traditionnelles application client-serveur qui restent aujourd’hui majoritaires.

Que faut il pour décentraliser le web ? C’est ce que je vais tenter de vous présenter simplement et avec des exemples, tout en m’attardant sur certains mécanismes un peu plus techniques (DHT, Merkle-trees, CRDT...) que vous utilisez peut être déjà sans le savoir.

Je parlerais également de quelques initiatives qui commencent à faire le buzz et qui pourraient bouleverser nos usages à l’avenir.

Du fer à souder à la manette : une console de jeux à partir d'un microcontrolleur

[Conférence] 11:05 - 12:00 @ Amphi D Xavier Moulet

Nous verrons comment réaliser une console de jeu avec un puce à partir d'un simple microcontrôleur à quelques euros avec 512k de flash et qq ko de RAM : le principe de codage sur un micro ARM32 bits, la toolchain, génération du signal vidéo TV/VGA, puis peu à peu comment (re)coder des jeux à l'ancienne NES ou en video, émuler des consoles et micro 8 bits (MO5 ! ZX Spectrum, ...), faire de la musique avec un chiptracker, et enfin un système de jeu où tout le jeu est codé dans une seule image ! Des exemples de programmation seront donnés à la fois sur la partie bas niveau et sur le développement de quelques jeux.

Haskell's Space Invaders Coding Dojo

[Lab] 13:30 - 15:30 @ Amphi A Caroline GAUDREAU, Gaël Deest

Niveau : Débutant (N'a jamais fait de programmation fonctionnelle) Pas d'ordinateur nécessaire.

La terre est menacée par les Ephedbores, venus de la troisième galaxie à partir de la droite derrière la lune Endor (avec les Ewoks). La terre doit se préparer contre cette invasion ! Nous devons faire face à ces bestioles ! Nous gagnerons contre cette espèce extra terrestre. Toutefois, pour se défendre, il faut programmer nos vaisseaux en langage fonctionnel !! Venez tester la programmation fonctionnelle pure avec Haskell en codant un jeu de space invaders, avec la librairie Gloss.

The Web is still on ? F.I.R.E. ? !!!

[Université] 13:30 - 15:30 @ Amphi B Noël Macé

En 2015, le terme Progressive Web Apps faisait son apparition, et avec lui une nouvelle approche des applications web et mobile. Rapidement, le terme F.I.R.E. (Fast Integrated Relaiable & Engaging) a été utilisé pour résumer et globaliser cette approche permettant d'accompagner les développeurs et décideurs dans la mise en place d'applications web modernes.

Alors, prêt de quatre ans plus tard, qu'est ce qui a vraiment changé ?

Durant ce workshop, nous verrons ensemble comment cette approche est succeptible de guider la réalisation de toutes nos web apps, notamment en se penchant sur les méthodologies les plus importantes qu'elle a aménée.

Et bien entendu, nous verrons enfin comment les mettre en place (nottament grâce aux nombreux outils créés ces dernières années) et continuer à les respecter sur toute la durée de vie de nos projets.

Scuttlebutt - Construire un Facebook décentralisé

[Conférence] 13:30 - 14:25 @ Amphi C Antoine Cailly

En 2016, le scandale Cambridge Analytica a prouvé que les géants du Net comme Facebook pouvaient avoir une influence sur les élections présidentielles d'une grande puissance comme les États-Unis. Pas étonnant que de plus en plus de personnes les regardent d'un air inquiet, ils sont aussi puissants financièrement que certains états et disposent de données à rendre jaloux les services de renseignement.

Seulement voilà, qu'avons-nous comme alternative ? Comment construire un réseau social gratuit comptant plusieurs millions d'utilisateurs sans monétiser les données pour payer son coût de fonctionnement ?

Un réseau social de ce type existe, il s'appelle Scuttlebutt et il s'appuie sur les mêmes bases techniques que la Blockchain sans pour autant consommer l'équivalent de l'Autriche en énergie pour fonctionner ;-)

Nous allons voir comment il fonctionne en repartant de l'essentiel, l'échange de messages, et en ajoutant progressivement les fonctionnalités que l'on retrouve dans les réseaux sociaux d'aujourd'hui. Vous serez peut être étonnés par sa simplicité et sa ressemblance avec nos interactions dans la vie réelle, ainsi que par les réponses apportées à certains problèmes comme la suppression des messages ou la liberté d'expression.

Je vous montrerai également comment rejoindre ce réseau et vous présenterai quelques applications disponibles.

Consul et la dynamique de l'infrastructure

[Conférence] 13:30 - 14:25 @ Amphi D Nicolas Ledez

On est tous plus ou moins devops, cloud, etc. On déploie notre infrastructure avec Puppet/Ansible/Chef/.... C'est dans du cloud avec des infrastructures à la demande ou pas. Le haproxy sort les machines du trafic quand elles sont KO.

Bon, ça, c'est ce que tout le monde raconte. Par contre, bizarrement quand on cherche comment faire ça dans Ansible/Whatever, personne n'explique comment il a fait.

A l'occasion de ce talk, Nicolas LEDEZ, SRE devops chez Genymobile, abordera la configuration d'un cluster sous Consul (un des trucs excellents d’Hashicorp), l'ajout de couches de chiffrement et d'authentification, la gestion des ACL, la découverte de service, la mise à jour de reverse proxy de façon dynamique...

Une fois reparti, vous aurez quelques idées pour rendre votre SI un peu plus fluide.

Cypress, l’outil qui va vous faire aimer les tests End-to-End !

[Conférence] 14:35 - 15:30 @ Amphi C Rodolphe Bung

Sorti de sa bêta publique en septembre dernier, Cypress connait déjà un grand succès dans le domaine du test End-To-End (E2E). Il est d'ailleurs très bien classé dans le classement StateOfJs fraichement sorti dans la catégorie des « autres outils de tests » loin de devant Selenium, Protractor et Nightwatch.

Développé depuis 2015, l’équipe en charge du développement de Cypress prend un soin particulier à l’expérience développeur (DX).

Dans cette conférence, nous verrons brièvement ce qui caractérise Cypress de Selenium et nous ferons un live-coding qui nous permettra de passer en revue les principales fonctionnalités ainsi que les compromis à prendre en compte. Nous évoquerons les bonnes pratiques qui rendront vos tests E2E plus rapides et moins soumis aux aléas qu’impliquent ce type de test.

A l’issue de cette présentation, faire des tests E2E ne sera plus une souffrance, bien au contraire !

Comment j'ai hacké ma prise électrique

[Conférence] 14:35 - 15:30 @ Amphi D Florent Vuillemin

En 2015, je me suis penché sur l'étude d'une prise électrique connectée qui agit comme passerelle LORA : le porte-clé associé dialogue avec elle pour remonter sa position et des notifications de mouvement.

En cherchant à comprendre son fonctionnement, j'ai rapidement trouvé un certain nombre d'erreurs de conception permettant d'obtenir un accès root sur le Linux embarqué de la prise, et même d'injecter des données corrompues sur le serveur du fabricant. Nous allons parcourir ensemble les étapes permettant de trouver ces erreurs, et surtout en déduire des bonnes pratiques sur les produits que nous développons !

Découvrez pourquoi Elixir sera votre prochain langage!

[Lab] 16:00 - 18:00 @ Amphi A Nicolas Savois

Elixir est un langage fantastique construit par des crafters avec le test comme axe central

Le langage est construit sur Erlang la seule VM capable de prouver une disponibilité de 99,999999999% sur 20 ans.

Elixir est à Erlang ce que Kotlin est a Java.

Viens découvrir, on jouera aussi avec Stimulus pour faire un Slack :)

les pré-requis au workshop sont la :

https://github.com/savoisn/elixir-workshop

Code moi un 'mouton de recherche'

[Université] 16:00 - 18:00 @ Amphi B Maxime Odye, Ludovic Boutros

Le Petit Prince s'est perdu dans les méandres de l'immense champ de l'internet. Aide Max et Ludo à développer un mouton de recherche pour retrouver le Petit Prince. Au cours de cette aventure, tu développeras ton propre moteur de recherche. Dans un premier temps, à l'aide de bibliothèques usuelles Java, tu écriras tes propres index inversés. Tu comprendras pourquoi cette structure de données ne permet pas d'effectuer toutes les opérations classiques d'un moteur de recherche (les facettes et les tris par exemple). Nous t'aiderons alors à développer une structure de données supplémentaires pour ces opérations. Puis, comme il ne faut pas réinventer la roue et pour te simplifier la vie, tu utiliseras la bibliothèque d'indexation et de recherche Apache Lucene utilisée par les moteurs Apache Solr et Elasticsearch.

Prérequis : savoir développer en Java.

L'adoc : du néant à la galaxie Antora

[Conférence] 16:00 - 16:55 @ Amphi C Gautier de Saint Martin Lacaze, Nicolas Giraud

Parce que la doc ce n'est pas toujours un long fleuve tranquille... Parce que la doc, quand tu la codes, tu ne t'en passes plus... Parce que le code, c'est la vie... Viens partager les aventures intergalactiques de Gautier et Nicolas dans l'univers d'Asciidoc(tor). Au travers de leurs retours d'expériences de près de deux ans autour de la documentation as code, vous découvrirez l'itinéraire qui les a mené du néant à la galaxie Antora.

LE SUPER POUVOIR DES "TYPE CLASSES"

[Conférence] 16:00 - 16:55 @ Amphi D Alexandre Delègue

Quand on parle de programmation fonctionnelle, on pense souvent aux lambdas mais rarement aux "type classes" et c'est bien dommage!

Les "type classes" permettent de gérer le polymorphisme, l'injection de dépendance, d'abstraire les effets ... bref ça serait dommage de s'en passer.

Dans cette session, nous verrons comment utiliser les "type classes" dans des langages comme Java, Scala et Kotlin et comment faire des abstractions poussées tout en gardant du code robuste et concis.

Machine Learning pour tous avec Python

[Conférence] 17:05 - 18:00 @ Amphi C Robin Allesiardo

L’intelligence artificielle est un vaste domaine comprenant de nombreuses sous-disciplines, notamment l’apprentissage automatique (machine learning). L’apprentissage supervisé est la branche la plus connue du machine learning. Dans cette session, je présenterai tout d’abord l’apprentissage supervisé ainsi que les principales hypothèses assurant son fonctionnement, le tout, agrémenté d’exemples en Python sur le jeu de données Iris. Nous finirons ensuite un exemple par le code sur le jeu de données « Titanic », nous y aborderons le pré-traitement des données avec la bibliothèque pandas ainsi que l’entrainement de modèles prédictifs avec sklearn. A la fin de la session, les participants seront capables de mettre en oeuvre des algorithmes classiques de machine learning sur des problèmes simples.

Sources : sklearn : http://scikit-learn.org/ pandas : https://pandas.pydata.org/ Iris : https://archive.ics.uci.edu/ml/datasets/iris Titanic : https://www.kaggle.com/c/titanic

Lessons learned on Microsoft’s DevOps Journey

[Conférence] 17:05 - 18:00 @ Amphi D François Bouteruche

Microsoft a un patrimoine unique : elle a parcouru le chemin depuis un processus de développement en cycle en V traditionnel avec des livraisons tous les 2-3 ans vers une culture DevOps avec des livraisons toutes les 3 semaines. Dans cette conférence, nous mettrons en avant les points clés de cette transformation qui nous paraissent aujourd'hui évidents mais que nous avons appris en marchant :

  • Autonomie des équipes et alignement avec l'entreprise
  • Qualité au plus près de la phase de codage
  • Focus client
  • Etat d'esprit orienté Production
  • Infrastructure flexible

Sur chacun de ces points, nous exposerons concrêtement ce qui a été mis en place au sein des équipes d'ingénierie du service Azure DevOps.

Jeudi

Blockchain et Smart Contract : de la théorie à la production

[Conférence] 10:30 - 11:25 @ Amphi A Mathieu Durand

Blockchain, Ethereum, Smart-Contracts... on en entend souvent parler mais qu'est ce que ça donne réellement en production ?

Cette conférence sera l'occasion de présenter notre REX de mise en production d'une application web basée sur l'utilisation de Smart Contract Ethereum. Après avoir présenté brièvement les concepts clés de Blockchain Ethereum et Smart Contract, nous présenterons notre retour d'expérience sur le développement d'une application VueJs/Java permettant l'échange de cryptomonnaie dite "tokenisée" (EC-20) via Smart Contract Ethereum.

L’accessibilité des applications mobiles android

[Conférence] 10:30 - 11:25 @ Amphi B Léna NDIAYE

Quand on parle d’accessibilité, on pense automatiquement aux rampes d’escaliers, ou aux places de parking. Mais qu’en est-il de l’accessibilité des applications mobiles ?

Cette présentation fera un tour des préconisations aussi bien UX/UI que techniques. Comment savoir si je dois utiliser un contentDescription ou un labelFor, quelle est la taille idéale des cibles tactiles (d'ailleurs c’est quoi une cible tactile ?), quels indices rajouter à mes interfaces, quel ratio de contraste de couleur ? LTR vers RTL, comment gérer ? Comment utiliser TalkBack ? Et toutes ces questions que l’on peut se poser (ou que l’on ne s'est pas encore posées) légitimement.

Rappelez-vous de Gandalf qui se cognait partout dans la petite maison de Bilbon Sacquet, le hobbit. La maison conçue pour des Hobbit par des Hobbit, n’était pas du tout adaptée à Gandalf qui faisait votre taille.

Quand on conçoit / développe une application, cela ne demande pas plus d’effort de cibler un plus large public…encore faut-il savoir comment. Ce talk est justement pour tous ceux qui souhaitent en savoir plus à ce sujet, pour faciliter l'accès à l'information à une plus grande partie de la population.

Spring WebFlux par la pratique

[Conférence] 10:30 - 11:25 @ Amphi C Alan Menant, Benoit Travers

Avec Spring 5 et Webflux, vous pouvez allier programmation fonctionnelle et non bloquante. Durant ce livecoding, nous allons vous présenter les notions introduites par Webflux et développerons de façon itérative une petite application en Kotlin / Spring Boot 2.

Micro Frontend: le casse tête des micro services étendu au FrontEnd !

[Conférence] 10:30 - 11:25 @ Amphi D Audrey Neveu

Les micro-services sont à la mode, et peut être avez vous déjà craqué et remplacé votre bon vieux monolithe côté back end par une ribambelle d’entre eux.

Mais avez vous déjà pensé à faire la même chose côté front end ? Encore plus hype (ou dingue, je vous laisse juger), avez vous déjà essayé de mixer plusieurs frameworks JavaScript (disons AngularJS, Angular et React au hasard) dans une Single Page Application ?

C’est le principe du micro frontend et c’est que nous avons fait cette année chez Saagie. Dans ce talk nous reviendrons sur les différentes architectures que nous avons essayé, leurs avantages et leurs inconvénients afin que vous puissiez décider de ce qui serait le mieux pour vous, juste au cas où vous décideriez de passer du côté obscur et un peu foufou du front end.

Quand performance, scalabilité et robustesse bousculent vos habitudes de développement

[Conférence] 11:35 - 12:30 @ Amphi A Céline GILET

Le projet sur lequel vous travaillez doit être capable d'intégrer des centaines de millions d'événements par jour. Face à cette volumétrie de traitements et de calculs, votre architecture doit tenir et auto-scaler pour encaisser les variations de charge.

Il s'agit ici de faire un retour d'expérience sur les points d'attention et les patterns à suivre dès le départ. Nous verrons comment découper et organiser vos traitements, comment décorréler votre modèle métier de votre modèle de stockage et comment définir une stratégie de tests dans un tel système.

Outils et bonnes pratiques de développement d'applications Android sécurisées

[Conférence] 11:35 - 12:30 @ Amphi B Alain Muller

Ne faites pas confiance à votre application : une fois déployée, tout peut arriver... Les sujets abordés, dans les grandes lignes :

  • Le code source : obfuscation

  • Où cacher ses clés d'API? Le stockage de données sécurisées

  • Communication serveur : Certificate pinning et attaques man-in-the-middle

  • Détecter les devices hackés : SafetyNet API / Anti root

  • Anti-tampering/debugging/instrumentation

  • Live hacking (éventuellement)

Mon premier service en Rust

[Conférence] 11:35 - 12:30 @ Amphi C Francois Teychene

Vous avez sûrement entendu parler 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 tous les avantages classiques du langage (performance, safety, ...) ? C'est ce que je vous propose de découvrir dans cette session.

Vanilla JS 2019

[Conférence] 11:35 - 12:30 @ Amphi D Matthieu Lux

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.

.NET Core le renouveau du .NET Framework

[Quickie] 12:45 - 13:00 @ Amphi B Fabien PAITRY

La première version de .NET Core est sortie en 2016 avec pour objectif d'offrir une version multi-plateformes et open source du framework .NET de Microsoft. A l'aube de la sortie de la version 3 nous ferons un tour d'horizon des principales forces et limitations de ce framework qui mérite à être connu au-delà du cercle des développeurs .NET

Stop aux régressions visuelles de vos composants UI, avec Storybook et Loki

[Quickie] 12:45 - 13:00 @ Amphi C Jérémie Ledentu

"Aïe, j'ai cassé le rendu visuel de mes composants alors que j'avais 100% de couverture en tests unitaires !" Pour éviter cela, nous verrons comment faire simplement du Visual Regression Testing en associant deux outils : Storybook et Loki.

Feature Toggle et Microservices

[Quickie] 12:45 - 13:00 @ Amphi D Cédrick Lunven

Le Feature Toggle (capacité à activer ou désactiver des fonctionnalités à chaud) peut être très utile dans les architecture distribuées type Microservice. Déclarer un flag une fois, (ex:Monitoring) et tous les services peuvent y accéder. (fonctionnalités transverses).

FF4j est l'implémentation de référence de ce pattern pour la plateforme Java. Dans cette session je vous montre comme il est rapide de le mettre en place dans une application Spring-Boot. Vous avez ainsi directement au feature toggle au travers de la console Web mais également une gestion des propriétés et un monitoring métier.

Dr Gopher, Anatomie du Scheduler

[Quickie] 13:05 - 13:20 @ Amphi B Nicolas Lepage

Dr Gopher a décidé de comprendre comment fait le runtime Golang pour multiplexer des goroutines sur des threads système.

Il va trifouiller dans les entrailles du scheduler, pour y découvrir ses éléments de base G M et P, ainsi que ses différents mécanismes : création de thread, thread parking, local queues, ou encore work stealing...

La programmation concurrentielle en Go permet au développeur de s’abstraire de la gestion des ressources systèmes ; penchons-nous avec Dr Gopher sur l’anatomie du scheduler et voyons comment il optimise naturellement l’utilisation de ces ressources.

UX : Les formulaires

[Quickie] 13:05 - 13:20 @ Amphi C Bruno Sabot

Et si on parlait d'UX ?

Nos pages sont truffées de formulaires, pourtant, connaissons-nous les erreurs à ne pas faire lorsque l'on ajoute un formulaire à une page ?

La validation de mots de passes, les captchas, les champs obligatoires, les erreurs, les boutons, et bien d'autres sont tant d'aspects que l'on réalise souvent avec de mauvaises pratiques. On développe sans réfléchir, sans se poser la question de savoir s'il s'agit de la meilleure solution en terme d'expérience utilisateur.

Dans ce talk, nous verrons donc les erreurs à ne pas faire et comment les corriger.

Flutter : Le futur du développement unifié ?

[Conférence] 13:30 - 14:25 @ Amphi A Romain Rastel

Flutter est un SDK de Google permettant de créer de fantastiques applications mobiles, iOS et Android, en utilisant un code commun et en un temps record. Nous verrons dans ce talk ce qui a poussé cette solution à être développée. Nous détaillerons ensuite le fonctionnement de Flutter et ce qui en fait une plateforme de développement attractive. Pour terminer nous verrons quelle est la vision à long terme concernant Flutter et en quoi elle est intéressante.

De Java 8 à Java 11 sur un gros projet : les pièges à éviter

[Conférence] 13:30 - 14:25 @ Amphi B Thomas COLLIGNON, Alexis DMYTRYK

Nous sommes passés de Java 8 à Java 11 sur un gros projet Java chez efluid en septembre 2018 juste au moment de la release de Java 11. Comment cela s’est-il passé? Où en sommes nous aujourd’hui? Quels problèmes avons nous eu?

Nous passerons en revue les différents points d’attention importants pour une migration java 8 -> 11, et nous verrons en quoi cette migration peut être bénéfique pour vos projets.

Sans oublier l’incontournable question “quel fournisseur de JDK choisir ?” C’est désormais un point à ne pas sous-estimer, surtout sur les projets longs termes.

⛳️ Votre API web passe-t-elle le contrôle technique ?

[Conférence] 13:30 - 14:25 @ Amphi C Francois-Guillaume Ribreau

Nous savons tous développer une API mais avons-nous bien intégré toutes les problématiques?

Son aspect organisationnel et humain, sa gouvernance, ses contraintes business et d'opérabilité (SLA, SLO, SLI), son release management, ses méthodes de requêtage, sa sécurité (ses performances, sa mise à l'échelle), ses différents types de test, sa documentation, son versioning (compatibilité, changelog), son monitoring — et bien plus encore — de cette API une fois en production ?

Durant ce talk, c'est plus de 30 points d'attentions rarement évoqué que je vous propose d'aborder, à la lumière de retours d'expériences provenant de tech-leader comme Uber, Stripe, Facebook et Google mais aussi d'entreprise française de la petite startup à la PME.

Plongée dans les CSP

[Conférence] 13:30 - 14:25 @ Amphi D Laurent Brunet

Dans une application, la sécurité devient de plus en plus importante afin de mieux se prémunir d'éventuelles attaques XSS.

Ces attaques peuvent être utilisées dans divers buts, comme le vol de données, défigurer un site ou la diffusion de malware.

Un mécanisme de sécurité est disponible par une en-tête HTTP, Content-Security-Policy.

Nous allons voir comment peut-on mettre en place de façon progressive avec des rapports détaillés une politique de sécurité du contenu.

Highway to Elm!

[Conférence] 14:35 - 15:30 @ Amphi A Jordane Grenat

Entre les problèmes de null et d'undefined, les cas d'erreur non traités, les régressions dans les dépendances npm et les refactoring hasardeux, il est compliqué de livrer sereinement du JavaScript en production !

C'est un mal nécessaire, puisqu'il s'agit du seul langage compatible avec tous les navigateurs, non ? Non !

Je vous propose de découvrir une alternative, Elm, dont la première promesse est troublante mais limpide : plus d'erreurs au runtime !

Nous verrons comment ce langage spécialement pensé pour créer des applications web garantit des mises en production sereines et une expérience de développement agréable.

MVI : une architecture robuste et moderne pour vos applications mobiles

[Conférence] 14:35 - 15:30 @ Amphi B Simone Civetta, Arnaud Piroelle

Oui, on le sait : vous en avez assez des talks d'architecture mobile. On vous comprend, vous avez dû en voir des tonnes : utiles, superflus, simples, alambiqués, certains même imprononçables et là vous n’en pouvez plus.

Mais donnez-nous une chance : cette fois-ci nous voulons vous présenter une architecture que nous apprécions véritablement : simple, robuste, facilement testable et tirant profit des langages modernes comme Kotlin et Swift - Model-View-Intention. Inspirée de Redux, mais adaptée aux applications mobiles, MVI se sert d'immutabilité, flux de données unidirectionnel et binding pour faciliter débogage et testing et améliorer donc votre productivité. Applicable à Android et iOS, elle permet aussi de simplifier les échanges entre les équipes de développeurs d'applications mobiles natives.

Nous vous présenterons les éléments clés de l'architecture, sa mise en place, ainsi que l'implémentation des cas d'usage les plus communs, issus d'applications que nous avons réellement développées.

MADPIG: mesure et optimisation de la performance en Go

[Conférence] 14:35 - 15:30 @ Amphi C Valentin Deleplace

Vous aimez quand ça rame? Moi non plus.

Quand vous commencez à optimiser les performances, la théorie et l'intuition c'est bien, mais la mesure c'est mieux. Écrivez des benchmarks, essayez plusieurs approches, optimisez différents niveaux d'abstraction, trouvez le goulot d'étranglement, et recommencez!

L'outillage en Go met l'exploration de performances à votre portée.

  • Avec Pprof, découvrez où le temps est consommé. Souvent ce n'est pas là où vous croyez!
  • Envisagez la concurrence avec les goroutines, lorsque le gain surpasse le coût.
  • Avec Trace, espionnez ce que font vos CPU: pourquoi sont-il oisifs? Pourquoi tant de context switch? Est-ce que c'est le garbage collector qui me ralentit?
  • Écrivez des tests pour préserver la sémantique au fil des refactorings, sans dérailler!
  • Découvrez comment écrire un benchmark en 3 lignes.
  • Utilisez le Race Detector, et apprenez pourquoi c'est important.
  • Examinez la couverture de code pour découvrir le "code mort" et le "code chaud".
  • C'est quoi un Flame Graph?

Et si nous créions le .breizhcamp?

[Conférence] 14:35 - 15:30 @ Amphi D Marc Audefroy, Eric Vergne

Les noms de domaine et les DNS font parti des services primaires d'internet. De l'idée de création jusqu'à la vente du .breizhcamp, nous découvrirons ensemble le fonctionnement des DNS et des noms de domaine. Les termes Registry, Registrar, Icann, DNS racine/authoritaire/resolver, whois, RRA, EPP et gouvernance d'internet ne vous seront alors plus inconnus. Vous comprendrez également pourquoi ce milieu est si sensible au changement.

"Numérique et environnement" ou "On aurait pu sauver les abeilles, on a préféré sortir un nouvel iPhone"

[Conférence] 16:00 - 16:55 @ Amphi A Sébastien Brault

Le numérique fait-il partie du problème ou de la solution quand on parle de réchauffement climatique ?

5 milliards de smartphones en circulation en 2020, ça représente quoi en consommation énergétique, en gaz à effet de serres, en pollution chimique ?

Le streaming à 10 euros par mois c'est le pied mais aujourd'hui Netflix a à peu près l'empreinte carbone du plus gros cimentier mondial, qui va payer la facture environnementale ? Nous tous.

Tous les mails de votre vie (que vous ne lirez plus jamais) disponibles sur Gmail, très utile, mais après 2020 on ne saura peut-être plus produire industriellement les équipements nécessaires à leur stockage. Dommage...

On arrive dans "l'âge des limites", pour le numérique comme pour le reste. Quels sont les leviers pour basculer vers un numérique durable ?

Et si malgré tout on décidait de s'en foutre ? 2 degrés en plus, c'est juste un pull en moins non ? Non. Par contre c'est 30% en moins sur les rendements agricoles pour ... 30 % de population en plus en 2050. En 1970, le rapport Meadows du MIT prévoyait un crash du système planétaire pour les décennies 2020-2030. Pour l'instant, c'est cette trajectoire que notre monde suit.

Programmation par Traits sous l'influence de la gestion mémoire

[Conférence] 16:00 - 16:55 @ Amphi B Didier Plaindoux

On nous parle trop souvent de Rust en terme de gestion mémoire avec le borrowing et le lifetime mais quid de la conception logiciel dans un tel contexte ?

Je propose d'explorer le langage en ayant une approche objet très naive pour ensuite dériver et voir comment Rust nous propose des chemins différents. L'ouverture du code - pour une plus grande réutilisabilité et adaptabilité - dirigée par la gestion mémoire est une nouveauté et va nous permettre de pousser l'abstraction au maximum en utilisant les génériques et les contraintes de typage pour notre plus grand bien ! Nous finirons par explorer l'"expression problem" de Wadler et voir comment Rust peut y répondre.

The elevator problem

[Conférence] 16:00 - 16:55 @ Amphi C Xavier Van de Woestyne

Dans l'espace de coworking où je travaille actuellement, l'ascenseur est formellement idiot ! En effet, il n'optimise jamais son trajet, dès lors que l'on tente de l'appeler deux fois, arrivé au lieu d'attente, il va se comporter comme s'il avait été appelé deux fois ... soit, les portes vont s'ouvrir, je rentre, elles se referment, elle se re-ouvrent et se referment et il peut enfin partir ...

L'objectif de cette présentation est de présenter un usage pratique aux automates (et plus précisemment aux machines à états finis) pour designer un cluster d'ascenseurs. Entre implémentation concrète de FSM et réflexion design sur le comportement attendu d'un ascenseur, on tâchera aussi de survoler les légendes urbaines reliés à cet appareil, pratique, mais pouvant parfois faire perdre un temps non négligeable !

Malgré ce que l'on pourrait croire, le comportement des ascenceurs présente une collection de cas d'écoles amusants et transposables à des problématiques logicielles. C'est d'ailleurs pour ça que beaucoup de grands groupes se servent de ce cas comme entretien technique !

TLS 1.3 arrive!!! Et si on comprenait déjà ce que fait TLS 1.2 ?

[Conférence] 16:00 - 16:55 @ Amphi D Arnaud Locquet

“Quand on commande sur Internet, il faut que le cadenas soit affiché à côté de l'url…” C'est ce qu'on me disait lorsque je commençais à y faire des achats, il y a "quelques" années... #modem56K

Depuis, j'ai du mettre en place des échanges TLS, côté client et serveur. Nous étions régulièrement confrontés à des erreurs que nous ne comprenions pas bien (#handskake_failure) jusqu'au jour où j'ai décidé de bien comprendre son fonctionnement.

Viens (re)découvrir TLS, dans un talk où je vais vulgariser les principes pour que toi aussi, tu sois enfin à l'aise avec.

VS Code: mode collaboratif activé!

[Tool in Action] 17:05 - 17:30 @ Amphi A Tiffany Souterre, Olivier Leplus

Vous aimez VS Code car il est simple, intuitif et qu'il fait ce que vous lui demandez. Mais saviez-vous que vous pouviez coder à plusieurs dans VS Code? et même permettre à une personne tierce de jouer avec votre débugger depuis l'autre bout du monde? Saviez-vous que vous pouviez avoir un client slack dans VS Code, et même un chat audio? Et avez-vous exploré toutes les possibilités que VS Code offre quand vous utilisez github? Nous verrons dans ce talk tout ce qui fait de VS Code l'éditeur de code parfait pour faire du code collaboratif.

Keycloak, le maître des clés

[Tool in Action] 17:05 - 17:30 @ Amphi B Jérôme Marchand

Combien de fois avez-vous implémenté dans vos différentes applications : une page de login, avec mail de confirmation, changement de mot de passe, une gestion de rôles et de groupes ? et quand tout fonctionne, il faut "encore" ajouter le SSO, la fédération, le 2FA, le Impersonate, ....

Découvrons ensemble, comment Keycloak propose ces fonctionnalités, et facilite l'intégration de l'authentification.

Jenkins-X : toward a cloud-native Jenkins

[Tool in Action] 17:05 - 17:30 @ Amphi C Nicolas De Loof

L'architecture de Jenkins date de 10 ans. C'est ce qui a permis de construire un écosystème gigantesque et de couvrir les besoins de tout le monde avec une flexibilité extrême. En assurant la compatibilité ascendante, Jenkins s'interdit-il d'évoluer pour embracer les paradigmes modernes ? On pourrait le croire, sauf que ... Jenkins-X!

Jenkins-X est un grand coup de pied dans la fourmilière, un ouragan d'air frais qui vient décrasser Jenkins pour en faire un outil parfaitement adapté à l'époque des clusters Kubernetes. Opinionated, il rompt partiellement avec la vision du "peux tout faire et même le reste" chère à Jenkins, pour proposer une solution immédiatement utilisable. Son succès est tel qu'il tire Jenkins vers le haut, en servant de pilote pour les efforts d'architecture "Cloud Native" qui ont lieu dans son ombre. Dans ce talk je vais vous présenter comment on modernise du code vieux de plus de 10 ans à grand coups de hâche.

Parcel.js : le bundler dont vous rêviez ;)

[Tool in Action] 17:05 - 17:30 @ Amphi D Mathieu ANCELIN

A l'époque, il n'y a pas si longtemps, mettre au point un build JS était une galère sans nom. On a tous sué à grosses goutes en essayant de comprendre ce qui n'allait pas avec les scripts Grunt ou Gulp. Il n'était pas beaucoup plus facile d'enchainer manuellement les appels des dizaines d'outils tels que browserify, minify, etc pour arriver au même résultat. Il était beaucoup trop facile de se perdre dans les dizaines (centaines ???) de lignes de code que représentaient les fichiers de build. Et puis les bundlers "modernes" sont arrivés. Rien de plus simple que créer un build avec Webpack en quelques lignes de configuration. Un nouveau type de ressource a gérer, pas de problème, il y a juste a configurer le plugin qu'il faut. Mais c'était encore trop :)

Parcel est un bundler javascript récent qui propose une expérience développeur absolument génial. Il n'y a tout simplement pas de configuration à faire. On lance l'outil et quasiment tout est supporté out of the box en plus d'être ultra rapide. Du JS au Typescript en passant par LESS et web assembly, Parcel sais quasiment tout faire, sans ajout manuel de plugins ou configuration supplémentaire.

Dans cette présentation, nous verrons comment prendre en main Parcel, ses avantages par rapport à la concurrence et comment l'intégrer simplement dans votre processus de dev. front.

Things Gateway

[Tool in Action] 17:35 - 18:00 @ Amphi A Kalyan Dikshit

Most IoT devices today use proprietary vertical technology stacks which are built around a central point of control and which don’t always talk to each other.When they do talk to each other it requires per-vendor integrations to connect those systems together. There are efforts to create standards, but the landscape is extremely complex and there’s still not yet a single dominant model or market leader.

Many of the new devices connecting to the Internet are insecure, do not receive software updates to fix vulnerabilities, and raise new privacy questions around the collection, storage, and use of large quantities of extremely personal data. As new types of devices come online, they bring with them significant new challenges around security, privacy and interoperability.

The “Web of Things” (WoT) is an effort for creating a decentralized Internet of Things by giving Things URLs on the web to make them linkable and discoverable, and defining a standard data model and APIs to make them interoperable.

It is not just another vertical IoT technology stack to compete with existing platforms but is a unifying horizontal application layer to bridge together multiple underlying IoT protocols. The "Web of Things" is built on existing, proven web standards REST, HTTP, JSON, WebSockets and TLS which helps to form a bridge with existing devices so that it can communicate with any device irrespective of the vendor.

The future of connected devices should be more like the open web. The future should be decentralized, and should put the power and control into the hands of the people who use those devices.

jq, JSON comme un pro

[Tool in Action] 17:35 - 18:00 @ Amphi B Sébastien LECACHEUR

Le JSON est omniprésent dans nos environnements. Nous manipulons ce format de représentation à longueur de journée. Pour nous faciliter la tâche, nous pouvons utiliser l'utilitaire en ligne de commande nommé ./jq.

Prenons le temps d'explorer le monde fascinant de jq et de partager quelques astuces.

Git, yet another VCS ou bien plus que ça ?

[Tool in Action] 17:35 - 18:00 @ Amphi C Loïc Guibert

Pour vous Git n'est qu'un logiciel de gestion de versions parmi tant d'autres ?
Votre rapport avec Git se résume à git commit, git push, git pull et c'est marre ?

Alors vous êtes passés à côté de l'essence même de Git. Vous n'imaginez pas sa puissance et l'aide précieuse qu'il peut vous apporter !

Je vous propose d'aller plus loin dans l'utilisation de Git et de prendre du recul sur vos pratiques afin d'en faire un de vous outils quotidiens dont vous ne pourrez plus vous passer ! Votre workflow va gagner en maturité.

Minio, une nouvelle approche du stockage objet : promesses, enthousiasme et désillusions

[Tool in Action] 17:35 - 18:00 @ Amphi D Sébastien BLAISOT

Retour d'expérience sur un test du logiciel de stockage objet Minio (https://minio.io/) permettant de monter un équivalent à amazon S3 partout (des des machines physiques, des VM ou dans des conteneurs), entre promesses, enthousiasme de la rencontre, et écueils lors de l'utilisation. Venez assister au déploiement en live d'un service de stockage objet en moins de 2 minutes.

Vendredi

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

[Conférence] 10:30 - 11:25 @ Amphi A Mickael FAUST

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.

The CI as a partner for test improvement suggestions

[Conférence] 10:30 - 11:25 @ Amphi B Caroline Landry

Le CI (Intégration Continue) exécute en continu les tests unitaires et d'intégration pour donner aux développeurs un retour d'information sur la qualité du code. Cependant, il fournit peu de rétroaction sur la qualité des cas de test eux-mêmes. Cet exposé présente deux techniques automatiques qui fonctionnent dans le CI afin de suggérer les faiblesses et les améliorations possibles des cas de test.

La première technique est basée sur du test par mutation. Elle identifie les méthodes pseudo-testées : méthodes qui sont couvertes par la suite de tests mais qui peuvent être complètement supprimées sans qu'aucun cas de test n'échoue. Ceci indique que les cas de test qui couvrent ces méthodes doivent être améliorés pour observer et spécifier le comportement de manière plus approfondie. La seconde technique est basée sur l'amplification de test : elle suggère des améliorations possibles des cas de test pour mieux tester les méthodes pseudo-testées. Les deux techniques sont implémentées pour Java et sont disponibles sous forme d'outils open source : Descartes et DSpot.

"Bogged down in the slime, Busters ? your python code can run fast !" (Performance en python: profiling et optimisations)

[Conférence] 10:30 - 11:25 @ Amphi C Pierre Rust

Python est LENT, tout le monde sait ça ... et pourtant il est utilisé dans des domaines très variés, y compris ceux où la performance compte : machine learning, calcul scientifique, analyse de données et services internet massifs ! Mais comment font-ils ?! Nous verrons comment identifier les portions qui ralentissent réellement votre application, puis les différentes techniques, des plus simples aux plus avancées, pour accélérer votre code python. Keywords: cProfile, yappi, timit, cython, numba, pypy, etc.

De Java vers Kotlin, la migration du héron !

[Conférence] 10:30 - 11:25 @ Amphi D Guillaume Lours, Audrey Neveu

Kotlin is the new cool! Ok mais votre patron n’acceptera jamais que vous réécriviez votre application Java en Kotlin n’est ce pas ? Eh bien bonne nouvelle, la migration est possible et elle est même beaucoup plus simple que vous ne pourriez l’imaginer !

Dans cette session nous vous expliquerons comment nous avons procédé pour migrer notre application existante en revenant sur les différentes étapes pour passer d’un langage à l’autre mais aussi les concepts de bases de Kotlin.

Du build en passant par la génération automatique dans l’IDE et jusqu’aux tests, nous vous ferons un retour d'expérience complet de notre migration.

Acteur, un modèle élégant pour le calcul concurrentiel et les systèmes distribués

[Conférence] 11:35 - 12:30 @ Amphi A Alessio Coltellacci, Didier Plaindoux

Avec l’avènement des architectures multi-cœurs, nous avons besoin de moyens pour les exploiter. Généralement, cela se fait à l'aide des threads natifs et de primitives de synchronisation qui conduisent à des problèmes difficiles à debug.

Explorons une approche différente: le modèle de l'acteur, un modèle conceptuel et distribué pour traiter le calcul concurrentiel.

Nous verrons dans cette présentation:

  • ce qu'est un acteur,

  • les interactions entre eux sans partager la mémoire,

  • la communication entre acteurs dans un système distribué et

  • comment avoir un système distribué tolérant aux pannes.

Développeurs et agilité : la guerre est déclarée ?

[Conférence] 11:35 - 12:30 @ Amphi B Cécilia Bossard, Jean Paliès

Quand on parle d'agilité aux développeurs, on constate différentes réactions. Il y a les enthousiastes, ceux qui s'en fichent, et ceux qui s'y opposent farouchement.

En ce moment, on peut constater un accroissement des développeurs ne souhaitant plus entendre parler d'agilité.

Pourquoi une telle scission ? La guerre est-elle ouvertement déclarée ou a-t-on un espoir de réconciliation ?

IoT et open source hardware pour la collecte de timeseries

[Conférence] 11:35 - 12:30 @ Amphi C Xavier MARIN

Votre mission, si vous l'acceptez : collecter chez chaque client 500 métriques par seconde sur un réseau Modbus, stocker plusieurs jours de données localement, et pousser des métriques sous échantillonnées dans le cloud. Les contraintes incluent la remontée des contextes de défaut, l’envoi de commande sécurisée depuis le cloud, l’isolation des données entre clients, la connexion temps réel via websocket, la gestion des coupures de courant et d’internet. Le système tourne sur une PINE64, avec une base de donnée open source française !

Istio, le meilleur ami de votre cluster K8S ❤️

[Conférence] 11:35 - 12:30 @ Amphi D Kevin Davin

Dans un monde distribué, nous sommes confrontés à de nouveaux problèmes. Les notions de circuit-breaker, de retry, de timeout, de blue-green deployment, A/B testing, pool-ejection… viennent remplacer nos anciens problèmes de monolithe ?.

Istio ⛵ est là pour nous aider sur tous ces points... et même plus ! ?

Nous ferons le tour de l'outillage actuel (émanant de la stack Netflix principalement) dans un environnement micro-services et nous le comparerons avec ce que nous met à disposition Istio à T0 ?!

Ensuite, nous ouvrirons le capot afin de voir comment fonctionne Istio et comment nous pouvons potentiellement étendre son modèle #DoItYourSelf !

Comment fausser l'interprétation de vos résultats avec des dataviz

[Quickie] 12:45 - 13:00 @ Amphi B Romain Sagean

Une Data Visualisation permet en un seul coup d’œil de véhiculer des résultats (d'analyse). Au travers de contre-exemples bien choisis, nous allons voir les nombreux pièges qui nuisent à la lisibilité et l'interprétation des données et comment choisir la bonne représentation pour faire passer vos idées.

Comprendre la langue de bois pour survivre en entreprise

[Quickie] 12:45 - 13:00 @ Amphi C Vincent VIMARD, Marie Viley

“En phase de montée en charge de la compétitivité collaborative, il faut coacher les alternatives terrain.” Vous n’avez rien compris, nous non plus!

Dans ce talk, nous vous montrerons grâce à des exemples comment l’information peut être manipulée afin de servir une idée ou devenir un véritable traité de “pipeaulogie”. Et pour finir nous vous donnerons des conseils et des outils pour éviter de vous faire manipuler par ces information.

A la sortie de cette présentation, vous aurez appris et saurez déjouer des techniques de langue de bois et vérifier des informations pour mieux arriver à vos fins en entreprise.

“Toute ressemblance avec des situations réelles ou avec des personnes existantes ou ayant existé est partiellement volontaire.”

Boostez le chargement de vos images !

[Quickie] 12:45 - 13:00 @ Amphi D Jean-Michael Legait

Votre UX designer vous a fourni une superbe image de licorne que vous devez à présent intégrer dans votre site web. Mais, voilà elle fait 3 Mo !!! Bon, que faire ? Vous vous dites que vous êtes un Pro de Gimp alors que vous réussirez bien à réduire la taille. Vous arrivez finalement à avoir une image potable de 350 Ko, vous vous dites, c'est bon ça passe crème !!!

Et le lendemain, votre UX designer vous donnes 200 chatons à intégrer ! Et votre manager vous dis que la licorne est floue ! Là, vous vous dites c'est tendu !!!!

Et si vous veniez plutôt à ce talk où je vous donnerai 5 astuces efficaces pour booster le chargement de vos images ? Découvrons ensemble le tag source, le chargement multi-device, WebP, etc...

Dessine moi ... un DSL en Kotlin

[Quickie] 13:05 - 13:20 @ Amphi B Benoit PRIOUX

Les DSL (Domain Specific Language) sont de plus en plus utilisés pour simplifier l'accès à une API (Gatling, Gradle). Pour cela, on utilise des langages comme Scala ou Groovy. Mais savez-vous que le dernier langage à la mode Kotlin le permet aussi ? Dans cette session, nous découvrirons les fonctionnalités de Kotlin qui permettent d'écrire un DSL facilement et sans magie !

Les risques de la revue de code

[Quickie] 13:05 - 13:20 @ Amphi C François Gelineau

Je suis un développeur qui n'aime pas la revue de code, et je vais vous expliquer tout le mal que j'en pense. Cette présentation courte et humoristique n'est faite que de mauvaise foi. C'est une démonstration par l'absurde des intérêts de la revue de code. En mettant les rieurs de mon côté, je vais les convaincre qu'ils peuvent ainsi améliorer les pratiques de développement et la collaboration au sein de leurs équipes.

Comment... Or not comment? That is the question.

[Quickie] 13:05 - 13:20 @ Amphi D Pascal Le Merrer

Comment... or not comment ? That is the question.

Quelles sont les bonnes pratiques en matière de commentaires de code ? Confrontez votre point de vue avec celui d'autres développeurs sur un sujet propice aux polémiques. Et repartez munis d'un support pour lancer la discussion dans votre équipe.

Infinispan, 10 ans et toutes ses dents

[Conférence] 13:30 - 14:25 @ Amphi A Katia Aresti

Infinispan est un cache distribué/datagrid open-source qui est né en Octobre 2008… Où sommes-nous 10 ans plus tard ? Mon constat après 2 ans comme développeuse dans l’équipe est le suivant: beaucoup des devs méconnaissent les capacités et usages des datagrids/caches distribués, et d’Infinispan en particulier.

En quoi Infinispan peut enrichir vos applications? Quels sont les usages, bonnes pratiques, et patterns à mettre en place pour répondre aux besoins des architectures modernes ? Est-ce Infinispan Reactive? Avec quels frameworks l’utiliser, et pourquoi ? Comment déployer tout cela sur des conteneurs et les orchestrer avec kubernetes/openshift ? Que pouvez vous attendre de la version 10 ?

CI/CD FIVE MILLION WORKERS

[Conférence] 13:30 - 14:25 @ Amphi B Benjamin Coenen, Richard Le Terrier, Steven Guiheux

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é sur notre infrastructure sur une année. Avant d'en arriver là, nous avons aussi vécu des fails et essayé différents outils pour répondre à nos problématiques de sécurité et scaling. Venez revivre avec nous les étapes par lesquelles nous (équipe en charge du Continuous Delivery chez OVH) sommes passées et celles qui nous attendent à l'avenir.

Suite à ces expériences nous avons donné naissance à CDS, un outil de CI/CD totalement opensource dévelopé 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ès a déployer une multitude de services en un clic.

Ceci n'est pas un Talk sur LitElement, c'est un cours

[Conférence] 13:30 - 14:25 @ Amphi C Philippe Charrière

Plutôt que d'énumérer les fonctionnalités d'un n-ième framework JavaScript, je voudrais vous expliquer comment construire une application web de A à Z avec le successeur possible de Polymer: LitElement. Alors justement, LitElement ayant très "peu" de fonctionnalités (et tout le reste vous le faites avec du bon vieux JavaScript), il est tout à fait possible d'être opérationnel en 45 minutes. Donc ceci n'est pas un talk, c'est un mini-cours. Donc en sortant, vous saurez développer avec LitElement. Nous verrons:

  • setup du "poste de dev"
  • bootstrap d'un projet
  • créer des custom (Lit)Elements
  • styler les éléments
  • faire communiquer des (Lit)Elements
  • fonctionnement avec d'autre frameworks JavaScript et leur utilité (router, state, ...)
  • build

Bien sûr vous devez connaître JavaScript et HTML

Remarques pour les orgas: Mon objectif est de faire un talk utile (mise en application possible dès la fin du talk) Je suis en train d'en faire une version en ligne pour que les attendees puissent ensuite s'y raccrocher s'ils souhaitent reproduire ce que j'aurais présenté (et aussi échanger avec moi)

Scaling Java Application : Vers l’infini et au delà

[Conférence] 13:30 - 14:25 @ Amphi D Julien Roy

Un moteur de calcul de prix en Java et scalable jusqu’a l’infini c’est possible ! Mais à notre grande surprise le chemin était pavé d’embuches. Dans cette présentation, je partage les différentes étapes, les problèmes rencontrés, les solutions ainsi que les outils qui nous ont permit d’atteindre cet objectif. On y parle JVM, Docker, AWS, Off-heap, Caching, Postgresql, Concurrence et autres réjouissances qui sortent un peu de notre quotidien de développeur.

Architecture Hexagonale Level 2 : Comment bien écrire ses tests.

[Conférence] 14:35 - 15:30 @ Amphi A Julien Topçu, Jordan Nourry

De plus en plus d’équipes adoptent l’architecture hexagonale comme structure de prédilection pour leurs applications métiers, mais peu d’entre elles savent réellement bien les tester. Et malheureusement lorsque l’on se plante sur ce point, la maintenance de notre architecture hexa devient un véritable calvaire!

Lors de ce talk, nous allons aborder les 5 niveaux de tests préconisés pour les microservices adaptés à l'architecture héxagonale. Et en prime comment avoir une documentation drivée par les tests.

Venez découvrir à côté de quoi vous êtes peut-être passés dans le développement de vos tests!

Ceci est une live coding session en Java/Kotlin SpringBoot.

Les challenges à maintenir un projet open-source comme Gradle

[Conférence] 14:35 - 15:30 @ Amphi B Cédric Champeau

Gradle est un outil de build open-source utilisé par des millions de développeurs. De plus, avec une nouvelle release mineure toutes les 6 semaines en moyenne, ce rythme rapide impose un certain nombre de challenges. Morceaux choisis :

  • tests de compatibilité avec les JVMs de 5 à 12+
  • tests de non régression: entre nos propres projets et les plugins populaires de la communauté
  • tests cross-versions: la Tooling API, en particulier, est à la fois backward et forward compatible
  • tests de performance: s'assurer que chaque version de Gradle est plus rapide que la précédente, ou qu'une régression est documentée

Cette session couvrira aussi la façon dont l'équipe gère:

  • la compatibilité binaire
  • les cycles de dépréciation et les avertissements aux utilisateurs
  • les updates de sécurité
  • la gestion de la documentation
  • et plus encore !

Nous avons appris certaines leçons de la manière forte et sommes convaincus que certaines de nos réponses peuvent s'adapter à vos propres projets !

Comprendre les tours de passe-passe de Webpack

[Conférence] 14:35 - 15:30 @ Amphi C Cédric PATCHANE

Webpack est aujourd'hui devenu un outil incontournable dans l'écosystème du développement d'applications Web. Il a su se démarquer de ses homologues en considérant que tout élément est un module qui peut être importé dans le build final d'un projet. Souple et agnostique, il se révèle également bien adapté pour évoluer dans l'environnement que nous connaissons aujourd'hui, avec une multitude de nouveaux frameworks et de languages Web.

Transpilation, optimisation, minification, gestion d'assets ou encore serveur de développement, on peut lui trouver bon nombre de fonctionnalités qui font qu'on le considère très souvent comme "une usine à gaz" et on peut parfois penser que beaucoup de choses fonctionnent ainsi "par magie".

Dans cette conférence, nous commencerons avec les toutes premières bases du fonctionnement de Webpack en abordant dans les détails son but primaire : construire du code JavaScript pour le navigateur. À partir de là, nous verrons les différentes possibilités ainsi offertes, notamment avec les loaders et les plugins, pour comprendre véritablement comment ce bundler fonctionne et surtout voir qu'il n'y a aucune magie derrière.

Au secours, je dois gérer la production !

[Conférence] 14:35 - 15:30 @ Amphi D Morgan Leroi

Développeurs, et si penser à la production dès le début de nos développements modifiait profondément notre manière de penser et concevoir nos applications ?

A la manière du TDD, penser production améliore nos applications et les préparent efficacement à la vrai vie.

Je vous propose un retour d'expérience sur trois années durant lesquelles j'ai eu la chance d'intégrer une équipe où les développeurs gèrent eux-mêmes la production d'une application critique. Vous découvrirez comment ce mode de fonctionnement agit sur les choix techniques et notre manière de développer. Du développement aux préparations des releases en passant par le support utilisateur et le suivi quotidien de l'application, venez découvrir le "Production Driven Development" !

Comprendre les GC à faible latence

[Conférence] 16:00 - 16:55 @ Amphi A jean-philippe BEMPEL

Depuis quelques années, le monde du GC sur la JVM évolue. Une nouvelle catégorie de GC émerge: Les GC à faible latence (low latency). Shenandoah est mis à disposition par Red Hat, Oracle a mis en open Source ZGC dans l'OpenJDK depuis le JDK 11 et Azul C4 est toujours là. Comme les GC "classiques" sont plutôt bien compris maintenant, cette présentation s'attardera sur les arcanes des plus récents. Nous allons expliquer le concurrent marking (tri-color marking), la Load Value Barrier de C4, les Brooks pointers de Shenandoah et le multi-mapping de ZGC. Enfin, comment choisir son GC à faible latence ?

Du Blue-Green au Canary-Release avec Kubernetes

[Conférence] 16:00 - 16:55 @ Amphi B Mathieu Herbert

Avec Kubernetes intégré à son infrastructure, le rolling update est la façon la plus simple de mettre à jour une application. Mais d'autres types de mise à jour sont également possibles : le Blue Green qui permet de passer à une nouvelle version avec juste un basculement de flux, mais également le Canary Release qui peut faire rediriger la charge de ses applications graduellement entre ancienne et nouvelle version dans une optique de 'Zero Downtime'. Nous ferons ainsi, un tour des différents patterns de déploiement que l’on peut utiliser dans les cloud native applications et une démonstration de chacun des patterns sur Kubernetes et Traefik.

Sous le capot des conteneurs Linux

[Conférence] 16:00 - 16:55 @ Amphi C Alessio Coltellacci

Aujourd’hui, beaucoup d’architectures cloud se reposent sur des technologies de conteneurs Linux (docker, lxc, rkt, …). Au delà des choix des technologies, qu’est-ce qu’un conteneur Linux en lui-même ? Peut-on le comparer à une VM light ? En créant soi-même un conteneur Linux, on comprend mieux cette technologie .

Contenu de la présentation:

  • Expliquer les fonctionnalités du noyau: cgroups, namespace, ulimits utilisés pour créer un conteneur et limiter ses ressources.

  • Construire un micro conteneur linux from scracth.

  • Montrer les dernières features des conteneurs linux (e.g. user namespace)

  • Une digression sur leur évolution par rapport aux unikernels.

Craftsmanship & Shoot-them-up avec LibGDX en Java

[Conférence] 16:00 - 16:55 @ Amphi D François-Xavier Robin

ou comment coder un Shoot Them Up old school inspiré du best sellers Xenon 2 des Bitmap Brothers pour améliorer ses pratiques de développement et produire du code noté "A" dans SonarQube, Codefactor et Codacy. Si tu aimes en vrac : les design patterns, le CleanCoding, les CodingChallenge, les gros pixels bien baveux et les musiques soundchip sur YM-2149, cette présentation est aussi faite pour toi

WebAuthn: Le renouveau de l'authentification

[Tool in Action] 17:05 - 17:30 @ Amphi B Thomas Blaisot

En 2018 on trouve encore des mots de passe sur des postits collés à l'écran et qu'on retrouve sur twitter, etc...

L'authentification 2 factor ne résolvant pas ce problème, une nouvelle solution à été trouvée par l'alliance FIDO (Fast IDentity Online):

Au travers nottament du W3C ils ont proposé une solution qui permettra enfin à chacun de ne plus retenir ou saisir de mot de passe. Et même mieux encore, de ne plus avoir à choisir de mot de passe pour s'inscrire sur des sites : le PASSWORDLESS devient réalité (plus communément appelé UAF ou encore WebAuthn).

Basé sur le principe "ancien" de la cryptographie asymétrique, ces standards veulent révolutionner la façon dont tout le monde s'authentifie, pour peut être, un jour enfin, ne plus rencontrer de login "admin:password" sur les serveurs de prod !

Ce quikie est une présentation rapide du pourquoi et du comment l'implémenter, pour que chacun repense là façon dont il s'authentifie, mais aussi, en tant qu'acteur du web, comment il demande aux utilisateurs de s'authentifier.

FastText, le proton pack des WordBusters

[Tool in Action] 17:05 - 17:30 @ Amphi C Fabrice Depaulis

Analyse de sentiment, traduction automatique, reconnaissance vocale, ... : derrière tous ces buzz words, se cache une technique de deep learning appelée le "Word Embedding". On pourrait avoir l'impression de s'attaquer à Gozer en abordant ce sujet, mais heureusement, on peut aujourd'hui s'y atteler facilement en ayant recours au proton pack de la classification de document : FastText. Dans ce "tool in action", vous verrez pourquoi et comment recourir à cette librairie pour faire de la classification de texte, de manière étonnamment simple et efficace.

Créez vos visualisations personnalisées dans Kibana avec Vega.js

[Tool in Action] 17:05 - 17:30 @ Amphi D Raphaël LUTA

Depuis sa version 6.2, Elastic Kibana permet d'utiliser la grammaire Vega ou Vega-lite pour définir des visualisations réutilisables et personnaliser vos tableaux de bord.

Dans ce tools in action, je vous montrerai par la pratique comment, en seulement 25 min, créer une visualisation personnalisée puis l'intégrer dans Kibana.

😊 Happy breizhcamp!