Rencontres passées

Bientôt, une reprise de l'historique sera reprise ici. Veuillez patienter.

Date Titre Speaker Résumé Description
2024-04-04 Builds Reproductibles avec Apache Maven Hervé Boutemy

Les Builds Reproductibles sont préconisés pour le niveau 4 de SLSA, pour atteindre le plus haut niveau de confiance sur un logiciel. Un tel niveau semble totalement inaccessible pour un projet normal.

En réalité, la plupart des distributions Linux ont implémenté les Builds Reproductibles ces 10 dernières années. Et depuis 5 ans, cela a été appliqué à de nombreux projets Open Source Java avec succès : plus de 2000 releases vérifiées reproductibles ont été publiées sur Maven Central par 500 projets, et ces chiffres ne cessent de croître.

Dans cette session, nous démystifierons les pratiques pour les Builds Reproductibles telles qu'elles ont été éprouvées et améliorées sur le terrain. Nous expliquerons les outils utiles pour améliorer vos builds Maven et vérifier qu'ils sont réellement reproductibles : vous verrez, ce travail est riche d'enseignements utiles bien au delà de la sécurité.

Attention: si vous dormez pendant la session, vous aurez une sale note au quizz final permettant de vérifier les compétences acquises...




Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Builds Reproductibles avec Apache Maven par Hervé Boutemy

20h00 Buffet
2024-03-21 Le versioning des APIs REST: dans la vraie vie on fait comment? Alexandre Touret

Quand on souhaite publier des APIs avec par exemple, une solution d’ API Management, on évoque régulièrement le versioning. Cette pratique répond à des contraintes projet mais apporte malheureusement son lot de complexité.

Imaginez, vous travaillez sur un produit qui expose des APIs à plusieurs clients. Vous devez leur proposer des évolutions et nouvelles fonctionnalités tout en maîtrisant l’existant. Quelle stratégie adopter? Quelles solutions techniques peut-on mettre en place simplement ?

Dans cette présentation, vous (re)découvrirez des conseils que j’ai pu mettre en pratique et qui m’ont aidé lors de mes derniers projets.

Nous aborderons, au travers d’un cas concret, la stratégie à mettre en œuvre, les différentes possibilités d’implémentation ainsi que leurs contraintes.

A l’issue de cette présentation, nous aurons une vue complète et objective des manières d’appréhender le versioning d’APIs.




Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Le versioning des APIs REST: dans la vraie vie on fait comment? par Alexandre Touret

20h00 Buffet
2024-03-11 Assemblé Générale 2024 Bordeaux JUG

Les soirées du BordeauxJUG sont organisées par des bénévoles. L'association a besoin de volontaire comme vous pour poursuivre ces activités

Ce sera l'occasion pour l'équipe de faire une rétrospective sur l'année passée ainsi que d'élire un nouveau bureau.

Nous rappelons que l'AG est ouverte à tous. Par contre, seules les personnes ayant fait un don ou ayant souscrit au BordeauxJUG cette année pourront prendre part aux votes, et notamment à l'élection du futur bureau.

N'hésitez donc pas à verser votre obole

Vérifier que vous êtes à jour au niveau des cotisations sur la page Membres avant l'AG pour pouvoir voter !


Le lieu exacte de l'assemblée est le 1er étage à coté des salles de TD


Programme


18h50 Accueil des participants

19h00 Assemble générale

20h00 Buffet
2024-02-15 Découvrir le Property Based Testing : De la Théorie à la Pratique avec jqwik Benoit Maggi

Le Property Based Testing est une méthode de test logiciel où les tests vérifient les propriétés générales d'une fonction plutôt que des cas spécifiques. Cette approche génère automatiquement de multiples entrées de test pour couvrir une large gamme de scénarios, au lieu de se reposer sur des exemples fixes. Elle met en évidence les bugs subtils en réduisant les cas d'échec complexes à leurs formes les plus simples, facilitant ainsi le débogage.


Dans cette présentation, nous aborderons les bases du PBT et examinerons ses patterns essentiels, tels que le Round-tripping, la Commutativité, l'Invariance et l'Idempotence. Nous mettrons en lumière les bénéfices d'utiliser un framework de PBT efficace, en comparaison avec les méthodes de tests unitaires traditionnels. Nous conclurons par une démonstration pratique via l'utilisation de la librairie jqwik, illustrant l'application concrète du PBT.


Cette session vise à offrir une compréhension approfondie du PBT et de son potentiel dans l'amélioration des processus de test. Elle permettra également de découvrir comment un framework de PBT peut transformer l'approche de test dans les projets de développement. Enfin, le cas pratique avec jqwik servira d'exemple tangible pour mettre en application les concepts théoriques discutés.!



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Découvrir le Property Based Testing : De la Théorie à la Pratique avec jqwik avec Benoit Maggi

21h00 Buffet
2024-01-18 Generative IA par la pratique : cas concrets d'utilisation d'un LLM en Java, avec l'API PaLM, Gemini et LangChain4J Guillaume Laforge

Les Large Language Models (LLM) sont une nouvelle technologie puissante qui peut être utilisée pour une variété de tâches, notamment la génération de texte, la traduction de texte et la rédaction de différents types de contenu créatif. Cependant, les LLMs peuvent être difficiles à utiliser, en particulier pour les développeurs qui ne sont pas expérimentés en Python, la “lingua franca” de l'IA.

Alors, qu'en est-il des développeurs Java ? Comment pouvons-nous tirer parti de l'IA générative ?

Cette présentation vous montrera comment utiliser les LLMs en Java sans avoir besoin de Python. Nous utiliserons l'API PaLM et Gemini, fournie par les services Google Cloud Vertex AI, pour effectuer une variété de tâches, telles que la recherche dans de la documentation, la génération d'histoires pour enfants, la synthèse du contenu, l'extraction de mots-clés ou d'entités, et plus encore.

Et nous plongerons dans les possibilités offertes par le framework LangChain4J pour les développeurs Java !



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Generative AI par la pratique avec Guillaume Laforge

21h00 Buffet
2023-12-12 [ANNULEE] Java 21 va mettre des paillettes dans ta vie Rémi Forax

Soirée annulée

Java 21 vient de sortir avec deux grosses features, les threads virtuelles et le pattern matching.

Comme la notion de thread virtuelle a déjà été abordé précédemment, je m'attarderais pas trop dessus, et il y a aussi plein d'autres trucs sympas.

Coté langage, en plus du pattern matching et la volonté d'embrasser l'idée de la programmation orienté donnée, il y a aussi la monté en puissance de Java coté scripting, une première preview de l'interpolation de chaine de caractère, quelques nouvelles méthodes sur les collections, la programmation concurrente structurée et la fin annoncée de JNI.



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Java 21 va mettre des paillettes dans ta vie avec Rémi Forax

21h00 Buffet
2023-11-23 Les promesses de Loom ... Soyez au rendez-vous ! David Pequegnot

Sujet n°1 - Les promesses de Loom ... Soyez au rendez-vous !

Le projet Loom fait parler de lui depuis plusieurs mois. Il marque une avancée technique majeure de la plateforme Java en améliorant le système de concurrence à travers 3 nouvelles fonctionnalités : Virtual Threads (JEP 444), Structured Concurrency (JEP 453) et ScopedValue (JEP 448).


Avec la sortie récente de Java 21 LTS, les Virtuals Threads sont « production-ready ». En tant que développeur Java, cette perspective n’est pas sans poser de questions :


  •   Les promesses d’amélioration techniques seront-elles (toujours) au rendez-vous ?
  •   Comment l’écosystème va-t-il s’adapter ? Quels impacts sur les frameworks ?
  •   Faudra-t-il modifier le code métier ? La programmation asynchrone va-t-elle devenir obsolète ?
  •   Quels moyens de monitoring et d’observabilité ?
  •   Quels impacts pour le déploiement en container (configuration des JVM et scaling )?

A travers cette présentation, nous prendrons le point de vue développeur et architecte Java pour faire un tour d’horizon complet. Nous vous partagerons nos résultats de benchmarks ainsi que des exemples de code. Bref, nous verrons comment préparer concrètement l’arrivée de Loom dans nos projets Java !



Sujet n°2 - Loom : de l'observabilité du virtuel à une réelle adoption et mise en production

En poussant les limites runtime de Java à son extrême, Loom nécessite une observabilité adaptée :

  • quels sont les moyens disponibles à ce jour ?
  • Quoi mesurer et comment ?
Passons en revue l'état de l'art dans le domaine sur Java 21 et couvrons quels cas de figure illustrés par des rapports d'analyse réalisés avec Jeyzer.

Sur la base de ces points, discutons enfin d'une adoption pragmatique des threads virtuels au sein de projets, en vue d'une mise en production. Rejoignez-nous pour cette passionnante session d'exploration qui nous éclairera sur cette virtualité si attendue et devenue bien réelle avec Java 21.



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Les promesses de Loom ... Soyez au rendez-vous ! avec David Pequegnot et François Joubaud

