Theme

Format

Level

Language

Wednesday 10 July 15:40 - 16:30
K Center (35 places)

Have you ever heard of “cupping”? As with wine and oenology, coffee can be tasted to decipher all its particularities. Discover in this talk the secrets of a “Brazilian tasting” session (used by roasters to evaluate the aromatic profile of coffee) and you too can make your coffee like a pro! This talk will allow you to understand the preparation parameters of cupping, set according to an international standard, but also to develop your palate thanks to this practice accessible to all.

This presentation will begin with a history of coffee, from the tree to the cup. Note: only the first 8 participants will be able to actually taste the coffee during the cupping session, but the tasting will be open to everyone independently at the end of the workshop.

Et si vous quittiez tout pour partir à l’aventure et faire le tour du monde ? Peut-être en avez-vous déjà rêvé mais n’avez jamais osé franchir le cap.

Nous sommes 2 développeurs et nous sommes partis 10 mois avec nos 2 enfants pour faire le tour du monde. Durant ce talk nous allons vous expliquer concrètement comment passer du rêve à la réalité.

Comment construire son itinéraire, comment monter son budget et s’y tenir, comment quitter son boulot, quel matériel emmener, …

Loin des idéaux Instagram, nous vous présenterons les joies et les galères sans tabou. Et comment gérer le retour.

Donc si vous avez envie de concrétiser vos rêves d’aventure, rejoignez-nous !

L'année dernière nous vous avions présenté les bonnes recettes que nous avons mis en place à Amadeus pour accélérer nos opérations, les rendre plus sures et moins sujettes aux erreurs humaines via l'utilisation de GitOps.

Ca vous dit d'aller un peu plus loin? De creuser un peu les petits détails de la mise en place de GitOps?

Ne vous inquiétez pas si vous n'étiez pas là l'année dernière, nous reviendrons brièvement sur les principes essentiels de GitOps mais nous nous concentrerons cette fois ci surtout sur les contrôles que nous avons mis en place pour éviter une catastrophe:

  • Que faire si le changement n'a pas été qualifié?
  • Que faire si un élément de l'infrastructure est en maintenance?
  • Que faire si le chef est pas d'accord?
  • Comment on s'aperçoit qu'on a ENCORE cassé la prod?
  • Comment on répare VITE la prod?

Bien sur on vous illustrera tout ça grace à des démos live où nous mêlerons les opérations de Quarkus, Kubernetes / OpenShift en utilisant Argo CD!

Tuesday 9 July 17:45 - 18:10
Amphi 300 (110 places)

Nous sommes actuellement environ 8 milliards d’individus sur Terre et nous sommes tous différents mais nous devons rentrer dans des cases, suivre le même programme éducatif, et nous devons tous apprendre de la même manière.

Et si je vous disait qu'il est possible d'apprendre et de partager autrement, de faire appel à son imagination et à sa créativité et que c'est bénéfique pour tout le monde ?

Dans ce talk, je raconte une histoire, je vous raconte mon histoire, de comment je suis passée d'une personne qui avait perdu ses passions à la création de sketchnotes, vidéos, talks qui sortent du commun et de livres illustrés.

Partager autrement est-ce simple ? Peux t-on changer les choses ? Pourquoi ? Pour qui ? Il y a t'il des tips à savoir ?

Nous répondrons à toutes ces questions :-).

Et pour finir, nous verrons que nous avons chacun de super pouvoirs a utiliser à bon escient.

Tuesday 9 July 16:10 - 17:00
Amphi 300 (110 places)

Vous aimez le gros son chiptune caractéristique des années 70/80 ? Vous vous intéressez aux API WebAudio et WebMIDI mais vous ne vous êtes jamais vraiment plongés dedans ? Alors ce talk est fait pour vous !

Dans cette session nous descendrons dans les arcanes de la génération et de la gestion du son dans votre navigateur web au travers de AYM·JS, un émulateur écrit en JavaScript de la célèbre puce sonore des années 70 et 80 : le AY-3-8910/YM2149.

En premier lieu nous verrons comment exploiter l'API WebAudio pour générer des samples, les mixer et les envoyer sur la sortie sonore du navigateur. Puis nous nous intéresserons à l'API WebMIDI pour créer un véritable synthétiseur polyphonique vintage et pilotable à l'aide d'un clavier MIDI externe.

Wednesday 10 July 13:30 - 14:20
Amphi 339 (509 places)

Illustration de la conférence :

<img src=“https://raw.githubusercontent.com/jvauchel/dompter-data-talk-2023/main/images/dompter-data-illustration.jpg” width='500'/>

Pitch vidéo : https://www.youtube.com/watch?v=vQ5pa_EAh_M

Il y a deux ans, j’étais développeuse C++, et j’ai fait le choix d’entamer une reconversion pour apprendre à dompter la Data et devenir Ingénieure Data.

Pour passer d’un univers à un autre, monter en compétence a été une étape, mais me sentir légitime a été une épreuve.

Comment passe-t-on du développement d'applications 3D à la gestion d'une pipeline de données Kafka ? D'un outil de génération de cuisines automatiques pour Ikea à l'ingestion de milliers de données sous Snowflake ?

Qu'est-ce qui m'a fait sauter le pas pour sortir de ma zone de confort ? Comment j’ai réussi à gérer mes doutes, à faire des choix cornéliens, et à traverser les moments difficiles ?

Dans ce retour d'expérience, je vais d’abord partager avec vous mon parcours à travers les maths, la 3D et la Data. Je vous parlerai des moyens utilisés pour me former à la Data, et de la place essentielle de la cohésion d’équipe dans ma reconversion.

Je vous donnerai ensuite les astuces et les indispensables pour réussir à vous lancer dans une reconversion, et vous découvrirez qu’un choix de parcours atypique pourra vous apporter beaucoup plus que des compétences techniques (adaptation au changement, confiance en soi …). Nous verrons enfin comment améliorer l’intégration des profils en reconversion et ainsi favoriser leur inclusion dans votre entreprise.

Pour en savoir plus : https://jvauchel.github.io/dompter-data-talk-2023/

Avez-vous déjà entendu “ça doit fonctionner 24/7”, “Je veux 100% de dispo”, pour finir avec “en réalité, une VM ça sera largement suffisant” ? Ou au contraire “Pas de SLA, ma plateforme n'est pas critique, il faut juste qu'elle tourne impérativement le premier du mois à 6h54 précises” ?

Si ces situations sont votre quotidien, ne perdez pas espoir ! Que ces critères techniques (Non Functional Requirements) soient explicites ou non, ils sont la clé qui vous permettra de concevoir une architecture en adéquation avec le besoin client.

En se basant sur deux exemples fictifs (toute ressemblance avec la réalité serait bien évidemment fortuite, ou pas), nous verrons comment déjouer les pièges de la surqualité, et comment mettre en place une démarche pragmatique d'identification de la bonne architecture pour le bon besoin métier.

À l’issue de cette présentation, nous saurons comment identifier ces fameuses NFRs qui nous aiderons à concevoir de meilleures architectures en évitant la sur-complexité !

Tuesday 9 July 18:10 - 18:35
Amphi 137 (260 places)

Rejoignez-nous pour une présentation où nous dévoilerons les mystères des systèmes anti-bot, qui protègent les sites web, les APIs et les applications mobiles ! 🌐📲

🛠️ Ce qui vous attend :

1/ Les couches de protections

Explorer les principes de fonctionnement d’un score anti-bot à travers différentes couches : empreinte TCP/IP, empreinte TLS, empreinte HTTP/2 et empreinte du browser. 🤯🔍

2/ Démystification du Score de Réputation Anti-Bot

Plongez dans le fonctionnement du score de réputation anti-bot, comprenant comment il opère à travers différentes couches pour renforcer les sites web. 🛡️💡

3/ Contourner les protections

Découvrez des stratégies pour naviguer à travers ces défenses, dévoilant des techniques pour déjouer les mécanismes de détection. 🕵️‍♂️💨

Après cette présentation, vous serez bien équipé de connaissances pour naviguer et comprendre les subtilités de ces mesures de protection ! 🚀🔒

Ne manquez pas cette opportunité de comprendre les systèmes anti-bot! 🌐🔓

antibot #webscraping #proxy

Plongez dans la migration de l'application Devoxx CFP de Angular 10 à Angular 17. Cette session explore les défis et les solutions pratiques rencontrés durant ce parcours de mise à niveau.

Nous commencerons par examiner les raisons de passer à Angular 17, en soulignant ses fonctionnalités avancées et les améliorations de performance. Le cœur de la présentation partage les expériences vécues lors de la mise à jour de l'application Devoxx CFP, en mettant l'accent sur la gestion des changements importants, l'adaptation aux nouvelles bibliothèques et la résolution des problèmes de compatibilité, illustrés par des exemples concrets tirés de ce projet.

Nous traiterons des aspects critiques tels que la gestion des API dépréciées, la maîtrise des dépendances des bibliothèques et l'utilisation des nouvelles fonctionnalités d'Angular 17. L'objectif est de fournir une feuille de route claire pour des migrations similaires, soulignant les difficultés possibles et les stratégies pour les surmonter avec succès.

Des astuces et stratégies concrètes, issues de cette expérience réelle, seront présentées, équipant les développeurs des outils nécessaires pour effectuer efficacement leur propre migration vers la dernière version d'Angular.

Participez à cette session pour un aperçu enrichissant de la mise à niveau vers Angular 17, et repartez avec les connaissances et la confiance pour appliquer ces apprentissages à vos projets Angular

CDI est la pierre angulaire des nouvelles stack techniques que nous aimons tant : MicroProfile, Quarkus, Micronaut, Helidon pour n'en citer que quelques unes. Le succès de cette specification repose sur le fait qu'elle propose un modèle de programmation unifié, très peu intrusif et extensible.

