Rencontres passées

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

Date Titre Speaker Résumé Description
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