20h10 Loom : de l'observabilité du virtuel à une réelle adoption et mise en production avec François Joubaud

21h00 Buffet
2023-10-26 La recherche à l'ère de l'IA David Pilato

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



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 La recherche à l'ère de l'IA avec David Pilato

21h00 Buffet
2023-07-06 JUG Off 2023 Lilian Benoit Le mois de Juillet est là et cela sent bon les vacances.

C'est l'occasion pour se retrouver autour d'une table pour discuter du monde JAVA, de la JVM ou d'autres sujets amenés par les participants.

Cette année, nous changeons de style, nous partons au japon, pays du Sushi, Maki et autres.

Cela sera aussi l'opportunité de retrouver l'équipe et de faire un point sur le BordeauxJUG donc n'hésitez pas à venir.

Attention afin de pouvoir réserver, la limite des inscriptions est fixée au 05 juillet à 14h.

A fin de réserver le nombre correcte, Merci de vous inscrire si vous êtes sûr de venir et de décommander si vous avez un empêchement.
2023-06-08 Laptop as Code Mehdi Rebiai

Un nouveau développeur rejoint votre équipe. Combien de temps faut-il pour configurer son ordinateur? Votre disque dur est cassé. Combien de temps pour tout réinstaller sur un nouveau disque?

L'idée de ce talk est de partager le concept d'un ordinateur stateless.

Toute configuration est versionnée sous Git et Ansible devient votre meilleur ami.

Au programme : présentation de Ansible, ansible-pull, ansible-galaxy, démo de réinstallation du poste en quelques minutes seulement..



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Laptop as Code avec Mehdi Rebiai

21h00 Buffet
2023-04-27 Fluid Pull Request Freddy Mallet

Les Pull Requests sont aujourd'hui la colonne vertébrale de toute infrastructure DevOps. Mais ce succès a sa part d'ombre: elles sont aussi devenues le principal goulot d'étranglement du cycle de développement avec un impact significatif sur le 'Lead Time for Changes'. Au cœur des frictions, des frustrations et des ralentissements, l'étape manuelle de revue de code qui a peu évolué depuis 2008.

'Fluid Pull Requests' est un concept émergent pour accélérer, sécuriser et automatiser cette étape de revue de code et d'approbation. En fonction de l'évaluation du niveau de sensibilité des changements, il est possible d'introduire beaucoup plus de flexibilité comme par exemple avec les revues de code asynchrones. Cette étape est d'autant plus importante que demain le code sera généré tout autant par des humains que par des bots autonomes.



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Fluid Pull Request avec Freddy Mallet

21h00 Buffet
2023-04-06 CRaC vs GraalVM, pour un démarrage rapide Lilian Benoit

Dans les cas d'usages modernes (Kubernetes, Serverless), tout le monde sait que le point noir de la JVM est son démarrage.

Depuis quelques années, GraalVM s'impose comme rémède permettant ainsi un démarrage rapide via une compilation native. Cela apporte néanmoins certaines contraintes.

Une nouvelle solution apparait dans le paysage de la JVM. C'est CRaC pour Coordinated Restore at Checkpoint. Regardons ensemble comment cela fonctionne et les avantages.



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 CRaC vs GraalVM avec Lilian Benoit

21h00 Buffet
2023-03-13 Assemblé Générale 2023 Bordeaux JUG

Les soirées du BordeauxJUG sont organisées par des bénévoles. L'association a besoin de volontaire comme vous pour poursuivre ces activités

Ce sera l'occasion pour l'équipe de faire une rétrospective sur l'année passée ainsi que d'élire un nouveau bureau.

Nous rappelons que l'AG est ouverte à tous. Par contre, seules les personnes ayant fait un don ou ayant souscrit au BordeauxJUG cette année pourront prendre part aux votes, et notamment à l'élection du futur bureau.

N'hésitez donc pas à verser votre obole

Vérifier que vous êtes à jour au niveau des cotisations sur la page Membres avant l'AG pour pouvoir voter !


Le lieu exacte de l'assemblée est le 1er étage à coté des salles de TD


Programme


18h50 Accueil des participants

19h00 Assemble générale

20h00 Buffet
2023-02-23 JOOQ, joy of SQL Kevin Davin

Et si l'on reprenait le contrôle de nos interactions avec notre base de données préférée? Car en vrai, nos BDD sont des monstres de puissance qui sont souvent sous exploitées 😓.

Nous verrons, avec JOOQ comment écrire des requêtes SQL simples ou évoluées, le tout facilement et de manière type-safe !

Venez découvrir cette superbe librairie OpenSource, compatible Java, Kotlin & Scala, qui va vous permettre de vous simplifier la vie et d'améliorer votre code... et même de découvrir de super fonctionnalités SQL que vous n'imaginiez même pas..



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 JOOQ, joy of SQL avec Kevin Davin

21h00 Buffet
2022-12-15 400 endpoints d'API et 2000 types : genèse et utilisation du nouveau client Java pour Elasticsearch Sylvain Wallez

Un nouveau client Java pour Elasticsearch est sorti fin 2021. Plus léger, plus rapide, plus ergonomique et... généré à 99% !

L'API d'Elasticsearch a grandi de façon organique depuis 10 ans et compte près de 400 points d'API et 2000 structures de données. Jusqu'à 2021 il n'y avait pas de spécification formelle complète de cette API. Gênant pour générer du code... On a rapidement vu que OpenAPI était difficilement applicable, et pris une approche originale, en modélisant l'API avec des types TypeScript "compilés" dans un modèle servant de base à la génération de code.

Comment ensuite, à l'usage, s'y retrouver dans cette API très riche ? On verra avec quelques exemples que l'utilisation de fluent functional builders et de tagged unions (un peu de formalisme pour des choses simples) permet une écriture proche d'un DSL où on se laisse guider par l'autocomplétion de l'IDE sans jamais avoir à taper un nom de classe, dans des structures arborescentes et polymorphiques proposant parfois plus de 50 variantes.



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 400 endpoints d'API et 2000 types : genèse et utilisation du nouveau client Java pour Elasticsearch avec Sylvain Wallez

21h00 Buffet
2022-10-18 Micronaut Test Resources Cédric Champeau

Tester vos microservices sans peine avec Micronaut Test Resources Micronaut est un framework full-stack moderne, basé sur la JVM, permettant de construire des microservices ou applications serverless facilement.

De part son emphase sur la compilation ahead-of-time, il s'intègre particulièrement bien avec GraalVM, poussant les limites de ce qu'on peut faire avec le langage Java.

Cependant, le développement d'applications modernes est aussi synonyme de multiples intégrations qui sont parfois difficiles à configurer. Par exemple, votre application peut avoir besoin d'une base de données, d'un serveur Kafka, d'un broker MQTT ou autre. Micronaut Test Resources permet de grandement simplifier le développement de telles applications: sans aucune configuration, il est capable de démarrer des conteneurs de test pendant le développement ou les tests, réduisant considérablement l'effort nécessaire pour obtenir une excellente productivité développeur.

Dans cette session, nous montrerons les bases d'une application Micronaut et comment il s'intègre, en partculier, avec les outils de builds et Testcontainers.

Micronaut Test Resources est aussi un framework extensible, rendant relativement simple l'ajout de vos propres ressources de test: il est par exemple possible d'exposer un conteneur Docker avec quelques lignes de configuration. En dernier recours, il est toujours possible d'implémenter vos propres ressources de test.

Enfin, il est intéressant de savoir que Micronaut Test Resources est conçu de façon à ce que les ressources de test puissent être partagées entre différents projets, même s'ils utilisent des outils de build différent ! Cerise sur le gâteau, nous montrerons comment les images natives peuvent bénéficier de ce mécanisme.



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Micronaut Test Resources avec Cédric Champeau

21h00 Buffet
2022-09-22 Programmation Asynchrone avec Loom José Paumard

En travaux depuis de nombreuses années, le projet Loom a pour objet d'apporter un nouveau modèle de programmation asynchrone dans le JDK.

Disponible en préversion dans le JDK 19, on peut donc commencer à l'expérimenter, et comprendre les patterns de code que ce projet apporte. Loom arrive en deux parties.

  • La première comprend les threads virtuels, que l'on peut créer en très grand nombre, et que l'on peut bloquer sans que cela coûte cher. Nos bons vieux threads (25 ans) font de la place à ce nouveaux type de threads.

  • La seconde est un nouveau modèle de programmation asynchrone: la programmation concurrente structurée, construite sur la notion de scope. Nous couvrirons ces deux sujets.

Peu de slides dans cette présentation, beaucoup de code afin de comprendre la façon dont Loom va révolutionner l'écriture de code asynchrone



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Programmation Asynchrone avec Loom avec José Paumard

21h00 Buffet
2022-06-09 Quarkus World Tour 2022 s'arrête à Bordeaux Gwenneg Lepage