A l'origine CDI proposait un mécanisme d'extension au Runtime (les portable extension). Puis avec l'avénement de Quarkus et son approche de génération de code à la compilation, est venu le besoin d'avoir des extensions pouvant se configurer au Build-time. C'est un des apport de CDI 4.0 avec l'introduction de CDI Lite.

Dans ce talk, nous allons revoir brièvement l'historique de CDI, les stacks qui l'utilisent, et feront un rapide passage sur les extensions traditionnelles, pourquoi faire une extension ? Comment ?

Enfin nous aborderons les build compatible extensions, que nous pourront comparer au mécanisme natif des extensions Quarkus, et pourquoi selon nous il reste intéressant de proposer des build compatible extensions CDI 4.

Bien sur nous vous montreront du code et de l'execution avec une démonstration de l'integration de LangChain4j , cette fois ci avec Quarkus et Helidon. 

Un jour, je plaquerai tout pour aller élever des chèvres dans le Larzac !

Qu'est-ce qu'on a pu l’entendre cette phrase lorsqu'on en avait marre du projet sur lequel on bossait ! Eh bien, un jour, j'ai sauté le pas de l'élevage, ou presque : je n'élève pas des ovins, mais des abeilles mellifères.

Avez-vous déjà ouvert une ruche ? Savez-vous comment est organisée une colonie d'abeilles ? Comment s'occuper de ses colonies, les soigner, les protèger, les faire grossir, les dupliquer, jusqu'au moment tant attendu de la récolte ?

Il y a un peu plus d'un an, je me suis inscrit à l'initiative d'un ami apiculteur de mon village : le lancement d'un rucher communal. Entre les cours théoriques et la mise en pratique, du premier essayage de la combinaison à la mise en pot du miel, je viens vous raconter cette aventure d'une pratique aussi vieille que l'Humanité.

Si vous avez du pot 🍯, on fera même une dégustation !

Tuesday 9 July 16:10 - 17:00
Amphi 139 (160 places)

You've probably seen how to create a Function-as-a-Service with one of the cloud providers, but if this is all you know about Serverless, prepare to have your mind blown! In this session we'll show you how to create a production-grade, cloud-neutral, event-driven serverless solution with Quarkus, a Java stack optimized for fast startup and small footprint; and Knative, an open-source community project for deploying, running, and managing serverless applications on Kubernetes. Say goodbye to vendor lock-in and hello to Supersonic Subatomic Java-based Serverless bliss!

Wednesday 10 July 17:05 - 17:35
Amphi 339 (509 places)

Il n'est jamais facile d'améliorer l'expérience utilisateur d'une application Web. Pourtant, il est important de le faire : une application dont l'expérience utilisateur est médiocre est une application qui ne sera pas utilisée et qui peut, à terme, coûter cher à l'entreprise.

En 2020, Google a annoncé l'intégration de trois nouvelles mesures dans ses outils d'audit de performance. Ces mesures sont connues sous le nom de Core Web Vitals et sont les suivantes :

  • LCP : Largest ContentFul Paint (plus grand tableau de contenu)
  • CLS : Cumule layout shift (décalage de la mise en page)
  • FID : First Input Delay (délai de la première entrée)

Lors de la conférence Google I/0 2023, Google a annoncé la nouvelle mesure INP (interactive to next paint), qui remplacera la mesure FID en 2024. Mais pourquoi déprécier la mesure FID ? Qu'est-ce que la métrique INP et comment l'optimiser ? Quelles sont les meilleures pratiques à suivre pour obtenir de bons résultats avec les métriques précédentes ?

Dans cette conférence, je répondrai à toutes ces questions avec des recommandations et des exemples que vous pouvez utiliser quotidiennement en tant que développeur.

Wednesday 10 July 13:30 - 14:20
Amphi 300 (110 places)

Depuis le début de l'année, les annonces concernant les ordinateurs quantiques se multiplient. L'informatique quantique promet une puissance de calcul sans précédent, révolutionnant des domaines allant de la science des matériaux et de la découverte de médicaments à la modélisation financière et à la cryptographie. Mais qu'est-ce que l'informatique quantique et comment fonctionne-t-elle ? Cette conférence plonge dans le monde fascinant de la mécanique quantique pour dévoiler le fonctionnement interne des ordinateurs quantiques, en explorant des éléments tels que les qubits, les portes quantiques, les circuits quantiques, les algorithmes quantiques, les hardwares quantiques et en montrant comment nous pouvons simuler et exécuter un programme quantique !

Décortiquer les mystères du salaire, un terrain miné où se mêlent débats enflammés, préjugés persistants et fantasmes insaisissables…

Parfois, tel un mauvais date, vous avez du mal à aller jusqu’au bout d’une proposition convenable à cause de multiples arguments comme « on n’a pas le budget », « on doit respecter la grille salariale » ou encore « vous n’avez pas été assez convainquant techniquement ». J’exposerai donc les points critiques qui vous font souvent obstacle.

Évidemment ça vous frustre et vous n’êtes pas Jean Claude Dusse : tout ne se joue pas sur un malentendu. Ainsi je vous donnerai les coulisses de la réflexion salariale et les quelques contre-arguments à formuler pour gagner la partie. Tout cela saupoudré de mon analyse du profil des employeurs/interlocuteurs. Je vous parlerai donc des utilisateurs de vos compétences et de leurs freins réels et psychologiques. C’est mon petit côté agile.

Enfin, telle une vétérante du recrutement, je vous dévoilerai une multitude de conseils pratiques pour maîtriser l'art de la négociation salariale. Pour cela, je mettrai en lumière l'importance cruciale de la préparation et de l'anticipation dans cette jungle du recrutement bien avant que la question du salaire ne soit posée sur la table.

Fini le mystère, place à la stratégie gagnante ! 😘

L'évolution rapide du paysage technologique d'aujourd'hui pousse les organisations à dépasser les silos traditionnels pour favoriser l'innovation et l'excellence opérationnelle. Cette transformation commence par l'adoption des principes DevOps, qui renforcent la communication, la collaboration et l'automatisation entre les équipes de développement et d’exploitation. Toutefois, DevOps se concentre principalement sur la relation entre ces équipes, laissant de côté les besoins des autres parties prenantes.

Notre conférence propose un voyage de DevOps à GitOps, puis à l'Ingénierie de Plateforme (Platform Engineering), détaillant chaque étape avec des définitions précises, des études de cas et des exemples concrets. Nous analyserons comment ces pratiques, en se connectant, améliorent le développement logiciel.

L'accent sera mis sur l'Ingénierie de Plateforme, qui étend les capacités de DevOps et GitOps. Elle offre une solution intégrée répondant aux divers besoins des parties prenantes, respectant les politiques d'entreprise et les contraintes de gouvernance. Nous explorerons les aspects techniques de l'implémentation d'une plateforme unifiée, son impact sur la collaboration et l'importance de l'automatisation dans ce processus.

Aucun des outils automatiques d'analyse de sécurité n'ont la connaissance métier d'un DevSecOps !

Chez Amadeus, nous avons commencé à organiser des événements pour sensibiliser nos ingénieurs à la sécurité. Ces Bug Bounty ouverts aux volontaires – une centaine à chaque édition - sont l’occasion de s’amuser à essayer de trouver des vulnérabilités dans son code, comprendre ce que peuvent faire les cybercriminels, et de rendre plus concret les problématiques de cybersécurité.

Passer une journée dans la peau de Jack Sparrow, a quoi ça sert et qu’est-ce que ça rapporte ?

Vous repartirez avec notre super kit d’organisation de Bug Bounty… et quelques trésors.

L'intelligence artificielle a connu des progrès fulgurants ces dernières années, mais son accessibilité reste limitée aux machines puissantes et aux experts en informatique. Cette présentation vise à démolir ce mur en démontrant comment faire tourner des LLM (modèles de langage de grande taille, mais en fait petits, mais costauds, dans le cas qui nous intéresse) sur un simple Raspberry PI 5 (et si ça tourne sur un Pi…).

En tirant parti de la puissance d'Ollama, une plateforme de LLMs, et de LangChain, un framework de programmation d'application GenAI (Generative AI), nous ouvrons la voie à une expérimentation accessible de l'IA.

Voici ce que vous découvrirez lors de cette présentation:

  • Préparation du Raspberry PI 5: Configuration du système et installation des logiciels nécessaires.
  • Déploiement d'une stack GenAI avec Docker Compose: Mise en place d'un environnement de développement complet en quelques clics.
  • Programmation d'applications GenAI: Création de Chatbots et de documents intelligents (RAG) en Python et en JavaScript.
  • Les bases et les concepts de LangChain JS
  • Développement détaillé d'applications (mise en application des concepts): un middleware pour interroger le LLM et fournir une API, ainsi qu'un front qui utilisera ce middleware/API
  • Présentation d'applications développées en Python, avec LangChain Python et StreamLit (Disclaimer, je ne suis pas un développeur Python, mais j'ai pu préparer quelques exemples très instructifs.)

Que vous soyez débutant en IA ou expert confirmé, cette présentation vous offrira une nouvelle perspective sur l'expérimentation et le développement d'applications GenAI.

Je mettrais à disposition un projet qui permet d'installer toutes les dépendances automatiquement, ainsi qu'Ollama, les LLMs et un Web IDE pour pouvoir commencer à développer dès la fin de cette présentation.

Tuesday 9 July 15:00 - 15:50
Amphi 137 (260 places)

Rust est un langage riche et performant mais aussi de haut niveau. Venez découvrir la méta-programmation en Rust avec son système de macros.

A travers un exemple simple, découvrez pas-à-pas les techniques de développement d'une macro ainsi que mes trucs & astuces.

Format : Talk

Category : Frontend

Qui est l'audience ?

Cette présentation s'adresse aux développeurs frontend avec une première expérience conséquente sur le framework Angular (c'est-à-dire un niveau intermédiaire - 2 ou 3 années d'expérience sur Angular).

