[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 :
- https://flutter.io/docs/get-started/install
- https://flutter.io/docs/get-started/editor
- https://flutter.io/docs/get-started/test-drive
Si vous affichez l'application de base dans un émulateur c'est tout bon !!!
[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 !
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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 !
[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 !
[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
[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.
[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.
[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.
[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
[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.
[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.
[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.
[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.
[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.
[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.
[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)
[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.
[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.
[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
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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?
[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.
[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.
[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 !
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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é.
[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.
[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.
[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.
[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.
[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.
[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 ?
[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 !
[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 !
[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.
[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.”
[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...
[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 !
[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.
[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.
[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 ?
[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.
[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)
[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.
[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.
[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 !
[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.
[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" !
[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 ?
[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.
[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.
[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
[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.
[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.
[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!