Cette année encore, l'équipe Quarkus fait une étape à Bordeaux à l'occasion du Quarkus World Tour 2022 !

Cet événement nous sera présenté par Gwenneg Lepage, Senior Software Engineer chez Red Hat, contributeur Quarkus et passionné d'aviation.

Lors d'une session très orientée live coding, il nous montrera comment construire "from scratch" une application Quarkus distribuée de suivi des vols en temps réel. De Kafka aux websockets en passant par RESTEasy Reactive et Hibernate Reactive, nous ferons un tour d'ensemble de nombreuses extensions Quarkus. Le live coding se conclura par un déploiement de l'application sur Red Hat OpenShift.

La démo sera précédée d'une introduction à Quarkus et suivie d'une séance de questions.

Vous ne connaissez pas Kafka, la programmation réactive ou le système de surveillance ADS-B ? Pas de panique, cette session restera accessible aux débutants. Alors venez nombreux !



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Quarkus Tour 2022 s'arrête à Bordeaux avec Gwenneg Lepage

21h00 Buffet
2022-05-28 Workshop Kafka Streams 101 Victor Gallet

Apache Kafka est aujourd'hui l'une des plateformes de messaging les plus populaires pour gérer les flux de données en temps réel. Beaucoup d'entreprises l'utilisent comme pilier dans une architecture microservice évenementielle ou pour construire leur plateforme de streaming. Kafka Streams est la bibliothèque ultra-lègere permettant de manipuler, transformer, filter, enrichir,....les données au sein d'un cluster Apache Kafka et cela en s'abstrayant complétement du code de plomberie.

Rien de mieux qu'une petite mise en situation pour comprendre les concepts derrière Kafka Streams. Imaginez, vous travaillez pour une grande institution bancaire, The Bank Corp! Le salaire et les jours de congés vous ont fait accepter ce poste mais c'était sans compter le travail. Au sein de cette dernière, votre équipe business souhaiterait mettre en place des traitements en temps réel des transactions que vos clients réalisent. Ils souhaitent être en capacité de détecter des transactions financières particulièrement élevées, des potentielles fraudes mais également de pouvoir connaître le solde des comptes et tout cela en temps réel!

Durant ce workshop, vous allez mettre en place la libraire Kafka Streams afin de répondre aux besoins de l'équipe métier. Vous découvrirez les principaux concepts derrière Apache Kafka. Qu'est-ce qu'un topic, une partition, les offsets, la compaction, le co-partitioning ? Toutes ces notions que vous avez peut-être déjà entendu sans trop comprendre de quoi il en retourne. Vous découvrirez également les caractéristiques d'une application Kafka Streams comme les notions de KStream, KTable, la sémantique exactly-once, en quoi ces applications sont résilientes, scalables, etc...

Ce workshop s'adresse aussi bien aux personnes ne connaissant pas le monde Kafka et aux personnes ayant déjà des notions souhaitant découvrir Kafka Streams.

PRÉ-REQUIS :

  • JDK 11+
  • Maven
  • Git
  • Docker / Docker Compose
  • Votre IDE préféré
  • Cloner le dépot github
  • Lancer un docker-compose up à la racine afin de télécharger les images docker
  • Faire un mvn clean compile afin de récupérer les dépendances



Programme


09h50 Accueil des participants

10h00 ATELIER Workshop Kafka Streams 101 avec Victor Gallet

13h00 Fin de l'atelier
2022-05-12 Architecture microservices et cohérence des données : mais on fait comment pour de vrai ? Jean-François James

Les architectures microservices ont le vent en poupe. Elles présentent de nombreux avantages pour mettre en place les bonnes pratiques DevOps et faire travailler en parallèle des équipes pluridisciplinaires autonomes.

Evoluer du monolithe vers les microservices n'est pas un long fleuve tranquille... Les challenges ne manquent pas. L'un d'entre eux, et non des moindres, est la cohérence des données. Un des principes est que chaque service possède sa propre base de données. Quand une transaction métier invoque plusieurs services, on ne peut donc plus compter sur les bonnes vieilles transactions ACID locales. Quant aux transactions distribuées XA/2PC, elles sont jetées au pilori des mauvaises pratiques depuis bien longtemps !

Une fois ce constat établi, on fait quoi concrètement ? Comment peut-on répondre à cette problématique ?

Dans cette présentation, nous verrons comment procéder avec deux approches : les SAGA et les LRA (Long Running Action). Un exemple concret basé sur MicroProfile et le framework Eventuate Tram vous permettra de les appréhender et de choisir la bonne option pour votre prochain projet microservices



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Architecture microservices et cohérence des données : mais on fait comment pour de vrai ? avec Jean-François James

21h00 Buffet
2022-04-07 Développer un opérateur Kubernetes en Java, c'est possible ! Stéphane Philippart

Il n'est plus, je pense, nécessaire de présenter Kubernetes tellement il fait parti du paysage informatique. Avec sa généralisation, de nouveaux types de développements et de patterns sont apparus. Lors de ce talk j'aborderai l'un d'eux : les opérateurs.

Merveilleux assistants, aptes à faire énormément de choses. Mais voilà, les nombreuses documentations que l'on trouve tournent principalement autour d'un langage : Go. Ce n'est pas que cela ne me plaise pas, mais l'idée est de pouvoir aussi le faire avec un autre langage que je connais et utilisé par de nombreuses équipes de développement : Java.

Lors de ce talk, je vous présenterai, de manière simple, la notion des opérateurs au sein de Kubernetes : à quoi ils servent et comment ils évoluent dans l'éco-système Kubernetes. Nous verrons qu'ils peuvent être de simples aides à l'installation ou à la mise à jour d'une application au sein de Kubernetes mais aussi aller beaucoup plus loin en devenant de vrais Ops pour gérer vos applications pour vous !

Puis, nous développerons un opérateur ensemble et en Java : un bon Hello World nous permettant de prendre en main le SDK Java mais aussi les différents éléments présentés au début du talk.

Enfin, nous essaierons de nous projeter vers un opérateur faisant un peu plus que Hello World afin de voir si vraiment il sait faire de l'Ops !

A la fin de ce talk, vous aurez les différents éléments pour savoir si vous avez besoin développer un opérateur, comment le développer, et choisir entre le faire en Java ou dans un autre langage !



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Développer un opérateur Kubernetes en Java, c'est possible ! avec Stéphane Philippart

21h00 Buffet
2022-03-24 A GraphQL-based Schema Architecture for Microservices Jean-Jacques Dubray


Regardless of the schema language, there are three key problems in a schema architecture:

  • the reusability of data structure definitions
  • the expressivity of the schema language
  • the developer experience

Nav is a Small Business Lending platform built on a polyglot microservice architecture, complemented by an event bus. It is essential for us to develop a consistent way to validate our message payloads (APIs and events) across all microservices. Considering that it has one of the best DevX in the industry, we got the idea to use GraphQL as a schema language without any runtime component. After all, a GraphQL query describes the payload requested by a client, so why not use the same syntax to create a message definition and generate client-side and server-side validation code?


Nav’s Schema Architecture has been used in production since last September and we can already see some of the key benefits:

  • Rich validation rules
  • A consistent set of validation rules regardless of the language (Golang, Python, Ruby and JSON-schema).
  • An intuitive DevX that allows us to onboard engineers very quickly
  • A communication mechanism that conveys easily and precisely reusable data types across all payloads
  • A massive productivity gain with a 10-20X compression factor between the payload definition and the amount of generated code

These benefits proved to be very useful in the implementation of our event-driven architecture. We are now using for gRPC and protobuf as well.


Agenda:

  • Introduction à GraphQL
  • Pourquoi a-t’on besoin de valider les payloads des APIs et des Événements?
  • Pourquoi ca ne marche pas avec les technologies classiques (json-schema par exemple)
  • Presentation du projet Nav Schema Architecture (FOSS)

Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 A GraphQL-based Schema Architecture for Microservices présenté par Jean-Jacques

21h00 Pas de buffet (session en ligne)
2022-03-10 Assemblé Générale 2022 Bordeaux JUG

Les soirées du BordeauxJUG sont organisées par des bénévoles. L'association a besoin de volontaire comme vous pour poursuivre ces activités

Ce sera l'occasion pour l'équipe de faire une rétrospective sur l'année passée ainsi que d'élire un nouveau bureau.

Nous rappelons que l'AG est ouverte à tous. Par contre, seules les personnes ayant fait un don ou ayant souscrit au BordeauxJUG cette année pourront prendre part aux votes, et notamment à l'élection du futur bureau.

N'hésitez donc pas à verser votre obole

Vérifier que vous êtes à jour au niveau des cotisations sur la page Membres avant l'AG pour pouvoir voter !


Le lieu exacte de l'assemblée est le 1er étage à coté des salles de TD

Conformément aux consignes de l'ENSEIRB, le passe sanitaire est obligatoire pour suivre l'événement. Sur place, les gestes barrières doivent être respectées.