L'objectif sera de motiver les développeurs présents lors de la présentation à investir du temps pour monter en compétences sur RxJS, en présentant les avantages que peut représenter l'utilisation de la programmation réactive pour leurs projets et leur carrière.

De quoi allez vous parler ?

La présentation sera focalisée sur l'utilisation concrète de RxJS au sein d'un projet Angular, au travers de 3 cas d'implémentation courants. Pour chaque implémentation, nous présenterons un comparatif avec et sans la réactivité.

Voici une version globale de ce que nous présenterons :

Introduction : Avez-vous le problème que résout RxJS ?

Pour beaucoup de développeurs juniors, RxJS est une technologie étrange, imposée par les créateurs d'Angular dans le framework.

Mais plutôt que de subir cette décision de la Team Angular, il faut rappeler que RxJS permet de faire bien plus que des requêtes HTTP.

L'objectif sera donc de se mettre d'accord sur le problème que RxJS résout : la complexité dans la base de code.

Nous commencerons donc par définir la complexité comme la somme de 3 composantes :

  • Un état partagé et mutable. (Shared Mutable State)
  • La circulation des données. (Data Flow)
  • Le volume de code. (Code Volume)

Nous verrons comment RxJS permet d'adresser efficacement ces 3 composantes de la complexité.

Partie 1 : 100 opérateurs RxJS en 10 minutes

Un des obstacles principal à l'apprentissage de RxJS est le nombre impressionnant d'opérateurs mis à disposition par la librarie (plus de 100 !)

L'objectif sera donc de rendre l'utilisation de ces opérateurs aussi digeste et intuitive que les méthodes utilisées pour le traitement d'un tableau : map, filter et reduce.

Nous verrons que les +100 opérateurs de RxJS peuvent être classés en 4 catégories simples :

  • Création : of, fromEvent, interval, timer, combineLatest, forkJoin…
  • Transformation : map, switchMap, mergeMap, concatMap, bufferCount…
  • Filtrage : debounce, throttle, filter, distinctUntilChanged…
  • Calcul : reduce, scan, count, max…

Pour chacune des catégories, nous verrons qu'il existe plusieurs opérateurs, car RxJS s'occupe de gèrer la dimension du temps en plus d'un simple tableau.

Cette dimension supplémentaire à l'air d'ajouter de la complexité a priori. Mais cela permet de gérer l'asynchronicité dans notre code, de manière élégante et déclarative.

Partie 2 : Résoudre des problèmes de la “vraie” vie avec RxJS

Les exemples donnés dans les tutoriels ont toujours l'air d'un monde “enchanteur”, que les développeurs n'arrivent pas à appliquer concrètement dans la vraie vie par la suite…

Nous effectuerons 3 ateliers qui seront tous liés à un même requirement d'un client fictif, dans Jira. Nous traverserons 3 couches logicielles du même requirement, mais en appliquant la programmation réactive à chaque fois :

Couche de présentation (Presentational Layer)

Exemple de gestion réactive de la vue dans le cadre d'un formulaire : combineLatest, fromEvent, debounce…

Gestion de l'état (State Management)

Exemple de gestion réactive de l'état impacté par le formulaire précédent: BehaviorSubject, scan, next(), selectors & async…

Couche d'accès aux données (Data Layer)

Exemple de gestion réactive de l'accès aux données depuis un serveur distant : Requêtes HTTP & caching (HttpClientModule, catchError, timeout, map & shareReplay), Stratégies de mapping asynchrone (concatMap/mergeMap/switchMap/exhaustMap)

Partie 3 : Comment convaincre Mr. Promise et Mr. Fetch API d'utiliser RxJS ?

Une fois que l'on a découvert une nouvelle technologie et que l'on est capable de l'utiliser, il reste le plus dur… Convaincre ses collègues de changer leurs habitudes pour travailler d'une nouvelle façon.

L'objectif de cette troisième partie sera donc de convaincre le reste de son équipe de se mettre à la réactivité.

Nous présenterons un framework simple qui permet d'expliquer rapidement aux autres membres de son équipe comment utiliser RxJS au quotidien. Nous avons appelé ce framework : “Golden River, Muddy River & Golden Road”.

  1. Golden River : Quel est le flux idéal que l'on veut obtenir en sortie ? Celui qui contient directement la réponse attendue ?
  2. Muddy River : Quels flux nous avons déjà à notre disposition ? (Cf Partie 1: Opérateurs de création)
  3. Golden Road : Quels opérateurs appliquer pour atteindre la Golden River à partir de la Muddy River ? (Cf Partie 2: Opérateurs de transformation, filtrage et calcul)

Ouverture, Questions & Réponses

Ouverture : Rappelez que la programmation réactive avec RxJS est un paradigme de programmation qui peut-être utilisé en dehors d'Angular. (Notamment dans les autres frameworks frontend React & VueJS)

Question & Réponses : Répondre aux objections éventuelles et autres questions ouvertes.

Comment aller vous en parler ?

Le déroulement de la présentation sera un talk plutôt classique, composé principalement de slides et de questions au public tout au long de la présentation.

  1. Slides épurés et imagés pour se concentrer sur les explications de l'orateur.
  2. Capitaliser sur la création de contenu “online” : c'est un format dans lequel l'attention de l'audience est une ressource rare. Nous essayerons donc de reprendre la même structure de contenu pour ne pas ennuyer l'audience (présenter une histoire/anectode, donner des exemples concrets, montrer des captures d'écran).
  3. Pas de live coding prévu : pour un premier talk en présentiel devant une audience large, nous trouvons l'exercice déjà suffisamment exigeant.
Tuesday 9 July 17:45 - 18:10
Amphi 339 (509 places)

Maintenir des tests end-to-end (E2E) est une véritable aventure alors prenez votre serviette et don't panic.

Ensemble, nous plongerons dans l'histoire d'une application de la Société Générale vieille de sept ans et toujours d'actualité. L'importance des tests dans le secteur de la finance est primordiale, et nous verrons comment ils ont été intégrés dans notre workflow de livraison.

Nous explorerons les choix stratégiques en matière de tests E2E, ainsi que les outils utilisés, comme Playwright.

Les trois axes essentiels de notre parcours seront la stabilité, la maintenabilité et l'interprétation des résultats. Au fil de cette odyssée, je vous dévoilerai comment cela s'est concrétisé au sein de ce projet et de l'équipe. Au programme, des pratiques telles que le split, la parallélisation, les Architecture Decision Records (ADR), Jenkins, Github Action et bien d'autres encore.

C'est une histoire en évolution constante, et je partagerai avec vous les défis à venir, dessinant ainsi le prochain chapitre de notre aventure.

Vous êtes-vous déjà perdu dans le code d’un workflow complexe avec beaucoup de règles métier ? Entre les if-else un peu partout, les appels à des micro-services internes, les sollicitations de services externes, les callbacks, les sauvegardes en base, les retours au front, on peut facilement se retrouver avec un code spaghetti !

Le pattern machine à états nous permet de créer un processus défini clairement à partir de multiples étapes. Ces étapes sont effectuées une à une en fonction de l’état dans lequel se trouve l'objet qui parcourt le process.

Rejoignez-moi pendant 45 min pour construire une Machine à Etat from scratch.

Le use-case ? Aider la petite souris à gérer un workflow à s’en arracher les poils : collecte des dents, vérification des caries, commande et réception de pièces à la banque de France et l’expédition sous l’oreiller.

Aucun fromage, que du Java.

In this lab (assuming you successfully passed the skills check below 🤓), with some guidance from the crew, you will create your own CMS with a Markdown Editor and all :)

Bonus point: A FullStack Microservice to allow commenting 💬 on the articles!

Skills check (if you understand these, you have the skills required for this lab):

  • git clone -b start https://github.com/ia3andy/quarkus-web-lab.git
  • System.out.println(“I have already played with Java”);
  • “here should be HTML tag”

We (the Quarkus team) crafted a set of tools for Full-Stack developers, allowing you to create Single Page apps (React, Angular, …), FullStack Microservice (Lit, ..) or Server Side Rendering (with htmx or not) with close to zero configuration.

Get ready for some dev joy! In this lab, we're leveraging all this to show you how Quarkus can also level up your own Web Apps.

Pre-requisites (please make sure you have this before you join the lab):

  • Laptop
  • JDK 17+
  • Git
  • IDE (IntelliJ, VSCode, …)
Monday 8 July 14:00 - 17:00
K Center (35 places)

La Fresque de la Data est un atelier collaboratif conçu dans le but de familiariser les participants avec les concepts fondamentaux de la Data ainsi que d’identifier et d’évaluer les risques liés à l'utilisation de la donnée.

Tirant son inspiration de la Fresque du Climat, c’est une approche ludique, qui favorise les échanges et encourage la collaboration entre les participants, offrant ainsi une opportunité de s’aligner et renforcer l’esprit d’équipe.

Ce format innovant part du constat que la principale cause de difficultés en Data est le manque de compréhension, d'alignement et de collaboration entre les différents interlocuteurs. Pourtant, les approches classiques d'acculturation à la Data ont trop rarement l'effet escompté.

La Fresque de la Data permet ainsi de développer une image mentale des principaux concepts de la Data et de l’IA, et favorise un apprentissage par l’échange et la collaboration.

Wednesday 10 July 10:10 - 11:00
Amphi 339 (509 places)

Sous le capot de Bard, vous trouverez le LLM “Gemini”. Mais savez-vous que vous pouvez également utiliser son API au travers de Google Cloud et l’intégrer dans vos applications ? Gemini propose différentes tailles, de Nano à Ultra, en passant par Pro. Le grand différenciant, c’est aussi son côté “multimodal” : vous pouvez lui donner du texte, comme des images ou des vidéos ! De nouveaux cas d’utilisation s’ouvrent à vous !

Dans cette présentation, nous partirons à la découverte du modèle Gemini. Avec notre casquette Java sur la tête, nous étudierons comment faire appel à son API, en particulier à l’aide de la librairie LangChain4j.

Comment tirer parti au maximum de Gemini ? Nous verrons comment extraire des données non-structurées, comment classifier du texte, comment étendre les connaissances du modèle avec l’approche RAG (Retrieval Augmented Generation) mais aussi à l’aide de “l’appel de fonction” pour invoquer des services externes lors de la génération de texte.

Accrochez-vous ! Le décollage de la capsule Gemini est imminent !

Hibernate Search 7.0 est sorti fin 2023, et la version 7.1 est déjà disponible. Découvrez toutes les nouveautés de cette dernière version et les cas d’application pratiques tels que la recherche vectorielle (kNN) qui permet d’implémenter une recherche textuelle, audio ou image à base de machine learning.

Cette conférence vous guidera à travers les changements sous-jacents, démontre des cas d'utilisation concrets et vous fournira des astuces pratiques pour tirer le meilleur parti de la dernière version de cette bibliothèque essentielle pour la persistance des données et la recherche full-text dans l'écosystème Java.

A single sign on solution for your customers and employees shouldn't be a single-point-of-failure in your architecture. Keycloak, a popular Open Source Identity and Access Management solution that provides single sign on, amongst other capabilities, is no exception to this.

A clustered Keycloak deployment in a single site or datacenter provides sufficient availability for many. An increasing number of organizations need to utilize multiple sites for improved resiliency or to meet legal requirements. In 2023, Keycloak overhauled its multi-site capabilities for public cloud infrastructures, tested them thoroughly and provided deployment blueprints to the community. They show how to set up an AWS infrastructure and deploy Keycloak across multiple sites. This talk presents, from an architects and developer perspective, how we approached the problem, which architecture we chose, the challenges we faced and which tools helped us along the way. Expect to dive into concepts like load shedding, cache stampedes, and automated failover, and to see tools like Gatling, Helm, OpenTelemetry, Kubernetes Operators and AWS infrastructure in action. We will also provide an outlook for the next steps in our journey.

These insights will help you to improve your Keycloak deployments as well as design and test your own applications so they can withstand high load and site failures.

Resolving incidents is not the most enjoyable part of a software engineer's day. Why not give this time back to developers so they focus on their actual job: building new things? In this session, you'll learn how Amadeus plans to speed up technical case resolution with automatic data correlation between logs and case descriptions. Using OpenAI embeddings models and MongoDB Atlas, we'll combine B-Tree indexes, Lucene inverted indexes, and Vector Search into a simple, efficient solution you could apply on your own use-cases!

Wednesday 10 July 15:40 - 16:30
Amphi 300 (110 places)

A l'approche des fortes volumétries de fin d'année, notre client ne peut plus se permettre d'ajouter à nouveau de la RAM sur son environnement de prod. Avec 96Go déjà en place sur le serveur, ça peut se comprendre !

Le mot d'ordre : réduire la consommation mémoire de notre application.

- "On a des metrics ?
- Non.
- Accès à la prod ?
- Non.
- Un composant identifié ?
- Non, plusieurs dizaines.
- Et on a combien de temps ?
- 3 semaines."

A travers ce talk nous vous présentons les outils que nous avons utilisés pour identifier les composants gourmands en RAM (Java Flight Recorder, MemoryAnalyzer, pg_statements, hypersistence-utils …). Mais aussi comment nous les avons améliorés afin de réduire leur empreinte mémoire.

La stack du projet : Java, Spring, PostgreSQL.

Keynote

Êtes-vous confronté au défi d'encadrer et de développer les compétences des jeunes développeurs ? En tant que lead développeur ou développeur expérimenté, vous êtes souvent amené à guider techniquement de nouveaux talents. Mais quelle approche adopter pour assurer leur progression de manière optimale ?

Depuis plusieurs années, je participe à différentes initiatives de mentorat et d'accompagnement de jeunes développeurs. Je vous propose donc de partager les bonnes pratiques que j'ai pu mettre en oeuvre ainsi que les écueils que j'ai rencontré.

Nous saurons donc à la fin de cette présentation comment intégrer et rendre autonomes les nouveaux arrivant.es le plus efficacement possible.

Monday 8 July 14:00 - 17:00
Amphi 139 (160 places)

Java poursuit à bon rythme ses évolutions et offre de nombreuses améliorations concernant la syntaxe, l'ajout de nouvelles API, la programmation parallèle et concurrente, l’outillage, … qui dynamisent la plateforme et simplifient la vie du développeur.

Dans ce workshop, venez découvrir et mettre en pratique certaines des fonctionnalités phares de Java disponibles depuis ces dernières années, ainsi que celles à venir dans le JDK 22.

Au programme : pattern matching, string templates, records, threads virtuels, scoped values, structured concurrency , stream gatherers, et bien d’autres !

Pour mener à bien ce workshop, les requis sont :

  • Bonne connaissance et pratique de Java 11+
  • Un JDK 22
  • Un IDE compatible JDK 22 (ou un éditeur de texte pour les puristes !)
Wednesday 10 July 07:40 - 08:30
Food truck parking

Morning jogging in the Valmasque forest, starting from the food truck parking at 07:40 sharp.

N.B.: don't hesitate to bring your sport clothes & towels, showers are available on prem.

Wednesday 10 July 11:10 - 12:00
Amphi 139 (160 places)

I hear you thinking, “is this yet another session about doing cloud native development?”. Well.. yes, sort of, but we promise it’s going to be a good one - or so we think :).

In this session we’re going to talk (and demo!) about what it means to be a good Cloud Citizen - which is more than merely putting an application in a container and deploying it. To optimize your Java application's performance and resilience in the cloud, it is essential to consider factors such as providing real-time health status through fine-grained metrics. You’ll also need to ensure fast startup, and avoid excessive resource consumption within the cluster.

Being a good Cloud Citizen also involves streamlining configuration, deployment and upgrade processes. By integrating these tasks seamlessly, the application can facilitate smooth deployments and upgrades, which will lead to more efficiency and ease of management.

Join us in this session and embark on a journey to develop a perfect(ish) Cloud Native Java Application with Quarkus. This journey will encompass a comprehensive understanding of both the development and operational perspectives, aiming to optimize applications for the cloud environment. You will get an overview of the Kubernetes basics from a Java developer’s perspective and learn step-by-step how to get your application production ready on Kubernetes.

Imaginez, c'est vendredi après-midi. Vous êtes impatient de profiter de votre week-end quand un ingénieur Ops vous transfère un problème bloquant avec une erreur HTTP 500.

Il n'a en effet, pas réussi à identifier l'origine en raison d'un manque d'informations contextuelles. Après quelques heures, vous parvenez enfin à l'identifier en le reproduisant et en le déboguant sur votre ordinateur.

Si vous avez l'habitude de faire face à de tels problèmes, cela signifie sûrement que vous avez négligé le développement d'une des fonctionnalités les plus importantes de votre application : l'observabilité !

Au cours de cet atelier, nous implémenterons des bonnes pratiques de logging et mettrons en oeuvre toute une stack d'observabilité: des librairies à la plateforme en se basant sur les produits Grafana (Tempo, Loki, Prometheus).

Nous saurons donc comment adapter nos applications pour la production et faire des Ops nos meilleurs amis!

Wednesday 10 July 15:40 - 16:30
Amphi 339 (509 places)

La recherche ne se contente plus de l'approche maintenant traditionnelle basée sur la fréquence des termes (TF/IDF ou BM25) mais plus sur la tendance actuelle du machine learning où les nouveaux modèles ont ouvert une nouvelle dimension pour la recherche.

Cette conférence donne un aperçu de :

  • La recherche “Classique” et ses limitations
  • Qu'est qu'un modèle de machine learning et comment vous pouvez l'utiliser
  • Comment utiliser la recherche vectorielle ou la recherche hybride dans Elasticsearch
  • Comment ChatGPT d'OpenAI ou les “large language models” (LLMs) similaires viennent jouer naturellement avec Elastic

La démo principale montre comment générer des embeddings à partir de musiques puis comment trouver la musique qui s'approche le plus d'une musique que nous fredonnons 🎶🎸🎻.

Tuesday 9 July 14:00 - 14:50
Room 138 (96 places)

Dans cette session, nous souhaitons vous présenter le Japon et explorer sa culture pour aller au-delà des stéréotypes bien connus, tels que les mangas et les sushis.

Entre images, discussions et vos questions, nous vous proposons d'explorer les multiples facettes de cette culture fascinante. En nous appuyant sur nos expériences vécues lors de nos séjours au Japon, nous vous guiderons à travers ce pays hors du commun et peut-être vous donnerons-nous envie d'aller plus loin et de le découvrir personnellement.

Avec ce talk, nous souhaitons nous adresser à tout public, qu'il s'agisse de personnes curieuses de connaître le Japon et sa culture ou de ceux qui le connaissent déjà et souhaitent avoir une vue différente de ce pays.

Concernant le format, nous prévoyons d'animer une discussion interactive en présentant certains aspects de la culture et de la langue, puis de discuter avec les participants pour répondre à leurs questions et sortir de cette session avec une perspective différente sur le Japon.

Le contenu de votre documentation est éparpillé à travers plusieurs systèmes, et l'assembler vous donne l'impression de résoudre un casse-tête géant ?
Vous vous sentez enlisé dans les extensions du parser Markdown ou limité par un format ésotérique pour les sources de votre documentation ?

Si la réponse est “OUI, et je n’en peux plus !”, cette session vous permettra de découvrir une solution efficace qui pourrait bien mettre fin à ce cauchemar.
Nous plongerons progressivement dans les concepts d'Antora en vous montrant comment créer, en direct, un site de documentation technique.
Vous saurez ainsi pourquoi le duo AsciiDoc / Antora est une combinaison utilisée pour générer la documentation des projets tels que Spring Security, Apache Cassandra ou encore Hazelcast.