Programme


18h50 Accueil des participants

19h00 Assemble générale

20h00 Buffet
2022-01-20 Gravitee.io - Une plateforme d'APIs Open-source basée sur Vert.x David Brassely

A l'origine API Gateway, Gravitee.io s'est rapidement fait une place de choix dans le cercle fermé des solutions d'API Management et d'API Platform en proposant une solution open-source, enterprise-ready, résiliente, performante (et Française).


Bon nombre de ces caractéristiques sont directement liées au fait que Gravitee.io est une plateforme plutôt jeune, prenant alors avantage des nouvelles "technologies" et frameworks et où Vert.x s'est imposé comme le centre névralgique de la solution.



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 : La présentation de David Brassely : Gravitee.io - Une plateforme d'APIs Open-source basée sur Vert.x

21h00 Pas de Buffet (dans le contexte actuel)
2021-12-09 Blockchain: fondements technologiques et cas d'usage Jérémie Albert

La blockchain est une technologie distribuée de stockage d'information et d'exécution de code informatique.

Elle repose sur des fondements technologiques et cryptographiques de plusieurs dizaines d'années qui en font une technologie extrêmement sécurisée.

Cette technologie est disruptive car elle permet de repenser la manière dont nos actifs peuvent être stockés, sécurisés et échangés et il existe maintenant tout un écosystème s'est construit autour de celle-ci.

Chez inBlocks, nous proposons une plateforme en mode SaaS pour permettre aux entreprises de créer de la valeur sur cette disruption.

Dans cette présentation nous parlerons donc à la fois des sous-jacents technologiques mais aussi des cas d'usage tels que la certification et l'horodatage d'informations numériques, la création de jetons (token) fongibles et non fonglibles (NFT) et décrirons comment nous avons pu aider Votelab (votelab.io) à lever plus de 3 M€ en 7 jours



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 : La présentation de Jérémie Albert : Blockchain

21h00 Buffet
2021-11-16 Java 17 la dernière LTS Rémi Forax

Pour le retour du BordeauxJUG en présentiel, Rémi Forax, Docteur es Java, vient de Paris nous voir à l'ENSEIRB pour une présentation sur Java 17 la dernière LTS.

La version 17 de Java est sorti. Youpi !

Trois ans de développement depuis Java 11, plein de choses à discuter donc c'est parti pour une nuit de 17h sur Java 17, nan, je rigole, on va parler que des changements du langage, cela sera déjà pas mal.

Donc quoi de nouveau dans la version 17 du langage, une nouvelle sorte de chaine de caractère, une nouvelle sorte de classe spécialisée pour le données, une nouvelle sorte d'interface et un revampage des switchs en prévision de l'introduction du pattern macthing.

Bien sûr, on va pas discuter uniquement de comment les nouvelles features marchent mais surtout pourquoi elles ont été designées comme cela, et vers où on veut aller, enfin au moins vers où je pense que nous, la core team de Java, voulons aller.



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h et des brouettes : La présentation de Rémi : Java 17

21h00 Buffet
2021-09-16 Quarkus World Tour s'arrête à Bordeaux Andy Damevin

Emportée par le vent et dans un esprit très Rock’n Roll, l'équipe Quarkus lance sa tournée mondiale des zéniths.


Ces 25 dernières années, jamais Java, qui s’est produit partout dans le monde, n’avait connu un tel événement. Nous couvrirons les classiques comme “Start Me Up” et "Living' on a VM", mais également quelques nouveautés comme “ "Stairway to Native", "Sweet JPA of Mine" et bien d’autres encore.


Durant ce concert, l’équipe Quarkus vous offrira une expérience “Hands-on” unique: Une introduction à Quarkus, suivi d’une ou deux demo “Hands-on” et pour terminer, une session Q&A avec les membres du groupe ... euh … des développeurs impliqués.


Alors, rejoignez-nous ! Nous explorerons comment Quarkus aide les développeurs pour être plus productifs, créer des chef-d'œuvre modernes et tout ça dans le fun : 90 minutes exceptionnelles de discussion technique, live coding et Q&A - de quoi dépoussiérer vos classiques !


Ah et on aura également des goodies … comme des T-Shirts de la tournée peut-être?


Allez, Time to rock the Java world 2021 style…


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Quarkus World Tour présenté par Andy Damevin, Clément Escoffier et Loïc Mathieu

21h00 Pas de buffet (session en ligne)
2021-06-24 Java côté serveur : 22 ans et toujours fringuant ! Jean-François James

Pendant 20 ans, Java EE a évolué à un train sénatorial. Depuis une dizaine d'années, les applications se sont transformées pour devenir cloud-natives. Java se trouve aujourd'hui contraint de s'adapter à ce nouveau contexte, en particulier pour fonctionner de manière optimum dans les infrastructures modernes basées sur Kubernetes:


  • Il doit permettre de développer facilement des applications observables et résistantes aux pannes,
  • Il doit devenir frugal en ressources systèmes, en particulier réduire sa consommation mémoire,
  • Il doit démarrer rapidement.

Cette présentation a pour but de démontrer les différentes options qui permettent d'atteindre ces objectifs :


  • L'évolution de Java EE vers Jakarta EE et MicroProfile,
  • L'offre logicielle autour des ces standards: Quarkus, OpenLiberty, Payara, KumuluzEE, TomEE, Helidon ...
  • GraalVM et les promesses du mode natif.

La présentation sera basée sur quelques slides, une démo inspirée d'un cas réel et des résultats de benchmarks récents.


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Java côté serveur : 22 ans et toujours fringuant ! présenté par Jean-François James et David Pequegnot

21h00 Pas de buffet (session en ligne)
2021-05-20 Gradle 7: Le guide de survie Gradle Cédric Champeau

Gradle est un outil de build puissant, souvent comparé à Maven, mais cette comparaison induit souvent des problèmes de compréhension parce qu'ils ont un modèle en pratique bien différent.

Dans cette présentation, nous proposons une introduction à Gradle, quels sont les concepts de base, quelles commandes invoquer, ce qu'est un build script, etc... dans l'objectif d'avoir à l'issue de la session les bases nécessaires à lire et commencer à écrire des builds Gradle.


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Gradle 7: Le guide de survie Gradle présenté par Cédric Champeau

21h00 Pas de buffet (session en ligne)
2021-04-22 Java 16 - Les nouveautés Lilian Benoit

Java 16 est disponible depuis mars 2021. Java évolue rapidement avec cette cadence de sortie tous les 6 mois. Chaque version apporte son lot de nouveautés et la version 16 ne déroge pas à la règle.

Cependant, selon le dernier rapport 2021 de la société Snyk sur l'éco-système JVM, nous voyons que deux développeurs sur trois utilisent le JDK 8 en production et seulement un développeur sur quatre utilise un JDK 11.

Si chaque version est intéressante, la version 16 est très intéressante à deux titres :

  • Certaines fonctionnalités en mode aperçu ("Preview") arrivent en standard dans le langage,
  • La prochaine version, Java 17, est une version LTS (Long-Term Support)

Je vous présenterai les nouvelles fonctionnalités. Pour cela, rien de mieux que de coder en direct afin de bien comprendre leurs intérêts.

Cela va transformer votre manière de coder et vous vous demanderez après comment vous avez fait sans.

Venez me rejoindre !


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Nouveautés de Java 16 présenté par Lilian Benoit

21h00 Pas de buffet (session en ligne)
2021-03-11 JHipster ❤️ Quarkus: Supersonic, Subatomic Full Stack Application Anthony Viard

D'un côté JHipster, LE générateur d'application le plus connus de l'écosystème Java pour générer des applications fullstack.

De l'autre Quarkus, le dernier framework de Red Hat qui annonce des performances époustouflantes.

L'occasion était trop belle, rajouter un backend Quarkus à JHipster en utilisant le concept de "blueprint".

Durant cette présentation, nous aborderons les points suivants:

  •    C'est quoi JHipster et surtout c'est quoi un blueprint

  •    C'est quoi Quarkus et pourquoi autant de hype.

  •    JHipster-Quarkus

    1.    Comment l'installer

    2.    Generation d'une app de commerce en ligne avec un backend Quarkus qui pèse 80M de mémoire et démarre en 0.0.1

    3.    Generation d'une entité en passant par le formulaire en CLI

    4.    L'utilisation du JDL (JHipster Description Language) pour aller encore plus vite

  •    Comment aller plus loin

  •    Le futur.


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 JHipster ❤️ Quarkus: Supersonic, Subatomic Full Stack Application

21h00 Pas de buffet (session en ligne)
2021-02-18 Hibernate in complex projects – Can we be a little faster? Thorben Janssen

Hibernate is the de-facto standard for persisting data in a relational database. It provides excellent developer productivity and is so easy to use that you can learn it within a few hours.

That changes as soon as your application needs to handle a huge amount of data or if you want to guarantee very short response times. Features and concepts that work perfectly fine for smaller applications start to become a burden that slows down your application.

But that doesn’t have to be the case for your application. Hibernate is a great fit for complex projects with high-performance requirements. You only need to know which features to use and which you should better avoid.

During this talk, I will show you how to get the most out of your Hibernate-based persistence layer. By following these recommendations, you will be able to enjoy Hibernate’s developer productivity and provide a blazingly fast experience to your users.


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Hibernate in complex projects – Can we be a little faster?

21h00 Pas de buffet (session en ligne)
2021-01-21 Don't fear outdated caches -- change data capture to the rescue! Let's discover Infinispan and Debezium Gunnar Morling

The saying goes that there are only two hard things in Computer Science: cache invalidation and naming things.

Well, turns out the first is solved actually ;)

Come and join us for a session to hear not about one, but two popular open-source projects.

First, Infinispan, an in-memory distributed data store and cache, which is elastically scalable, highly availability and fault-tolerant.

Then, Debezium, a change data capture (CDC) platform for a variety of databases, such as MySQL, PostgreSQL and MongoDB.

After an overview of the key use cases and capabilities of the two projects, we'll explore in a demo how you can combine Debezium and Infinispan for even greater awesomeness:

  • How to keep your cache automatically up-to-date after data changes via Debezium and CDC

  • How to read denormalized views of your data with plain key look-ups from an Infinispan cluster close by

  • How to propagate cache updates between clusters using cross-site replication

All this driven by Quarkus and connected via Apache Kafka. Bring your questions and ideas so we can discuss and exchange about the potential of these open-source projects in the data space!


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Don't fear outdated caches -- change data capture to the rescue! Let's discover Infinispan and Debezium

21h00 Pas de buffet (session en ligne)
2020-12-17 3 easy improvements in your microservices architecture Nicolas Frankel

While a microservices architecture is more scalable than a monolith, it has a direct hit on performance.


To cope with that, one performance improvement is to set up a cache. It can be configured for database access, for REST calls or just to store session state across a cluster of server nodes. In this demo-based talk, I’ll show how Hazelcast In-Memory Data Grid can help you in each one of those areas and how to configure it.

Hint: it’s much easier than one would expect


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 3 easy improvements in your microservices architecture

21h00 Pas de buffet (session en ligne)
2020-11-19 Plug-in Architectures for Java with Layrry and the Java Module System Andres Almiray

The Java Module System lays the foundation for building modularized applications on the JVM. It doesn’t concern itself though with resolving module versions and obtaining modules from repositories.


This is where Layrry comes in: an API and launcher for modularized Java applications which takes a descriptor of the module layer(s) to assemble, fetches the modules and starts up the application.


Join us for this session and learn how to:


Build Java applications using layers, e.g. providing isolation between different versions of one module. Use jbang to launch your layered apps in no time. Create plug-in based rich-client applications using JavaFX and Layrry, allowing to – dynamically reconfigure and update your layer hierarchy, no restarts required. Create your own customized Layrry launcher if needed


This session is code-centered, be ready to see the Java Module System, Layrry, and JavaFX in action!


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Plug-in Architectures for Java with Layrry and the Java Module System

21h00 Pas de buffet (session en ligne)
2020-10-15 Mieux maîtriser la performance applicative avec la librairie de test QuickPerf Jean Bisutti

La performance est souvent considérée de manière tardive, voire ignorée, dans le cycle de développement applicatif. Ceci induit un risque de découvrir tardivement que l'application est lente ou inutilisable.