Chez Bonitasoft, l'utilisation de ce duo est également un succès. Venez profiter de notre expérience pour comprendre comment nous avons pu nous recentrer à nouveau sur l'essentiel : le contenu technique et fonctionnel de notre documentation.


Il n'y a aucun pré-requis technique pour assister à la présentation. La syntaxe AsciiDoc, la configuration YAML et le fonctionnement d’Antora seront introduites tout au long de la démonstration.

Après une bonne journée de boulot j'aime bien me détendre en améliorant ma console de retro-gaming maison en mettant à jour mon retropi, trouver la solution à un bug sur mon émulateur SNES et en mettant en place un backup de mes jeux retro préférés sur GCP.

Wednesday 10 July 13:30 - 14:20
Room 138 (96 places)

Nos montres connectées, tracker et même smartphones nous fournissent de plus en plus de data. C'est majoritairement utilisé pour le sport, et on ajoute aussi la balance, des capteurs dédiés sur le vélo, ou même du matériel spécifique pour certains sports. Après avoir passé en revue ces principales métriques et capteurs, on regardera comment ils sont utilisés de manière individuelle mais aussi de manière globale. On finira avec une petite session de code, car le code c'est la vie (avec les pizzas), on regardera ce que l'on peut faire de fun avec ces nouvelles métriques via des écrans de montres, et des applications sur montres Garmin.

Wednesday 10 July 14:30 - 15:20
Amphi 339 (509 places)

Le package java.util.function fêtera ses 10 ans en 2024 et force est de constater que malgré son omniprésence dans nos développements, son utilisation reste probablement sous-estimé et mal comprise.

Avez-vous déjà utilisé ces classes comme paramètre de vos méthodes ? Avez-vous déjà utilisé leur capacité de composition ? Ne vous êtes vous jamais dit que cet héritage douteux entre deux classes, ne vous plait pas, mais que faute de mieux, il reste là ?

Sans pour autant abuser des concepts de programmation fonctionnelle, nous aimerions vous présenter pendant ce talk à travers de cas concrets, une utilisation plus avancée du package java.util.function.

Fonctions anonymes, d'ordre supérieur ou encore la composition de fonctions, toutes ces notions n'auront désormais plus de secret pour vous et trouveront une place de choix dans votre boîte à outils de refactoring.

Vous repartirez avec un dépôt git avant/après en prime !

La théorie musicale, c’est compliqué ? Avec du code, pas tant que ça ! Dans cette séance de live coding musical, je vous emmène dans ma découverte des bases de la théorie musicale et de la composition en codant en JavaScript.

Avec comme seuls outils un navigateur avec ses API WebAudio et WebMIDI et la librairie Tone.js, on partira d’un “biiiip” pour coder en 45 minutes un morceau de musique électro.

Quelques samples bien choisis, une pincée de séquences harmonieuses, une dose d’aléatoire encadré, un contrôleur MIDI pour la “human touch” et hop, tout le monde se mettra à danser ! David Guetta n’a qu’à bien se tenir !

Tuesday 9 July 09:20 - 10:00
Amphi 339 (509 places)

Et si on vous disait : 'Demain, tu peux partir vivre une aventure hors du commun. Voyager dans des contrées lointaines, loin des sentiers battus, dans des conditions extrêmes, sans assistance, en complète autonomie, sans confort et sans moyens de communication.' Le feriez-vous ?

C'est ce qui m'est arrivé en 2023. J'ai intégré cette expédition dont le but était d'étudier les mécanismes d'adaptation du corps humain aux conditions extrêmes. Un petit groupe de 20 personnes, composé de 10 hommes et 10 femmes, a alors traversé le désert du Nefoud en Arabie Saoudite pendant 40 jours, sans assistance. Cette expérience a changé ma vie.

Cet atelier interactif offre une expérience pratique et approfondie pour les développeurs souhaitant explorer les fonctionnalités de la dernière version d'Angular. Au cours de cette session immersive, vous aurez l'occasion de plonger dans les aspects pratiques de la mise en œuvre des nouvelles fonctionnalités de Angular 17, en acquérant des compétences avancées et en découvrant des techniques novatrices.

Les sujets abordés incluront la gestion optimisée des états d'application, le nouveau Control Flow et bien d'autres choses. Des exercices pratiques vous guideront à travers de cas d'utilisation concrets, mettant en lumière les avantages de ces fonctionnalités dans des scénarios du monde réel.

Vous repartirez de cet atelier avec un aperçu des nouvelles pratiques de développement avec Angular 17 que vous pourrez appliquer immédiatement dans vos projets. Rejoignez-nous pour l'apprentissage interactif et de découvertes pratiques, où nous explorerons ensemble les possibilités que Angular 17 offre pour l'avenir du développement web.

Tuesday 9 July 10:40 - 11:30
Amphi 339 (509 places)

Sur notre projet, comme souvent, la dette technique a commencé au jour 1.

Après 2 ans avec une dizaine de développeurs, l’application, découpée depuis son commencement en micro-services (7 puis 4), souffre de problèmes de couplages entre services, et donc, de gros problèmes de performances, comme des requêtes essentielles qui répondaient en plus de 44sec (p95).

Elle est déjà utilisée en production par de gros clients et cet enjeu de performance freine son développement.

Dans ce contexte, nous allons orchestrer une task force de 4 développeurs et Ops sur environ 3 mois pour fusionner ces micro-services en un monolithe. Cette fusion doit s’inscrire dans la roadmap d’un projet en évolution constante et gêner le moins possible les ajouts fonctionnels.

Dans ce talk, nous parlerons de pourquoi et comment détruire une archi micro services pour retourner vers un majestueux monolithe :

  • Pourquoi un découpage en micro-services nécessite une maturité technique et métier que nous n’avions pas
  • Comment nous avons commencé par instrumenter pour détecter les bugs ou variations de performances
  • Comment nous avons analysé l’existant pour en déduire un plan avec des itérations régulières et moins risquées
  • Comment nous avons utilisé des outils visuels pour embarquer et synchroniser les autres équipes
  • Comment nous avons géré les problèmes rencontrés en cours de route

Avec ce talk nous espérons vous montrer qu’il est toujours possible de résorber ce genre de dette technique. Si nous l’avons fait, vous pouvez y arriver sur votre projet et bénéficier de notre retour d’expérience.

Message to Ethan Hunt: “The Lego City 60337 train is running at full speed and has no driver! Your mission, should you choose to accept it, is to train and deploy an AI model at the edge to stop the train before it derails. …This message will self-destruct in five seconds…. Four. Three. Two. one. tam tam tada tum tum tada tum tum tum tum tada tiduuuuummmm tiduuuuuuummm (mission impossible theme)”

A Lego City train (with webcam) is set up on its tracks on a table in central position. Place the STOP sign on the edge of the track and the train stops!

In this lab, you'll use

  • Quarkus for embedded development of the Nvidia Jetson Orin card
  • OpenShift AI for model training
  • Microshift for software deployment at the edge

Come with us play Lego !

Tuesday 9 July 11:40 - 12:30
Amphi 300 (110 places)

Charly WIP est un fermier solitaire de l’Amérique de l’ouest habitant Factory Town©️. Le jour où plusieurs familles s’installent dans sa ville, il doit soudainement faire face à l’augmentation des besoins en nourriture, en eau et en transports. Installé depuis longtemps dans les environs, il est catapulté chef des opérations et doit assurer la pérennité de Factory Town©️.

Sur la seule base de sa logique, du peu de moyens qu’il possède et avec l'aide de Miss Lean VSM, première cartographe des processus de l'histoire, WIP invente alors un système d’optimisation de process à qui il donnera leur nom : le Value Stream Mapping et le Work In Progress.

Venez découvrir une explication et une illustration décalée de ce qu’est l’optimisation de process grâce à mon jeu favori du moment : Factory Town©️.

Wednesday 10 July 13:30 - 15:20
Food truck parking

Awaken the serial griller in you with this ~2.5-hour long master class during which you'll learn how to properly prepare a complete menu (starter, main course, dessert) only with a barbecue.

The workshop will end with a Q&A session led by BIG T, writer, restaurateur and founder of the BBQ School, having barbecued for Jeff Bezos and HSH Albert II Prince of Monaco - and you, very soon! :)

Workshop brought to you by MongoDB, the database built by developers for developers.

Limited availabilities: register yourself directly at the MongoDB sponsor booth - first come, first served

Wednesday 10 July 10:10 - 12:00
Food truck parking

Awaken the serial griller in you with this ~2.5-hour long master class during which you'll learn how to properly prepare a complete menu (starter, main course, dessert) only with a barbecue.

The workshop will end with a Q&A session led by BIG T, writer, restaurateur and founder of the BBQ School, having barbecued for Jeff Bezos and HSH Albert II Prince of Monaco - and you, very soon! :)

Workshop brought to you by MongoDB, the database built by developers for developers.

Limited availabilities: register yourself directly at the MongoDB sponsor booth - first come, first served

NetObserv est un outil de capture et de visualisation des flux réseau pour Kubernetes / OpenShift, développé par mon équipe chez Red Hat. Entièrement open-source donc librement accessible, il utilise la techno eBPF pour une capture avec un minimum d'impact sur vos workloads, génère de nombreuses métriques, vous offrant même la possibilité d'en créer de nouvelles, et en guise de visualisation propose une topologie, une vue détaillées des flows et de jolis graphiques, le tout entièrement filtrable et proposant différents niveaux d’agrégation. En terme de données, vous aurez accès aux byte rates, latences TCP, packet drops, DSCP, etc.