Vous allez découvrir comment la librairie de test QuickPerf (https://github.com/quick-perf/quickperf) permet de supprimer sans beaucoup d'effort et au plus tôt des goulets d'étranglement de performance.


Si votre application possède déjà des tests de performance, comme des tirs de charge, vous verrez comment les tests QuickPerf peuvent les compléter et vous faire gagner du temps


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Mieux maîtriser la perforrmance applicative avec la librairie de test QuickPerf

21h00 Pas de buffet (session en ligne)
2020-09-10 Spring Boot Loves K8s Stéphane Nicoll

Containers and platforms are now part of the developer’s toolbox;

it’s sometimes hard to standardize the containerization and deployment of Spring Boot applications in your organization, while still remaining flexible.

Spring Boot 2.3 is out now with new features for containers and Kubernetes.

During this session, Stephane and Brian will share with you the Spring Boot 2.3 features that will help you to:

   - Easily create optimized container images of your application

   - Simplify and standardize your CI/CD pipeline

   - Manage the lifecycle of your application in a Kubernetes environment with Probes

And more!


Important:
La soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Spring Boot Loves K8s

21h00 Pas de buffet (session en ligne)
2020-07-09 JUG Off 2020 Lilian Benoit Le mois de juin s'est terminé et cela sent bon les vacances.

Lors des dernières soirées à distance (depuis Avril), nous n'avons pas eu l’occasion de nous retrouver après la session et de partager des bons moments.

Cette soirées est l'occasion de le faire, pour discuter du monde JAVA, de la JVM ou d'autres sujets amenés par les participants.

Cela sera aussi l'opportunité de retrouver l'équipe et de faire un point sur le BordeauxJUG donc n'hésitez pas à venir.

Dans le contexte actuel, le nombre d'inscription est limité à 10.

A fin de réserver le nombre correcte, Merci de vous inscrire si vous êtes sûr de venir et de décommander si vous avez un empêchement. La date limite d'inscription est jeudi 09/07 à 12h.
2020-06-25 Profiling et monitoring de JVM avec Arthas Jean-Michel Doudoux

Arthas est un outil open source de diagnostic Java open source développé par Alibaba pour ses propres besoins. Il propose des fonctionnalités de monitoring et de profiling qui peuvent aider à identifier de nombreux problèmes dans des applications exécutées dans une JVM sans avoir à la redémarrer. C'est un outil en mode console qui permet de se connecter à une application Java en cours d'exécution.


Cette session présentera cet outil utile qui peut aider à résoudre des problèmes lors de l'exécution d'application dans un JVM.

Important:
Dans le cadre du confinement, la soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Profiling et monitoring de JVM avec Arthas

21h00 Pas de buffet (session en ligne)
2020-05-28 Artificial Intelligence on Quarkus: I love it when an OptaPlan comes together Geoffrey De Smet

Forget about Machine Learning. Planning optimization is the most profitable AI technology on this planet.

The world is full of planning challenges, such as vehicle routing problems, maintenance scheduling and employee rostering. Find the quickest routes to visit n locations with k vehicles. Assign n shifts to k employees, taking into account skills and availability. Few people realize how much AI algorithms improve those solutions.

For example, when telco's started using OptaPlanner to plan their fleet of technicians, many expected a driving time reduction of 1-2%. It was 25%. In some cases, that saves them hundreds of millions of dollars and millions of kilograms of CO² emissions, every year.

In this session I'll show you how to code a highschool timetabling application from scratch, with Quarkus and OptaPlanner. It 'll generate the perfect lesson schedule, for both students and teachers.


Important:
Dans le cadre du confinement, la soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 Artificial Intelligence on Quarkus: I love it when an OptaPlan comes together

21h00 Pas de buffet (session en ligne)
2020-04-30 La concurrence sans s’emmêler les ficelles avec Project Loom Arnaud Bos

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

Au fil de cette présentation (em)mêlée d'exemples de code, vous découvrirez le projet Loom qui a pour vocation d'apporter à la JVM des "mécanismes léger de concurrence", ainsi que des API plus haut niveau pour broder dessus.

Nous aborderons ensemble l'origine de Loom et ses récents prototypes. Vous vous apercevrez que son maillage va au delà de "simples" primitives et peut nous amener jusqu'à révolutionner la concurrence sur la JVM.


Important:
Dans le cadre du confinement, la soirée est organisée en ligne, grâce au soutien de la fondation Eclipse et notamment du projet Jakarta EE.

Pour participer, cliquer sur le bouton suivant : Participer à la visio-conférence

Programme

19h00 News du JUG et news du monde Java

19h10 La concurrence sans s'emmêler les ficelles avec Projet Loom

21h00 Pas de buffet (session en ligne)
2020-02-20 Montée de version sans interruption de services Nelson Dionisi

De plus en plus d'éditeurs logiciels fournissent leurs solutions en SaaS, et tendent à déployer leurs applications en Continuous Delivery. Pour cela, les contraintes business impliquent souvent de pouvoir déployer une nouvelle version applicative sans interruption de service.

Les techniques classiques de Rolling Update permettent de réaliser une montée de version sans interruption de service assez facilement. La complexité intervient lorsque l'on gère une base de données relationnelle, et que l'on souhaite faire évoluer son schéma, le tout, toujours sans interruption de service.

Depuis 3 ans, au sein de Mirakl, nous avons mis en place un système de montée de version sans interruption de service avec une base relationnelle.

Ce talk est un retour d'expérience présentant les mécanismes que nous avons mis en place pour réaliser ces montées de version sans interruption. Il se concentre sur la partie applicative, et les problématiques engendrées par un tel process.

Le but est d'être le plus concret possible, avec des exemples de "la vraie vie", notamment quelques astuces pour réaliser ses migrations sans douleur avec des frameworks comme Hibernate ou jOOQ. Les exemples sont donnés en Java avec une base de données PostgreSQL, mais les principes s'appliquent à n'importe quel langage et à la plupart des bases de données relationnelles.



Programme


18h50 Accueil des participants

19h00 News du JUG et news du monde Java

19h10 Montée de version sans interruption de service

21h00 Buffet
2020-01-23 Quoi de neuf sur le support de Kotlin dans Spring ? Spring Boot avec GraalVM native Sébastien Deleuze Quoi de neuf sur le support de Kotlin dans Spring ?

La première partie de cette conférence donnera un aperçu de l'état de l'art du développement d'applications Spring Boot 2.2 avec Kotlin:


  • Data classes immutables avec @ConfigurationProperties
  • Tests avec JUnit 5 et Mockk
  • La nouvelle DSL “router” pour Spring MVC
  • Le support des Coroutines sur WebFlux, RSocket et Spring Data
  • Les exemples de code en Kotlin dans la documentation de référence
  • La DSL MockMvc
  • Un rappel des bonnes pratiques (extensions, injection de dépendances via constructeur)

    La seconde partie sera un live coding d'une application Spring Boot configurée avec Kofu, la DSL Kotlin actuellement développée dans l'incubateur Spring Fu que j'ai créé il y a quelques mois. Il s'agit d'une alternative à l'auto-configuration Spring Boot conçue pour configurer votre application de manière explicite en utilisant l'auto-complétion et des "slices" de configuration tout en supportant la plupart des fonctionnalités de Spring Boot.



    Spring Boot avec GraalVM native

    Dans cette conférence, Sébastien partagera les dernières informations sur le travail en cours effectué par l'équipe Spring afin de permettre de compiler les applications Spring Boot en exécutables natifs permettant ainsi un démarrage instantané et une consommation mémoire réduite. Il présentera le futur support prévu pour Spring Framework 5.3, et fera différentes démonstrations d'applications Spring Boot natives. Ce sera également l'occasion pour une comparaison pragmatique entre les plateformes OpenJDK, GraalVM Community Edition et GraalVM Enterprise Edition avec des chiffres concrets.



    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h10 Support Kotlin dans Spring, suivi de Spring boot avec GraalVM

    21h00 Buffet
  • 2019-12-12 La modularité au (micro) service de l'espace client Orange Frédéric Demany En 2017, l'espace client web d'Orange était une application monolithique capable de gérer 15 millions de visiteurs uniques par mois, avec un fonctionnel vaste, allant de la récupération du code puk à la souscription de nouvelles options. Au fil des années passées et des évolutions, la complexité et la dette technique se sont accumulées sur ce monolithe. Il affichait alors ses limites pour adresser la multicanalité et ne permettait plus d'absorber les évolutions dans un délai raisonnable.

    Lorsqu'une application devient trop grosse, le découpage en micro-services est une bonne alternative. Mais quand on veut casser des monolithes pour en faire des micro-services, tout en préservant le legacy afin d'éviter le big bang, c'est tout de suite beaucoup moins simple.

    Dans ce talk nous vous présenterons les étapes de la transformation digitale de l'espace client Orange, qui ont permis de réconcilier différents fronts et différents backs dans une architecture micro-services et micro-frontends.

    Références:
    Ce talk décrit les enjeux et les difficultés à faire évoluer une architecture monolithique vers une architecture modulaire au sein d'une grande organisation comme Orange, sur des applications Web et natives au coeur d'un business générant plusieurs millions de visites par mois.

    A travers un retour d'expérience sur les deux dernières années, nous vous présenterons les solutions qui nous ont permis de mettre de la cohérence et de la modularité dans un SI qui était composé jusque-là de beaucoup d'applications monolithiques, difficiles à faire évoluer.

    Le talk, sous forme de slides, aborde les concepts suivants : micro-services, micro-frontends, API, multi-canalité, Hypermedia, DevOps, mises en prod incrémentales.

    Frédéric et Fabien sont développeurs chez Orange et travaillent sur l'espace client grand public (Apps et Web), ils sont également membres de la communauté d'experts Orange, et animent régulièrement en interne des talks, webinars et autres retours d'expérience sur des sujets variés tels que l'architecture logicielle et le développement Android/iOS/Web.

    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 La modularité au (micro)-service de l'espace client Orange

    21h00 Buffet
    2019-11-21 Introduction à la programmation par contraintes Cyril Delmas Quel est le point commun entre un jeu de sudoku, la planification d'une conférence et les déplacements d'un commercial ?

    Quand on souhaite les traiter automatiquement, tous ces problèmes peuvent être résolus par un solveur de contraintes.
    Dans ce talk, je vais essayer de vous faire une introduction pratique à la programmation par contraintes, en présentant les concepts de base, puis en les mettant en application avec plusieurs exemples de problèmes connus de tout le monde (ou presque), pour finir par un cas plus complexe sur lequel j’ai travaillé.

    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 Introduction à la programmation par contraintes

    21h00 Buffet
    2019-10-17 La JVM et Docker, vers une symbiose parfaite ! David Delabassée La JVM et Docker, vers une symbiose parfaite !

    Les containeurs sont devenus en l'espace de quelques années un standard de-facto pour le déploiement de notre code que ce soit dans le Cloud ou 'On-premises', que ce soit pour des applications plus traditionnelles ou pour des fonctions Serverless.

    Les containeurs sont omniprésents, Docker en tête. De nouvelles plateformes, de nouveaux outils et frameworks ont rapidement émergés (ex. Knative, OpenFaas, Fn, JIB...) afin de simplifier l'utilisation de Docker. Parfois même, on utilise Docker sans nécessairement le savoir, Docker à l’insu de notre plein gré!


    Cette session discute différentes approches et techniques afin d’optimiser l'utilisation de Java et de la JVM dans des containers Docker.

    Nous allons aborder des points tels que Jlink, CDS et AppCDS, Graal SVM, Project Portola, etc.

    Nous allons enfin discuter de certaines améliorations présentes ou à venir qui visent à améliorer les interactions entre la JVM et Docker.


    Bien que le langage Java soit utilisé pour cette session, cette discussion n’est en rien spécifique à Java et est applicable à tous les langages tournant sur la JVM, Kotlin, Groovy, Scala, etc.

    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 La JVM et Docker, vers une symbiose parfaite !

    21h00 Buffet
    2019-09-05 Quarkus: Supersonique Subatomique Java Emmanuel Bernard Les microservices, la scalabilité instantanée et les plates-formes à haute densité comme Kubernetes nécessitent des applications à faible empreinte mémoire et démarrage rapide.

    Java n'était pas bien positionné car il favorise les temps de traitement aux dépens du CPU et de la RAM.


    Plus maintenant.


    Entre en scène Quarkus, une stack Java orientée microservices qui supporte vos composants favoris (Hibernate, Vert.x, Camel, RESTEasy ...) sur GraalVM et HotSpot avec une faible empreinte mémoire et un démarrage rapide.

    Tout ce qu'il faut pour tirer pleinement parti des containers.


    La gestion de la donnée est souvent l'aspect le plus complexe : découvrons comment Quarkus gère la persistance avec Hibernate ORM.

    Venez explorer :

    • le live reload,

    • notre vision de la persistance avec Hibernate Panache,

    • l'environnement de test,

    • la compilation native

    • GraalVM et bien plus.


    Quarkus se vit plus qu'il ne se verbalise,attendez-vous à une démo détaillée.
    2019-07-11 JUG Off 2019 Lilian Benoit Le mois de Juillet est là et cela sent bon les vacances.

    C'est l'occasion pour se retrouver autour d'une table pour discuter du monde JAVA, de la JVM ou d'autres sujets amenés par les participants.

    Cette année, nous changeons de style, nous partons au japon, pays du Sushi, Maki et autres.

    Cela sera aussi l'opportunité de retrouver l'équipe et de faire un point sur le BordeauxJUG donc n'hésitez pas à venir.

    Attention afin de pouvoir réserver, la limite des inscriptions est fixée au 10 juillet à 14h.

    A fin de réserver le nombre correcte, Merci de vous inscrire si vous êtes sûr de venir et de décommander si vous avez un empêchement.
    2019-06-06 Le DDD et les patterns tactiques Xavier Blanc Le DDD (Domain Driven Design) rapproche le code source des applications de leurs préoccupations métiers.

    Les patterns tactiques DDD ciblent les aspects techniques en structurant le code source et en résolvant nombre de problèmes de conception.


    Cette présentation mettra en lumière ces avantages en illustrant les patterns tactiques Value Object, Entity et Aggregate et en précisant leur lien avec l'architecture hexagonale

    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 Le DDD et les patterns tactiques

    21h00 Buffet
    2019-05-16 Java 11, 12.. c'est le moment de remplacer son JDK 8 Lilian Benoit Java 12 est sorti comme prévu en mars dernier.

    Java 11 est sorti en septembre dernier, estampillé LTS (Long Term Support)


    Que de changement depuis Java 8 ?

    • Nouvelle sortie de Java tous les 6 mois

    • Notion de LTS

    • Java 9 et ses fameux modules

    • Changement de licence d'Oracle



    Après la sortie de Java 9, 10, 11, et 12 c'est le moment de franchir le cap et de changer de JDK. Nous verrons les nouveautés, les points d'attention.

    En clair, tout ce que vous devez savoir pour commencer ou migrer votre projet en Java 11 en douceur.

    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 Java 11, 12, ... c'est le moment de rempacer son JDK 8

    21h00 Buffet
    2019-04-25 Construire une architecture élastique basée sur les événements dans AWS Guillaume Lannebere Les architectures à base d'événements, vous connaissez, mais comment mettre en place un event bus fiable, scalable et performant dans le cloud ?

    Comment ne pas se ruiner dans le processus ?

    Comment faire collaborer les équipes ?

    Venez découvrir notre périple de ces derniers mois pour répondre à ces questions !



    Au programme:

    •   de l'AWS (SNS/SQS, Kinesis),

    •   du Kotlin,

    •   du monitoring (Elastic stack),

    •   et bien plus !

    Documents associés



    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 Construire une architecture élastique basée sur les événements dans AWS

    21h00 Buffet
    2019-03-21 Pierre Besson JHipster est une plateforme de génération de code 100% open source et populaire dans le monde Java.

    JHipster est utilisé par de nombreuses entreprises pour accélérer le développement d'applications Cloud Native basées sur Spring Boot et Angular/React/Vue.js et les déployer dans le cloud.



    Partie 1 : Introduction à JHipster 5


    Nous ferons un tour rapide de la pléthore d'options, de technologies et d'outils qui sont intégrés par JHipster pour accélerer et faciliter vos développements.



    Partie 2 : Développer une architecture microservice avec JHipster


    JHipster inclue le support de deux technologies concurrentes qui promettent d'offrir scalabilité et résilience aux architectures microservice: Spring Cloud et Istio.

    Dans cette présentation, nous utiliserons JHipster pour générer des microservices et leur configuration de déploiement, ce qui nous permettra de délivrer rapidement un PoC d'architecture complet.


    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 Quickie : Async profiler et de ses flame charts avec Frédéric Camblor

    19h40 Etre productif avec JHipster avec Pierre Besson et Christophe Bornet

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

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

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

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

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


    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 Back to Basics : Ne perdez plus votre Temps avec les Dates avec Frédéric Camblor

    21h00 Buffet
    2019-01-17 Micronaut Mick Grzesitchak

    Micronaut

    Vous développez des API qui tournent sur la JVM ? Vous êtes adeptes du principe de "Convention plutôt que configuration" et préférez vous concentrer sur les problèmes à forte valeur ajoutée plutôt que réinventer la roue au quotidien ? Si c'est le cas, vous avez sûrement choisi d'adopter Spring Boot ou Grails pour leurs auto-configurations à base d'annotations, leurs déploiements facilités et leurs nombreux starters.
    Cependant, vous avez peut-être remarqué que ces frameworks peuvent avoir des limites : Les conventions, c'est bien... jusqu'au moment où c'est vieux ! Si Spring Boot s'adapte régulièrement aux nouvelles pratiques standards, on finit quand même souvent par devoir ajouter des briques ou de la configuration dans tous les sens pour s'adapter aux comportements, technologies ou manières de déployer de 2019.
    Si Spring Cloud vous permet par exemple de faire des microservices confortablement, vous n'échapperez pas à l'énorme cache utilisé par Spring Boot pour stocker des données liées à son mécanisme de réflexion, avec temps de démarrage et utilisation de mémoire qui s'en suivent.
    Vous pourrez donc dire adieu à la scalabilité agressive qu'offrent ce genre d'architectures et le serverless restera pour vous un doux rêve... ou pas !
    En Octobre dernier, l'équipe de Grails a livré la première version stable de Micronaut : un microframework pour Java, Kotlin et Groovy, inspiré de Spring Boot et Grails et destiné à répondre à ces problèmes de manière efficace.
    Mick et Yohan vous présenteront les principales fonctionnalités de Micronaut (compilation AoT, discovery, retry, tracing, reactive programming etc.) autour d'une démo, suivie d'un moment d'échange sur des fonctionnalités plus avancées et des problématiques de tous les jours.

    Flutter

    Flutter vous en avez entendu parler ? Si ce n'est pas encore le cas, incessamment sous peu, vous ne pourrez pas imaginer utiliser d'autres technologies pour développer vos applications Android et IOS.
    Afin de découvrir ce nouveau projet de Google sortie en 1.0, il y a peu, je vous propose un petit livecoding entre-amis afin d'appréhender cette approche de développement orienté composant.
    Ça va darter !!


    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 Micronaut avec Mick Grzesitchak et Yohan Siguret

    20h20 Flutter : livecoding avec Laurent Forêt

    21h00 Buffet
    2018-12-13 Web components en 2018, on en est où ? Horacio Gonzalez Depuis quelques années on a entendu parler des web components, ce beau discours d'un développement web basé enfin sur une vraie architecture en composants, de la réutilisation, de la modularisation, de l'encapsulation...

    Mais force est de constater que aujourd'hui, en fin 2018, cette vision a du mal à se concrétiser, les frameworks comme React, Angular ou Vue ont encore la part belle des feux des projecteurs et le discours des web components sont presque inaudibles.

    Et pourtant plein de choses se sont passées cette dernière année, et les web components sont aujourd'hui sur plein de sites et des applications que nous utilisons tous les jours, sans qu'on les remarque. La révolution est bien en marche, mais elle est plutôt silencieuse...

    Dans ce talk on va commencer par faire un tour de table sur les différentes bibliothèques de web components disponibles aujourd'hui, leurs caractéristiques, leur philosophie et leurs use cases.

    Ensuite on va se centrer sur le futur de mon projet favorite : Polymer. La v3 est sortie il y a quelques mois, et en plus de mettre enfin l'outillage en phase avec les standards du marché (npm...) elle nous annonce un beau futur avec des composants plus légers, plus performants, plus proches de la plateforme et avec un rendering basé sur vrai concurrent de JSX mais qui s'intègre 100% sur les standards du web : lit-html. On parlera donc de LitElement, on fera des demos, on verra du code...

    Pour finir on va voir comment il est simple aujourd'hui d'intégrer les web components sur n'importe quel project web, du legacy avec jQuery à la dernière app avec React, du projet en Angular à l'application en Vue JS. Des composants interopérables plug and play pour vos applications qui montrent encore une fois l'intérêt de cette révolution des web components.


    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 Web components en 2018, on en est où ? avec Horacio Gonzalez

    21h00 Buffet
    2018-11-15 Au delà des brokers: un tour de l'environnement Kafka Florent Ramière Apache Kafka ne se résume pas aux brokers, il y a tout un écosystème open-source qui gravite autour. Je vous propose ainsi de découvrir les principaux composants comme Kafka Streams, KSQL, Kafka Connect, Rest proxy, Schema Registry, MirrorMaker, etc.

    Venez avec vos questions, plus la session sera interactive, meilleure elle sera !


    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h20 Au delà des brokers : un tour de l'environnement Kafka avec Florent Ramière

    21h00 Buffet
    2018-10-11 Ceinture noire Karate en tests d'API REST Benoit Prioux Au programme de la soirée, nous avons une soirée centrée sur les tests.

    Property Based Testing : La vérité vraie !

    Vous faites des tests unitaires, vous maîtrisez le TDD, mais connaissez-vous le Property Based Testing ?

    A travers un live coding en java avec la librairie jqwik, je vous monterai les bases de cette technique et en quoi elle est complémentaire aux techniques de test classiques.



    Ceinture noire Karate en tests d'API REST

    Vous aviez toujours rêvé d'une syntaxe facile pour tester vos APIs REST ?

    `Karate` est fait pour vous ! Son format DSL plain text inspiré de la syntaxe Cucumber (ie. Gherkin) permet même aux personnes aux notions basiques en développement de venir couvrir vos APIs ou Web services (micros, nanos ou pas!)

    Il n'y a plus Karate, ehm, pardon... qu'à réussir ses tests d'intégration !

    Venez apprendre comment avec `Java` et `maven` comme simples prérequis d'infrastructure, vous pouvez mettre en place et industrialiser ces tests. On l'utilise chez nous, et on ne s'en passe plus.


    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h15 Property Based Testing : La vérité vraie ! avec Benoit PRIOUX

    19h30 Ceinture noire Karate en tests d'API REST avec Nicolas COMET et Benoit PRIOUX

    21h00 Buffet
    2018-09-20 Soirée Apache Maven Hervé Boutemy Au programme de la soirée, nous avons deux présentations vis à vis du projet Apache Maven.

    Maven et Java 9

    Maintenant que Java 9 est sorti, on va pouvoir ajouter des descripteurs de modules dans tous nos projets, n'est-ce pas?

    Pas si sûr...

    Les modules Java 9 sont très puissants, mais sans maîtrise, ils risquent de tout casser non seulement au niveau de vos programmes Java mais aussi au niveau de l'écosystème Maven.

    Avez vous déjà réfléchi au nom de module de votre jar ? Un conseil d'ami : ne vous contentez pas du nom par défaut.

    Cette session vous donnera de nombreux conseils pratiques qui ne sont pas directement dans la spécification, mais qui doivent absolument être gardés en tête au fil de l'adoption générale du système de modules Java.

    Maven 3 & 5

    Ca fait bien longtemps que Maven 3 est sorti. Depuis, il n'y a que des releases mineures : plus rien de bouge ? C'est mort ? Même pour Java 9, il n'y a pas eu besoin de release Maven !

    Je vous rassure, Maven continue d'évoluer : simplement, il le fait sans bruit inutile et en vous garantissant une évolution à votre rythme. Pourtant, une évolution majeure va être nécessaire, qui méritera une nouvelle version : Maven 5.

    Pourquoi pas 4 ? Quelle est cette évolution ?

    Et comment l'équipe Maven va t'elle faire pour conserver la stabilité à laquelle on était habitués, malgré ce grand changement ?.



    Support de la présentation

    Support unique pour les deux présentation : Maven 3&5 et Java 9


    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h15 Maven et Java 9 avec Hervé Boutemy

    20h00 Maven 3 & 5 avec Hervé Boutemy

    21h00 Buffet
    2018-06-20 Mettre en place simplement la sécurité de ces applications (Front et Back) avec Keycloak Lilian Benoit Au programme de la soirée, nous allons voir comment sécuriser simplement une application classique, front et back, sans être un expert en sécurité mais de manière fiable.

    Je commencerai par les raisons de déléguer sa gestion de sécurité à un produit comme Keycloak. C'est un projet open-source mature, facile à installer, flexible au niveau de l'utilisation. Il reste indépendant du langage grâce à l'usage des protocoles standards comme Open ID Connect et SAML

    Ensuite, nous attaquons à la mise en pratique. En effet, j'ai dit simplement donc nous allons voir comment installer Keycloak et comment sécuriser ma première applicaton.

    Nous ferons un tour des fonctionnalités de l'outil et de ce qu'il propose. Nous poursuivrons par voir toujours avec des démonstrations comment sécuriser d'autres types applications comme un services web, une application Angular (Il n'y pas que Java dans la vie ;-)

    Quicky : jgitver

    Vous utilisez git et vous :

  • voulez un historique de projet super propre ?
  • en avez marre de `maven:release` et de la pollution de votre dépôt ?
  • ne voulez plus de collision de version en branche ?
  • voulez un nommage de version clair, automatique mais configurable
  • ...
  • Matthieu Brouillard, va nous faire découvrir jgitver, ses possibilités et ses integrations maven & gradle.


    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h15 jgitver avec Matthieu Brouillard

    19h30 Mettre en place simplement la sécurité de ces applications avec Keycloak avec Lilian Benoit

    21h00 Buffet
    2018-05-17 Soirée BlockChain Team Crash'Teq Présenté par la team Crash'Teq

    La Crash'Teq team arrive du Luxembourg pour vous parler de Blockchain !

    Au programme de cette soirée, une introduction généraliste sur les concepts : quels sont les principes de ces fameuses technologies Blockchain, du point de vue du développeur ? Comment cela fonctionne, et pourquoi est-ce différent des architectures traditionelles ? Comment code-t'on "pour la Blockchain" ? Quelles sont les différences entre Ethereum et Bitcoin ? Nous verrons ensemble comment écrire un premier Smart Contract, et comment le déployer sur le réseau en live !

    Après cette introduction, nous partagerons avec vous nos retours d'expérience du terrain. Sur différents projets, nous avons déployé en production des applications basées sur la Blockchain. Nous vous proposerons donc un petit aperçu des problématiques rencontrées sur ces différents projets : peut-on tout stocker dans la blockchain ? Comment intégrer ces architectures décentralisées au sein du SI ? Nous présenterons notamment une solution que nous avons mise en place pour utiliser la blockchain comme solution d'échanges entre des microservices déployés chez les différents acteurs d'une même plateforme.

    Au travers d'un autre cas d'utilisation, nous présenterons le standard Chainpoint et la plateforme Tierion, et comment nous l'avons utilisé pour faire de la notarisation d'information.

    Enfin, un retour d'expérience sur les problématiques de gestion d'identité sur les blockchains publiques et sur les points d'attention pour la sécurité des applications : Comment peut-on identifier un utilisateur ? Quels sont les standards émergents ? Nous vous présenterons une solution que nous sommes en train d'implémenter pour sécuriser l'accès à un portefeuille sur la blockchain basée sur la norme FIDO.

    En résumé, nous vous proposons un aperçu assez complet sur ces technologies : les grands principes et concepts, les problématiques courantes, et quelques applications que nous avons déployées en production. Tout ça dans la joie et la bonne humeur :-)
    2018-04-25 Applications réactives avec Eclipse Vert.x Thomas Segismont Vert.x est un toolkit pour écrire des applications réactives et polyglottes pour la JVM. Il fournit aujourd'hui un écosystème complet et modulaire qui intègre le paradigme réactif de bout en bout, performant et facile à utiliser pour tous types d'applications. La richesse de l'écosystème Vert.x permet de développer aussi bien une application web de type temps réel, de faire de l'IoT, d'implémenter des adaptateurs de protocoles, d'écrire des applications distribuées et bien entendu de concevoir et intégrer des micro-services.

    Cette session débutera avec une présentation générale à Vert.x et au Réactif puis enchaînera sur une introduction à la programmation réactive avec RxJava 2 et Vert.x


    Programme


    18h50 Accueil des participants

    19h00 News du JUG et news du monde Java

    19h15 Applications réactives avec Eclipse Vert.x avec Thomas Segismont

    21h00 Buffet
    2018-03-29 Boîte à outils mémoire de la JVM ... Jean Bisutti

    Vous vous êtes peut-être retrouvés dans cette situation : votre JVM se met à faire des GC à toute allure, Out Of Memory Error ! Que s'est-il passé ? Comment s'y prendre pour mener l'enquête ?


    Nous commencerons par exposer la problématique. Nous allons voir comment la JVM utilise la mémoire et présenter différentes possibilités de dysfonctionnement. Ensuite, nous allons commencer à utiliser une boîte à outils mémoire pour diagnostiquer ce qui se passe dans notre JVM malade. Le fil conducteur sera principalement l'investigation de soucis de mémoire d'une application.


    Différents outils seront présentés : lignes de commande, GC Viewer, Java Mission Control, Memory Analyzer Tool, JOverflow et quelques autres.

    2018-02-15 Mettez à profit toutes les fonctionnalités de Kubernetes pour vos microservices Mickaël Leneveut Cette conférence présentera un retour d'expérience sur le développement et le déploiement de microservices dans Kubernetes (démo avec GCP ou Azure).

    Après un rapide rappel sur les microservices et les possibilités de Spring Boot + Spring Cloud, nous verrons les bases de Kubernetes et comment tirer partie de ses fonctionnalités natives (Labels, Services, Ingress, ConfigMap, Secret, ...)

    L'intérêt est de pouvoir déployer des microservices de technologies hétérogènes, non limitées à Java / Spring.


    Quelques slides et beaucoup de démos au programme !
    2018-01-18 Soirée Gilded-Rose Fabien Lamarque

    L'auberge de Gilded-Rose est situé au cœur de Hurlevent, et propose aux voyageurs de tout Azeroth des armes rares, et des mets délicats. Leur système informatique de gestion des stocks et de prix est OK, il a été codé il y a 10 ans par un gnome stagiaire, qui est depuis passé sous un troll. Le code fonctionne. Par contre le code est très très moche, y amener le moindre changement est compliqué, les tentatives d'évolutions ont entrainé des régressions critiques pour l'économie de l'auberge et se sont toutes faites dans la douleur.

    Votre quête, si vous l'acceptez est

    • d'identifier les différents code smells
    • de refactorer le code pour le rendre modulable, testable, en restant iso-fonctionnel.
    • de rajouter des nouveaux objets à l'inventaire
    ´

    Les technos : Java 8 (beaucoup) AssertJ (un peu), et IntelliJ IDEA.

    Le déroulé du live coding :

    • Présentation du contexte métier
    • Parcours du code
    • Écriture du test end-to-end de l'application
    ... Et c'est parti