Le but de l'atelier sera donc d'installer et d'explorer le réseau via NetObserv, si possible avec vos propres workloads, sinon avec des workloads créés pour l'occasion. Il sera nécessaire d'avoir un cluster Kubernetes à disposition. Nous développons NetObserv en priorité pour OpenShift, mais la plupart des composants y sont agnostiques. Seul le plugin Console, pour la visualisation, est vraiment taillé pour OpenShift … quoique, si le cœur vous en dit, nous pourrons tenter de le hacker ensemble et le rendre accessible hors OpenShift.

Quelques limitations cependant:

  • L'agent eBPF requiert un noyau Linux pas trop vieux (de préférence >4.20 voire >5.14 pour être feature-complet)
  • Les clusters utilisant un CNI qui eux-mêmes ont un usage exclusif d'eBPF seront incompatibles. Comme avec Cilium, par exemple. NetObserv est abondamment testé avec ovn-kubernetes, mais sans pour autant y être couplé, et en théorie devrait fonctionner avec les autres CNI utilisant la stack réseau du noyau Linux.

Sans garantir que tout fonctionnera parfaitement dans tous les environnement, nous ferons de notre mieux pour que ce soit le cas.

Prometheus s'est imposé comme un standard de facto dans nos infrastructures lorsque l'on souhaite faire de l'observabilité en collectant des métriques. Dans un contexte où l'on a besoin de se mettre rapidement à l'échelle (scalable), Prometheus commence à montrer ses faiblesses.

Prometheus ne possède pas de système de haute disponibilité de manière native, il faut obligatoirement passer par des solutions plus ou moins complexes comme Thanos ou Cortex. Ces solutions s'ajoutent à la lourdeur originelle de Prometheus.

VictoriaMetrics vient corriger tout cela en offrant une architecture micro-services où tout est découpé pour de meilleures performances et une meilleure disponibilité sans perte de données.

Ainsi je ferais un bref historique de l'observabilité, des solutions existantes, et du pourquoi complet de VictoriaMetrics, car il y en a beaucoup à dire sur cet outil prometteur !

Je vous ferais également un retour d'expérience sur l'utilisation de VictoriaMetrics Cluster aux Restos du Cœur et comment nous avons pu ainsi réduire les coûts en consommant plus de métriques qu'auparavant.

Tuesday 9 July 09:00 - 09:20
Amphi 339 (509 places)

Les développeurs aiment bien optimiser leur environnement de dev aux petits oignons. Et on s’entretient physiquement en faisant du sport – ou pas mais on se dit que ça serait pas mal 😜.
Et votre mental ? Vous optimisez votre mental ? En prenez-vous même soin ?

Dans cette présentation, Emmanuel (Red Hat, Quarkus, Les Cast Codeurs, Hibernate, etc) partage son expérience sur l’importance de, et les approches pour garder la tête sereine dans notre vie de travailleur de l’information et surtout d’humain passant par des coups durs. Via le prisme de son vécu, Emmanuel discutera comment s’organiser sans couler, comment prendre soin de soi mentalement et aussi d’un ensemble de conseils autour de la façon de voir son évolution professionnelle.

L’objectif est de vous avoir incité à réfléchir sur certains aspects de votre vie, d’avoir identifié quelques approches que vous voudrez mettre en place ou d’avoir déniché quelques outils à mettre dans votre arsenal.

Tuesday 9 July 17:10 - 18:10
Gym

Pilates - N.B.: Bring your sport clothes & towels, showers are available on prem.

Tuesday 9 July 17:10 - 17:35
Amphi 137 (260 places)

… et utiliser un gestionnaire de fenêtre en carrelage.

Un gestionnaire de fenêtre en carrelage ( ou Tiling Windows Manager dans la langue de Shakespeare ) vous permet de reprendre la main sur l'interface de votre système d'exploitation.

Comment peut-on gagner en productivité en débranchant nos souris?

Quels sont les concepts d'un TWM, pourquoi c'est génial et comment ça s'utilise et se configure au quotidien ?

Retours d'expérience sur mon utilisation de sway et comment le configurer pour faire ce que vous voulez.

N’avez-vous jamais rêvé de pouvoir gérer votre infrastructure avec votre langage de programmation préféré ?

La gestion d'infrastructures en tant que code (IaC) a révolutionné la manière dont les équipes déploient, maintiennent et évoluent leurs environnements informatiques. Terraform, l'un des outils les plus populaires dans ce domaine, a permis aux équipes de créer des infrastructures reproductibles et évolutives. Cependant, l'arrivée de Pulumi a ouvert de nouvelles perspectives en offrant une approche novatrice pour le provisionnement d'infrastructures.

Cette conférence se penche sur les avantages de Pulumi par rapport à Terraform, en explorant comment Pulumi repense les fondements de l'IaC. Nous mettrons en lumière les points forts de la solution comme la programmation multi-langages, etc.

Elle rapporte également l’utilisation de Pulumi au sein des Restos du Cœur. Utilisation qui marque une étape significative dans l'optimisation et la modernisation de la gestion de l'infrastructure informatique.

En tant qu'organisation caritative dédiée à l'aide alimentaire et à la lutte contre la pauvreté, les Restos du Cœur dépendent fortement d'une infrastructure informatique fiable et évolutive pour coordonner leurs activités, gérer les dons et assurer une communication efficace.

Pour terminer cette conférence, nous réaliserons une démonstration de l’utilisation du SDK Pulumi pour déclarer notre infrastructure en utilisant le Python et le Go, pour montrer ainsi, qu’il n’a jamais été aussi simple pour un développeur de gérer et provisionner l’infrastructure.

Tuesday 9 July 11:40 - 12:30
Amphi 139 (160 places)

Quarkus n'est maintenant plus un nouveau venu dans l'écosystème java, et de plus en plus de projets l'adoptent comme base de travail, mais peu de développeurs comprennent vraiment à quel point la magie se cache dans ses extensions.

C'est en développant l'extension Quarkus Min.io que j'ai découvert une partie de leurs capacités, et comment elles sont en fait au coeur des promesses du framework. Leur développement est simple et permet de rendre un grand nombre de services à nos utilisateurs. Mais surtout elles permettent de ne rendre que les services dont l'utilisateur à besoin nous permettant d'économiser mémoire, cpu et de raccourcir les temps de démarrage.

Et si vous veniez en développer une avec moi et que nous mettions en oeuvre quelques uns de ces tours de magie ?

Vous pourriez peut être aussi aimer ça et repartir avec quelques idées !

Wednesday 10 July 13:30 - 14:20
Amphi 139 (160 places)

Quarkus se positionne de plus en plus comme un acteur puissant au sein de l'écosystème Java, attirant l'attention par sa puissance, sa simplicité et son expérience développeur. En parallèle, Infinispan est un produit mature de cache en mémoire distribué, polyvalent et utilisé dans divers scénarios tels que le mode cluster de JBoss, le caching et la réplication multi-site de Keycloak, Camel ou encore Spring-Boot. Le tout pouvant fonctionner de manière autonome en tant que serveur des données en mémoire extrêmement performante et scalable.

La version 15 d'Infinispan sortie en 2024, déjà intégrée à Quarkus, étend encore davantage ses capacités en introduisant de nouveaux cas d'utilisation. A la recherche full-text d'Infinispan se rajoute aussi la recherche vectorielle, critique pour l’intégration avec Langchain. Puis si tu es un.e utilisateur.trice assidu.e de Redis, j’ai aussi une nouvelle pour toi: Infinispan implémente une grande partie des commandes du protocole Redis (RESP), te permettant de rajouter, par exemple, la fonctionnalité de réplication de données multi-site avec une transition pratiquement transparente grâce au hot-replacement dans tes applications.

Joigne-toi à moi pour découvrir ou redécouvrir la puissance de Quarkus avec Infinispan !

Wednesday 10 July 15:40 - 16:30
Amphi 139 (160 places)

Plongez dans l’avant-garde du développement full-stack lors de cette session éclairante, où nous explorons la synergie entre Java et JavaScript grâce à la puissance de Quarkus. Ce framework Java natif pour Kubernetes redéfinit les standards d'efficacité, permettant aux développeurs de construire des services back-end robustes et des fronts-end dynamiques et réactifs, sans la complexité habituellement associée aux environnements JavaScript. Avec Quarkus, développez et déployez une application full-stack utilisant JavaScript pour le front-end, le tout sans nécessiter les processus de construction npm traditionnels ou d'autres complications front-end.

Cette présentation complète vous guidera dans la création d'une application full-stack homogène qui marie un back-end Java alimenté par Quarkus à un front-end élégant basé sur JavaScript. Nous détaillerons comment Quarkus élimine les complexités habituellement liées à npm, offrant un chemin simplifié du développement au déploiement. Découvrez la puissance de rédiger votre code front-end dans un environnement JavaScript qui s'intègre directement avec votre back-end Java, le tout fonctionnant harmonieusement dans l'écosystème Quarkus.

À la fin de cette session, vous serez prêt à révolutionner votre processus de développement full-stack, atteignant haute performance et efficacité sans les tracas de npm. Nous vous montrerons comment Quarkus améliore non seulement votre développement back-end avec Java mais simplifie également votre workflow front-end, fournissant une plateforme cohésive et puissante pour construire des applications modernes.

Saisissez cette opportunité de transformer votre stratégie de développement et d'amplifier vos capacités full-stack. Rejoignez-nous pour débloquer le potentiel de l'association de Java avec JavaScript dans Quarkus, rendant votre processus de développement supersonique et subatomique, tout en restant simplifié et direct.

Join Veepee data specialists on a 50min odyssey through the highs and lows of cloud financial operations (FinOps) in the context of a centralized data organization.

This talk strips away the starry-eyed idealism of the cloud honeymoon period, revealing our journey towards cost-optimized data handling in a post-infatuation world. Discover the strategies that led us from overwhelming bills to a sustainable, controlled expenditure in cloud data engineering services.

We'll provide insights into the pragmatic shift required to marry the innovative potential of the cloud with a cost-conscious discipline.

Discover through compelling stories how we refined our streaming pipelines without breaking the bank and how we became experts at utilizing the BigQuery slot mechanism for efficient, cost-friendly scalability.

Tuesday 9 July 10:40 - 11:30
Amphi 300 (110 places)

Avec l’essor des architectures Cloud-native, les frameworks historiques de Java doivent évoluer et se réinventer pour migrer vers le cloud. La gestion des processus métier (BPM) n’échappe pas à cette règle.

Lorsqu'il s'agit de créer un workflow BPM en Java, les moteurs jBPM et Drools sont les premières solutions qui viennent à l'esprit de la plupart des développeurs. Ils sont open source, faciles à configurer et très complets. Cependant, ils n'ont pas été construits pour le cloud.

Ne paniquez pas ! Kogito est là pour résoudre cette limitation.

Kogito est un projet open source de Red Hat. Son objectif est d'amener l’automatisation des processus métier de bout en bout dans le cloud.

Cette université commencera par une brève introduction de BPMN et jBMN e, qui permet aux business analyst de concevoir graphiquement leur workflow.

Ensuite, nous montrerons, en live-coding, comment créer un workflow cloud-native avec Quarkus et Kogito et le déployer sur OpenShift (ou Kubernetes).

Le résultat sera un microservice REST capable d'orchestrer d'autres services.

Tuesday 9 July 15:00 - 15:50
Amphi 139 (160 places)

If you build an application you often end up needing authentication and authorization. Instead of building this yourself we can deliver a SSO experience for our users with OpenID Connect (OIDC). So that we can delegate user management and role based access control (RBAC) to our identity provider and focus on delivering business value first.

Quarkus focuses on delivering a great developer experience, providing hot reloading, automatic testing and more. During this session Willem will show you how easy it is to set up SSO in a real Quarkus app. From local dev mode to production.

Wednesday 10 July 10:10 - 11:00
Gym

Riviera DEV isn't an excuse to skip your workout!

Take advantage at any time in the day of the gym equipment (mats, steps, weights, fitness machines) to lose the calories you've gained with the ice creams and socca. :)

N.B.: don't hesitate to bring your sport clothes & towels, showers are available on prem.*

Tuesday 9 July 10:40 - 12:30
Gym

Riviera DEV isn't an excuse to skip your workout!

Take advantage at any time in the day of the gym equipment (mats, steps, weights, fitness machines) to lose the calories you've gained with the ice creams and socca. :)

N.B.: don't hesitate to bring your sport clothes & towels, showers are available on prem.*

Wednesday 10 July 09:40 - 10:00
Amphi 339 (509 places)
Tuesday 9 July 10:00 - 10:20
Amphi 339 (509 places)
Wednesday 10 July 14:30 - 15:20
Amphi 139 (160 places)

If you have been developing your applications using modern techniques, you might have heard about unit testing. As they say, “testing is the art of doubt!” However, in the age of event driven architecture, configuring the full testing environment might be intimidating.

Testcontainers have established themselves as a go-to solution for database, middleware, and cloud services integration testing, but what about your regular asynchronous business services and APIs? Enter Microcks, an open-source cloud-native tool (CNCF Sandbox project), ready to work with Testcontainers, and provide a solution for mocking and testing APIs without extensive coding.

This collaboration simplifies the process of configuring complex settings, allowing for the adoption of a strong Shift-Left approach to integration testing. The beauty of it is that this methodology is universally applicable, catering to a wide range of protocols, whether Apache Kafka, gRPC, GraphQL, or REST, regardless of your technological stack, be it Java, Go, Node, or others.

We will demonstrate an incredible developer experience that truly brings joy to your Java Quarkus applications and empowers you to build extensive and reliable integration tests, ensuring your microservices communicate as expected every time.

Wednesday 10 July 16:40 - 17:05
Amphi 339 (509 places)
Wednesday 10 July 10:10 - 11:00
Amphi 300 (110 places)

En 1999, le tunnel du Mont Blanc s'embrasait et faisait 39 morts. Au delà de la catastrophe elle même, cela a entrainé de nombreux changements.

Au niveau européen, les normes en termes de ventilation, de gestion d'incendie et de gestion du trafic ont évoluées. Une obligation de surveillance globale des ouvrages et un examen de sécurité périodique ont été instaurées. En termes d'infrastructures, cela a entrainé la création de nouvelles galeries de sécurité ou l'installation de systèmes plus performants.

En partant des équipements électriques jusqu'au système d'aide à l'exploitation, je vous propose un tour d'horizon des technologies mises en oeuvre dans un tunnel routier.

De l'extracteur d'air au capteur de pression sur une porte, chaque équipement doit pouvoir être supervisé et pour certains, commandé. Pour cela, des progiciels existent et des automates sont utilisés pour assurer la liaison entre ces logiciels et les équipements. Un système d'aide à la supervision permet d'assurer la traçabilité des évènements et des actions entreprises par le superviseur. Tout cela doit bien sûr répondre à des exigences de disponibilité et de redondance.

Venez découvrir l'architecture que nous avons mise en place sur nos projets de rénovation de la supervision des tunnels autoroutiers. On parlera Spring, Redis et JMS entre autres…

Vous n'emprunterez plus un tunnel de la même manière après ce talk.

Wednesday 10 July 11:10 - 12:00
Amphi 339 (509 places)

Les failles sont détectées 212 jours après leur introduction

Il faut en moyenne 212 jours pour détecter une faille de sécurité. Et au moins 50% des sites web contiennent une vulnérabilité critique. Vous en faites peut être partie.

Les tests d'intrusion, un moyen temporaire de détecter et fixer ses failles

Bien souvent, les failles de sécurité sont comme le monstre qui se cachaient sous notre lit étant enfant. Nous en avons peur sans oser les regarder en face. Un petit test d’intrusion nous rassure pour quelque temps comme les parents nous assurant qu’il n’y a rien. Mais ont-ils bien regardé ? Et les quelques monstres qu’ils ont chassés, sommes nous sûrs qu’ils ne reviendront pas demain ?

Il est nécessaire d'automatiser et de comprendre les causes des failles

Mon but est de démystifier les failles de sécurité en les considérant comme des défauts dont il faut fixer la cause profonde. Comme un testeur QA (Quality Assurance), l’expert cybersécurité vient vérifier au quotidien l’introduction de failles. Il aide à comprendre la cause de la faille et à mettre en place des moyens de protection en amont grâce à un outil Lean: le QRQC / Dantotsu.

Des outils pour détecter et éradiquer les vulnérabilités

En sortant de ce talk, vous aurez une méthode pour détecter et éradiquer les vulnérabilités sur vos projets grâce à trois axes:

  • Avoir moins peur d’aller voir vos failles de sécurité
  • Comprendre certains outils d'automatisation de cybersécurité
  • Utiliser un outil Lean pour mieux analyser vos failles et mettre en place des contre-mesures durables automatiques
Tuesday 9 July 17:10 - 18:10
Terrace rooftop

In this session, we'll discover some techniques used by the DeeJays to keep you moving all night:

  • Adjusting BPM (Beats Per Minute)
  • Adjusting harmonics
  • Frequency equalizers
  • Cue Points
  • Loops

Material mainly used:

For the daring, you'll practice directly by pushing the buttons to understand the concepts even better. No music knowledge required. Just a good time to spend.

Tuesday 9 July 17:10 - 18:10
Amphi 139 (160 places)

The goal of project Amber within OpenJDK is to explore the inclusion of smaller, productivity-oriented Java language features. One part of this that has delivered new functionality in recent versions is pattern matching.

Pattern matching combines application code logic to test if an expression has a specific type or structure and extract components of its state for processing.

Pattern matching is now well embedded in the Java language using the following features, defined by JDK Enhancement Proposals (JEPs)

  • Pattern matching for instanceof (JEP 433)
  • Pattern matching for switch (JEP 441)
  • Record patterns (JEP 440)
  • Unnamed patterns and variables (JEP 456) - Primitive types in patterns, instanceof and switch (JEP 455)

In this session, we’ll look at the details of these new language features and a more general look at pattern matching. We’ll also explore future features in this area such as array patterns, which may be included in a subsequent Java release.

By the end of the session, you’ll be ready to use these powerful new features.

Wednesday 10 July 13:30 - 14:20
Amphi 137 (260 places)

Adieu les bibliothèques et frameworks ! Avec les avancées des standards CSS, une révolution est en marche. Fini les bundles énormes et les mises à jour interminables.

En seulement 50 minutes, découvrez comment créer un système de theming totalement natif. Quelques lignes de CSS, un simple bouton HTML, et c'est tout ! Les possibilités et les avantages sont infinis, performances, accessibilité, lisibilité… Revisitez les fondamentaux des custom properties et explorez les possibilités qu'offrent les pseudo-éléments et les pseudo-classes, jusqu'aux data-attributes.

Que vous soyez un développeur front-end, que vous gériez un ou plusieurs sites, cette approche itérative s'adapte à toutes vos exigences. Du branding à l'intranet, révolutionnez votre expérience web dès maintenant !

Are you managing many applications and filling the login forms for each separately is frustrating you? Do you find your current approach to authentication or managing users cumbersome and you would like to have it more centralized? Achieving Single-Sign-On may be simpler than you think.

This workshop introduces the industry standard protocol OpenID Connect with a step-by-step tutorial on deploying Keycloak, an Open Source Identity and Access Management (IAM) solution.

We will deploy applications in a Kubernetes-based cloud environment and secure all of them using Keycloak. This will include backend services built with Quarkus and Spring Boot, frontend single page applications and well-known tools like Grafana.

Introduction à keycloak et OpenID à partir d'un exemple fun de facteur d'authentification implémenté sous forme de ROM gameboy.

Notions abordées :

  • Qu'est-ce qu'un facteur d'authentification (clé fido, webauthnn, ce que vous voulez, etc…)
  • Comment les intégrer à keycloak avec un authenticator personnalisé.
  • Démystification du concept en utilisant l'un des objets les plus improbables pour créer un nouveau facteur d'authentification insolite, et malgré tout aussi fiable que possible dans les limites des capacités d'une console portable vieille de 30 ans et dont les origines techniques du processeur en ont presque 50.
  • La sécurité ne doit pas être une ennemie de l'expérience utilisateur, mais au contraire elle se doit d'être ludique et fluide afin de ne pas donner à l'utilisateur l'envie de la contourner.
Monday 8 July 14:00 - 17:00
Amphi 137 (260 places)

L'IA est partout, du moins tout le monde revendique d'avoir de l'IA dans ses applications, ses objets connectés, …
En parler c'est bien, la développer c'est encore mieux.

Après une introduction aux concepts qui gravitent autour de l'IA mais aussi à l'écosystème Python nous vous proposons de customiser le modèle YOLO afin d'optimiser sa détection d'objets dans des images.
Pas besoin d'être experte ou expert Python, ni Data Scientist ou Machine Learning engineer, l'objectif ici est de découvrir tranquillement toutes ces notions.

Et cerise sur le gâteau, venez juste avec votre navigateur, on se charge du reste grâce à GitPod.
Vous découvrirez la magie d'un IDE dans le cloud.

Arrivés en débutantes, débutants ou justes curieuses et curieux, vous repartirez en sachant customiser de A à Z un modèle d'IA et créer son application l'utilisant.

Wednesday 10 July 10:10 - 11:00
Amphi 137 (260 places)

Le concept de DevSecOps introduit de nombreuses avancées, offrant à la fois une grande agilité et une facilité de mise à l'échelle. Les pipelines, au cœur de ce processus, peuvent toutefois présenter des lacunes en matière de sécurité dès leur conception. En effet, ces pipelines manipulent des informations sensibles et sont des espaces où la contribution est ouverte à tous. Nous allons partager le point de vue d'un Pentesteur et d'un DevSecOps sur le sujet , et vous montrer qu'en partant d'une mauvaise configuration très classique et inoffensive, on peut vite mettre en péril toute une infrastructure, de plein de facons differentes. Pas besoin d'être un hacker certifié pour venir nous écouter, mais préparez-vous à devenir un peu plus vigilant sur votre CI/CD.

Tuesday 9 July 14:00 - 14:50
Amphi 300 (110 places)

La navigation sur les sites internet à l'aide d'un lecteur d'écran comment ça marche ?

Comment “voit-on” un site sans le voir ?

Quels sont les problèmes rencontrés par les utilisateurs de lecteurs d'écrans et surtout, comment faciliter cette navigation et éviter de faire un site inutilisable pour certains.

Durant ce talk, on écouteras des sites web, on parlera de sémantique, d'accès rapide, de landmarks, d'alternatives aux images, de formulaires, de liens et de boutons (spoiler : un div n'est pas un bouton).

On écouteras aussi comment Aria peut améliorer cela.

On parlera aussi un peu de SEO : l'aveugle le plus célèbre au monde n'est il pas Google ?

Un talk a écouter les yeux fermés.

Monday 8 July 09:00 - 12:00
Room 129 (43 places)

Come discover the Go language, its syntax and features and learn by writing some code and practice.

In this workshop we will get some quick introduction about the Go language and iterate between presenting some Go syntax and practising them by writing code.

Some of the subjects about Go I plan to include:

  • Writing an hello world example
  • Functions
  • Variables and types
  • Flow control
  • Using external libraries
  • Unit testing
  • Concurrency

To participate you'll need:

  • Go
  • Git
  • The IDE of your choice
Wednesday 10 July 11:10 - 12:00
Gym

Yoga nidra (Sanskrit: योगनिद्रा; IAST: Yoganidrā; “sleep meditation”, “contemplative sleep”) is a discipline from Hinduism developed by Indian samnyâsin Swami Satyananda Saraswati.

The term nidrā translated from Sanskrit means “a half-asleep, half-awake state of consciousness requiring the full use of one's mental faculties”. Yoga nidra is also considered lucid sleep.

In Hindu mythology, this corresponds to the constant state of Narayana, sleeping Vishnu. It is also a technique aimed at improving the quality of sleep. Based on rotational exercises of the mind in the body, breathing and visualizations, it induces a deep state of relaxation.

N.B.: don't hesitate to bring your sport clothes & towels, showers are available on prem.

Wednesday 10 July 15:40 - 16:30
Amphi 137 (260 places)

Mettre en place Kafka comme broker de messages dans une architecture de service / micro-service: Une idée assez classique pour réduire les dépendances entre les apps, exécuter des process asynchrones, alimenter une solution de data…

Il y a deux ans, je quittais une boite dans laquelle on commençait à mettre en place Kafka, et je rejoignais Ricardo.ch. Cinq ans qu’ils faisaient évoluer leur archi micro-services autour de Kafka. La différence était monstrueuse! Alors le but de ce talk est d’exhumer les choix qui ont été fait ou défait, les murs qui ont été pris, pour arriver à une solution qui roule. C’est un retour d’expérience, pas une recette magique.

Parmi les sujets abordés :

  • Différentes implémentations de l’outbox pattern,
  • le partage des définitions de schémas d’évènements,
  • la gestion des erreurs,
  • les impacts sur l’architecture applicative,
  • le minimum vital de gouvernance

Si vous êtes développeur Java, vous avez surement déjà entendu parler de Quarkus, cette stack qui utilise la notion de Dev-Joy pour sa promotion. Mais qu'est-ce que c'est exactement ? Comment cela améliore-t-il mes tâches quotidiennes ? Existe-t-il des avantages pour mon travail ? J'ai bien entendu Micro-Frontends?

Pour répondre à ces questions, je pense que le mieux c'est de juger par vous-même. Je propose donc de coder un Micro-Frontend avec Quarkus avec vous et de le déployer en prod en live. Aucun risque 😄

“Ah, c' qui compte c'est pas l'arrivée, c'est la quête” disait un grand chanteur de notre époque…

Tuesday 9 July 17:10 - 17:35
Amphi 300 (110 places)

Lorsque nous définissons une architecture applicative, le choix de la base de données s'avère être aujourd'hui un choix crucial. Avec la multitude de types de bases de données qui existent aujourd'hui, il est parfois difficile de faire son choix.

A travers ce talk, je présenterai les caractéristiques principales d'une base de données moins connue et plus atypique: une base de données financière ou “Ledger”. Immutabilité, transparence, le ledger offre beaucoup d'avantages qui peuvent être adaptés à vos besoins fonctionnels.

Nous parcourons ensemble des exemples précis appliqués au contexte de Doctolib (Récupération des impayés d'un patient, état de paiement d'une facture, ..) en expliquant comment bien définir la structure de votre ledger pour en tirer le meilleur parti. A la fin de ce talk, les notions de Comptes, de Balances et de Transactions, n'auront plus de secret pour vous !

Les CLI (Command Line Interface), tout le monde les utilise et elles existent depuis la nuit des temps.
Souvent synonymes de gain de productivité, leur création est parfois obscure et peut sembler complexe.
C'était le cas il y a quelques décennies, mais depuis quelques années, des langages et Frameworks permettent d'en écrire simplement dans votre langage préféré.
Je vous propose d'utiliser un langage qui ne paraît pas, au premier abord, le plus intuitif pour faire une CLI : Java !

Mais il sera bien accompagné dans cette tâche : grâce à Picocli et Quarkus, notre CLI aura tout d'une grande, tout en étant simple à développer !
Et cerise sur le gâteau : nous créerons un “vrai” exécutable grâce à Graal VM.

Venez m'accompagner lors d'une session de live coding permettant de mettre en lumière comment créer une CLI en Java avec Picocli et Quarkus en partant de zéro !

Le sketchnoting est une méthode de prise de notes visuelle. On en entend de plus en plus parler, on voit des sketchnotes sur les réseaux sociaux, mais savez vous que le sketchnoting c'est bien plus qu'un moyen pour résumer visuellement un talk et que cela peut vous servir au quotidien ?

Le sketchnoting c'est facile ! La seule condition est de savoir dessiner comme un enfant de 5 ans, et encore :).

Dans cet atelier, vous allez apprendre à faire du sketchnoting en douceur. Aurélie et Ane vous font découvrir les éléments de base, les techniques simples et vous aurez même des astuces pour vous lancer !

Si vous avez votre matériel (feuilles, cahier et feutres ou crayons) venez avec, sinon nous vous fournirons la base.

Aujourd’hui, le cloud permet d’améliorer la disponibilité et l’évolutivité de nos applications. Grâce au cloud, nous pouvons provisionner de nouvelles infrastructures rapidement et faire évoluer avec la même vitesse les infrastructures existantes. Nous ne présentons plus les avantages du Cloud ni la multitude de services cloud existants. De prime abord, migrer une application sur le Cloud peut sembler un sujet trivial. Mais, toutes les applications sont-elles faites pour être déployées sur le Cloud ? D'où viennent tous ces projets de migration ratés alors ?

Durant ce talk, je vous présenterai la checklist qui vous permettra de rendre vos applications véritablement “cloud native” pour tirer le meilleur de ce modèle.

2 ans après la mise en place d’une architecture event driven chez BforBank, nous sommes désormais en production avec un pattern “tout frais” implémenté avec Java, Spring et Kafka Streams.

Quels sont les principes d’une architecture event-driven ? Qu'est ce qui se cache derrière le pattern CQRS ? Pourquoi ces concepts sont-ils intéressants ? Voici le premier lot de questions auxquelles nous tenterons de répondre à travers ce talk.

Dans un second temps, nous présenterons les concepts liés à Kafka Streams et Kafka Connect à travers l’implémentation de ces patterns avec du code, du vrai !

Nous terminerons sur un vrai retour d'expérience sur nos apprentissages clé, qui seront utiles à tous ceux qui considèrent la mise en place de ce type d’architecture dans leur SI.