1/*jshint unused: false */ 2// Structure: 3// { 4// id: "", 5// title: "", 6// date: new Date(yyyy, mm, dd), //month begin at 0 7// time: "", 8// register: "", 9// place: "", 10// subjects: [ 11// { 12// title: "", 13// time: "", 14// length: "", 15// type: "", 16// intro: "", 17// abstract: "", 18// speakers: [""], 19// docs: [{ name: "", url: "", type: "" }, 20// ] 21// }, 22// ], 23// docs: [{ name: "", url: "", type: "" } 24// }, 25var njEvents = [ 26 { 27 id: '2026_10_13', 28 title: `TechLeads : questionnez ! // De l'autocomplete à l'Autopilot`, 29 date: new Date(2026, 9, 13), //month begin at 0 30 time: '19h00', 31 register: "https://www.meetup.com/nantes-java-user-group/events/316779777/", 32 place: "qlik", 33 subjects: [ 34 { 35 title: `TechLeads : arrêtez de répondre. Commencez à questionner !`, 36 time: '19h00', 37 length: '20 min', 38 type: 'quickie', 39 abstract: ` 40 <p>On attend du Techlead quâil sache. On vient le voir pour chaque décision : relecture de code, décision d'architecture, arbitrage produit, debug complexe, médiation d'équipe⦠Et plus il est compétent, plus il est sollicité !</p> 41 <p>Le paradoxe ? Sa valeur crée sa surcharge. Et si le rôle du TechLead nâétait pas dâavoir les meilleures réponses⦠mais de poser les meilleures questions ?</p> 42 <p>Le questionnement puissant est une compétence centrale en coaching mais quasiment absente de la culture technique.</p> 43 <p>Alors permettez-moi de vous offrir cet angle nouveau qui pourrait vous permettre de : 44 <ul> 45 <li>réduire la charge cognitive du TechLead,</li> 46 <li>faire émerger des solutions plus solides,</li> 47 <li>responsabiliser sans imposer,</li> 48 <li>et d'éviter les dépendances invisibles</li> 49 </ul></p> 50 <p>Un sujet pour celles et ceux qui veulent faire grandir leur impact sans sâépuiser.</p> 51 `, 52 speakers: ['fanny_klauk'] 53 }, 54 { 55 title: `De l'autocomplete à l'Autopilot : Comment l'IA a transformé ma vie de développeur`, 56 time: '19h30', 57 length: '45 min', 58 type: 'talk', 59 abstract: ` 60 <p>En 2021, Copilot m'aidait à terminer des lignes de code.<br/> 61 En 2024, je discutais avec lui.<br/> 62 En 2025, le <b>Context Engineering</b> a marqué un tournant décisif.</p> 63 <p>Aujourd'hui, en 2026, je ne me contente plus de parler à l'IA â je lui <b>délègue</b>.</p> 64 <p>GitHub Copilot, Copilot CLI, les Skills, les workflows agentiques, les nouveaux modèles⦠Je suis passé de la simple assistance à la délégation de pans entiers de mon travail, de la création de projets à l'ouverture et la revue de pull requests, le tout en langage naturel.</p> 65 <p>Et je ne suis pas le seul : chez GitHub, nos propres équipes produits utilisent ces mêmes capacités pour livrer plus rapidement et repenser la manière dont les logiciels sont conçus.</p> 66 <p>Ce changement dépasse le cadre des seuls développeurs. Product Managers, SREs, ingénieurs DevOps â ils deviennent tous des bâtisseurs. Il ne s'agit plus seulement d'écrire du code, mais d'exprimer une intention.</p> 67 <p>Dans cette présentation, je vous montrerai ce qui a fondamentalement changé entre 2025 et 2026, et comment cette évolution m'a transformé : d'un développeur doté d'un excellent assistant à un véritable "<b>builder</b>" capable de piloter de nombreux projets et taches en parallèle.</p> 68 `, 69 speakers: ['tugdual_grall'] 70 }, 71 ] 72 }, 73 { 74 id: '2026_09_29', 75 title: `Quand Javelit rencontre ADK // Ne dessinez plus vos architectures : codez-les !`, 76 date: new Date(2026, 8, 29), //month begin at 0 77 time: '19h00', 78 register: "https://www.meetup.com/nantes-java-user-group/events/316512366/", 79 place: "onepoint", 80 subjects: [ 81 { 82 title: `Quand Javelit rencontre ADK â`, 83 time: '19h00', 84 length: '30 min', 85 type: 'quickie', 86 abstract: `
87 <p>Créer un agent IA est devenu accessible grâce à des frameworks comme <b>ADK</b> (Agent Development Kit) ou cagent (Docker). Le véritable défi réside souvent dans son intégration dans une application "user friendly", surtout si le développement frontend n'est pas votre âtasse de théâ.</p> 88 <p>Câest là que <b>Javelit</b> intervient. Cette librairie, basée sur Streamlit (https://streamlit.io/), permet de construire des interfaces utilisateurs en Java â.</p> 89 <p>Dans ce âTools in actionsâ, je vous montrerai comment ce binôme ADK / Javelit permet de créer des applications agentiques fonctionnelles et graphiquement très sympa (enfin vu de la part dâun Javaiste ð).</p> 90 `, 91 speakers: ['jean_philippe_baconnais'] 92 }, 93 { 94 title: `Ne dessinez plus vos architectures : codez-les !`, 95 time: '19h30', 96 length: '55 min', 97 type: 'talk', 98 abstract: ` 99 <p>Nous connaissons tous ce scénario : une architecture née sur un tableau blanc, figée dans un schéma statique puis lentement oubliée. Le code continue d'évoluer, mais la carte ne correspond plus au territoire. Ce fossé crée une dette de documentation que nous finissons par accepter comme une fatalité.</p> 100 <p></p> 101 <p>Pourtant, le Diagram-as-Code change la donne. En traitant les diagrammes comme du code source, nous gagnons la puissance du versionning (Git), l'analyse des changements (Diffs) et l'automatisation (CI/CD). Mieux encore, l'augmentation des outil de code par l'IA nous permet désormais de générer et maintenir ces modèles très aisément.</p> 102 <p></p> 103 <p>Dans cette session de Live Coding, nous dépasserons la théorie. Nous partirons d'un besoin métier brut (un ADR en Markdown) pour construire, itération après itération, une cartographie vivante avec LikeC4.</p> 104 <p>Nous verrons comment réconcilier la vision (le Pourquoi) et l'implémentation (le Comment) dans un modèle unique, navigable et interactif, intégré au cycle de vie du logiciel.</p> 105 <p></p> 106 <p>Fini les gribouillis obsolètes : compilons la documentation.</p> 107 `, 108 speakers: ['alexis_scolan'] 109 }, 110 ] 111 }, 112 { 113 id: '2026_06_11', 114 title: `L'IA, copilote au quotidien // Spring Boot 4`, 115 date: new Date(2026, 5, 11), //month begin at 0 116 time: '19h00', 117 register: "https://www.meetup.com/nantes-java-user-group/events/314852645/", 118 place: "eklo", 119 subjects: [ 120 { 121 title: 'Verre d\'accueil ð¸', 122 time: '19h00', 123 length: '30 min', 124 type: 'hello', 125 abstract: "<p>Pour cette dernière de la saison, nous vous proposons de commencer cette soirée de façon conviviale avec un verre de bienvenue.</p>", 126 }, 127 { 128 title: `L'IA, copilote au quotidien`, 129 time: '19h30', 130 length: '30 min', 131 type: 'quickie', 132 abstract: ` 133 <p>Retour d'expérience sur l'utilisation de l'IA au quotidien, dans le cadre des projets professionnels et personnels</p> 134 `, 135 speakers: ['axel_toubiou'] 136 }, 137 { 138 title: `Spring Boot : Chapitre 4`, 139 time: '20h00', 140 length: '55 min', 141 type: 'talk', 142 abstract: ` 143 <p>Spring Boot 4 est disponible. Même si la baseline reste toujours à Java 17, câest lâoccasion idéale de profiter des nouveautés du langage et du framework. Stéphane commencera par mettre à jour une application existante vers Spring Boot 4.</p> 144 <p>En chemin, nous verrons comment éviter à lâavenir les NullPointerExceptions en production grâce aux null checks ajoutés dans les projets Spring avec JSpecify.<br/> 145 Nous en profiterons aussi pour revoir lâorganisation des dépendances : Spring Boot propose désormais des modules plus fins qui offrent davantage de souplesse. <br/> 146 Lâintégration de Jackson 3.0 simplifie la configuration et apporte des réglages plus modernes. <br/> 147 Enfin, nous découvrirons comment utiliser un RestClient dans de
147s scénarios asynchrones, sans avoir recours aux types réactifs.</p> 148 `, 149 speakers: ['stephane_nicoll'] 150 }, 151 { 152 title: 'Planche apéro et Cocktail ð§ ð·', 153 time: '21h', 154 length: '3h', 155 type: 'cocktail', 156 abstract: "<p>Pour finir la soirée en beauté, venez échanger avec nous autour d'un verre et de savoureuses planches apéro ð</p>", 157 } 158 ] 159 }, 160 { 161 id: '2026_05_5', 162 title: `La transactionnalité expliquée // Docker - Compose & Dragon`, 163 date: new Date(2026, 4, 5), //month begin at 0 164 time: '19h00', 165 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/314379188/", 166 place: "qlik", 167 subjects: [ 168 { 169 title: `La transactionnalité expliquée`, 170 time: '19h00', 171 length: '30 min', 172 type: 'quickie', 173 abstract: ` 174 <p>Les transactions sont un mécanisme structurant dans de nombreuses applications. Elles permettent en effet de garantir l'intégrité des données en permettant de traiter plusieurs opérations de manière atomique.</p> 175 <p>Mais comment les transactions fonctionnent-elles sous le capot ?</p> 176 <p>En nous appuyant sur l'exemple de Postgres, nous explorerons comment les mécanismes du WAL (Write-Ahead Logging) et MVCC (multi-version concurrency control) permettent de garantir cette atomicité, pour le cas unitaire, mais également lors de crash de la base.</p> 177 `, 178 speakers: ['benjamin_cavy'] 179 }, 180 { 181 title: `Compose & Dragons`, 182 time: '19h30', 183 length: '55 min', 184 type: 'talk', 185 abstract: ` 186 <p>Cette session présente la création dâun univers de RPG avec des agents IA autonomes, chacun dans son propre conteneur Docker.</p> 187 <p>En utilisant les outils Docker et le Model Context Protocol, chaque personnage â PNJ, monstre ou maître du jeu â interagit via une mémoire partagée et des protocoles dâagents. </p> 188 <p>Les participants découvriront des architectures IA multi-conteneurs évolutives, lâorchestration dâagents et la communication entre agents.</p></p> 189 `, 190 speakers: ['philippe_charriere', 'guillaume_lours'] 191 } 192 193 ] 194 }, 195 { 196 id: '2026_04_29', 197 title: `Soirée Git & Développement décentralisé`, 198 date: new Date(2026, 3, 29), //month begin at 0 199 time: '19h00', 200 register: "https://www.meetup.com/nantes-java-user-group/events/314176315/", 201 place: "onepoint", 202 subjects: [ 203 { 204 title: `Gitflow c'est bien, Gitbutler c'est mieux !`, 205 time: '19h00', 206 length: '30 min', 207 type: 'quickie', 208 abstract: ` 209 <p>Ah, GitFlow. Ce bon vieux workflow, pilier de nos stratégies de développement, mais aussi source de migraines collectives. Et si on vous disait quâil y a du nouveau dans la façon de faire ?</p> 210 <p>GitButler débarque, et il nâest pas là pour plier le linge mais pour révolutionner votre gestion de versions !</p> 211 <p>Dans cette présentation à deux voix, un développeur et un manager sâassocient pour vous raconter, avec humour et pragmatisme, pourquoi GitFlow a besoin dâun coup de jeune et comment GitButler change la donne. Moins de frictions, plus dâefficacité, et un workflow qui sâadapte enfin à vos vrais besoins.</p> 212 <p>Au programme : un peu de théorie, et du live coding. On vous promet un moment instructif, qui vous donnera envie de repenser vos stratégies et dâenfiler, vous aussi, le costume de GitButler !</p> 213 <p>PS : Si j'ai convaincu mon manager, pourquoi pas vous ?</p> 214 `, 215 speakers: ['yann_thomas_le_moigne', 'lilian_forget'] 216 }, 217 { 218 title: `Décentraliser le développement logiciel : Pourquoi ? Comment ?`, 219 time: '19h30', 220 length: '50 min', 221 type: 'talk', 222 abstract: `
223 <p>Les technologies décentralisées ne manquent pas. Internet par exemple, conçu pendant la guerre froide et qui interconnecte au moyen de protocoles ouverts de multiples acteurs de manière complètement décentralisée dans un souci de résilience en cas de conflit de haute intensité ; ou Git, certainement l'outil plus utilisé dans le monde du développement logiciel pour la gestion de versions, a été développé pour gérer le développement du noyau Linux avec des centaines de contributeurs.</p> 224 <p>Et pourtant les plate-formes propriétaires et centralisées sont devenues ultra-dominantes, que ce soit dans le monde du code source ouvert ou celui de l'entreprise, ce qui s'explique aisément pour des raisons de commodité (il est bien plus simple d'utiliser une plate-forme centralisée que de devoir configurer et gérer des outils décentralisés) et de coût (un outil centralisé évite des coûts d'infrastructure et de gestion). Mais la commodité a un revers, c'est la dépendance envers un prestataire qui a sa propre logique et se retrouve de facto contrôler des données et des processus potentiellement critiques.</p> 225 <p>Cette session est un retour d'expérience sur quelques outils et processus mis en oeuvre dans notre équipe pour développer les projets dont elle est responsable de manière complètement décentralisée : 226 <ul> 227 <li>comment nous utilisons Radicle (https://radicle.xyz), une "forge" basée sur Git fonctionnant en pair-à -pair et complètement décentralisée, pour remplacer (en partie) GitHub ;</li> 228 <li>
228comment nous développons des outils sur notre infrastructure de blockchain (Cardano) pour tracer les dépendances entre projets, les montées de version, et l'accès à des infrastructures mutualismes ;</li> 229 <li>l'impact d'un mode de fonctionnement fortement décentralisé sur le fonctionnement de l'équipe et ses pratiques de développements, telles que le pair-programming, la revue de code, l'intégration continue ;</li> 230 <li>les possibilités de financement participatif décentralisées offertes par des outils comme https://drips.network.</li> 231 </ul> 232 </p> 233 <p>Il s'agira d'une présentation avec des morceaux de live coding. L'objectif de cette session est de partager mon expérience et ma prise de conscience de l'importance d'adopter des processus de développements plus résilient, autonomes, et potentiellement frugaux dans l'espoir que les participants aient envie d'expérimenter ces outils et pratiques dans leur propre environnement.</p> 234 `, 235 speakers: ['arnaud_bailly'] 236 } 237 ] 238 }, 239 { 240 id: '2026_03_17', 241 title: `La transactionalité expliquée // JooQ une alternative à JPA`, 242 date: new Date(2026, 2, 17), //month begin at 0 243 time: '19h00', 244 register: "https://www.meetup.com/fr-fr/nantes-java-user-group/events/313630199/", 245 place: "kleegroup", 246 subjects: [ 247 { 248 title: `La transactionalité expliquée`, 249 time: '19h00', 250 length: '30 min', 251 type: 'quickie', 252 abstract: ` 253 <p>Les transactions sont un mécanisme structurant dans de nombreuses applications. Elles permettent en effet de garantir l'intégrité des données en permettant de traiter plusieurs opérations de manière atomique.</p> 254 <p>Mais comment les transactions fonctionnent-elles sous le capot ?</p> 255 <p>En nous appuyant sur l'exemple de Postgres, nous explorerons comment les mécanismes du WAL (Write-Ahead Logging) et MVCC (multi-version concurrency control) permettent de garantir cette atomicité, pour le cas unitaire, mais également lors de crash de la base.</p> 256 `, 257 speakers: ['benjamin_cavy'] 258 }, 259 { 260 title: `JooQ une alternative à JPA`, 261 time: '19h30', 262 length: '55 min', 263 type: 'talk', 264 abstract: ` 265 <p>Si vous pensez que l'on va parler d'un nouveau meuble d'une marque scandinave, vous vous êtes trompé d'endroit.</p> 266 <p>Nous allons voir comment écrire du SQL type-safe en Java sans y laisser notre santé mentale. L'objectif ? Des requêtes aussi robustes qu'un serveur en prod, et aussi majestueuses qu'un petit poney à paillettes galopant dans une prairie de Clean Code. Fini le jeu des devinettes à base de concaténation de chaînes avec votre base de données !</p> 267 `, 268 speakers: ['thibault_duperron'] 269 } 270 271 ] 272 }, 273 { 274 id: '2026_02_10', 275 title: `Un mot de passe ? Non merci // Devenez un expert du debug en JS`, 276 date: new Date(2026, 1, 10), //month begin at 0 277 time: '19h00', 278 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/313064896/", 279 place: "younup", 280 subjects: [ 281 { 282 title: `Un mot de passe ? Non merci !`, 283 time: '19h00', 284 length: '30 min', 285 type: 'quickie', 286 abstract: ` 287 <p>Les mots de passe, on en a tous marre. Entre les règles tordues, les resets toutes les deux semaines, et les tentatives de phishing, câest plus de la sécu, câest du sport.</p> 288 <p>Heureusement, les passkeys arrivent avec une promesse simple : plus de galère, plus de mot de passe. Basées sur WebAuthn (soutenues par Google, Apple, et Microsoft), elles pourraient bien changer notre manière dâauthentifier les utilisateurs.</p> 289 <p>Dans ce quickie, on voit ensemble :</p> 290 <ul> 291 <li>Ce quâest une passkey, concrètement</li> 292 <li>Pourquoi câest plus sécurisé et plus simple</li> 293 <li>Un retour d'expérience sur l'intégration dans une application réelle</li> 294 <li>Une rapide démo du fonctionnement des passkeys</li> 295 </ul> 296 `, 297 speakers: ['quentin_aubert'] 298 }, 299 { 300 title: `Devenez un expert du debug en JS`, 301 time: '19h30', 302 length: '55 min', 303 type: 'talk', 304 abstract: `
305 <p>Vous parsemez votre code de console.log en espérant un miracle ?</p> 306 <p>Et si, au lieu de subir JavaScript, vous appreniez enfin à l'écouter ?</p> 307 <p>JavaScript nâest pas un moteur silencieux : à travers la console, la pile dâappels et les outils de profilage, il nous envoie constamment des signaux. Le tout est de savoir les décoder.</p> 308 <p>Dans cette session, nous allons briser le quatrième mur : le code de cette présentation devient notre propre laboratoire. Nous utiliserons les Chrome DevTools comme un véritable outil de précision.</p> 309 <p>Observer l'invisible : Maîtriser les différents types de breakpoints et les Live Expressions pour suivre l'état de vos données sans polluer votre code.</p> 310 <p>Oubliez les slides statiques. Ici, on travaille "à cÅur ouvert" et on découvre ensemble comment devenir un expert du debug.</p> 311 <p>Préparez-vous à tendre l'oreille !</p> 312 `, 313 speakers: ['romain_guinand'] 314 } 315 316 ] 317 }, 318 { 319 id: '2026_01_29', 320 title: `Sécuriser la CI // Pseudonymisation à l'échelle`, 321 date: new Date(2026, 0, 29), //month begin at 0 322 time: '19h00', 323 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/312865339/", 324 place: "qlik", 325 subjects: [ 326 { 327 title: `Sécuriser vos Pipelines GitHub Actions : Meilleures Pratiques et Stratégies`, 328 time: '19h00', 329 length: '30 min', 330 type: 'talk', 331 abstract: ` 332 <p>Dans un monde où les attaques de la chaîne d'approvisionnement logicielle sont de plus en plus fréquentes, sécuriser vos pipelines CI/CD est devenu une priorité absolue. Cette présentation se concentrera sur les meilleures pratiques et les stratégies avancées pour sécuriser vos pipelines GitHub Actions. Nous explorerons les vulnérabilités courantes, les menaces potentielles et les solutions concrètes pour les atténuer.</p> 333 `, 334 speakers: ['adrien_pessu'] 335 }, 336 { 337 title: `Pseudonymisation à l'échelle`, 338 time: '19h30', 339 length: '55 min', 340 type: 'talk', 341 abstract: 342 ` 343 <p>Face à une pression réglementaire croissante sur la protection des données personnelles (RGPD, IA Act, DORA), l'équipe LINO partage son retour dâexpérience sur la mise en Åuvre dâun projet de pseudonymisation à lâéchelle réalisé pour la Branche Grand Public et Numérique (BGPN) de La Poste, et couvrant 70 applications métiers.</p> 344 <p>Ce témoignage met en lumière les choix structurants, depuis la sélection de lâoutil LINO jusqu'à la mise en Åuvre progressive du projet. Il revient également sur les difficultés rencontrées : trouver un équilibre entre protection et utilité des données, pallier la perte de la connaissance applicative et garantir la cohérence inter-applicative. Enfin, il présente les leviers activés pour répondre efficacement à ces enjeux.</p> 345 <p>Cette présentation est animée le créateur de la solution LINO et le porteur de l'offre de service associée, qui ont participé à la conception et la mise en Åuvre de ce projet qui a duré deux ans et qui a notamment contribué à lâobtention du label « Numérique Responsable » pour la BGPN.</p> 346 `, 347 speakers: ['yann_le_saint', 'adrien_aury'] 348 } 349 ] 350 }, 351 { 352 id: '2025_12_11', 353 title: `Soirée Lambda, Spring & Cursor AI`, 354 date: new Date(2025, 11, 11), //month begin at 0 355 time: '19h00', 356 register: "https://www.meetup.com/fr-fr/aws-nantes/events/311871294/", 357 place: "sqli", 358 subjects: [ 359 { 360 title: `De l'idée à la réalité avec AWS Lambda et Spring : un REX projet Spring Boot natif`, 361 time: '19h00', 362 length: '45 min', 363 type: 'talk', 364 abstract: `
365 <p>Dernièrement, nous avons eu l'opportunité de réaliser un projet en Spring Boot native avec GraalVM dès sa mise en release. Le but étant de faire tourner le backend de notre projet en FaaS sur des lambdas AWS. Ce projet a été un succès client mais techniquement c'est une autre histoire.</p> 366 <p>Nous vous proposons une rétrospective technique de ce projet avec les principales problématiques que nous avons rencontrées, comme la reflection et les ressources de build, et la façon dont nous y avons répondu. Car cela peut aussi vous arriver si cette techno vous intéresse.</p> 367 `, 368 speakers: ['valentin_dubuisson'] 369 }, 370 { 371 title: `Cursor ou comment mixer Code & IA pour être plus productif !`, 372 time: '19h45', 373 length: '45 min', 374 type: 'talk', 375 abstract: 376 ` 377 <p>Cursor AI s'est imposé comme compagnon de code avec un workflow de développement simple et intégré.</p> 378 <p>Au delà de nous aider à créer un projet depuis zéro en respectant les bonnes pratiques, ce nouvel IDE sait répondre à beaucoup de choses...</p> 379 <p>Disponible avec différents modèles, je montrerai quelques exemples de génération de code pertinente tout en partageant les bonnes pratiques autour de Cursor : Context Engineering, AGENTS.md, Plan Mode, Manipulation du navigateur, Serveur MCP.</p> 380 <p>Vous souhaitez générer des apps sans coder mais vous ne savez pas par où commencer ? Vous avez essayé et vous n'êtes pas convaincu ?</p> 381 <p>Venez assister à ce talk pour apprendre comment bien générer du code en utilisant l'IA !</p> 382 `, 383 speakers: ['julien_landure'] 384 } 385 ] 386 }, 387 { 388 id: '2025_11_26', 389 title: `Quand l'IA fait le tri de manière industrialisée // Construit un chatbot infusé à l'IA avec LangChain4j`, 390 date: new Date(2025, 10, 26), //month begin at 0 391 time: '19h00', 392 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/311965158/", 393 place: "onepoint", 394 subjects: [ 395 { 396 title: `Quand l'IA fait le tri de manière industrialisée`, 397 time: '19h00', 398 length: '45 min', 399 type: 'talk', 400 abstract: ` 401 <p>LâIA fait le tri dans vos mails, dans vos agendas et aussi dans vos ⦠colis et lettres. Avec plus de 50 millions dâobjets triés par jour et des contraintes de temps de détections inférieures à 500ms, La Poste a réussi à industrialiser lâIA afin de réduire le tri manuel de 20% à 5%.</p> 402 <p> Pour réussir, La Poste en partenariat avec Thales, a développé une plateforme dédiée à la gestion des données et des modèles d'IA. Cette plateforme assure lâévolutivité, lâorchestration, et la performance des modèles de computer vision, déployés en Egde dans les centres de tri et en Datacenter. </p> 403 <p> Avec plus de 30 modèles dâIA, les défis comme reconnaitre une adresse destinataire sur un pli noir ou sâassurer que lâIA ne mélange pas les informations destinataire/expéditeur ont conduit lâéquipe à créer des pipelines d'entrainement, d'évaluation et de déploiement des modèles. </p> 404 <p> Après 5 ans d'IA en production, ce talk sera l'occasion de partager les solutions mises en place pour répondre aux contraintes de performance, de résilience ou encore d'approvisionnement de GPU sur des infrastructures IAAS et PAAS.</p> 405 `, 406 speakers: ['guillaume_leblondel', 'nicolas_payneau'] 407 }, 408 { 409 title: `Construit un chatbot infusé à l'IA avec LangChain4j`, 410 time: '19h30', 411 length: '45 min', 412 type: 'talk', 413 abstract: 414 ` 415 <p><i>(Présentation en ð«ð·)</i></p> 416 <p> 417 Add intelligent conversational AI in your Java application! 418 </p> 419 <p> 420 This presentation demonstrates how to build a production-ready chatbot from scratch using LangChain4j, 421 progressing from basic chat functionality to a sophisticated AI assistant with memory, content moderation, 422 document retrieval (RAG), and business integration. 423 </p> 424 `, 425 speakers: ['antonio_goncalves'] 426 } 427 ] 428 }, 429 { 430 id: '2025_10_09',
431 title: `DIY : ma base de connaissance en bash // Le chaos engineering expliqué à mon neveu de 10 ans`, 432 date: new Date(2025, 9, 9), //month begin at 0 433 time: '19h00', 434 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/311275374/", 435 place: "sfeir", 436 subjects: [ 437 438 { 439 title: `DIY : Ma base de connaissance en bash`, 440 time: '19h00', 441 length: '15 min', 442 type: 'quickie', 443 abstract: 444 ` 445 <p>Après avoir testé beaucoup d'outils pour gérer ma base de connaissances, sans réellement trouver mon bonheur, j'ai fini par créer mon propre outil en bash.</p> 446 <p>Venez découvrir le résultat final ainsi que l'envers du décor.</p> 447 ` 448 , 449 speakers: ['manuel_boillod'] 450 }, 451 452 { 453 title: `Le chaos engineering expliqué à mon neveu de 10 ans`, 454 time: '19h30', 455 length: '45 min', 456 type: 'talk', 457 abstract: 458 ` 459 <p>L'ingénierie du chaos expliquée de façon ludique et humoristique en mode vulgarisation technique, à l'aide de lego, de jenga et d'une application codée à la main par un non developpeur</p> 460 `, 461 speakers: ['michael_dangleterre'] 462 } 463 ] 464 }, 465 { 466 id: '2025_09_18', 467 title: `𦦠Comprendre l'Usine Logicielle // ð Event Sourcing avec Kotlin & Spring`, 468 date: new Date(2025, 8, 18), //month begin at 0 469 time: '19h00', 470 register: "https://www.meetup.com/nantes-java-user-group/events/310831073/", 471 place: "zenika", 472 subjects: [ 473 474 { 475 title: `𦦠Une loutre pour comprendre l'Usine Logicielle`, 476 time: '19h00', 477 length: '15 min', 478 type: 'quickie', 479 abstract: 480 ` 481 <p>Suivez la visite de l'usine de loutres en bois 'WoOtter'.</p> 482 <p>Au fil d'une métaphore d'usine de produits mignons manufacturés, découvrez ou clarifiez votre vision de l'usine logicielle.</p> 483 <p>Un outil pour comprendre ou expliquer ce qu'est une usine logicielle à (presque) n'importe qui.</p> 484 ` 485 , 486 speakers: ['vincent_thiebault'] 487 }, 488 489 { 490 title: `ð Si la facture électronique m'était comptée`, 491 time: '19h30', 492 length: '1h', 493 type: 'talk', 494 abstract: 495 ` 496 <p>La légende dit que de nombreuses factures ne seraient pas tracées. Afin de collecter plus précisément les taxes du royaume, l'argentier du roi va imposer au peuple la facturation électronique. Suivez nous dans les méandres et les pièges de la mise en place d'une architecture événementielle vouée à tracer les états de la facture, de son émission à son règlement... </p> 497 <p>Comment mettre à profit un langage intuitif, <b>Kotlin</b>, en adoptant le paradigme réactif de <b>Spring Webflux</b>, combiné à la puissance de <b>Kafka</b> pour implémenter un système événementiel basé sur les concepts d'<b>Event Sourcing</b> et <b>State Pattern</b> qui garantira l'historisation des factures électroniques et la résilience à travers les âges.</p> 498 ` 499 , 500 speakers: ['jeremy_lejeune', 'gregory_bevan', 'jerome_landreau'] 501 } 502 ] 503 }, 504 505 { 506 id: '2025_06_17', 507 title: `ð¸ // Enter the Daggerverse ! // Suivez le lapin blanc et plongez dans la JVM // ð§ ð·`, 508 date: new Date(2025, 5, 17), //month begin at 0 509 time: '19h00', 510 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/307959282", 511 place: "adresse_gare_sud", 512 subjects: [ 513 { 514 title: 'Verre d\'accueil ð¸', 515 time: '19h00', 516 length: '30 min', 517 type: 'hello', 518 abstract: "<p>C'est bientôt l'été ! Nous vous invitons donc à débuter cette dernière soirée de façon conviviale avec un verre de bienvenue.</p>", 519 }, 520 { 521 title: `Enter the Daggerverse !`, 522 time: '19h30', 523 length: '30 min', 524 type: 'quickie', 525 abstract: `
526 <p>Si je vous dis Dagger ? Cela ne vous parle peut-être pas. Si je vous dis... Docker ? Là , ça vous parle !</p> 527 <p>Dagger, c'est le moteur de CI/CD développé par Solomon Hykes, le papa de Docker. Un OVNI dans l'univers des moteurs de CI/CD, à la fois une alternative et un complément à Jenkins, Circle, GitHub Actions. Mais quid du Daggerverse ?</p> 528 <p>Laissez-nous vous embarquer dans ce nouvel univers, laissez nous vous faire tomber dans... le Daggerverse of madness !!</p> 529 <p>Dans ce talk, vous : 530 <ul> 531 <li>prendrez en main Dagger avec le langage de votre choix : Typescript, Go ou Python (et qui sait, Java ?)</li> 532 <li>découvrirez comment publier votre propre module Dagger dans... le Daggerverse !</li> 533 </ul> 534 </p> 535 <p>Vous découvrirez même comment en évitant le push and pray, vous augmentez votre productivité, votre satisfaction et réduisez votre impact énergétique.</p> 536 <p>Et vous serez à tout jamais séduit par Dagger et son univers à part entière.</p> 537 `, 538 speakers: ['emeric_martineau', 'julien_haumont'] 539 }, 540 { 541 title: `Comme Alice, osez suivre le lapin blanc et plongez dans la JVM pour comprendre son fonctionnement`, 542 time: '20h00', 543 length: '1h', 544 type: 'talk', 545 abstract: ` 546 <p>Tout commence avec une mise à jour de Java 17 vers Java 21.0.1 qui fait planter un de nos benchmarks. Notre unique symptôme: une variable locale non null envoie une NullPointerException.</p> 547 <p>Ensemble, on va remonter dans le temps pour refaire l'analyse de ce bug. Lors de ce voyage, on va plonger dans la JVM, comprendre son fonctionnement et creuser pour trouver la root-cause de ce bug corrigé en 21.0.3.</p> 548 <p>A l'issu de cette présentation, vous comprendrez que c'était à votre portée. Sans le savoir, vous êtes déjà capable de compiler votre propre JDK pour diagnostiquer et corriger des bugs. Qui sait, vous deviendrez peut-être contributeur Java ?</p> 549 `, 550 speakers: ['antoine_dessaigne'] 551 }, 552 { 553 title: 'Planche apéro et Cocktail ð§ ð·', 554 time: '21h', 555 length: '3h', 556 type: 'cocktail', 557 abstract: "<p>Et pour clôturer la soirée en beauté, restez discuter avec nous autour d'un verre et de délicieuses planches apéro ð</p>", 558 } 559 ] 560 }, 561 { 562 id: '2025_05_15', 563 title: `Signals : "Nouvelle" Norme des Frameworks Web // C'est pas le réseau, ça ping Marty !`, 564 date: new Date(2025, 4, 15), //month begin at 0 565 time: '19h00', 566 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/307462842", 567 place: "kleegroup", 568 subjects: [ 569 { 570 title: `Signals : "Nouvelle" Norme des Frameworks Web`, 571 time: '19h00', 572 length: '30 min', 573 type: 'quickie', 574 abstract: ` 575 <p>Venez découvrir "Signals", concept clé du développement Web de demain, qui date pourtant de... 2010.</p> 576 <p>Dans cette courte conférence à destination des développeurs Frontend, vous apprendrez que l'écosystème Web a bien mûri en 10, notamment en ce qui concerne la gestion de l'état de vos applications.</p> 577 <p>Que vous soyez développeurs Angular, React, Vue, Svelte, ou tout simplement VanillaJS, vous êtes concerné par ce changement !</p> 578 <p>L'objectif de Signals est de fournir une interface unique et commune à l'ensemble des frameworks Web, afin de gérer leurs variables réactives, tout en restant simple et performant.</p> 579 <p>Cette présentation s'appuiera sur des portions de code, afin de démontrer l'intérêt de cette nouvelle notion et comment l'implémenter dans nos usages.</p> 580 <p>"à l'aube d'une grande aventure", embarquerez-vous à bord de ce talk, à la recherche de l'expérience de développement idéale ?"</p> 581 `, 582 speakers: ['damien_chazoule'] 583 }, 584 { 585 title: `C'est pas le réseau, ça ping Marty !`, 586 time: '19h30', 587 length: '45 min', 588 type: 'talk', 589 abstract: `
590 <p>Vous ne comprenez pas pourquoi votre application est injoignable alors que ça ping ?</p> 591 <p>Durant cette session, nous aborderons les fondamentaux du réseau, tels que la connectivité, le routage et le filtrage.</p> 592 <p>Nous parlerons également des métriques de référence, comme la latence, la bande passante et les pertes de paquets.</p> 593 <p>Enfin, nous reviendrons sur les problèmes réseaux fréquemment rencontrés par les développeurs.</p> 594 `, 595 speakers: ['cynthia_treger', 'david_santiago'] 596 } 597 ] 598 }, 599 { 600 id: '2025_04_29', 601 title: `Cats' Tail ou Comment créer son propre Jeu de Rôle avec l'Agentic AI`, 602 date: new Date(2025, 3, 29), //month begin at 0 603 time: '19h00', 604 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/306768959", 605 place: "qlik", 606 subjects: [ 607 { 608 title: `Cats' Tail ou Comment créer son propre Jeu de Rôle avec l'Agentic AI`, 609 time: '19h00', 610 length: '1h30', 611 type: 'talk', 612 abstract: ` 613 <p>Vous êtes un Développeur ou une Développeuse, fan de Jeu de Rôle et aimez les chats ? Alors venez découvrir Cats' Tail, <b>un Jeu de Rôle transformant des concepts complexes d'IA en une expérience de jeu immersive et évolutive</b> !</p> 614 <p></p> 615 <p>Durant ce talk, vous découvrirez <b>comment mettre en oeuvre les techniques d'Agentic AI</b> afin de créer un Maître du Jeu (MJ) orchestrant plusieurs agents, chacuns spécialisé dans une tâche particulière.</p> 616 <p></p> 617 <p>En Bonus : Enrichir l'expérience en persistant les échanges entre joueurs et MJ dans une base de données afin de renforcer l'immersion des joueurs et joueuses :)</p> 618 `, 619 speakers: ['arnaud_jean', 'tiffany_souterre'] 620 } 621 ] 622 }, 623 { 624 id: '2025_03_12', 625 title: "REX: Oxygen, le Design System de Doctolib // Mountain Quest: Du Camp de Base au Sommet - Une Aventure Product & Tech", 626 date: new Date(2025, 2, 12), //month begin at 0 627 time: '19h00', 628 register: "https://www.meetup.com/nantes-java-user-group/events/306401890", 629 place: "doctolib", 630 subjects: [ 631 { 632 title: "REX: Oxygen, le Design System de Doctolib", 633 time: '19h00', 634 length: '0h30', 635 type: 'quickie', 636 abstract: ` 637 <p>Chez Doctolib, on développe nos produits avec un Design System; c a d que nos designers et nos développeurs ont un langage commun pour imaginer et faire évoluer nos produits.</p> 638 <p>Mais en fait, c'est quoi un Design System ? Et pourquoi chez Docto, il y a une équipe dédiée ?</p> 639 <p>Une Intro et Rex de nos usages. Facile d'accès même pour les devs backs ;)</p> 640 `, 641 speakers: ['julien_tanay'] 642 }, 643 { 644 title: "Mountain Quest: Du Camp de Base au Sommet - Une Aventure Product & Tech", 645 time: '19h30', 646 length: '0h45', 647 type: 'talk', 648 abstract: ` 649 <p>Embarquez pour une expédition chez Doctolib, où le Product Manager (votre cartographe) et l'Engineering Manager (votre guide de montagne) unissent leurs forces pour mener l'équipe vers de nouveaux sommets. Découvrez comment nous avons construit des équipes autonomes qui allient vision stratégique et expertise tactique.</p> 650 <p>Dans cette aventure, nous vous dévoilerons comment notre équipe : 651 <ul> 652 <li>Trace des voies ambitieuses tout en maîtrisant un terrain legacy technique</li> 653 <li>Ãquipe ses membres avec les bons outils et le mindset nécessaire à la réussite</li> 654 <li>Gravis les défis techniques avec agilité</li> 655 <li>Cultive l'exploration et la prise de risque maîtrisée</li> 656 <li>Transforme les obstacles techniques en tremplins</li> 657 </ul> 658 </p> 659 <p>à travers l'expérience de notre équipe plateforme, nous partagerons des stratég
659ies éprouvées qui permettent aux équipes d'atteindre leurs sommets tout en gardant leur esprit d'innovation. De la gestion des clients internes aux exigences réglementaires, nous révélerons comment maintenir un esprit startup dans un environnement complexe.</p> 660 `, 661 speakers: ['julien_bideau', 'celine_forestier'] 662 } 663 ] 664 }, 665 { 666 id: '2025_02_25', 667 title: "Vous saurez tout sur les type systems // Développer pour le mode hors-ligne avec le web natif", 668 date: new Date(2025, 1, 25), //month begin at 0 669 time: '19h00', 670 register: "https://www.meetup.com/nantes-java-user-group/events/306045925", 671 place: "qlik", 672 subjects: [ 673 { 674 title: "Vous saurez tout sur les type systems", 675 time: '19h00', 676 length: '0h45', 677 type: 'talk', 678 abstract: ` 679 <p>Vous avez déjà entendu que JavaScript était un langage au typage dynamique mais faible ? Que la grande force de Rust réside dans son typage statique et fort ? On vous a déjà parlé du concept de duck typing en Python ? Ou encore lâinférence de type qui a bouleversé Java en version 10 avec le mot-clé var ?</p> 680 <p></p> 681 <p>Ces termes peuvent paraître complexes, mais pas de panique, c'est normal. Chaque langage a son propre type system et il existe de nombreux termes pour le décrire. Comprendre ces termes nous permet de mieux comprendre le fonctionnement du langage et sa philosophie.</p> 682 <p>Ce talk démystifiera les termes les plus importants pour que vous ne soyez plus dérouté·e·s quand vous entendrez « trop bien ! un langage à typage manifeste, fort et statique ! »</p> 683 `, 684 speakers: ['pierre_gradot'] 685 }, 686 { 687 title: "Développer pour le mode hors-ligne avec le web natif", 688 time: '20h00', 689 length: '0h45', 690 type: 'talk', 691 abstract: ` 692 <p>On a beau vivre au 21e siècle, Internet partout tout le temps, en vrai ça n'existe pas.</p> 693 <p>Et d'ailleurs est-ce bien souhaitable ?</p> 694 <p>En revanche, ce qu'on veut c'est avoir accès à notre travail, nos fichiers même si on est au milieu de nulle part. Ou plutôt dans le métro :D</p> 695 <p>Les API des navigateurs évoluent en permanence et nous fournissent tout ce dont on a besoin pour faire des applications autonomes où nos données sont accessibles tout le temps.</p> 696 <p>Dans ce talk je vous montre l'architecture que j'utilise dans les applications que je met en prod.</p> 697 <p>Et comment on peut gérer la synchronisation avec un serveur distant.</p>`, 698 speakers: ['aleth_gueguen'] 699 } 700 ] 701 }, 702 { 703 id: '2025_01_21', 704 title: "Une identité pour les fédérer toutes // Conventions de l'architecture hexagonale", 705 date: new Date(2025, 0, 21), //month begin at 0 706 time: '19h00', 707 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/305474896", 708 place: "wescale", 709 subjects: [ 710 { 711 title: "Une identité pour les fédérer toutes !", 712 time: '19h00', 713 length: '0h30', 714 type: 'quickie', 715 abstract: ` 716 <p>Dans un monde numérique où nos identités sont sollicitées à chaque clic, une question se pose : faut-il vraiment créer un compte à chaque fois que lâon accède à une nouvelle application ?</p> 717 <p>De FranceConnect aux boutons "Se connecter avecâ¦" que vous croisez partout, ces solutions simplifient nos vies numériques. Mais avez-vous déjà réfléchi à ce qui se passe en coulisses ? Pourquoi pouvez-vous naviguer entre les outils de votre entreprise sans vous réauthentifier ? Et surtout, comment tout cela reste-t-il sécurisé ?</p> 718 <p>Dans ce talk, je vous propose de découvrir les principes de lâidentité fédérée et du Single Sign-On (SSO), ces outils qui rendent votre navigation plus fluide. Nous parlerons des base
718s qui rendent ce système universel et fiable, tout en évoquant brièvement les protocoles qui le soutiennent, comme SAML et OIDC, pour satisfaire votre curiosité technique, sans jamais vous noyer dans les détails.</p> 719 <p>Que vous soyez un utilisateur intrigué ou un développeur souhaitant explorer ces concepts, vous découvrirez un univers où simplicité et sécurité sâentrelacent pour créer des expériences numériques à la fois puissantes et élégantes.</p> 720 `, 721 speakers: ['sebastien_ferrer'] 722 }, 723 { 724 title: "Quand les conventions hexagonales ne suffisent plus, ArchUnit à la rescousse", 725 time: '19h45', 726 length: '0h45', 727 type: 'talk', 728 abstract: ` 729 <p>En architecture logicielle, on utilise de nombreuses conventions de design.</p> 730 <p>Certaines peuvent être renforcées au niveau de l'outil de build ou du langage.</p> 731 <p>Mais je remarque que le plupart restent de fragiles conventions.</p> 732 <p>Cependant les développeurs sont faillibles et ces conventions sont bien vite enfreintes consciemment ou non.</p> 733 <p>J'ai remarqué que le drift de design est souvent détecté trop tard. La dette technique s'est alors installé.</p> 734 <p>J'apprécie lâarchitecture hexagonale, dont les interprétations et implémentations varient. Ce qui la rend d'autant plus sensible au drift.</p> 735 <p>Pour éviter ça, j'ai pris l'habitude de renforcer les conventions de design de mes app hexagonales par des tests d'architecture.</p> 736 <p>Je vous montre un exemple en Java avec ArchUnit.</p> 737 `, 738 speakers: ['antoine_salesse'] 739 } 740 ] 741 }, 742 { 743 id: '2024_12_17', 744 title: "ð¸ // Crash investigation : au coeur d'une application de ecommerce // Démystifier la création d'opérateurs Kubernetes en Java avec Quarkus // ð§ ð·", 745 date: new Date(2024, 11, 17), //month begin at 0 746 time: '19h00', 747 register: "https://www.meetup.com/nantes-java-user-group/events/304559809", 748 place: "adresse_gare_sud", 749 subjects: [ 750 { 751 title: 'Verre d\'accueil ð¸', 752 time: '19h00', 753 length: '30 min', 754 type: 'hello', 755 abstract: "<p>
755La fin de l'année approche, nous vous invitons donc à débuter cette dernière soirée de façon conviviale avec un verre de bienvenue.</p>", 756 }, 757 { 758 title: "Crash investigation : debug en prod d'une application de ecommerce", 759 time: '19h30', 760 length: '0h30', 761 type: 'quickie', 762 abstract: ` 763 <p>Dans cette présentation, je vous invite à me rejoindre <b>dans la peau dâun enquêteur</b>, explorant les subtilités de lâinvestigation dans une application de distribution de billets de trains.</p> 764 <p>Le contexte : l'application est basée sur des microservices en <b>Java</b>, bâtie avec <b>Spring Boot</b> et orchestrée par <b>Kubernetes</b>. En apparence, tout semble fonctionner, mais un problème récurrent vient troubler le tableau. De manière sporadique et imprévisible, <b>certains services plantent dès leur démarrage</b>. Pourquoi ? Comment ? Les indices initiaux sont ténus, et rien ne semble expliquer ces défaillances aléatoires.</p> 765 <p>à travers une exploration minutieuse des couches de lâapplication, des mécanismes de Spring Boot, Tomcat, Jackson et des rouages de Kubernetes, nous partirons ensemble <b>en quête de lâorigine de ces pannes mystérieuses</b>. Ensemble, découvrons qui est le coupable dans cette intrigue logicielle.</p> 766 `, 767 speakers: ['francois_kha'] 768 }, 769 { 770 title: "Démystifier la création d'opérateurs Kubernetes en Java avec Quarkus", 771 time: '20h00', 772 length: '0h45', 773 type: 'talk', 774 abstract: ` 775 <p>Les <strong>opérateurs Kubernetes</strong> sont devenus un outil essentiel pour simplifier le déploiement et la gestion d'applications complexes. Avec le <strong>Java Operator SDK</strong> et <strong>Quarkus</strong>, développer des opérateurs en Java devient accessible et efficace, même pour les environnements les plus complexes. Ces opérateurs permettent d'automatiser la gestion des <strong>API legacy</strong> et des <strong>sources de données externes</strong> au cluster Kubernetes, tout en restant dans un écosystème familier pour les développeurs Java.</p> 776 <p>Dans cette présentation pratique, nous allons démystifier le processus de création d'un opérateur Kubernetes en utilisant le Java Operator SDK et Quarkus. Vous découvrirez comment définir des <strong>Custom Resource Definitions (CRDs)</strong> pour modéliser les concepts clés de vos applications, puis comment utiliser Quarkus pour créer des <strong>contrôleurs légers et performants</strong>, capables de surveiller et d'agir sur des ressources du cluster ou des services externes.</p> 777 <p>Et ce ne sera pas seulement théorique ! Nous allons <strong>coder en direct</strong> pour vous montrer à quel point il est simple de créer un opérateur en Java avec Quarkus. Rejoignez-nous pour une session interactive où nous vous guiderons dans le développement d'un opérateur Kubernetes robuste.</p> 778 `, 779 speakers: ['horacio_gonzalez'] 780 }, 781 { 782 title: 'Planche apéro et Cocktail ð§ ð·', 783 time: '21h', 784 length: '3h', 785 type: 'cocktail', 786 abstract: "<p>Et pour clôturer la soirée en beauté, restez discuter avec nous autour d'un verre et de délicieuses planches apéro ð</p>", 787 }, 788 ] 789 }, 790 { 791 id: '2024_11_19', 792 title: "Paketo Buildpacks // Sous le capot d'une application JVM", 793 date: new Date(2024, 10, 19), //month begin at 0 794 time: '19h00', 795 register: "https://www.meetup.com/nantes-java-user-group/events/304303223", 796 place: "qlik", 797 subjects: [ 798 { 799 title: "Paketo Buildpacks : la meilleure façon de construire des images OCI?", 800 time: '19h00', 801 length: '0h45', 802 type: 'talk', 803 abstract: "<p>Les Buildpacks existent depuis plus de 10 ans ! <br/>" + 804 "D'abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS (Platform as a Service). <br/>" + 805 "Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). <br/>" + 806 "Sont-ils une bonne alternative au Dockerfile ? <br/>" + 807 "Que sont les buildpacks Paketo ? <br/>" + 808 "Quelles communautés les soutiennent et comment ?", 809 speakers: ['anthony_dahanne'] 810 }, 811 { 812 title: "Sous le capot d'une application JVM - JDK Flight Recorder / JDK Mission Control", 813 time: '19h45', 814 length: '0h45', 815 type: 'talk', 816 abstract: "<p>Java Flight Recorder (JFR) et Java Mission Control (JMC) sont deux outils qui peuvent être utilisés pour diagnostiquer en détail le comportement d'une application, lorsque le monitoring de plus haut niveau, avec des logs, des métriques ou un APM
816n'est pas suffisant.</p>" + 817 "<p>JFR est un moyen basé sur les événements pour observer ce qui se passe à l'intérieur d'une JVM. JMC est l'interface utilisateur associée qui nous aide à parcourir les événements JFR. Avec JFR et JMC, nous pouvons avoir des aperçus sur les threads, le comportement de la mémoire, les opérations d'I/O, la configuration du GC, et bien plus encore, en fonction de la configuration de l'enregistrement.</p>" + 818 "<p>Au travers d'une démo et en utilisant une application exemple, nous examinerons le type d'informations que nous pouvons obtenir en utilisant ces outils, et utiliserons cela pour améliorer la performance globale de notre application.</p>", 819 speakers: ['guillaume_darmont'] 820 } 821 ] 822 }, 823 { 824 id: '2024_10_29', 825 title: "Retour d'XP sur Accelerate // Comment ingérer 100 Mrd. d'événements", 826 date: new Date(2024, 9, 29), //month begin at 0 827 time: '19h00', 828 register: "https://www.meetup.com/nantes-java-user-group/events/304012594", 829 place: "sii", 830 subjects: [ 831 { 832 title: "Accelerate, retour d'XP Decathlon", 833 time: '19h00', 834 length: '0h20', 835 type: 'quickie', 836 abstract: "<p>Au cours de ce quickie après un rappel sur ce qu'est Accelerate, je présenterai comment nous nous en sommes inspiré chez Decathlon et les enseignements que nous en avons tiré</p>", 837 speakers: ['jean-philippe_le-goff'] 838 }, 839 { 840 title: "Comment ingérer 100 Mrd. d'événements depuis des millions d'appareils par mois ?", 841 time: '19h30', 842 length: '0h45', 843 type: 'talk', 844 abstract: "<p>Lors de cette présentation, vous allez découvrir comment une petite équipe de dév a réussi à monter une infrastructure dans AWS qui répond à des besoins de scalabilité forte, tout en étant robuste et avec des coûts maîtrisés.</p>" + 845 "<p>Nous allons parcourir la pipeline depuis lâingestion, en passant par lâagrégation pour finir par la restitution de la donnée.</p>" + 846 "<p>Nous aborderons beaucoup de services AWS : Lambda, ECS, ELB, Athena, Kinesis & Firehose, et bien dâautres⦠Nous verrons également comment le tout est déployé.</p>" + 847 "<p>Enfin, nous aurons un aperçu de comment maîtriser la scalabilité, la sécurité et les coûts au fil du temps.</p>", 848 speakers: ['valentin_maerten'] 849 } 850 ] 851 }, 852 { 853 id: '2024_10_02', 854 title: "La recherche à l'ère de l'IA // Elasticsearch Query Language: ES|QL", 855 date: new Date(2024, 9, 2), //month begin at 0 856 time: '19h00', 857 register: "https://www.meetup.com/nantes-java-user-group/events/303451947", 858 place: "zenika", 859 subjects: [ 860 { 861 title: "La recherche à l'ère de l'IA", 862 time: '19h00', 863 length: '0h45', 864 type: 'talk', 865 abstract: "<p>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.</p>" + 866 "<p>Cette conférence donne un aperçu de :" + 867 "<ul>" + 868 "<li>La recherche 'Classique' et ses limitations</li>" + 869 "<li>Qu'est qu'un modèle de machine learning et comment vous pouvez l'utiliser</li>" + 870 "<li>Comment utiliser la recherche vectorielle ou la recherche hybride dans Elasticsearch</li>" + 871 "<li>Comment ChatGPT d'OpenAI ou les 'large language models' (LLMs) similaires viennent jouer naturellement avec Elastic</li>" + 872 "</ul></p>" + 873 "<p>La démo principale montre comment générer des embeddings à partir de musiques puis comment trouver la musique qui s'approche le plus d'une musique que nous fredonnons ðµ ð¸ ð».</p>", 874 speakers: ['david_pilato'] 875 }, 876 {
877 title: "Elasticsearch Query Language: ES|QL", 878 time: '20h00', 879 length: '0h45', 880 type: 'talk', 881 abstract: "<p>Dans cette session sans slides, nous découvrirons par la pratique ce qu'apporte le nouveau language `ES|QL` pour aller fouiller dans nos données indexées dans Elasticsearch et ce, de façon interactive et visuelle.</p>" + 882 "<p>`ES|QL` et surtout le nouveau moteur derrière l'API `_query` apportent à la fois une syntaxe simplifiée permettant d'affiner vos résultats, étape par étape et ajouter de nouvelles fonctionnalités comme par exemple l'enrichissement de données et la transformation à la volée, directement dans votre requête, mais également des performances inégalées.</p>", 883 speakers: ['david_pilato'] 884 } 885 ] 886 }, 887 { 888 id: '2024_06_12', 889 title: "Soirée de fin d'année : JUnit 5 // Spring Boot", 890 date: new Date(2024, 5, 12), //month begin at 0 891 time: '19h00', 892 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/301290651", 893 place: "adresse_gare_sud", 894 subjects: [ 895 { 896 title: 'Verre d\'accueil ð¸', 897 time: '19h00', 898 length: '0h30', 899 type: 'hello', 900 abstract: "<p>C'est la dernière de la saison, alors nous vous proposons de commencer cette dernière soirée de la meilleure des manières avec un petit verre d'accueil</p>" 901 }, 902 { 903 title: "Rendre ses tests aussi clean que son code de prod grâce à JUnit 5 & cie", 904 time: '19h30', 905 length: '0h45', 906 type: 'talk', 907 abstract: "<p>Après avoir développé une nouvelle fonctionnalité, on passe souvent par une phase de refactoring pour essayer de trouver une meilleure implémentation. Mais peut-être quâon oublie parfois dâaméliorer les tests ?</p>" + 908 "<p>Une fois écrits, les tests serviront non seulement à détecter de potentiels bugs, mais aussi à documenter un comportement et à apporter de la confiance à lâéquipe lors des développements suivants. Pour remplir ces fonctions cruciales, une suite de test doit être lisible, compréhensible, facile à enrichir, et exécutable rapidement.</p>" + 909 "<p>Voyons comment tirer parti dâoutils tels que JUnit 5, AssertJ ou Spring Test pour atteindre ces objectifs !</p>", 910 speakers: ['juliette_de_rancourt'] 911 }, 912 { 913 title: "Rechargez vos applications web avec Spring Boot", 914 time: '20h20', 915 length: '0h45', 916 type: 'talk', 917 abstract: "<p>Si vous faites vivres des applications web, les mettre à jour à la dernière version de Spring n'est pas juste une question de maintenance: c'est aussi le bon moment pour appuyer sur "e;F5"e; et recharger votre stack web. Vous pouvez faciliter la vie des développeurs et apporter de la valeur à vos utilisateurs. Avec Spring Boot 3.2, l'équipe Spring vous aide à faire évoluer vos applications selon vos besoins:</p><ul>" + 918 "<li>Améliorer l'efficacité en production avec les Virtual Threads</li>" + 919 "<li>Utiliser une API moderne de client HTTP (sans Reactive!) avec RestClient</li>" + 920 "<li>S'aider des métriques et des traces pour résoudre les incidents en production</li>" + 921 "<li>Mieux gérer les certificats TLS avec les bundles</li>" + 922 "<li>Connecter l'application à d'autres systèmes grâce à Docker compose et Testcontainers</li>" + 923 "<li>Améliorer les temps de démarrage avec CDS ou bien Checkpoint Restore</li>", 924 speakers: ['stephane_nicoll'] 925 }, 926 { 927 title: 'Petits fours et Cocktail ð£ ð·', 928 time: '21h20', 929 length: '3h', 930 type: 'summer', 931 abstract: "<p>Et pour bien finir, restez discuter avec nous autour d'un verre et des petits fours ð</p>", 932 } 933 ] 934 }, 935 { 936 id: '2024_05_28', 937 title: "Pizzas et agrégations, ou comment MongoDB a sauvé mon restaurant // Comment j'ai remplacé mon extincteur par un manuel des castors juniors", 938 date: new Date(2024, 4, 28), //month begin at 0 939 time: '19h00', 940 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/300973582", 941 place: "onepoint", 942 subjects: [ 943 { 944 title: "Pizzas et agrégations, ou comment MongoDB a sauvé mon restaurant", 945 time: '19h00', 946 length: '0h30', 947 type: 'quickie', 948 abstract: "<p>MongoDB offre un grande flexibilité sur le format des données, mais comment les manipuler lorsquâon doit modifier des milliers de documents ?</p>" + 949 "<p>Les agrégations offre une solution simple : faire une pipeline pour éditer les documents, les enrichir ou en récupérer des informations pour générer des métriques globales.</p>" + 950 "<p>Venez découvrir les agrégations MongoDB à travers l'exemple d'une pizzeria, qui doit modifier l'intégralité de sa base de données suite à un choix culinaire discutable...</p>" + 951 "</p>", 952 speakers: ['alexis_voisin'] 953 }, 954 { 955 title: "Comment j'ai remplacé mon extincteur par un manuel des castors juniors", 956 time: '19h45', 957 length: '1h00', 958 type: 'talk', 959 abstract: "<p>Vous en avez marre d'intervenir tout le temps en mode pompier sur vos projets ? Vous ne touchez plus à rien dans le code dans la crainte de tout voir exploser ? Vous aimeriez remettre de la sérénité dans vos refactos de code ?</p>" + 960 "</p>Prenez vos places pour un entrainement spécial au Software Craftsmanship aux côtés de Riri, Fifi et Loulou qui fera de vous un vrai adepte du scoutisme.</p>" + 961 "</p>Nous parcourrons et illustrerons, au travers dâexemples concrets, un guide de bonnes pratiques (Clean Code, SOLID, proposition de démarches) vous permettant dans un premier temps d'identifier vos éventuels refactos et par la suite de les suivre et de les traiter.</p>" + 962 "</p>Installez-vous confortablement et venez récupérer votre médaille de parfait petit scout. ðï¸</p>" + 963 "</p>", 964 speakers: ['ambre_person', 'gwenael_bec'] 965 } 966 ] 967 }, 968 { 969 id: '2024_04_03', 970 title: "Github actions // Fusion", 971 date: new Date(2024, 3, 3), //month begin at 0 972 time: '19h00', 973 register: "https://www.meetup.com/fr-FR/nantes-java-user-group/events/299812280/", 974 place: "lepalace", 975 subjects: [ 976 { 977 title: "Passe à l'Actions avec GITHUB !", 978 time: '19h00', 979 length: '0h30', 980 type: 'quickie', 981 abstract: "<p>De nos jours, l'automatisation est omniprésente dans nos processus de développement principalement pour les phases de tests, de build et de déploiements.</p>" + 982 "<p>Au-delà de cette simple automatisation, la plateforme GitHub Actions vous offre la possibilité d'aller encore plus loin en créant vos propres actions personnalisées.</p>" + 983 "<p>Que lâon soit technique ou fonctionnel, on trouve des avantages concrets dans l'intégration de GitHub Actions dans le processus de développement en automatisant de tâches simples et fastidieuses.</p>" + 984 "<p>Ce talk permet de découvrir les GitHub Actions personnalisées, en découvrant les étapes de création d'une Github Action en mettant l'accent sur la simplicité et l'efficacité.</p>", 985 speakers: ['aymeric_laleau'] 986 }, 987 { 988 title: "Bienvenu dans l'ère de Fusion", 989 time: '19h45', 990 length: '1h00', 991 type: 'talk', 992 abstract: "<p>
992Découvrez ce qu'est Yupiik OSS et pourquoi il a été créé comme un framework OSS complet pour simplifier le processus de développement de bout en bout.</p>" + 993 "<p>Nous commencerons par discuter de l'écosystème IT et Cloud / Java dans lequel nous évoluons aujourd'hui et de ses défis.</p>" + 994 "<p>Une brève deuxième partie comparera également les modèles Java courants à des solutions plus récentes dans d'autres langages pour voir si nous partons d'un héritage ou si nous sommes juste en avance par rapport à eux.</p>" + 995 "<p>Enfin, la dernière partie portera sur la façon dont l'écosystème Fusion prend en compte cet état, d'un simple programme CLI à une API ou une application web déployée dans un cluster Kubernetes, mais nous veillerons également à prendre en compte les aspects de sécurité, de déploiement et de documentation (vivante).</p>", 996 speakers: ['romain_manni-bucau', 'francois_papon'] 997 } 998 ] 999 }, 1000 { 1001 id: '2024_03_12', 1002 title: "Product Owner vs Product Manager // JobRunr", 1003 date: new Date(2024, 2, 12), //month begin at 0 1004 time: '19h00', 1005 register: 'https://www.meetup.com/nantes-java-user-group/events/299386567/', 1006 place: 'sqli', 1007 subjects: [ 1008 { 1009 title: "J'suis Product Owner et moi J'suis Product Manager ! Sommes-nous si différents ?", 1010 time: '19h00', 1011 length: '0h15', 1012 type: 'quickie', 1013 abstract: "<p>Lors dâentretiens techniques/fonctionnels que je fais passer à des candidats, je me suis rendu compte que la définition du rôle de Product Manager et Product Owner était parfois confuse et interprétée de différentes manières.</p>" + 1014 "<p>Afin que vous puissiez alimenter votre réflexion, on évoquera les principales fonctions du Product Owner et du Product Manager. On se fera un avis sur leur complémentarité ou différence et surtout on abordera également quelques clichés qui selon moi ne sont pas fondés.</p>", 1015 speakers: ['julien_boeuf'] 1016 }, 1017 { 1018 title: "Global Inventory at Scale: How Decathlon manages Stock Worldwide using JobRunr [EN]", 1019 time: '19h30', 1020 length: '1h00', 1021 type: 'talk', 1022 abstract: "<p>In the competitive world of retail, managing stock for 1700 Decathlon stores across 5 continents presented a formidable challenge: maintaining accurate, real-time inventory across diverse time zones. How do you ensure that a football or a snorkeling mask is available when a customer needs it, irrespective of the store's location?</p>" + 1023 "<p>Join us as we narrate Decathlon's journey through this complex landscape. This talk will dive into our innovative approach - a blend of RFID technology, robotics, custom coding, and the power of JobRunr - an open-source distributed job scheduler. We'll share our journey of exploring various tools and technologies, highlighting how JobRunr emerged as our top choice for its efficiency and scalability. We'll explain how our integration of open-source software, automated systems, and robotics has not only improved inventory accuracy but also enhanced the global shopping experience at our stores. Additionally, we'll show you how JobRunr works and demonstrate its capabilities through a live coding session.</p>" + 1024 "<p>After this session you will know all about the challenges we faced, the solutions we devised, and how these insights can be practically applied in your own business scenario.</p>" + 1025 "<p><u>Conférence en anglais</u></p>", 1026 speakers: ['ronald_dehuysser', 'francois-xavier_verryser'] 1027 } 1028 ] 1029 }, 1030 { 1031 id: '2024_02_15', 1032 title: "Generative AI par la pratique : cas concrets d'utilisation d'un LLM en Java", 1033 date: new Date(2024, 1, 15), //month begin at 0 1034 time: '19h00', 1035 register: 'https://www.meetup.com/nantes-java-user-group/events/298858263/', 1036 place: 'eartsup', 1037 subjects: [ 1038 { 1039 title: "Generative AI par la pratique : cas concrets d'utilisation d'un LLM en Java", 1040 time: '19h00', 1041 length: '1h30', 1042 type: 'eartsup', 1043 abstract: "<p>Le NantesJug, Generative AI Nantes, GDG Nantes et GDG Nantes Cloud s'associent pour vous organiser un meetup inédit à Nantes !<br/>
1043" + 1044 " Venez assister à la conférence de Guillaume Laforge, Developer Advocate chez Google Cloud.<br/>" + 1045 " RDV le jeudi 15 février à 19h dans les locaux d'e-artsup Nantes, 18 Rue Flandres - Dunkerque 40, 44000 Nantes<br/>" + 1046 " Generative IA par la pratique : cas concrets d'utilisation d'un LLM en Java, avec l'API PaLM, Gemini et LangChain4J<br/>" + 1047 " 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.<br/>" + 1048 " Alors, qu'en est-il des développeurs Java ? Comment pouvons-nous tirer parti de l'IA générative ?<br/>" + 1049 " 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.<br/>" + 1050 " Et nous plongerons dans les possibilités offertes par le framework LangChain4J pour les développeurs Java !<br/>" + 1051 " Qui est Guillaume Laforge ? Developer Advocate chez Google Cloud, où il se focalise sur les architectures orientées événement, l'orchestration d'API, et l'intelligence artificielle générative.<br/>" + 1052 " Dans le monde Java, Guillaume est sans doute plus connu pour avoir c
1052o-fondé le langage de programmation Apache Groovy, et pour être un des membres fondateurs du podcast tech Les Cast Codeurs.</p>", 1053 speakers: ['guillaume_laforge'] 1054 } 1055 ] 1056 }, 1057 { 1058 id: '2024_01_23', 1059 title: "JCon Europe 2023 // Memory layout & Performance en Java", 1060 date: new Date(2024, 0, 23), //month begin at 0 1061 time: '19h00', 1062 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/298360020/', 1063 place: 'qlik', 1064 subjects: [ 1065 { 1066 title: "Retour sur le JCon Europe 2023", 1067 time: '19h00', 1068 length: '20 min', 1069 type: 'quickie', 1070 abstract: "<p>Description des thèmes principaux abordés lors du Jcon Europe de juin 2023</p>", 1071 speakers: ['jean_francois_albenque'] 1072 }, 1073 { 1074 title: "Memory layout & Performance en Java", 1075 time: '19h30', 1076 length: '60 min', 1077 type: 'talk', 1078 abstract: "<p>En quoi l'agencement des objets mémoire joue t'il sur nos perfs ? Quels leviers/outils avons-nous ? C'est le but de ce talk</p>", 1079 speakers: ['jerome_moliere'] 1080 } 1081 ] 1082 }, { 1083 id: '2023_12_07', 1084 title: "ð¸ Soirée de fin d'année ð¸ Podman et Hello Quarkus 3", 1085 date: new Date(2023, 11, 7), //month begin at 0 1086 time: '19h00', 1087 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/297121443', 1088 place: 'les_brasses', 1089 subjects: [ 1090 { 1091 title: 'Verre d\'accueil ð¸', 1092 time: '19h00', 1093 length: '30 min', 1094 type: 'hello', 1095 abstract: "<p>C'est bientôt la fin de l'année, alors nous vous proposons de commencer cette dernière soirée de la meilleure des manières avec un petit verre d'accueil</p>", 1096 }, { 1097 title: "Podman Desktop: Open Source GUI pour conteneurs et Kubernetes", 1098 time: '19h30', 1099 length: '30 min', 1100 type: 'quickie', 1101 abstract: "Les conteneurs sont omniprésents dans le monde actuel du développement logiciel, mais pour les développeurs, cela peut être intimidant, en particulier avec les divergences entre les environnements locaux et de production. <br/>" + 1102 "Dans ce talk, nous vous présenterons Podman Desktop qui comble cet écart. Il s'agit d'une interface graphique (GUI) entièrement open-source qui simplifie les workflows de conteneurs et est compatible avec Podman, Lima, Docker, et bien plus encore. Plateforme idéale pour interagir avec les conteneurs, Podman Desktop fournit également une interface utilisateur pour travailler avec vos environnements Kubernetes. Vous pouvez aussi configurer vos clusters locaux (avec MiniKube et KinD). <br>" + 1103 "Dans la démo nous verrons comment Podman Desktop permet de faciliter la transition des conteneurs vers les environnements Kubernetes. Vous apprendrez comment Podman Desktop peut être le tremplin qui dynamise vos processus de développement de conteneurs !<br>", 1104 speakers: ['stevan_le_meur'] 1105 }, { 1106 title: "Hello Quarkus 3!", 1107 time: '20h00', 1108 length: '60 min', 1109 type: 'talk', 1110 abstract: "Quarkus est une stack pour écrire des applications Java pour le Cloud. En réduisant lâemprunte mémoire et le temps de démarrage, les applications Quarkus permettent en autre dâaugmenter la densité de déploiement, le développement d'application serverless en Java, un meilleur comportement dans Kubernetesâ¦<br>" + 1111 "La première release publique de Quarkus a été faite en Mars 2019. Nous voilà 4 ans plus tard avec Quarkus 3.x. Entre temps, Quarkus a grandi, son écosystème sâest enrichi. Mais, Quarkus est resté fidèle à ses principes.<br>" + 1112 "Cette présentation rappelle les points fondamentaux de Quarkus (build-time principle, reactive core, container-first...) et explique leur évolution au cours de ces 4 dernières années ainsi que les nouveautés de Quarkus 3.x tels que la nouvelle dev ui, lâintégration dâHibernate 6, le passage à Jakarta et à Flow, le support des threads virtuels (project loom), les différentes améliorations de lâexpérience pour les développeurs, le support des architectures ARMâ¦<br>", 1113 speakers: ['clement_escoffier'] 1114 }, 1115 { 1116 title: 'Petits fours et Cocktail ð£ ð·', 1117 time: '21h', 1118 length: '3h', 1119 type: 'winter', 1120 abstract: "<p>Et pour bien finir, restez discuter avec nous autour d'un verre et des petits fours ð</p>", 1121 }, 1122 ] 1123 }, {
1124 id: '2023_11_09', 1125 title: "Azerty, Qwerty, peut-on faire mieux ? // Retourner le cerveau de sa Gameboy", 1126 date: new Date(2023, 10, 9), //month begin at 0 1127 time: '19h00', 1128 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/296909012', 1129 place: 'zenika', 1130 subjects: [ 1131 { 1132 title: "Azerty, Qwerty, peut-on faire mieux ?", 1133 time: '19h00', 1134 length: '20 min', 1135 type: 'quickie', 1136 abstract: `<p>Qwerty, Bépo, dvorak, colemak, workman... autant de dispositions de touches sur les claviers plus ou moins optimisées. Je vous présenterais celle que j'utilise depuis plus d'un an et quels bénéfices j'en ai tiré et les points durs. #mechkeyboard #diy</p>`, 1137 speakers: ['guillaume_membre'], 1138 }, 1139 { 1140 title: "Retourner le cerveau de sa Gameboy et les attraper (vraiment) tous ðª", 1141 time: '19h30', 1142 length: '60 min', 1143 type: 'talk', 1144 abstract: `<p>Vous avez 10 ans. Vous êtes assis sous un arbre dans votre jardin, et vous jouez à la Gameboy Pocket. La vie est douce. Soudain, votre meilleur ami débarque de nulle part, sa cartouche de Pokémon Bleu dans la main, et vous crie quelque chose ! Il le jure sur la tête de son chien : il a réussi à attraper Mew. Selon vous, il y a deux explications possibles : votre ami s'est acheté un Action Replay et a triché comme un malpropre, ou il vous joue du pipeau. Et si je vous disais qu'il existait une 3ème explication : votre ami est un génie de l'assembleur. C'est ce que je vous propose de découvrir dans un talk qui sent bon les années 90 et le reverse engineering.</p>`, 1145 speakers: ['audren_burlot'] 1146 }, 1147 ] 1148 }, 1149 { 1150 id: '2023_10_10', 1151 title: "Zookeeper vs KRaft // Kotlin", 1152 date: new Date(2023, 9, 10), //month begin at 0 1153 time: '19h00', 1154 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/296486844/', 1155 place: 'seyos', 1156 subjects: [ 1157 { 1158 title: "Zookeeper vs KRaft: une histoire de consensus dans Kafka", 1159 time: '19h00', 1160 length: '20 min', 1161 type: 'quickie', 1162 abstract: `<p>En octobre 2022, Confluent annonçait la dépréciation de Zookeeper dans Kafka et lâavènement de KRaft.</p> 1163 <p>En Mai 2023, au Kafka Summit, Jay Krups (CEO de Confluent), confirmait que KRaft allait devenir la configuration par défaut.</p> 1164 <p>Les questions qu'on peut se poser :</p> 1165 <p>- Quel problème résout Zookeeper dans Kafka ? Et donc, pourquoi changer ?</p> 1166 <p>- Qu'apporte KRaft ?</p> 1167 <p>- Quel impact pour les utilisateurs et sur lâécosystème en général ?</p>`, 1168 speakers: ['valentin_lefort'], 1169 }, 1170 { 1171 title: "En production pour la vie avec un backend en Kotlin", 1172 time: '19h30', 1173 length: '45 min', 1174 type: 'talk', 1175 abstract: `<p>Dans cette présentation, nous verrons concrètement comment Kotlin permet de produire du code gracieux, maintenable et évolutif.<br/> La présentation abordera également quelques concepts de programmation fonctionnelle, de programmation asynchrone avec les coroutines et même un peu de testabilité.<br/>Le tout agrémenté d'exemples de la vraie vie (via un projet open-source basé sur Spring Boot)</p>`, 1176 speakers: ['benoit_orihuela'] 1177 }, 1178 ] 1179 }, 1180 { 1181 id: '2023_09_19', 1182 title: "Soirée : Apache Pulsar, et introduction aux outils de Securité (SAST)", 1183 date: new Date(2023, 8, 19), //month begin at 0 1184 time: '19h00', 1185 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/295921312/', 1186 place: 'sfeir', 1187 subjects: [ 1188 { 1189 title: "Introduction aux outils de tests de sécurité d'application statique (SAST)", 1190 time: '19h00', 1191 length: '20 min', 1192 type: 'quickie', 1193 abstract: `<p>Le plus tôt vous testez votre application, moins les bugs de sécurité vous coûtera. Alors autant tester directement votre code. Mais avant d'installer le premier outil venue, regardons ensemble ce qu'est exactement un Static Application Security Testing (SAST). Y-a-t'il plusieurs type de SAST? Comment savoir si l'outil est pertinent ?</p> 1194 <p>Nous allons répondre à ces questions pour vous permettre d'envoyer du code en production plus sereinement.</p> 1195 `, 1196 speakers: ['adrien_pessu'], 1197 }, 1198 { 1199 title: "Apache Pulsar : enfin une alternative à Kafka!", 1200 time: '19h30', 1201 length: '60 min', 1202 type: 'talk', 1203 abstract: `<p>Aujourd'hui, quand on pense à créer des applications event-driven et temps réel, les mots qui viennent spontanément sont : RabbitMQ, ActiveMQ ou encore Kafka. Ce sont les s
1203olutions qui dominent ce paysage. Mais pour créer des applications événementielles exigeantes, il y a une alternative qui monte : Apache Pulsar.</p> 1204 <p>Après un bref rappel des concepts du messaging, vous découvrirez les caractéristiques-clé de Pulsar. Vous apprendrez notamment : 1205 <ul> 1206 <li>- comment Pulsar permet de dépasser certaines limites qu'on peut rencontrer avec d'autres brokers</li> 1207 <li>- comment il permet de scaler rapidement et sans prise de tête</li> 1208 <li>- comment il garantit une excellente durabilité des messages</li> 1209 <li>- en quoi il est pertinent en tant que plateforme de streaming et de messagerie unifiée</li> 1210 <li>- comment l'intégrer à votre existant compatible avec Kafka ou RabbitMQ</li> 1211 <li>- un aperçu de la communauté open-source autour de Pulsar</li> 1212 </ul></p>`, 1213 speakers: ['julien_jakubowski'] 1214 }, 1215 ] 1216 }, 1217 { 1218 id: '2023_06_22', 1219 title: "API explosives 𧨠// Déployer du Java en serverless c'est possible.", 1220 date: new Date(2023, 5, 22), //month begin at 0 1221 time: '19h00', 1222 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/293967666', 1223 place: 'adresse_gare_sud', 1224 subjects: [ 1225 { 1226 title: 'Développeurs, faites exploser vos APIs 𧨠', 1227 time: '19h00', 1228 length: '15 min', 1229 type: 'quickie', 1230 abstract: '<p>La âpyramide des testsâ est une notion dont tout le monde a déjà entendu au moins une fois. Entre tests unitaires, tests dâintégration ou encore tests de charge, ils sont souvent négligés, par manque de budget, de temps (ou les deux) ou bien par manque de conviction (ou les 3 ?).</p>' + 1231 "<p>Après vous avoir expliqué notre façon de voir les tests de charge, nous vous montrerons comment nous, développeurs, avons pu concevoir, analyser, exécuter et interpréter des tirs de charge et avec quels outils.</p>", 1232 speakers: ['sylvain_nael', 'jean_philippe_baconnais'], 1233 }, 1234 { 1235 title: "Déployer du Java en serverless c'est possible.", 1236 time: '19h30', 1237 length: '60 min', 1238 type: 'talk', 1239 abstract: `<p>Les architectures modernes font la part belle micro-services et aux fonctionnalités sans gestion de serveur. Très (trop ?) souvent, les exemples que l'on peut voir utilisent des langages interprétés alors que Java reste toujours un langage fort plébiscité en entreprise. Peut-on donc faire du serverless avec Java ?</p> 1240 <p>Dans cette session, je vous présenterai les intérêts des solutions serverless ainsi que les différentes options dont on dispose sur AWS pour y faire tourner une application Java. Enfin, nous regarderons les challenges spécifiques à la plateforme et comment on peut les contourner grâce à certaines nouveautés du langage comme l'API CRaC. 1241 Après cette présentation, vous devriez savoir si vous pouvez faire tourner votre service de trading de licorne avec Spring et ceci sans avoir à gérer de serveur !</p>`, 1242 speakers: ['damien_metzler'] 1243 }, 1244 ] 1245 }, 1246 { 1247 id: '2023_05_09', 1248 title: "Hands-on Threads virtuels du JDK 19", 1249 date: new Date(2023, 4, 9), //month begin at 0 1250 time: '19h00', 1251 register: 'https://www.meetup.com/nantes-java-user-group/events/293108986/', 1252 place: 'lepalace', 1253 subjects: [ 1254 { 1255 title: 'Introduction: les Threads virtuels', 1256 time: '19h00', 1257 length: '30 min', 1258 type: 'talk', 1259 abstract: '<p>Introduction à Loom et aux threads virtuels... puis hands-on/kata</p>', 1260 speakers: ['jerome_moliere'], 1261 }, 1262 { 1263 title: 'Hands-on Threads virtuels du JDK 19', 1264 time: '19h30', 1265 length: '90 min', 1266 type: 'hands-on', 1267 abstract: 1268 "<p>Hands-on pour découvrir par la pratique les threads virtuels sous forme de koans (tests unitaires) autour des nouveautés apportées par cette API</p><p>Venez avec votre machine et le JDK 19 installé, ou partagez les exercices avec votre voisin/voisine.</p>", 1269 speakers: ['jerome_moliere'] 1270 }, 1271 ] 1272 }, 1273 { 1274 id: '2023_04_12', 1275 title: "Web3 // Mob programming", 1276 date: new Date(2023, 3, 12), //month begin at 0 1277 time: '19h00', 1278 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/292533766/', 1279 place: 'lepalace', 1280 subjects: [ 1281 { 1282 title: 'Web3 ? Demystifions les blockchains et les applications décentralisées !', 1283 time: '19h00', 1284 length: '40 min', 1285 type: 'talk', 1286 abstract: '<p>Les termes Blockchain, proof-of-stake, smart contract, dApp, token, NFT, DAO ou Web3 vous laissent perplexes, vous donnent le vertige ou voire même vous énervent ? Venez découvrir les concepts et les composants structurants qui se cachent derrière tout ça !</p>', 1287 speakers: ['raphael_semeteys'], 1288 }, 1289 { 1290 title: 'Mob programming, la véritable approche du développement en équipe', 1291 time: '19h45', 1292 length: '55 min', 1293 type: 'talk', 1294 abstract: 1295 "<p>Shérif, le manager, est en colère. Il vient de surprendre toute lâéquipe de développement autour dâune même machine. Rendez-vous compte ! Après des comparaisons douteuses avec la DDE, il les a bien sermonnés et leur a ordonné de retourner à leur poste de travail immédiatement, un peu de sérieux ! Avec Shérif, la bamboche, câest terminé !</p>" + 1296 "<p>Malheureusement, des Shérif, il en existe encore beaucoup dans les open-spaces de nos DSI. Partager un ordinateur entre plusieurs développeurs, mais pourquoi donc ?</p>" + 1297 "<p>Le MOB programming est une pratique sâappuyant sur le Lean et sur Extreme Programming qui consiste à réaliser une tâche, quâelle soit technique ou non, à plusieurs. Les groomings, planifications et autres réunions de conception, ne serait-ce pas déjà des MOBs ?</p>" + 1298 "<p>De mythe à réalité, nous vous proposons de faire un retour dâexpérience du MOB programming dans une équipe produit chez Ouest-France. Nous vous offrirons deux points de vue, celui du lead, présent depuis le début du projet (5 ans) et celui dâun développeur qui a rejoint lâéquipe début 2021.</p>", 1299 speakers: ['maxime_odye', 'mathieu_pousse'] 1300 }, 1301 ] 1302 }, 1303 { 1304 id: '2023_04_06', 1305 title: "Dev'Party - Clash of Code", 1306 date: new Date(2023, 3, 6), //month begin at 0 1307 time: '19h00', 1308 register: 'https://www.billetweb.fr/devparty-nantes', 1309 place: 'eartsup', 1310 subjects: [ 1311 { 1312 title: 'Retour de la Dev\'Party avec Codingame et les communautés tech nantaise ! ', 1313 time: '19h00', 1314 length: '30 min', 1315 type: 'talk', 1316 abstract: 'Venez participer à ce tournoi de programmation DevParty !<br/><br/>Sous forme d\'un tournoi "Clash of Code" fourni par la plateforme Codingame, vous affronterez les autres participants tout au long de la soirée sur différentes épreuves de code :<br/>
1316<br/> Fastest : Vous devez terminer le défi aussi vite que possible.<br/> Shortest : Vous devez écrire le code le plus concis. Prenez votre temps pour parvenir à la solution la plus courte !<br/> Reverse : Vous devez deviner ce qu\'il y a à faire en observant le jeu de tests fourni.<br/><br/>Chaque épreuve durera entre 5 et 15 min, et vous devrez passer le maximum de tests pour avoir le meilleur score possible et ainsi améliorer votre classement général.<br/><br/>Vous pourrez utiliser le langage de programmation de votre choix : js, java, go, python, et bien d\'autres<br/><br/>Co-organisé avec les communautés tech nantaises, cette soirée sera agrémentée par un buffet, des boissons et bien sûr des lots à gagner.<br/><br/>Il s\'agit d\'un tournoi individuel, où tous les joueurs seront regroupés par arène de 10 joueurs max, et les meilleurs repartiront avec des lots.<br/><br/>N\'oubliez pas votre laptop pour participer !<br/>', 1317 speakers: [], 1318 }, 1319 ] 1320 }, 1321 { 1322 id: '2023_03_16', 1323 title: "Robotisez les tests de vos microservices + De Java vers Kotlin : codez deux fois plus vite !", 1324 date: new Date(2023, 2, 16), //month begin at 0 1325 time: '19h00', 1326 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/291639279/', 1327 place: 'nickel', 1328 subjects: [ 1329 { 1330 title: 'Robotisez les tests de vos microservices', 1331 time: '19h00', 1332 length: '45 min', 1333 type: 'talk', 1334 abstract: "<p>Pour assurer la fiabilité et le bon fonctionnement de nos microservices chez Nickel, nous écrivons des tests automatisés avec RobotFramework, un outil python et open source.</p><p>Sa syntaxe user-friendly permet de comprendre rapidement lâobjet dâun test dès la lecture de son code. Il offre également un gain de temps à nos développeurs pour construire leur jeu de données.</p><p>Nous écrirons ensemble le test dâune API REST pour découvrir RobotFramework, ses concepts, sa syntaxe et ses rapports de tests en sortie.</p><p>Enfin, nous vous présenterons les choix et les outils que nous avons retenus pour obtenir des tests stables et maintenables au quotidien..</p>", 1335 speakers: ['remi_picard', 'mohamed_ali_bouine'] 1336 }, { 1337 title: "De Java vers Kotlin : codez deux fois plus vite !", 1338 time: '19h45', 1339 length: '45 min', 1340 type: 'talk', 1341 abstract: "<p>Vous aimez Java, mais pas son aspect verbeux ?</p><p>Vous aimez les try catch mais pas les NullPointerException ?</p><p>Vous en avez assez d'écrire des equals et des hashcode ?</p><p>Qu'à cela ne tienne, un langage peut vous venir en aide : Scala !</p><p>... Ah, non attendez, c'est pas la bonne fiche...</p><br/><p>Donc ! Vous connaissez sans doute Scala et tous les avantages qu'il offre par rapport à Java, mais connaissez-vous Kotlin ? Ce qu'il apporte par rapport à Scala ? Et surtout, pourquoi vous devriez sérieusement considérer un projet avec si vous souhaitez vous simplifier la vie ?</p><br/><p>Je vous propose de vous faire découvrir ce langage au travers de cette présentation, autour de ses avantages et des outils qu'il propose afin d'avoir un projet fiable et simple à maintenir !</p>", 1342 speakers: ['yann_huriez'] 1343 } 1344 ] 1345 }, 1346 { 1347 id: '2023_02_02', 1348 title: "Advanced TypeScript Patterns + Urbaniser un SI pour 10 ans", 1349 date: new Date(2023, 1, 2), //month begin at 0 1350 time: '19h00', 1351 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/291067375', 1352 place: 'talend', 1353 subjects: [ 1354 { 1355 title: 'Advanced TypeScript Patterns', 1356 time: '19h00', 1357 length: '30 min', 1358 type: 'quickie', 1359 abstract: "<p>Durant ce talk nous verrons ensemble comment les nouveautés introduite depuis TypeScript 4 (Template Literals Types, Recursive Conditional Types etc) peuvent nous aider à rendre notre c
1359ode plus robuste et expressif.</p>", 1360 speakers: ['gregory_houllier'] 1361 }, { 1362 title: "Urbaniser un SI pour 10 ans", 1363 time: '19h30', 1364 length: '90 min', 1365 type: 'talk', 1366 abstract: "<p>Un SI, ça doit évoluer en permanence, et si possible, pas en faisant une refonte totale tous les 3 ans. Alors je vous propose de parler de microservices, de Domain-driven design, de déclaratif, de réactif, de chorégraphie et de plein d'autres beaux concepts d'urbanisation qui servent justement à ça : rendre votre SI évolutif, pour que votre prochaine urbanisation dure au moins 10 ans.</p>", 1367 speakers: ['christophe_quintard'] 1368 } 1369 ] 1370 }, 1371 { 1372 id: '2023_01_24', 1373 title: "Tooling monorepo polyglot + Architecture Microservices et cohérence des données", 1374 date: new Date(2023, 0, 24), //month begin at 0 1375 time: '19h00', 1376 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/290766700', 1377 place: 'eartsup', 1378 subjects: [ 1379 { 1380 title: 'Du tooling JS dans mon monorepo polyglot', 1381 time: '19h00', 1382 length: '30 min', 1383 type: 'quickie', 1384 abstract: "<p>Nous découvrirons comment les nouveaux outils JS (nx / turborepo) peuvent améliorer votre expérience et productivité sur un large monorepo.<br>Puis comment en bénéficier sur d'autres languages.</p>", 1385 speakers: ['nicolas_morel'] 1386 }, { 1387 title: "Architecture Microservices et cohérence des données : on fait comment pour de vrai ?", 1388 time: '19h30', 1389 length: '90 min', 1390 type: 'talk', 1391 abstract: "<p>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 de base 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 des serveurs SQL.</p><br>" 1392 + "<p>Quant aux transactions distribuées XA/2PC, oubliez les, 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 Eeventuate Tram vous permettra de les appréhender et de choisir la bonne option pour votre projet Microservices</p><br>", 1393 speakers: ['jean_francois_james'] 1394 } 1395 ] 1396 }, 1397 { 1398 id: '2022_12_13', 1399 title: "ð¸ Soirée de fin d'année ð¸ spéciale Java 19 avec José Paumard et Rémi Forax", 1400 date: new Date(2022, 11, 13), //month begin at 0 1401 time: '19h00', 1402 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/289829724', 1403 place: 'madeleine_icilundi', 1404 subjects: [ 1405 { 1406 title: 'Verre d\'accueil ð¸', 1407 time: '19h00', 1408 length: '30 min', 1409 type: 'hello', 1410 abstract: "<p>C'est bientôt la fin de l'année, alors nous vous proposons de commencer cette dernière soirée de la meilleure des manières avec un petit verre d'accueil offert par Decathlon</p>", 1411 }, { 1412 title: "Java 19 et au-delà : programmation orientée données et programmation asynchrone", 1413 time: '19h30', 1414 length: '90 min', 1415 type: 'talk', 1416 abstract: "Nous allons parler des deux sujets brûlants actuellement en développement en Java : la Programmation Orientée Données (Data Oriented Programming en anglais) et la programmation asynchrone.\n<br>" + 1417 "En programmation centrée sur les données, les données sont au premier plan et le code qui les traite au second. En programmation objet, ce qui est au premier plan, ce sont les API et les implémentations. Nous allons donc expliquer ces concepts, l'intérêt de les introduire en Java, et les nouveaux patterns de code que cela apporte. Nous verrons ce que le projet Amber a déjà livré dans le JDK 19 pour implémenter ces concepts, en version finale et en pré-version et ce qui est prévu pour les versions suivantes.\n<br>" + 1418 "Le JDK 19 contient en plus deux pré-versions livrés par le projet Loom. Tout d'abord les threads virtuels, plus légers que les threads classiques que l'on a depuis 25 ans. Ils peuvent être créés en plus grand nombre et peuvent être bloqués quasiment sans perte de performance. Ensuite, la programmation concurrente structurée introduit la notion de scope et propose un nouveau modèle de programmation asynchrone. Nous couvrirons ces deux sujets et verront comment cela va révolutionner l'écriture de code asynchrone.<br>", 1419 speakers: ['jose_paumard', 'remi_forax'] 1420 }, 1421 { 1422 title: 'Petits fours et Cocktail ð£ ð·', 1423 time: '21h', 1424 length: '3h', 1425 type: 'winter', 1426 abstract: "<p>Et pour bien finir, restez discuter avec nous autour d'un verre et des petits fours offerts par Decathlon ð</p>", 1427 }, 1428 ] 1429 }, {
1430 id: '2022_11_15', 1431 title: "Les post-mortems && Java dans Kubernetes", 1432 date: new Date(2022, 10, 15), //month begin at 0 1433 time: '19h00', 1434 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/289447972/', 1435 place: 'zenika', 1436 subjects: [ 1437 { 1438 title: "Les post-mortems ou comment sortir heureux dâun carnage", 1439 time: '19h00', 1440 length: '30 min', 1441 type: 'quickie', 1442 abstract: "Une fonctionnalité, un projet, une réunion, ça ne se passe pas toujours bien. Loin de là . Câest parfois même un carnage. ð± Que fait-on dans ces cas-là ? Ãa sâest terminé dans les larmes, le sang et la sueur mais quâimporte ! On met tout ça sous le tapis, câest fini, on en parle plus. ð<br><br>Pour que cela recommence encore la prochaine fois ? Pour que tout le monde en souffre sans oser en parler ? Pas la peine !<br><br>Alors on prend notre courage à deux mains, et on organise un POST-MORTEM. Mais qu'est-ce que c'est ? à quoi cela sert-il ? Et comment le mettre en place ? ð¤<br><br></br></br>Vous découvrirez dans ce talk les différentes étapes d'un post-mortem réussi et comment l'animer au mieux pour que chacun et chacune puisse être heureux.se après un tel carnage, sans pour autant être psychopathe ! ð", 1443 speakers: ['lise_quesnel'] 1444 }, 1445 { 1446 title: "Java dans Kubernetes pour ceux qui ne connaissent pas Kubernetes", 1447 time: '19h30', 1448 length: '90 min', 1449 type: 'talk', 1450 abstract: "Kubernetes, ca à l'air vraiment sympa, pour le scaling, la reproductibilité et tout et tout ... <br>Tout le monde en parle, et en plus c'est hype !<br> Alors, c'est le moment de passer dans le cloud et de migrer nos applications Java vers Kubernetes !<br>Oui mais ... enfin ... il y'a trop de fichiers YAML à maintenir et nous détestons le YAML ! Et en plus de maintenir l'application Java, il faut<ul><li>écrire et maintenir des Dockerfiles</li><li>écrire et maintenir plein de fichiers YAML</li><li>configurer et gérer la CI/CD pour le déploiement</li><li>etc.</li></ul>Et oui, pendant ce talk, nous allons souffrir ð¿ ... mais je vais vous tenir par la main et vous guider. Et c'est promis, vous sortirez de ce talk en sachant migrer vos applications Java dans Kubernetes en seulement 5 lignes de XML 𤣠... avec le projet JKube.", 1451 speakers: ['sun_tan'] 1452 } 1453 ] 1454 }, { 1455 id: '2022_10_04', 1456 title: "Micronaut Test Resources", 1457 date: new Date(2022, 9, 4), //month begin at 0 1458 time: '19h00', 1459 register: 'https://www.meetup.com/fr-FR/nantes-java-user-group/events/288667403/', 1460 place: 'cantine', 1461 subjects: [ 1462 { 1463 title: "REX Bit.dev : gadget ou indispensable ?", 1464 time: '19h00', 1465 length: '15 min', 1466 type: 'quickie', 1467 abstract: "Câest lâhistoire dâune équipe qui part à la recherche dâun outil pour leur simplifier la vie et le quotidien pour leur développement front. Une solution sâoffre à nous, Bit.dev, qui nous promet du Component-Driven-Development sans le moindre effort. Mais quâen est-it ? " + 1468 "<br><br>Je vous partagerais mon expérience, et celle de mes collègues. Pourquoi on a fait ce choix, comment on a pris en main et mis en place cet outil, son utilisation au quotidien et surtout ce quâon en a tiré.", 1469 speakers: ['lucille_moise'] 1470 }, 1471 { 1472 title: "Micronaut Test Resources", 1473 time: '19h30', 1474 length: '90 min', 1475 type: 'talk', 1476 abstract: "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." + 1477 "<br/>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." + 1478 "<br/>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." + 1479 "<br/>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." + 1480 "<br/>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." + 1481 "<br/>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.", 1482 speakers: ['cedric_champeau'] 1483 } 1484 ] 1485 }, 1486 { 1487 id: '2022_09_22', 1488 title: "Copilot // GraalVM", 1489 date: new Date(2022, 8, 22), //month begin at 0 1490 time: '19h00', 1491 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/288327013/', 1492 place: 'sii', 1493 subjects: [ 1494 { 1495 title: "Copilot : Lâintelligence artificielle au service des développeurs", 1496 time: '19h00', 1497 length: '30 min', 1498 type: 'quickie', 1499 abstract: "Amis développeurs, vous avez besoin :" + 1500 "<ul>" + 1501 "<li>dâécrire des tests pour vos applications Web/JavaScript ?</li>" + 1502 "<li>de compléter une classe Java dâaccès aux données ?</li>" + 1503 "<li>dâajouter des nouveaux services à votre déploiement containerisé ?</li>" + 1504 "</ul>" + 1505 "Tapez votre code, commentez votre besoin, et laissez Copilot vous assister et augmenter votre productivité! GitHub Copilot est un outil qui sâappuie sur lâintelligence artificielle pour vous aider à coder avec des « suggestions/autocompletions » très riches.<br>" + 1506 "Mais attention: Copilot, lâessayer câest adopter!", 1507 speakers: ['tugdual_grall'] 1508 }, 1509 { 1510 title: "A la découverte de GraalVM", 1511 time: '19h30', 1512 length: '60 min', 1513 type: 'talk', 1514 abstract: 1515 "<p>Débit élevés, temps de démarrage supersonique , utilisation rationnelle des resources Mémoire et CPU, Prise en charge native de plusieurs langages de programmation, Compilation en binaire exécutable des programmes Java, réduction des côuts d\'infrastru
1515cture dans le cloud public/privé, sont peut être des choses dont vous avez entendu parlé au sujet de Oracle GraalVM, Il yâa beaucoup de buzz autour de la nouvelle coqueluche de lâécosystème Java, mais quâest ce que câest exactement?</p>" + 1516 "<p>Nous vous proposons de faire connaissance avec GraalVM;</p>" + 1517 "<p>Que vous soyez développeur ou opérationnel, Gestionnaire dâapplication, d'infrastructure ou DSI , si vous évoluez dans un environment où foisonnent les technologies Java, NodeJS, Javascript, Python, Ruby, R ou même C et C++... Rejoignez cette web diffusion interactive en direct pour en savoir plus sur:</p>" + 1518 "<p></p>" + 1519 "<p>Le fonctionnement de GraalVM ainsi que les bénéfices que vous pourrez en tirer </p>" + 1520 "<p>Mettre les mains dans le cambouis et aller à la conquête de GraalVM </p>" + 1521 "<p>Découvrir les cas d\'usage innovant de GraalVM en entreprise et ainsi que des retours d\'expérience enrichissant</p>", 1522 speakers: ['elvadas_nono'] 1523 } 1524 ] 1525 }, 1526 { 1527 id: '2022_06_16', 1528 title: "ð¹ Cocktail // APM avec Glowroot // Spring Boot // Petits fours ð£ ð·", 1529 date: new Date(2022, 5, 16), //month begin at 0 1530 time: '19h00', 1531 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/285807648/', 1532 place: 'adresse_gare_sud', 1533 subjects: [ 1534 { 1535 title: 'Verre d\'accueil ð¸', 1536 time: '19h00', 1537 length: '30 min', 1538 type: 'hello', 1539 abstract: "<p>C'est bientôt l'été, alors nous vous proposons de commencer cette dernière soirée de la meilleure des manières avec un petit verre d'accueil</p>" 1540 }, 1541 { 1542 title: "Glowroot : un APM à portée des devs", 1543 time: '19h30', 1544 length: '30 min', 1545 type: 'talk', 1546 abstract: "Une présentation rapide des APM (Application Performance Management), et en particulier de Glowroot, un APM Open Source, gratuit et très simple à mettre en oeuvre pour commencer à monitorer ses applications au plus tôt", 1547 speakers: ['pierre_clainchard'] 1548 }, 1549 { 1550 title: 'AOT and Native with Spring Boot 3.0', 1551 time: '20h00', 1552 length: '1h', 1553 type: 'talk', 1554 abstract: '<p>Après une phase d\'expérimentation avec le projet Spring Native, l\'équipe Spring contribue le support Ahead of Time (AOT) à Spring.</p>' + 1555 '<p>Cette nouvelle fonctionnalité va permettre un support des applications natives avec GraalVM mais aussi améliorer l\'efficacité des applications JVM classiques.</p>' + 1556 '<p>Pendant cette présentation, Brian va détailler l\'état de l\'art du support AOT dans Spring Framework 6.0 et Spring Boot 3.0:</p>' + 1557 '- l\'architecture du moteur AOT</br>' + 1558 '- comment cette nouvelle infrastructure peut-être utilisée par des librairies</br>' + 1559 '- l\'expérience développeur</br>', 1560 speakers: ['brian_clozel'] 1561 }, 1562 { 1563 title: 'Petits fours et Cocktail ð£ ð·', 1564 time: '21h00', 1565 length: '3h', 1566 type: 'summer', 1567 abstract: "<p>Et pour bien finir, restez discuter avec nous autour d'un verre et des petits fours ð</p>" 1568 }, 1569 ] 1570 }, 1571 { 1572 id: '2022_05_24', 1573 title: "Reactive spring // Une application métier durable en hexagone et en Spring Boot", 1574 date: new Date(2022, 4, 24), //month begin at 0 1575 time: '19h00', 1576 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/285805082/', 1577 place: 'onepoint', 1578 subjects: [ 1579 { 1580 title: "Concevoir une application réactive avec Spring ", 1581 time: '19h00', 1582 length: '60 min', 1583 type: 'talk', 1584 abstract: "Présentation des concepts de la programmation réactive avec Spring boot.\n" + 1585 "<br>Au programme :\n<ul>" + 1586 "<li>Présentation de Spring Webflux</li>\n" + 1587 "<li>Présentation de Reactor</li>\n" + 1588 "<li>Démo avec des Usecases Synchrones/Asynchrones</li>" + 1589 "</ul>", 1590 speakers: ['julien_bideau'] 1591 }, 1592 { 1593 title: "Une application métier durable en hexagone et en Spring Boot", 1594 time: '20h00', 1595 length: '60 min', 1596 type: 'talk', 1597 abstract: 1598 "Nos logiciels suivent les évolutions des besoins de leurs utilisateurs. " + 1599 "<br>Fonctionnalités après fonctionnalités, on finit toujours par avoir ce défi de ranger ce code spaghettis, de refaire l'architecture logicielle pour séparer des responsabilités et modulariser le code. " + 1600 "<br>Nous verrons avec l'architecture hexagonale et la modularité de Spring Boot, une des meilleures solutions que je connaisse.", 1601 speakers: ['nicolas_fedou'] 1602 } 1603 ] 1604 }, 1605 { 1606 id: '2022_04_19', 1607 title: "𤯠Préparation mentale // Biais cognitifs dans le dev ð§ ", 1608 date: new Date(2022, 3, 19), //month begin at 0 1609 time: '19h00', 1610 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/284797567', 1611 place: 'lepalace', 1612 subjects: [ 1613 { 1614 title: "Préparation mentale", 1615 time: '19h00', 1616 length: '25 min', 1617 type: 'quickie', 1618 abstract: 1619 "<p>Introduire les principes de base de la préparation mentale dans le monde de l'entreprise, et transmettre le bon équilibre entre le désir de réussir et le plaisir d'apprendre.</p>", 1620 speakers: ['julien_deville'] 1621 }, { 1622 title: "Notre cerveau est \"null\"! Quelques biais cognitifs appliqués au métier de dev...", 1623 time: '19h30', 1624 length: '50 min', 1625 type: 'talk', 1626 abstract: 1627 "<p>Pourquoi est-ce que nos chiffrages sont si souvent à côté de la plaque? </br>" + 1628 "Pourquoi le besoin métier est-il à ce point systématiquement mal cerné? </br>" + 1629 "Est-ce vraiment pertinent d'écrire des tests avant de coder? </br>" + 1630 "Autant de questions dont la réponse peut se trouver dans l'étude de nos biais cognitifs!</p>" + 1631 "<p>J'aurais d'ailleurs pu pompeusement titrer ce talk: Que nous apprennent les neurosciences au sujet de la vie des projets. </br>" + 1632 "Mais on ne parlera pas ici de neurosciences, juste de quelques bases de psychologie sociale ou cognitive adaptée au monde du développement logiciel. En prime, et en toute gratuité, vous repartirez avec des armes, des outils concrets pour mieux combattre des travers que nous avons tous !</p>", 1633 speakers: ['sylvain_coudert'] 1634 } 1635 ] 1636 }, 1637 { 1638 id: '2022_04_08', 1639 title: "La Nuit des Meetups", 1640 date: new Date(2022, 3, 8), //month begin at 0 1641 time: '19h15', 1642 register: 'https://www.lacantine.co/agenda/event/08-04-2022-lanuitdesmeetups/', 1643 place: 'cantine', 1644 subjects: [ 1645 { 1646 title: "Programme sur le site de l'évènement", 1647 time: '18h00', 1648 length: '4h', 1649 type: 'talk', 1650 abstract: 1651 "<p>Le Nantes JUG est heureux de participer à la Nuit des Meetups avec pleins de talks au programme !!</p>" + 1652 "<p>ð Les <a href=\"https://www.lacantine.co/agenda/event/08-04-2022-lanuitdesmeetups/\" target=\"_blank\">inscriptions se font sur la page de l'évènement</a>.</p>" + 1653 "<p>Vous connaissez la Nuit des Chercheur·euse·s ð§¬ou bien encore celle des Musées ð? Vous voulez vous abreuver de contenus techniques dans une ambiance sympathique ?</p>" + 1654 "<p>Nous vous proposons de découvrir un nouvel évènement à destination des communautés tech : la première Nuit des meetups de Nantes !</p>" + 1655 "<p>Lors de cette soirée (tardive), nous inviterons les organisateurs de meetups tech à proposer de courtes conférences, expertes ou vulgarisées, à destination de toutes et tous.</p>" + 1656 "<p>Seront présent·e·s : Software Crafters, Cocoaheads Nantes, GDG Nantes Android, Blockchain et société, Nantes Numerique Responsable, Craft Your product, Agile Nantes, Human Talks, GDG Nantes, Nantes Devops, Nantes JUG, NoCodeâ¦</p>" + 1657 "<p>Ce sera également lâoccasion de mixer les contenus, dâassister à des conférences que vous nâavez peut être pas lâhabitude de voir et de proposer aux entreprises qui s
1657ouhaitent accueillir les meetups à lâannée de se présenter de manière conviviale.</p>" + 1658 "<p><i>[<a href=\"https://www.lacantine.co/agenda/event/08-04-2022-lanuitdesmeetups/\" target=\"_blank\">Programme en cours de création</a>]<i></p>" + 1659 "<p>Vous pouvez vous pré-inscrire dès maintenant, lâensemble du programme sera disponible en mars.</p>", 1660 speakers: [] 1661 } 1662 ] 1663 }, 1664 { 1665 id: '2022_03_29', 1666 title: "Katas d'architecture // Checklist pour concevoir une application dans le cloud", 1667 date: new Date(2022, 2, 29), //month begin at 0 1668 time: '19h00', 1669 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/284488055/', 1670 place: 'eartsup', 1671 subjects: [ 1672 { 1673 title: "Améliorer les compétences et les infrastructures avec les katas d'architecture", 1674 time: '19h00', 1675 length: '20 min', 1676 type: 'quickie', 1677 abstract: 1678 "<p></p>", 1679 speakers: ['alexandre_touret'] 1680 }, { 1681 title: "Checklist pour concevoir une application dans le cloud : 10 conseils à l'attention des concepteurs et architectes", 1682 time: '19h30', 1683 length: '45 min', 1684 type: 'talk', 1685 abstract: 1686 "<p>Kubernetes et les technologies cloud sont aujourd'hui les standards pour déployer des applications de toutes sortes dans le cloud: api, batchs, microservices et même des monolithes!" + 1687 "Au delà de la hype - et des trolls, ils apportent des solutions à beaucoup de problèmes mais aussi une grande complexité.</p>" + 1688 "<p>Il peut donc être très difficile pour les développeurs et concepteurs d'identifier les contraintes de telles architectures. </p>" + 1689 "<p>Dans cette présentation, vous (re)découvrirez dix astuces et conseils que j'ai pu mettre en pratique et qui m'ont aidé dans mes derniers projets.</p>" + 1690 "<p>Ces derniers traiteront :" + 1691 "<ul>" + 1692 "<li>de la pertinence du cloud dans vos projets et organisations</li>" + 1693 "<li>du choix des solutions technologiques</li>" + 1694 "<li>des contraintes de conception liées à K8S</li>" + 1695 "<li>du développement</li>" + 1696 "<li>de la gestion des livraisons au travers de la CI</li>" + 1697 "<li>de lâobservabilité </li>" + 1698 "<li>et plus encore !</li>" + 1699 "</ul>" + 1700 "</p>", 1701 speakers: ['alexandre_touret'] 1702 } 1703 ] 1704 }, 1705 { 1706 id: '2022_02_22', 1707 title: "Soirée Quickies : écrire un livre, développer sans JDK et immutabilité", 1708 date: new Date(2022, 1, 22), //month begin at 0 1709 time: '19h15', 1710 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/283354801', 1711 place: 'eartsup', 1712 subjects: [ 1713 { 1714 title: "Ivre et au chômage, elle décide d'écrire un livre sur le Scala en plein Covid", 1715 time: '19h15', 1716 length: '20 min', 1717 type: 'quickie', 1718 abstract: 1719 "<p>REX sur l'écriture d'un premier livre : comment s'est arrivé ? Pourquoi j'ai accepté ? Par quelles étapes de dépression suis-je passée ?<br>" + 1720 "Je vais parler des relations avec l'équipe éditoriale, des délais, des étapes de la réalisation d'un livre du jour 1 avec les premières lignes jusqu'à la livraison.<br>" + 1721 "Je ne m'arrête pas là , on va parler de marketing, publicité, impression, sortie officielle du livre et pourquoi je ne referai plus ça.</p>", 1722 speakers: ['agnes_maury'] 1723 }, { 1724 title: "Qui a dit quâil fallait avoir un JDK sur son poste pour développer une application Java ? Prenez votre IDE Cloud GitPod et le tour est joué ðª", 1725 time: '19h40', 1726 length: '20 min', 1727 type: 'quickie', 1728 abstract: 1729 "<p>Quand on arrive sur des projets, la configuration de votre poste est une étape obligatoire : avoir la bonne version du JDK, de Maven ou de librairies. Le tout avec quelques Mo / Go qui sâaccumulent sur votre disque dur.</p>" + 1730 "<p>Avec lâarrivée des IDE Cloud tels que GitPod, la configuration nécessaire sur un projet est mutualisée sur le cloud et cette étape qui pouvait devenir une réelle galère nâest plus quâun lointain souvenir !</br>" + 1731 "Après vous avoir présenté en quelques mots GitPod, je vous ferai une démonstration de ce qui est possible pour un dev Java.</p>", 1732 speakers: ['jean_philippe_baconnais'] 1733 }, { 1734 title: "L'immutabilité en Java quand on a la flemme", 1735 time: '20h00', 1736 length: '20 min', 1737 type: 'quickie', 1738 abstract: 1739 "<p>L'immutabilité c'est cool ! L'immutabilité c'est tendance ! Mais l'immutabilité, c'est quoi au fait ?</br>" + 1740 "En principe, c'est garantir qu'une structure de donnée ne puisse être modifiée et donc muter. Dans la plupart des langages fonctionnelles comme Haskell, c'est même la norme. Mais en Java ... c'est pas vraiment ça. Il y a peut-être les records qui sont apparus en preview sur la JDK14, c'est vrai, mais ça reste très limité et peu flexible.</br>" + 1741 "Heureusement, il est possible de s'arranger à rendre Java immutable au prix de pas mal d'effort. Mais quand on a la flemme ? ... Comment faire ? ...</p>", 1742 speakers: ['laurent_delemotte'] 1743 } 1744 ] 1745 }, 1746 { 1747 id: '2022_02_09', 1748 title: "OpenApi Generator / Fuites de données", 1749 date: new Date(2022, 1, 9), //month begin at 0 1750 time: '19h00', 1751 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/283502336/', 1752 place: 'eartsup', 1753 subjects: [ 1754 { 1755 title: "Approche \"contract-first\" avec OpenApi Generator", 1756 time: '19h00', 1757 length: '35 min', 1758 type: 'talk', 1759 abstract: 1760 "<p>L'API c'est la UI du développeur backend. Trop souvent on se contente d'une documentation générée à la fin. Pourquoi ne pas la placer au premier plan ?</p>" + 1761 "<p><b>â â â La présentation d'un pass sanitaire (ou vaccinal) est obligatoire. â â â </b></p>", 1762 speakers: ['thibault_duperron'] 1763 }, { 1764 title: "10 leçons sur les 10 plus grosses fuites de données", 1765 time: '19h40', 1766 length: '35 min', 1767 type: 'talk', 1768 abstract: 1769 "<p>Sony, Ãber, Yahoo, Adult Friends finder, ces noms vous disent quelque chose ?</br>" + 1770 "Vous utilisez peut-être les services de ses entreprises.</br>" + 1771 "Elles ont aussi un point commun, elles ont subi une fuite de leurs données utilisateurs.</br>" + 1772 "Comment les hackers sây sont pris ? et surtout Quelles leçons peut-on en tirer pour le développement de nos applications ?</br></p>" + 1773 "<p><b>â â â La présentation d'un pass sanitaire (ou vaccinal) est obligatoire. â â â </b></p>", 1774 speakers: ['adrien_pessu'] 1775 } 1776 ] 1777 }, 1778 { 1779 id: '2021_12_01', 1780 title: "Spot d'AWS : penser son archi pour laisser tomber les serveurs", 1781 date: new Date(2021, 11, 1), //month begin at 0 1782 time: '19h00', 1783 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/282094863', 1784 place: 'eartsup', 1785 subjects: [ 1786 { 1787 title: "Spot d'AWS : penser son archi pour laisser tomber les serveurs", 1788 time: '19h00', 1789 length: '90 min', 1790 type: 'talk', 1791 abstract: 1792 "<p>Introduction aux instances spot AWS pour faire des économies et améliorer la résilience de ses applications.</p>" + 1793 "<p>Depuis plusieurs années, AWS propose d'utiliser des machines SPOT, des VMs bradées mais qui peuvent vous être retirées à tout moment. Découvrez comment Sparklane a pensé son architecture résiliante et son outillage DevOps pour profiter au maximum de ce type de machine et ainsi rédu
1793ire considérablement ses coûts de hosting.</p>" + 1794 "<p><b>â â â La présentation d'un pass sanitaire est obligatoire. â â â </b></p>", 1795 speakers: ['thomas_brosillon', 'thomas_rossignol'] 1796 } 1797 ] 1798 }, 1799 { 1800 id: '2021_09_16', 1801 title: "Décollage de microservices Micronaut en Java dans les nuages", 1802 date: new Date(2021, 8, 16), //month begin at 0 1803 time: '18h00', 1804 register: 'https://gdg.community.dev/events/details/google-gdg-cloud-nantes-presents-decollage-de-microservices-micronaut-en-java-dans-les-nuages/', 1805 place: 'online', 1806 subjects: [ 1807 { 1808 title: "Décollage de microservices Micronaut en Java dans les nuages", 1809 time: '18h15', 1810 length: '60 min', 1811 type: 'talk', 1812 abstract: 1813 "<p>Au lieu de passer trop de temps sur de l'infra, prenez avantage des solutions serverless. Focalisez vous sur votre code Micronaut, et déployer le rapidement sous forme de fonction, d'application, ou dans un conteneur, sur Google cloud Platform.</p>" + 1814 "<p>Dans cette session, vous découvrirez les choix offerts par Google Cloud pour déployer des applications Micronaut. Avec Micronaut Launch, c'est d'autant plus facile pour démarrer un nouveau projet à partir d'un template, et après quelques modifications, d'être capable de déployer en production dans la minute qui suit.</p>" + 1815 "<p>Grâce à ses performances, sa faible consommation mémoire, la possibilité de créer des images natives, Micronaut démarre au quart de tour, et est particulièrement bien adapté pour le cloud et les solutions serverless.</p>" + 1816 '<p>Cette session "Java & Google Cloud" est co-organisée avec le <a href="https://gdg.community.dev/gdg-cloud-nantes/">GDG Cloud Nantes</a>.</p>', 1817 speakers: ['guillaume_laforge'] 1818 } 1819 ] 1820 }, 1821 { 1822 id: '2020_12_16', 1823 title: "Comment votre application peut être une bonne citoyenne du Cloud (Virtuel)", 1824 date: new Date(2020, 11, 16), //month begin at 0 1825 time: '18h45', 1826 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/275018773', 1827 place: 'online', 1828 subjects: [ 1829 { 1830 title: "Comment votre application peut être une bonne citoyenne du Cloud", 1831 time: '19h00', 1832 length: '60 min', 1833 type: 'talk', 1834 abstract: "<p>Venez découvrir dans cette session 100% live coding et interactive comment Java revient en force dans le monde du Cloud.</p>" 1835 + "<p>On verra comment des nouvelles stacks Java peuvent s'intégrer et tirer profit des nouvelles contraintes imposées par le monde merveilleux du cloud</p>", 1836 speakers: ['sebastien_blanc'] 1837 } 1838 ] 1839 }, { 1840 id: '2020_10_26', 1841 title: "Des petites voitures sur AWS et du scripting en Java avec jbang", 1842 date: new Date(2020, 9, 26), //month begin at 0 1843 time: '19h00', 1844 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/274020038/', 1845 place: 'lepalace', 1846 subjects: [ 1847 { 1848 title: "Comment j'ai fini par déployer à 2h du matin une application sur AWS pour piloter des voitures électriques avec un vélo d'appartement.", 1849 time: '19h15h', 1850 length: '30 min', 1851 type: 'quickie', 1852 abstract: "<p>- J'ai une super idée, mais je vais avoir besoin d'aide, parce que moi et le code...<br>" + 1853 "ha ?<br>" + 1854 "- Je voudrais faire tourner des voitures électriques sur un circuit en faisant pédaler des gens pendant 24h<br>" + 1855 "...<br>" + 1856 "- Tu vois comment faire ?<br>" + 1857 "- Alors... c'est pas dur... Il suffit de deux Arduino, d'un Raspberry, quelques capteurs et c'est parti...</p>" + 1858 "<p>Et voilà à peu près comment en 2 minutes jâai été convaincu de suivre un hurluberlu dans un projet franchement rigolo mêlant de nombreuses technos.</p>" + 1859 "<p>Et cerise sur le gâteau, les aléas techniques mâont conduit jusquâà déployer la solution sur AW
1859S depuis une salle des fêtes en rase campagne un jour de tempête avec pour seule connexion mon téléphoneâ¦</p>", 1860 speakers: ['nicolas_giraud'] 1861 }, 1862 { 1863 title: "Scripting en Java avec jbang", 1864 time: '20h00', 1865 length: '30 min', 1866 type: 'quickie', 1867 abstract: "<p>Si vous aussi vous maîtrisez Java mais pas le bash, et si vous aussi vous aimez le support d'un IDE pour faire un script, alors venez découvrir le pouvoir de jbang et du scripting en Java.</p><hr><p>â ï¸â ï¸â ï¸<i>En raison des contraintes sanitaires, nous ne serons pas en mesure d'organiser l'apéritif de fin de soirée.<br/>" 1868 + "Venez avec vos masques, qui sont obligatoires tout au long de la soirée.</i>â ï¸â ï¸â ï¸</p>", 1869 speakers: ['gautier_de_saint_martin_lacaze'] 1870 } 1871 ] 1872 }, { 1873 id: '2020_09_29', 1874 title: "Chaos Engineering avec Spring / Data science avec les projets Apache", 1875 date: new Date(2020, 8, 29), //month begin at 0 1876 time: '19h00', 1877 register: 'https://www.meetup.com/Nantes-Java-User-Group/events/273424912/', 1878 place: 'eartsup', 1879 subjects: [ 1880 { 1881 title: "Comment pratiquer le Chaos engineering avec Spring Boot", 1882 time: '19h15h', 1883 length: '30 min', 1884 type: 'quickie', 1885 abstract: "<p>On parle souvent de chaos engineering mais dans la pratique ça donne quoi ? En tant que développeur, j'ai l'impression que cette discipline est réservée au OPS. </p>" 1886 + "<p>Sur un projet Java avec Spring Boot, puis je faire du chaos engineering ? </p><p>Dans ce quickie, on vous donne la solution avec 'Chaos Monkey for Spring Boot'.</p>" 1887 , 1888 speakers: ['julien_mourgues'] 1889 }, 1890 { 1891 title: "Drilling Zeppelin: data science dans la galaxie apache", 1892 time: '20h00', 1893 length: '30/40 min', 1894 type: 'quickie', 1895 abstract: "<p>Il existe de nombreux projets de la fondation apache liés à la data science: Zeppelin, Drill, Spark, Flink, etc.</p>" + 1896 "<p>Dans ce talk, nous verrons comment utiliser ensemble ces projets pour faire de la data science sur son PC ou sur un serveur simplement en branchant les projets apache les uns aux autres.</p>" 1897 + "<p> </p><p> </p><hr><p>â ï¸â ï¸â ï¸<i>En raison des contraintes sanitaires, nous ne serons pas en mesure d'organiser l'apéritif de fin de soirée.<br/>" 1898 + "Venez avec vos masques, qui sont obligatoires tout au long de la soirée.</i>â ï¸â ï¸â ï¸</p>", 1899 speakers: ['julien_tanguy'] 1900 } 1901 1902 ] 1903 }, { 1904 id: '2020_03_12', 1905 title: "Accessibilité // Architecture Hexagonale Level 2", 1906 date: new Date(2020, 2, 12), //month begin at 0 1907 time: '19h00', 1908 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/269153499/', 1909 place: 'hep-campus', 1910 subjects: [ 1911 { 1912 title: "Envie de faire de l'accessibilité ? Enjeux et mise en place", 1913 time: '19h00', 1914 length: '30 min', 1915 type: 'quickie', 1916 abstract: "<p>L'accessibilité des sites web est un enjeu de société. Pourquoi est-il si difficile de la mettre en pratique ?</p>", 1917 speakers: ['david_caillaud'] 1918 }, 1919 { 1920 title: "Architecture Hexagonale Level 2 : Comment bien écrire ses tests", 1921 time: '19h45', 1922 length: '1h', 1923 type: 'talk', 1924 abstract: "<p>De plus en plus dâéquipes adoptent lâarchitecture hexagonale comme structure de prédilection pour leurs applications métiers, mais peu dâentre elles savent réellement bien les tester. Et malheureusement lorsque lâon se plante sur ce point, la maintenance de notre architecture hexa devient un véritable calvaire !</p> " + 1925 "<p>Lors de ce talk, nous allons aborder les 5 niveaux de tests préconisés pour les microservices adaptés à l'architecture héxagonale. Et en prime comment avoir une documentation drivée par les tests. Venez découvrir à côté de quoi vous êtes peut-être passés dans le développement de vos tests !</p>" + 1926 "<p>Ceci est une live coding session en Java/Kotlin SpringBoot.</p>", 1927 speakers: ['julien_topcu', 'jordan_nourry'] 1928 } 1929 ] 1930 }, {
1931 id: '2020_02_13', 1932 title: "Motivation et Scaling Java Application", 1933 date: new Date(2020, 1, 13), //month begin at 0 1934 time: '19h00', 1935 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/268263166/', 1936 place: 'sii', 1937 subjects: [ 1938 { 1939 title: "Comment fonctionne la motivation ?", 1940 time: '19h00', 1941 length: '30 min', 1942 type: 'talk', 1943 abstract: "<p>On recherche un développeur motivéâ. Vous avez déjà certainement vu cette offre dâembauche.</p>" + 1944 "<p>Quâest-ce quâêtre motivé et est-ce un état permanent comme lâévoque cette phrase ?</p>" + 1945 "<p>On verra les mécanismes de la motivation et comment faire pour motiver quelquâun.</p>", 1946 speakers: ['guillaume_blondeau'] 1947 }, 1948 { 1949 title: "Scaling Java Application : Vers lâinfini et au delà ", 1950 time: '19h45', 1951 length: '1h', 1952 type: 'talk', 1953 abstract: "<p>Un moteur de calcul de prix en Java et scalable jusquâà lâinfini câest possible ! Mais à notre grande surprise le chemin était pavé dâembuches.</p>" + 1954 "<p>Dans cette présentation, je partage les différentes étapes, les problèmes rencontrés, les solutions ainsi que les outils qui nous ont permit dâatteindre cet objectif. On y parle JVM, Docker, AWS, Off-heap, Caching, Postgresql, Concurrence et autres réjouissances qui sortent un peu de notre quotidien de développeur.</p>", 1955 speakers: ['julien_roy'] 1956 } 1957 ] 1958 }, { 1959 id: '2020_01_20', 1960 title: "Tendances marché // Redis : du Clé/Valeur au Multimodèle", 1961 date: new Date(2020, 0, 20), //month begin at 0 1962 time: '19h00', 1963 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/267743136/', 1964 place: 'talend', 1965 subjects: [ 1966 { 1967 title: "Baromètre des salaires et des tendances marché sur lâenvironnement Java / JVM", 1968 time: '19h00', 1969 length: '15 min', 1970 type: 'quickie', 1971 abstract: "<p>Je viens vous restituer une partie de l'analyse réalisée dans le cadre du baromètre des salaires.</p>" + 1972 "<p>Cette étude est basée sur les + 1300 candidats rencontrés l'année dernière et + 200 entreprises accompagnées.</p>", 1973 speakers: ['benjamin_casseron'] 1974 }, 1975 { 1976 title: "Redis : du Clé/Valeur au Multimodèle", 1977 time: '19h30', 1978 length: '1h', 1979 type: 'talk', 1980 abstract: "<p>Vous connaissez surement Redis l'une des bases de données NoSQL les plus populaires chez les développeurs. D'ailleurs Vous l'utilisez peut être déjà , mais sûrement de façon simple: en clé/valeur sous forme de cache. Mais Redis est bien plus que cela !</p>" + 1981 "<p>Durant cette présentation vous découvrirez, avec des démonstrations, les structures de données telles que les Hash, Set, Sorted Set, Geospatial, Pub/Sub et Streams, qui nativement vous offrent de nombreuses options pour enrichir simplement vos applications.</p>" + 1982 "<p>Vous verrez également que Redis avec son système d'extensions (les Modules Redis) permet maintenant de gérer plusieurs modèles de données (Structures, Commandes) :" + 1983 "<ul><li>JSON</li>" + 1984 "<li>Time Series</li>" + 1985 "<li>Search</li>" + 1986 "<li>Graph</li>" + 1987 "<li>Bloom Filter</li></ul></p>" + 1988 "<p>En résumé une base de donnée polyglotte parfaite pour vos micro-services !</p>", 1989 speakers: ['tugdual_grall'], 1990 docs: [ 1991 { name: 'La vidéo du talk', url: 'https://youtu.be/OqkFDtgMAYk', type: 'youtube' }, 1992 ] 1993 1994 } 1995 ] 1996 }, 1997 { 1998 id: '2019_12_03', 1999 title: "Retour d'experience Kubernetes - Soirée de fin d'année!", 2000 date: new Date(2019, 11, 3), //month begin at 0 2001 time: '19h00', 2002 register: 'https://www.meetup.com/Nantes-Java-User-Group/events/266458249/', 2003 place: 'resto_grand_t', 2004 subjects: [ 2005 { 2006 title: "Meet & Greet", 2007 time: '19h00', 2008 length: '30 min', 2009 type: 'buffet', 2010 abstract: "<p>Verre de bienvenue offert par les sponsors du JUG</p>", 2011 speakers: [] 2012 }, 2013 { 2014 title: "Kubernetes: Retour d'Experience par VPTech", 2015 time: '19h30', 2016 length: '1h', 2017 type: 'talk', 2018 abstract: "<b><br/>En collaboration avec le Meetup 'CNCF Nantes'<br/><br/></b><p>Durant cette presentation Thomas, Ludovic et Pierre Antoine de VPTech ferons un retour dâexpérience de l'utilisation de Kubernetes au sein de lâorganisation Vptech.</p><p>Du développement à la mise en production, quels sont les outils et procédures mis en place afin dâaugmenter la fiabilité et le time to market des développements.</p><p>2 points de vue vous seront présentés, celui des <b>SRE</b> et celui des <b>développeurs</b>.</p>", 2019 speakers: ['ludovic_paquet', 'pierre_antoine_ollivier', 'thomas_piart'], 2020 docs: [ 2021 { name: 'Les slides du talk', url: 'https://drive.google.com/file/d/1iPTGrXIUdADeguKFEyGly-_UET2X0Czj', type: 'pdf' }, 2022 ] 2023 }, 2024 { 2025 title: "Meet & Greet", 2026 time: '20h30', 2027 length: '2h', 2028 type: 'buffet', 2029 abstract: "<p>Buffet offert par les sponsors du JUG</p>", 2030 speakers: [] 2031 } 2032 ] 2033 }, 2034 { 2035 id: '2019_11_17', 2036 title: "GitOps & Infra as code avec Pulumi // AWS : 10 trucs que jâaurais aimé connaître", 2037 date: new Date(2019, 10, 7), //month begin at 0 2038 time: '19h00', 2039 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/265679860/', 2040 place: 'eartsup', 2041 subjects: [ 2042 { 2043 title: 'GitOps & Infra as code avec Pulumi', 2044 time: '19h00', 2045 length: '45 min', 2046 type: 'talk', 2047 abstract: "<p>Arrivée avec Kubernetes, nous verons comment la pratique <b>GitOps</b>
2047 peut se décliner pour déployer nos infrastructures et applications sur <b>AWS</b>.</br>" + 2048 "Ce quickie sera l'occasion de découvrir l'outil d'infra as code qui fait le buzz en ce moment, <b>Pulumi</b>.</br>" + 2049 "Alors venez dire bye-bye à vos anciennes pratiques ð</p>", 2050 speakers: ['manuel_boillod'] 2051 }, 2052 { 2053 title: 'AWS : les 10 trucs que jâaurais aimé connaître avant de commencer', 2054 time: '19h40', 2055 length: '1h', 2056 type: 'talk', 2057 abstract: "<p>Tout le monde veut se lancer sur le cloud avec AWS. Après tout, suivre les tutos ce nâest pas si compliqué. Mais après quelques jours, les ennuis commencent : instances qui rament, montées de version des services imposées, facture salée⦠:â( Je vous partagerais 10 points qui m'ont fait passer de ð± ou ð© en passant par ð° vers ð¾.</p>" + 2058 "<p>Quel instances choisir parmis les 170 modèles? Pourquoi les accès disques sont bridés ? ... Autant de questions auxquelles j'apporterais des éléments de réponses.</p>", 2059 speakers: ['guillaume_membre'] 2060 } 2061 ] 2062 }, { 2063 id: '2019_10_15', 2064 title: "Apache Pulsar // â³ï¸ Votre API passe-t-elle le contrôle technique ?", 2065 date: new Date(2019, 9, 15), //month begin at 0 2066 time: '19h00', 2067 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/265336817/', 2068 place: 'eartsup', 2069 subjects: [ 2070 { 2071 title: 'Introduction à Apache Pulsar', 2072 time: '19h00', 2073 length: '30 min', 2074 type: 'quickie', 2075 abstract: "<p>\"Apache Pulsar, encore un système de messages pub/sub\", me direz-vous ? C'est pas faux... </p>" + 2076 "<p>Néanmoins, regardons de plus près... Pulsar est devenu un Top Level Project de la fondation Apache au mois de septembre 2018 et il se targue de vouloir unifier les modèles de messages traditionnels et le streaming, tout en fournissant un système extrêmement performant. " + 2077 "Alors partons à la découverte de ce nouveau pulsar pour voir de quoi il retourne !</p>", 2078 speakers: ['bruno_bonnin'] 2079 }, 2080 { 2081 title: 'â³ï¸ Votre API passe-t-elle le contrôle technique ?', 2082 time: '19h40', 2083 length: '1h', 2084 type: 'talk', 2085 abstract: "<p>Nous savons tous développer une API mais avons-nous bien intégré toutes les problématiques?</p>" + 2086 "<p>Son aspect organisationnel et humain, sa gouvernance, ses contraintes business et d'opérabilité (SLA, SLO, SLI), son release management, ses méthodes de requêtage, sa sécurité (ses performances, sa mise à l'échelle), ses différents types de test, sa documentation, son versioning (compatibilité, changelog), son monitoring â et bien plus encore â de cette API une fois en production ?</p>" + 2087 "<p>Durant ce talk, c'est plus de 70 points d'attentions rarement évoqué que je vous propose d'aborder, à la lumière de retours d'expériences provenant de tech-leader comme Uber, Stripe, Facebook et Google mais aussi d'entreprise française de la petite startup à la PME.</p>", 2088 speakers: ['francois_guillaume_ribreau'] 2089 } 2090 ] 2091 }, { 2092 id: '2019_09_24', 2093 title: "Les nouveautés Eclipse IDE // Ãcrire des tests ? Câest illogique.", 2094 date: new Date(2019, 8, 24), //month begin at 0 2095 time: '19h00', 2096 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/264731630/', 2097 place: 'talend', 2098 subjects: [ 2099 { 2100 title: 'Les nouveautés Eclipse IDE', 2101 time: '19h00', 2102 length: '30 min', 2103 type: 'quickie', 2104 abstract: "<p>Vous êtes développeur Java et vous utilisez Eclipse IDE, mais connaissez vous réellement ses dernières nouveautés ?</p>" + 2105 "<p>Au travers de cette présentation, je vous propose de découvrir les fonctionnalités de l'IDE Eclipse introduite dans les dernières release.</p>" + 2106 "<p>Cette présentation s'adresse aussi bien aux novices qu'aux chevronnées ayant envie d'apprendre à mieux connaître leur outil de développement quotidien.</p>", 2107 speakers: ['gautier_de_saint_martin_lacaze'] 2108 }, 2109 { 2110 title: 'Ãcrire des tests ? Câest illogique.', 2111 time: '19h40', 2112 length: '1h', 2113 type: 'talk', 2114 abstract: '<p>Ãcrire des tests c\'est bien, rédiger des spécifications c\'est mieux.</p>' + 2115 '<p>C\'est la promesse de Spock, un framework de spécification dont l\'objectif est d\'organiser nos tests afin de les rendre facile à lire, rapide à comprendre et simple à maintenir.</p>', 2116 speakers: ['adrien_bonnin'] 2117 } 2118 ] 2119 }, {
2120 id: '2019_06_25', 2121 title: "Soirée Quickies + ð¸", 2122 date: new Date(2019, 5, 25), //month begin at 0 2123 time: '19h00', 2124 register: 'http://meetu.ps/e/GNbSS/4xjVv/f', 2125 place: 'adresse_gare_sud', 2126 subjects: [ 2127 { 2128 title: 'Verre dâaccueil ð¸', 2129 time: '19h00', 2130 length: '15 min', 2131 type: 'hello', 2132 abstract: "<p>Quoi de mieux pour commencer cette dernière soirée avant l'été que de commencer par un petit verre d'accueil ð</p>" 2133 }, 2134 { 2135 title: 'Faire un chatbot en Java avec Spring Boot ', 2136 time: '19h15', 2137 length: '25 min', 2138 type: 'quickie', 2139 abstract: '<p>Retour sur la hype des chatbots qui ne s\'estompe pas, avec tous les jours de nouveaux bots et de nouveaux acteurs.' + 2140 '<ul style="margin:0"><li>Pourquoi un tel engouement sur les chatbots ?</li>' + 2141 '<li>Pourquoi le faire en Java ?</li>' + 2142 '<li>Revue des différents NLP (Natural language processing)</li>' + 2143 '<li>Quels sont les pièges à éviter ?</li></ul></p>' + 2144 '<p>Autant de questions à répondre sur ce tour d\'horizon !</p>', 2145 speakers: ['julien_bideau', 'nicolas_payneau'] 2146 }, { 2147 title: 'REX : entamer une migration Kotlin dans une DSI Java', 2148 time: '19h40', 2149 length: '25 min', 2150 type: 'quickie', 2151 abstract: '<p>Au sein de la DSI de Pôle emploi, les infrastructures black end sont depuis une dizaine dâannées faites en Java et le choix des langages nâest pas (encore) déterminé par les équipes de développement.</p>' + 2152 '<p>Kotlin utilisant la JVM, il est désormais possible dâintégrer du Kotlin dans des projets java. Dans ce REX je vous présenterai la manière dont nous avons pu entamer l\'intégration du Kotlin dans nos composants black end Java, les problématiques rencontrées, mais aussi les opportunités qui s\'ouvrent à nous pour la suite.</p>', 2153 speakers: ['jean_philippe_baconnais'], 2154 docs: [ 2155 { name: 'Slides', url: 'https://docs.google.com/presentation/d/1X7nhim9r0tU90c5UF5U-G6fwKW5hkcNQdV6N3xF-5Jg', type: 'drive' }, 2156 ] 2157 }, { 2158 title: 'CORS, XSS, CSRF, SQL injection #BackToTheBasics', 2159 time: '20h05', 2160 length: '25 min', 2161 type: 'quickie', 2162 abstract: '<p>Pas besoin d\'être RSSI ou DevOpsSec pour se soucier de sécurité. Que l\'on soit développeur back ou front, la sécurité est l\'affaire de tous.</p>' + 2163 '<p>Pourtant, on la confie souvent aveuglement à nos frameworks. Mais alors comment vérifier la sécurité de nos données et de nos utilisateurs.</p>' + 2164 '<p>A travers quelques démos, nous allons voir les failles les plus basiques et pourtant les plus répandus : CORS, XSS, CSRF et SQL injection</p>', 2165 speakers: ['adrien_pessu'] 2166 }, 2167 { 2168 title: 'Chaos Engineering', 2169 time: '20h30', 2170 length: '25 min', 2171 type: 'quickie', 2172 abstract: '<p>Le Chaos Engineering est une discipline émergente dans le secteur de lâIT. Elle est expérimenté depuis plusieurs année chez des acteurs majeurs comme Netflix. Elle a été introduite pour apporter des solutions à lâaccroissement de la complexité ds systèmes dâinformation et des organisations. Jâespère vous apporter quelques éclairage sur cette discipline en pleine croissance et vous convaincre de vous y intéresser et de commencer à intégrer des pratiques liées à cette discipline dans votre cycle de développement logiciel.</p>', 2173 speakers: ['thomas_nansot'], 2174 docs: [ 2175 { name: 'Slides', url: 'https://fr.slideshare.net/ThomasNansot/meet-up-chaos-engineering', type: 'slideshare' }, 2176 ] 2177 }, 2178 { 2179 title: 'Cocktail dinatoire 𥳠+ ð» + ð£', 2180 time: '21h00', 2181 length: '3h', 2182 type: 'cocktail', 2183 abstract: "<p>Discussions et partages autour d'un ou plusieurs verres, jusqu'au bout de la nuit... <
2183/p>" 2184 } 2185 ] 2186 }, { 2187 id: '2019_05_20', 2188 title: " Java 12 // Quarkus ð", 2189 date: new Date(2019, 4, 20), //month begin at 0 2190 time: '19h00', 2191 register: 'http://meetu.ps/e/GKJHP/4xjVv/f', 2192 place: 'eartsup', 2193 subjects: [ 2194 { 2195 title: 'Java 12, quoi de neuf ?', 2196 time: '19h00', 2197 length: '30 min', 2198 type: 'quickie', 2199 abstract: '<p>Java sort maintenant une nouvelle version tous les 6 mois. En mars dernier est donc sortie la version 12. Après un rapide récapitulatif des nouveautés depuis la version 10 voyons ce que cette version apporte à l\'environnement java et ce qui nous attend pour la suite.</p>', 2200 speakers: ['patrice_de_saint_steban'] 2201 }, { 2202 title: 'Quarkus', 2203 time: '19h30', 2204 length: '1h30', 2205 type: 'talk', 2206 abstract: "<p>De Java au natif: venez découvrir GraalVM et Quarkus</p>" + 2207 "<p>Microservices, montée en charge rapide et Kubernetes demandent des applications ayant un temps de démarrage rapide et une petite empreinte memoire; c'est pourquoi Java est peu utilisé dans ce contexte.</p>" + 2208 "<p>Cela va changer!</p>" + 2209 "<p>Venez découvrir Quarkus, la stack Java orientée microservices qui utilise vos librairies préférées (Hibernate, vert.x, Camel, RESTEasy, Nettyâ¦), et se déploie sur GraalVM et Hotspot. </p>" + 2210 "<p>Durant cette session vous découvrirez GraalVM, et Quarkus et comment les deux réunis se concentrent sur la vitesse et la mémoire et ce avec un bonne expérience développeur." + 2211 "<p>La prochaine 'Java Revolution' est en cours, rejoignez nous!", 2212 speakers: ['tugdual_grall'] 2213 } 2214 ] 2215 }, { 2216 id: '2019_04_25', 2217 title: "Les furets : Vault // dOOv", 2218 date: new Date(2019, 3, 25), //month begin at 0 2219 time: '19h00', 2220 register: 'http://meetu.ps/e/GBQk4/wWq2C/f', 2221 place: 'eartsup', 2222 subjects: [ 2223 { 2224 title: 'Déploiement de vos secrets applicatifs : Hashicorp Vault et la livraison en continue', 2225 time: '19h00', 2226 length: '45 min', 2227 type: 'talk', 2228 abstract: '<p>La gestion des secrets applicatifs, tels que les identifiants de connexion aux bases de données, les phrases ' + 2229 'secrètes ("passphrase"), les sels ("salt") et les clefs privées, est difficile. La disponibilité de ces éléments ' + 2230 'est critique au bon fonctionnement dâune application, mais ils ont besoin dâêtre correctement protégés afin de ' + 2231 'réduire la surface dâattaque du système.</p>' + 2232 'La plupart des systèmes de gestion de secrets, comme Hashicorp Vault, sont utilisés comme une base de données ' + 2233 'centralisée, mais cela devient un point de défaillance unique et nécessite un effort supplémentaire pour sécuriser ' + 2234 'lâensemble du système.</p>' + 2235 '<p>Pourquoi ne pas déployer vos secrets, avec Hashicorp Vault, en même temps que votre application ? Grâce à votre ' + 2236 'usine logicielle, il est possible de déployer une copie de vos secrets dans un Vault sécurisé par un "one time token", ' + 2237 'accessible seulement par votre application.</p>' + 2238 '<p>Dans cette présentation, nous allons présenter un pipeline de livraison continue permettant cette approche, montrer ' + 2239 'les implications de la gestion de secrets dans votre infrastru
2239cture de build, et utiliser le "threat modeling" pour ' + 2240 'vérifier la sécurité du Vault déployé.</p>', 2241 speakers: ['alexandre_dubreuil'], 2242 docs: [ 2243 { name: 'Slides', url: 'https://lesfurets.github.io/vault-continuous-secret-deployment/vault-continuous-secret-deployment-nantes-jug.html#/', type: 'html' }, 2244 ] 2245 }, 2246 { 2247 title: 'Comment créer son propre langage avec un fluent API et un lambda builder ?', 2248 time: '20h00', 2249 length: '1h', 2250 type: 'talk', 2251 abstract: '<p>Avec le framework dOOv, nous adoptons une nouvelle approche pour résoudre un problème récurrent dans nos applications : conjuger performance, lisibilité et typage fort.</p>' + 2252 '<p>Depuis Java 8, les lambdas permettent de composer des fonctions avec dâexcellentes performances à lâexécution. ' + 2253 'dOOv fournit une fluent API qui permet dâécrire la logique dâune application avec un DSL « pur Java » et construit des lambdas pour lâexécution.</p>' + 2254 '<p>Il devient possible de parcourir lâarbre de syntaxe du DSL lors de lâexécution et dâeffectuer dynamiquement des réécritures.</p>' + 2255 '<p>Pendant la session, nous présenterons le fonctionnement du framework, les problèmes rencontrés pour générer du langage naturel, ' + 2256 'lâinstrumentation du code écrit en DSL et la réécriture des arbres de syntaxe pour les afficher sous forme canonique.</p>', 2257 speakers: ['gilles_di_guglielmo', 'ozan_gunalp'], 2258 docs: [ 2259 { name: 'Slides', url: 'https://doov.io/conference/how_to_create_dsl_with_lambda_builders_nantes_jug.html#/', type: 'html' }, 2260 ] 2261 } 2262 ] 2263 }, { 2264 id: '2019_03_12', 2265 title: "Développeurs VS agilité // Micronaut", 2266 date: new Date(2019, 2, 12), //month begin at 0 2267 time: '19h00', 2268 register: 'http://meetu.ps/e/Gs5N6/wWq2C/f', 2269 place: 'eartsup', 2270 subjects: [ 2271 { 2272 title: 'Développeurs & agilité : la guerre est déclarée ?', 2273 time: '19h00', 2274 length: '1h', 2275 type: 'talk', 2276 abstract: '<p>Quand on parle d\'agilité aux développeurs, on constate différentes réactions. Il y a les enthousiastes, ceux qui s\'en fichent, et ceux qui s\'y opposent farouchement.</p>' + 2277 '<p>En ce moment, on peut constater un accroissement des développeurs ne souhaitant plus entendre parler d\'agilité.</p>' + 2278 '<p>Pourquoi une telle scission ? La guerre est-elle ouvertement déclarée ou a-t-on un espoir de réconciliation ?</p>', 2279 speakers: ['cecilia_bossard', 'jean_palies'] 2280 }, 2281 { 2282 title: 'Micronaut Framework, déballage et prise en main', 2283 time: '20h15', 2284 length: '45 min', 2285 type: 'talk', 2286 abstract: '<p>Non ce n\'est pas un nouveau téléphone, mais un nouveau framework web service compatible Java, Kotlin et Groovy mon préféré ! Il annonce une vitesse de démarrage maxi avec des empreintes threads et mémoire mini, grâce à de la programmation réactive et une injection de dépendance réécrite sans Reflection : un socle pour réconcilier les applications basées JVM avec le Cloud ! Venez découvrir cette stack "post-Spring" qui sait presque tout faire - même du Sql, et même tirer parti de modules Spring - avec une application exemple sur le thème de la Radio Fip (ma préférée aussi).</p>', 2287 speakers: ['dominique_jocal'] 2288 } 2289 ] 2290 }, { 2291 id: '2019_02_27', 2292 title: "Quickies: Graal VM, Psycho, CNCF et VS Code ", 2293 date: new Date(2019, 1, 27), //month begin at 0 2294 time: '19h00', 2295 register: 'http://meetu.ps/e/GlQWC/13h0g/f', 2296 place: 'zenika', 2297 subjects: [ 2298 { 2299 title: 'De la data science dans ma webapp avec GraalVM', 2300 time: '19h00', 2301 length: '20 min', 2302 type: 'quickie', 2303 abstract: "<p>Présentation du langage R (utilisé largement par les data scientists) et son intégration avec le monde Java via GraalVM ou comment intégrer des mondes qui se parlent peu.</p>", 2304 speakers: ['bruno_bonnin'] 2305 }, 2306 {
2307 title: '3 techniques faciles de manipulation', 2308 time: '19h30', 2309 length: '20 min', 2310 type: 'quickie', 2311 abstract: '<p>Qui ne s\âest jamais fait manipulé ? Ãvidemment, on est tous allé à une soirée alors qu\âon en avait pas envie, on a tous acheté un truc sans en avoir besoin et on a tous été influencé par ses proches.</p><p>L\âidée de cette présentation est de vous ouvrir les yeux sur les relations et les influences entre les gens. Je vous exposerai les mécanismes de prise de décision au travers de 3 techniques simples de manipulation.</p><p>A la sortie de ce talk, vous devriez être moins influençable et maître de vos décisions (voir même manipuler les autres).</p>', 2312 speakers: ['marie_viley'] 2313 }, 2314 { 2315 title: 'La CNCF et son écosystème', 2316 time: '20h00', 2317 length: '20 min', 2318 type: 'quickie', 2319 abstract: '<p>Découverte de la Cloud Native Computing Foundation qui pilote la communauté des projets d\'orchestration des containers et micro-services</p>', 2320 speakers: ['julien_landure'] 2321 }, 2322 { 2323 title: 'Développer en Java dans VS Code', 2324 time: '20h30', 2325 length: '20 min', 2326 type: 'quickie', 2327 abstract: '<p>En quelques années VS Code (Visual Studio Code) est devenu l\'éditeur de code le plus populaire; tout particulièrement dans les communautés Javascript, Python, et autres langages dynamiques.<p><p>Mais savez vous qu\'il est également possible d\'utiliser VS Code pour développer en Java?<p><p>Venez découvrir durance ce tools in action, les fonctionnalités clés de tout éditeur Java, supportées par VS Code:<p><ul><li>Code Completion</li><li>Debugger</li><li>Refactoring</li><li>Test</li><li>Support de Maven & Graddle</li><li>Code Navigation et Outline</li><li>...</li></ul>', 2328 speakers: ['tugdual_grall'] 2329 } 2330 ] 2331 }, { 2332 id: '2019_01_15', 2333 title: "Minecraft // Cessons les estimations", 2334 date: new Date(2019, 0, 15), //month begin at 0 2335 time: '19h00', 2336 register: 'http://meetu.ps/e/FTJwH/4xjVv/f', 2337 place: 'eartsup', 2338 subjects: [{ 2339 title: 'Comment nous avons gagné notre argent de poche grâce à Minecraft', 2340 time: '19h00', 2341 length: '15 min', 2342 type: 'quickie', 2343 abstract: '<p>Description de notre parcours qui nous a mené de simples joueurs à administrateur d\'un serveur Minecraft comptant plusieurs milliers d\'utilisateurs nous faisant ainsi notre argent de poche</p>', 2344 speakers: ['corentin_grall', 'malo_grall'] 2345 }, { 2346 title: "Cessons les estimations (One-man show)", 2347 length: '1h', 2348 time: '19h30', 2349 type: 'talk', 2350 abstract: "<p>Un one man show afin de susciter la réflexion par le rire, afin de vulgariser les valeurs fondamentales de lâagilité, au delà de lâapplication dâune quelconque méthode.</p>" + 2351 "<p>Cette conférence iconoclaste, non technique, sâadresse à toute personne ayant eu un premier contact avec un projet de développement logiciel (clients, donneurs dâordre, développeurs, chefs de projet, product owner, scrum masterâ¦)</p>", 2352 speakers: ['frederic_leguedois'] 2353 } 2354 ] 2355 }, { 2356 id: '2018_12_13', 2357 title: "Dev & UI // CQRS & EventSourcing", 2358 date: new Date(2018, 11, 13), //month begin at 0 2359 time: '19h00', 2360 register: 'http://meetu.ps/e/FTJtQ/4xjVv/f', 2361 place: 'eartsup', 2362 subjects: [{ 2363 title: "Dev & UI : main dans la main avec le DesignOps", 2364 length: '45min', 2365 time: '19h00', 2366 type: 'talk', 2367 abstract: "<p>Il était une fois, dans une société nommée OUI.sncf, un développeur et une UI designer qui passaient leur temps à se chamailler. Le premier rêvait de spécifications responsives et de composants réutilisables par toutes les équipes. La seconde aspirait à ce que ses maquettes soient traitées avec respect et quâune cohérence graphique soit enfin obtenue sur son site préféré. Ont-ils pu mettre leurs différents de côté pour aller au bout de leur ambition ? Vous le saurez en écoutant leur histoire...</p>", 2368 speakers: ['loic_maze', 'lydie_dareau'] 2369 }, { 2370 title: "Implémentation de CQRS et EventSourcing avec le framework Axon ", 2371 length: '45min', 2372 time: '20h00', 2373 type: 'talk', 2374 abstract: "<p>Je m'intéresse depuis un moment à l'event sourcing, pour l'avoir utilisé sur deux applications, ce n'est pas si simple et on a tendance à laisser tomber le pattern en cours de route. Du coup, lorsque nous avons du mener la refonte d'une application interne à Oui.sncf basée sur l'event sourcing, nous avons utilisé le framework Axon qui a géré toute la plomberie pour nous.</p>" + 2375 2376 "<p>
2376Je pense que l'intérêt de ce framework est de gérer des problématiques complexes de concurrence, lock, etc, et de laisser le dev s'occuper de l'aspect métier.</p>" + 2377 2378 "<p>J'ai préparé une session de livecoding pour présenter rapidement les concepts eventsourcing et CQRS, et pour voir la mise en Åuvre sur un usecase classique.</p>", 2379 speakers: ['sylvain_maillard'] 2380 } 2381 ] 2382 }, { 2383 id: '2018_11_20', 2384 title: "MQTT, Mosquitto et Paho // Google Container Tools", 2385 date: new Date(2018, 10, 20), //month begin at 0 2386 time: '19h00', 2387 register: 'http://meetu.ps/e/FTJs9/4xjVv/f', 2388 place: 'eartsup', 2389 intro: "<div style=\"color: #0074be\">" + 2390 "<p>Cette soirée est co-organisée avec le meetup <a href=\"https://www.meetup.com/fr-FR/Docker-Nantes/\" target=\"_blank\">Docker Nantes</a>. Les inscriptions se font uniquement ici, sur le meetup du Nantes JUG.</p>" + 2391 "</div>", 2392 subjects: [{ 2393 title: "Machine to machine : jouons un peu avec MQTT, Mosquitto et Paho", 2394 length: '30min', 2395 time: '19h00', 2396 type: 'quickie', 2397 abstract: "<p>MQTT est un protocole léger basé sur le pattern « Publish/Subscribe » qui sâest imposé pour les échanges M2M et donc lâIoT. Simple et facile à appréhender il peut être utilisé pour des cas dâusage très variés aussi bien avec un Raspberry Pi quâun serveur Linux ou dans le cloud.</p>" + 2398 "<p>Ce quickie vous permettra de découvrir les principes de base du protocole MQTT, avec des démos utilisant le brocker « Mosquitto » et bien sûr un peu de code Java avec la librairie « Paho ».</p>", 2399 speakers: ['laurent_guerin'] 2400 }, { 2401 title: "Google Container Tools : développer efficacement dans un monde de conteneurs", 2402 length: '1h', 2403 time: '19h30', 2404 type: 'talk', 2405 abstract: "<p>Kubernetes est devenu l'orchestrateur de choix pour déployer des applications. Mais qu'en est-il du quotidien des développeurs qui créent ces applications ? Plus on s'appuie sur la plateforme, plus il est compliqué de développer en dehors de la plateforme. Et développer à l'intérieur de conteneurs n'est pas réputé facile ni agréable.</p>" + 2406 "<p>Google est à l'origine de plusieurs projets Open-Source qui se focalisent sur l'expérience des développeurs dans un monde de conteneurs. Kaniko permet de construire une image Docker à partir d'un Dockerfile, dans un cluster Kubernetes, de manière sécurisée. Skaffold facilite le déploiement continu d'applications pour Kubernetes. Les images Distroless offrent des images de base légères, sécurisées et de qualité. Bazel permet meme de construire des images Docker sans Docker. Venez découvrir comment ces outils se combinent pour offrir un environment de développement agréable et performant dans le monde des conteneurs.</p>", 2407 speakers: ['david_gageot'] 2408 } 2409 ] 2410 }, { 2411 id: '2018_10_09', 2412 title: "LinuxKit // Kafka", 2413 date: new Date(2018, 9, 9), //month begin at 0 2414 time: '19h00', 2415 register: 'http://meetu.ps/e/FT1P3/tBvy3/f', 2416 place: 'eartsup', 2417 subjects: [{ 2418 title: "LinuxKit", 2419 length: '30min', 2420 time: '19h00', 2421 type: 'quickie', 2422 abstract: "<p>Cela fait des années que certaines distributions linux permettent de construire son linux âfrom scratchâ mais cela restait une opération compliquée et périlleuse. LinuxKit propose la même chose mais avec une approche beaucoup plus moderne et outillée. Cela devient presque aussi facile que de monter un meuble ikea ! (avec une notice quand même)</p>" + 2423 "<p>Le projet LinuxKit, créé par Docker Inc., a été pensé pour créer un OS aussi minimaliste et maintenable que possible (sans compromis avec la sécurité) et y déployer des conteneurs.</p>" + 2424 "<p>Nous allons vous présenter la genèse et les concepts du projet, lâécosystème des outils complémentaires qui vous permettront de composer et construire votre distribution. Puis, nous créerons notre première distribution en live !</p>", 2425 speakers: ['eric_briand', 'pierre-yves_aillet'] 2426 }, { 2427 title: "Au delà des brokers: un tour de l'environnement Kafka", 2428 length: '1h', 2429 time: '19h30', 2430 type: 'talk', 2431 abstract: "<p>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.</p><p>Venez avec vos questions, plus la session sera interactive, meilleure elle sera !</p>", 2432 speakers: ['florent_ramiere'] 2433 } 2434 ] 2435 }, {
2436 id: '2018_09_25', 2437 title: "Java 9, 10 et + par Jean-Michel Doudoux", 2438 date: new Date(2018, 8, 25), //month begin at 0 2439 time: '19h30', 2440 register: 'http://meetu.ps/e/FNyYs/4xjVv/f', 2441 place: 'terrasses_de_l_erdre', 2442 intro: "<div style=\"color: #0074be\"><div class=\"row\">" + 2443 "<div class=\"col-md-8\">" + 2444 "<p>Si comme nous, vous avez commencé le java il y a plus de 10 ans, vos recherches web sur Java vous ont forcément amené sur les articles de Jean-Michel Doudoux.<p>" + 2445 "<p>ð C'est donc pour les 10 ans du JUG que nous l'accueillons avec plaisir, pour nous parler des derniers changements de Java.</p>" + 2446 "<p>Cette soirée exceptionnelle ð sera suivi d'un cocktail dinatoire ð¸ ð£ au restaurant du parc des expositions, les Terrasses de l'Erdre.</p>" + 2447 "<p>ð Il y aura des places pour DevFest à gagner ainsi d'autres suprises... ð</p>" + 2448 "</div>" + 2449 "<div class=\"col-md-4 col-xs-6\"><img src=\"/images/site/10_ans.png\" width=\"100%\"></div>" + 2450 "</div></div>", 2451 subjects: [{ 2452 title: "Java, le changement c'est maintenant (... enfin depuis un an déjà )", 2453 length: '1h30min', 2454 time: '19h30', 2455 type: 'talk', 2456 abstract: "<p>Ce n'est pas qu'un slogan politique mais bien la réalité pour Java depuis l'année écoulée.</p>" + 2457 "<p>A tel point que plusieurs caractéristiques historiques de Java sont partiellement remises en cause notamment la lenteur patente entre deux releases, l'embonpoint endémique du JRE/JDK, la gratuité, et même la sacro sainte rétro-compatibilité, ...</p>" + 2458 "<p>Faisons un tour de ces évolutions qui sont parfois de profonds changements avant de fêter le 10ème anniversaire du Nantes JUG. " + 2459 "Comment l'utiliser dans vos applications en offrant des possibilités de requêtes géospatiales.</p>", 2460 speakers: ['jmdoudoux'] 2461 } 2462 ] 2463 }, { 2464 id: '2018_06_20', 2465 title: "S2 Geometry // Couchbase 101", 2466 date: new Date(2018, 5, 20), //month begin at 0 2467 time: '19h30', 2468 register: 'http://meetu.ps/e/FqHTW/wWq2C/f', 2469 place: 'eartsup', 2470 subjects: [{ 2471 title: "Introduction a S2 Geometry", 2472 length: '30min', 2473 time: '19h30', 2474 type: 'quickie', 2475 intro: 'Une solution simple pour vos besoins "géospatiaux"', 2476 abstract: "<p>Durant ce quickie vous découvrirez la librairie S2 Geometry (http://s2geometry.io/) et " + 2477 "comment l'utiliser dans vos applications en offrant des possibilités de requêtes géospatiales.</p>", 2478 speakers: ['tugdual_grall'] 2479 }, 2480 { 2481 title: "Couchbase 101 [EN]", 2482 length: '45min', 2483 time: '20h15', 2484 type: 'talk', 2485 abstract: "<p>Today's mission-critical applications demand support for millions of interactions with " + 2486 "end-users. Traditional databases were built for thousands.</p>" + 2487 "<p>Couchbase Server is an open source, distributed, NoSQL document-oriented database. It " + 2488 "exposes a fast key-value store with managed cache for sub-millisecond data operations, " + 2489 "purpose-built indexers for fast queries and a powerful query engine for executing SQL-like queries.</p>" + 2490 "<p>In this talk, we develop a small microservice using a very productive combination: " + 2491 "Couchbase, Spring Boot and Spring Data. We also will deploy both your application and " + 2492 "database on Kubernetes, to show how you can build truly elastic microservices.</p>" + 2493 "<p><u>Conférence en anglais</u></p>", 2494 speakers: ['denis_rosa'] 2495 } 2496 ] 2497 }, { 2498 id: '2018_05_23', 2499 title: "UX // Kotlin - Avancé", 2500 date: new Date(2018, 4, 23), //month begin at 0 2501 time: '19', 2502 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/250684407/', 2503 place: 'eartsup', 2504 subjects: [{ 2505 title: "3 exemples pour comprendre l'intérêt de la phase UX research lors de la conception", 2506 length: '30min', 2507 time: '19h00', 2508 type: 'talk', 2509 abstract: "<p>à travers 3 exemples, nous verrons comment l'approche UX, et plus particulièrement la " + 2510 "phase de test, fait le plus grand bien à la conception d'un projet. Pour le meilleur ou pour le pire." + 2511 "Observer et interviewer l'être humain est indispensable pour savoir si l'expérience que vous " + 2512 "proposez est bien celle attendue par lui, pour comprendre les motivations qui l'anime et " +
2513 "mieux détecter les facteurs qui faciliteront l'appropriation d'un service ou d'un produit.</p>", 2514 speakers: ['nabil_thalmann'] 2515 }, 2516 { 2517 title: "Kotlin asynchrone : les coroutines", 2518 length: '1h', 2519 time: '19h45', 2520 type: 'talk', 2521 abstract: "<p>Les Coroutines sont la nouvelle fonctionalité du langage Kotlin pour sa version 1.1. En " + 2522 "l'essence, elles vous permettent d'écrire du code séquentiel mais asynchrone.</p>" + 2523 "<p>Dans ce talk, je présenterai le concept des coroutines et expliquerai comment Kotlin " + 2524 "implémente les coroutines pour être un outil sur lequel construire plutôt qu'un standard imposé à la communauté. " + 2525 "à travers un live-coding, nous explorerons les primitives bas niveau comme les principales " + 2526 "libraries haut niveau. Je montrerai comment ce formidable outil peut être utilisé aussi bien " + 2527 "en back-end sur un serveur que sur une application Android.</p>", 2528 speakers: ['salomon_brys'] 2529 } 2530 ] 2531 }, { 2532 id: '2018_05_03', 2533 title: "Les joies de la négociation // TICK-Tac", 2534 date: new Date(2018, 4, 3), //month begin at 0 2535 time: '19', 2536 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/250168593/', 2537 place: 'eartsup', 2538 subjects: [{ 2539 title: "Les joies de la négociation", 2540 length: '30min', 2541 time: '19h00', 2542 type: 'quickie', 2543 abstract: "<p>Sâil est bien un aspect du métier de développeur quâon aime pas toujours/trop, câest de devoir négocier. " + 2544 "Souvent, la négociation se résume à un rapport de force. " + 2545 "Lors de lâentretien dâembauche ou lâentretien annuel, négocier son salaire est rarement une partie de plaisir, laissant parfois le sentiment de sâêtre fait (un peu ?) avoir." + 2546 "Même au sein dâune équipe, les négociations pour les choix techniques peuvent sâavérer... compliquées.</p>" + 2547 "<p>Ãa nâest pas une fatalité :)</p>" + 2548 "<p>à partir d'un livre, « Comment réussir une négociation » (titre original : Getting to Yes), et de quelques retours dâexpérience, découvrez quelques clés pour être mieux armés dans vos négociations.</p>", 2549 speakers: ['olivier_truong'] 2550 }, 2551 { 2552 title: "TICK-Tac, il est l'heure de collecter et exploiter vos données temporelles", 2553 length: '1h', 2554 time: '19h30', 2555 type: 'talk', 2556 abstract: "<p>Nos activités quotidiennes sont liées au temps. Pourquoi ne pas utiliser des base
2556s temporelles (time series databases) pour stocker et exploiter vos données ?</p>" + 2557 "<p>Au travers de la plateforme TICK (Telegraf, InfluxDB, Chronograf et Kapacitor) et Grafana et sur la base de l'exemple d'un monitoring de plateforme, nous verrons comment manipuler ces données temporelles.</p>", 2558 speakers: ['nicolas_steinmetz'] 2559 } 2560 ] 2561 }, { 2562 id: '2018_04_26', 2563 title: "OpenFaas // Kotlin", 2564 date: new Date(2018, 3, 26), //month begin at 0 2565 time: '19', 2566 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/249153190/', 2567 place: 'creative', 2568 subjects: [{ 2569 title: "OpenFaas, une solution simple et rapide à déployer pour faire du FaaS.", 2570 length: '30min', 2571 time: '19h00', 2572 type: 'talk', 2573 abstract: "<p>OpenFaaS est un projet d'Alexis Ellis, Docker Captain, basé sur Docker et sur les orchestrateurs Swarm ou Kubernetes. Cette solution facilite la mise en Åuvre d'une architecture Serverless à base de fonctions.</p>" + 2574 "<p>A la différence de AWS Lambda ou d'autres services FaaS (Function as a Service) comme Google Cloud Functions, OpenFaas est une solution qui peut être déployée en On Premise, et ce très rapidement et simplement. L'autre différence est que tout peut devenir une fonction, y compris un binaire. " + 2575 "On comprend mieux pourquoi depuis sa présentation à la DockerCon 2017, ce projet fait fureur dans la communauté Docker.</p>" + 2576 "<p>Après une présentation succincte de ce qu'est le FaaS, nous explorerons la solution et l'ensemble de ses possibilités. Pour démontrer la puissance de ce framework, nous terminerons ce talk par une démonstration mettant en Åuvre plusieurs fonctions.</p>", 2577 speakers: ['emmanuel_lebeaupin'] 2578 }, 2579 { 2580 title: "à la découverte de Kotlin", 2581 length: '45min', 2582 time: '19h35', 2583 type: 'talk', 2584 abstract: "<p>Kotlin est un langage de programmation qui sâadresse principalement aux utilisateurs Java. Supporté depuis lâannée dernière par les plateformes Android, ce langage simple et moderne a fait une percée dans le monde du développement mobile. Interopérable avec Java, Kotlin est désormais doté dâune version JS et native qui élargit le champ de ses capacités.</p>" + 2585 "<p>Après un vernis historique sur les origines de ce langage, découvrons ensemble tout lâintérêt de Kotlin au travers de quelques points de syntaxe, concepts de base et outils. Nous terminerons ce talk par la présentation de deux exemples lâun sur Android et lâautre en Kotlin JS.</p>", 2586 speakers: ['yvelain_naude'] 2587 } 2588 ], 2589 docs: [ 2590 { name: 'flyer', url: 'https://goo.gl/V9kk4g', type: 'pdf' }, 2591 ] 2592 }, 2593 { 2594 id: '2018_04_10', 2595 title: "Open Tracing // Il n'y a pas que Angular, React ou VueJS", 2596 date: new Date(2018, 3, 10), //month begin at 0 2597 time: '19', 2598 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/249153080/', 2599 place: 'ynov', 2600 subjects: [{ 2601 title: "Open Tracing, le SLF4J du traçage distribué", 2602 length: '30min', 2603 time: '19h00', 2604 type: 'talk', 2605 abstract: "<p>Un id de corrélation, cela n'a rien de nouveau, mais cela change la vie, surtout couplé avec un outil d'agrégation de logs. </p>" + 2606 "<p>Il est de plus en plus rare qu'une page web ne génère qu'une seule requête côté serveur. Et quand un bug survient, c'est la fin... " + 2607 "Parmi les X applications interrogées, pour trouver la source du bug, cela devient vite la galère... C'est une perte de temps, et une source de stress.</p>" + 2608 "<p>Open Tracing est une API disponible dans plusieurs langages, permettant de s'interfacer avec différents outils de traçage. " + 2609 "A l'image de Slf4J pour les logs, Open Tracing pemet donc de passer à une implémentation à une autre avec peu d'effort. " + 2610 "Vous utilisez à l'heure actuelle Zipkin, et vous voulez passer sur Jaeger, rien de plus simple. Quelques lignes à changer dans son code et c'est fait.</p>" + 2611 "<p>Je vous présenterais le principe de la corrélation d'id et les notions qui vont avec (trace, span, etc.), les outils existants, et pourquoi je crois en Open Tracing.</p>", 2612 speakers: ['florian_negre'] 2613 }, 2614 { 2615 title: "Il n'y a pas que Angular, React ou VueJS dans la vie", 2616 length: '45min', 2617 time: '19h35', 2618 type: 'talk', 2619 abstract: "<p>Nous connaissons tous les frameworks/librairies à la mode : de Angular
2619à React, en passant par le tout dernier VueJS. Mais devons-nous nous limiter à ces trois solutions ? </p>" + 2620 "<p>Durant cette conférence, nous allons aborder plutôt les projets les moins connus, mais pas les moins intéressants, et qui pourraient être sources" + 2621 "d'idées pour les grands du Web. De Inferno à Marko, en passant par Preact, nous allons enfin pouvoir connaitre les avantages et inconvénients de ces solutions alternatives. </p>", 2622 speakers: ['emmanuel_demey'] 2623 } 2624 ] 2625 }, 2626 { 2627 id: '2018_03_22', 2628 title: "Micro-Interactions // Devenir une plateforme de services", 2629 date: new Date(2018, 2, 22), //month begin at 0 2630 time: '19', 2631 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/248653942/', 2632 place: 'insula', 2633 subjects: [{ 2634 title: "Il n'y a pas de magie, tout est dans les détails !", 2635 length: '30min', 2636 time: '19h00', 2637 type: 'talk', 2638 abstract: "<p>Et s'il existait un monde où les petits détails d'une app ou d'un site web servent en même temps l'experience utilisateur et l'immersion dans un univers graphique ?</p><p>Un nouveau monde à la croisée de l'UX et de l'UI.</p>" + 2639 "<p>Plongée dans le monde des Micro-interactions...</p>" + 2640 "<p></p>" + 2641 "<p>Et s'il était possible d'améliorer l'experience utilisateur d'une app juste en travaillant les détails ?</p>" + 2642 "<p>S'il était possible d'apporter du réel dans une app virtuelle simplement ?</p>" + 2643 "<p>Ou comment récompenser physiquement lâutilisateur pour le guider dans son parcours ?</p>", 2644 speakers: ['thomas_buvignier'] 2645 }, 2646 { 2647 title: "ÅPUN : Devenir une plateforme de service", 2648 length: '45min', 2649 time: '19h35', 2650 type: 'talk', 2651 abstract: "<p>Lorsque ta direction te dit qu'il faut diversifier les activités et devenir une plateforme de services, un reset s'impose pour penser, from scratch, un nouveau pan du système d'information.</p>" + 2652 "<p>Durant lâannée passée, nous avons pensé et mis en oeuvre un ensemble de méthodologies, pratiques, solutions techniques pour servir de nouveaux produits innovants bénéficiant dâun time-to-market compétitif et de coûts maîtrisés. Cette initiative prise dans une grosse entreprise de la région nous permet le droit à lâerreur, la possibilité de jeter au besoin tout en valorisant son legacy et en responsabilisant les développeurs.</p>" + 2653 "<p>Nous verrons donc ensemble les différentes étapes que nous avons suivi lors de cette âruptureâ, les méthodologies employées, les façons de travailler, les patterns utilisés. Nous vous présenterons la suite dâoutils que nous avons créé à lâoccasion, lorsque les outils du marché ne convenaient pas à nos cas dâutilisation (la stack Netflix nâest pas faite pour tout le monde ;-).</p>" + 2654 "<p>Au programme, reverse-proxy, API gateway, ingestion de data, feature flipping, A/B testing, des démos qui plantent et bien plus encore.</p>", 2655 speakers: ['mathieu_ancelin', 'alexandre_delègue', 'francois_desmier'] 2656 } 2657 ] 2658 }, 2659 { 2660 id: '2018_02_27', 2661 title: "Cloud // Microservices", 2662 date: new Date(2018, 1, 27), //month begin at 0 2663 time: '19', 2664 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/247576881/', 2665 place: 'epitech', 2666 subjects: [{ 2667 title: "Cloud : le couteau SaaS du développeur (et de la startup) !", 2668 length: '45min', 2669 time: '19h00', 2670 type: 'talk', 2671 abstract: "<p>Et si on pouvait développer une application sans coder! Ou pasâ¦</p>" + 2672 "<p>Retour d'expérience sur le développement et la mise en production dâune application web s'appuyant sur +15 SaaS.<br/>" + 2673 "Ce partage nous permettra dâaborder les points suivants:<ul>" + 2674 "<li>
2674Tour dâhorizon de lâoffre *aaS,</li>" + 2675 "<li>Pourquoi du SaaS ?</li>" + 2676 "<li>Avantages et inconvénients,</li>" + 2677 "<li>La sécurité,</li>" + 2678 "<li>Les limites,</li>" + 2679 "<li>...</li>" + 2680 "</ul></p>", 2681 speakers: ['yann_danthu'] 2682 }, 2683 { 2684 title: "Comment maintenir de la coheÌrence dans votre architecture microservices", 2685 length: '45min', 2686 time: '19h45', 2687 type: 'talk', 2688 abstract: "<p>La tendance est au délaissement des architectures monolithiques au profit de micro-services bien découpés. Ainsi nous facilitons le passage à l'échelle, réduisons la taille de chaque projet et pouvons utiliser la pile techno adaptée à chaque module.</p>" + 2689 "<p>Cependant, en séparant ces briques, nous repoussons la complexité à la limite entre chaque module. La cohérence fournie par une base de code atomique et son système de types est perdue.</p>" + 2690 "<p>Dans cette session, je montrerai comment tenir compte explicitement des frontières entre modules permet de réduire le risque de données incohérentes. Je montrerai comment encoder les messages inter-modules, en déclarant explicitement pour chaque brique, la structure nécessaire et ce qui doit pouvoir évoluer sans impacter le module. La serialisation implicite a beau etre plus simple au début, l'explicite aide beaucoup.</p>" + 2691 "<p>Je donnerai des exemples en scala et javascript, tout en tirant des comparaisons avec mon expérience en développement web, où on a une expérience fournie de ce qui se passe quand les développeurs essayent d'ignorer les frontières entre coté serveur et coté client.</p>", 2692 speakers: ['clement_delafargue'] 2693 } 2694 ] 2695 }, { 2696 id: '2018_01_31', 2697 title: "Progressive Web App // Recouvrer de la productivité avec Gradle", 2698 date: new Date(2018, 0, 31), //month begin at 0 2699 time: '19', 2700 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/246931283/', 2701 place: 'eartsup', 2702 subjects: [{ 2703 title: "Native apps are doomed", 2704 length: '30min', 2705 time: '19h00', 2706 type: 'quickie', 2707 abstract: "<p>Les progressive web apps envahissent progressivement le marché comme Twitter avec Twitter Lite.<br/>" + 2708 "Y'a-t-il encore aujourd'hui à développer une application native, avec toutes les difficultés que celà entraîne ?</p>", 2709 speakers: ['mathias_bernardeau'] 2710 }, 2711 { 2712 title: "Recouvrer de la productivité avec Gradle", 2713 length: '1h', 2714 time: '19h30', 2715 type: 'talk', 2716 abstract: "<p>Vous entendez parler de Gradle, mais pour vous, ça n'est qu'un autre outil de build. Vous ne voyez pas l'intérêt. Pourtant, Gradle est différent. Il est conçu pour la productivité : réduire les temps de build, améliorer la modélisation des applications, résoudre les problèmes de gestion de dépendence...</p>" + 2717 "<p>Dans cette session, nous parlerons de Gradle 4 et des fonctionnalités uniques qu'il apporte : tâches incrémentales, builds composites, cache distribué, ... Nous montrerons aussi les build scans et comment ils permettent de gagner un temps précieux en donnant une perspective unique sur vos builds. Enfin, nous aborderons brievement l'arrivée de Gradle 5, qui innovera une fois de plus dans le domaine de la gestion de dépendances.</p>", 2718 speakers: ['cedric_champeau'] 2719 } 2720 ] 2721 }, { 2722 id: '2017_12_14', 2723 title: "Soirée de Noël : Quickies & Cocktail", 2724 date: new Date(2017, 11, 14), //month begin at 0 2725 time: '19', 2726 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/245415172/', 2727 place: 'adresse_gare_sud', 2728 subjects: [{ 2729 title: "Kotlin, la java qu'on aimerait avoir", 2730 length: '20min', 2731 time: '19h00', 2732 type: 'quickie', 2733 abstract: "<p>Je vais vous présenter le langage Kotlin, ses concepts principaux et sa syntaxe compacte par rapport à Java. Je vous montrerai en exemple une application Spring boot développée en Kotlin.</p>", 2734 speakers: ['adrien_pessu'] 2735 }, 2736 { 2737 title: 'Verdaccio un proxy npm à la rescousse', 2738 length: '20min', 2739 time: '19h20', 2740 type: 'quickie', 2741 abstract: "<p>La construction d'une application repose principalement sur le code source que nous autres développeurs (euses) avons développé, mais également sur toutes les dépendances (frameworks ou librairies) que nous allons ajouter au sein de cette même application.</p>" + 2742 "<p>Pour assurer la reproductibilité, la maintenabilité et l'évolution du processus de construction de notre application vis à vis des dépendances on s'appuie généralement sur un dépôt de dépendances accessible depuis Internet." + 2743 "L'écosystème JavaScript n'échappe pas à la règle et en quelques années npm est devenu un mastodonte régissant quasiment toutes les dépendances JavaScript.</p>" + 2744 "<p>
2744Lors de ce quickie nous verrons quels sont les avantages et les inconvénients de cette situation et comment nous pouvons utiliser l'outil Verdaccio comme proxy npm pour résoudre les problèmes du quotidien en entreprise.</p>", 2745 speakers: ['alvin_berthelot'] 2746 }, 2747 { 2748 title: 'Gamifier notre outillage traditionnel pour mettre en avant des concepts innovants.', 2749 length: '20min', 2750 time: '19h40', 2751 type: 'quickie', 2752 abstract: "<p>Comment nous avons construit un jeu afin de mettre en évidence différents concepts (scalibilité, résilience, â¦) et prouver le fonctionnement de composant techniques (Docker Swarm, SSE, â¦)" + 2753 "Le tout sur la base de technologies issues du développement d'application de gestion.</p>" + 2754 "<p>Il sâagit dâune présentation dâintroduction qui présente le produit fini, et la démarche mais qui nâentre pas dans les détails techniques des différents composants du jeu.</p>", 2755 speakers: ['nicolas_giraud'] 2756 }, 2757 { 2758 title: 'Language Server Protocol : intégrer simplement un language dans un IDE', 2759 length: '20min', 2760 time: '20h00', 2761 type: 'quickie', 2762 abstract: "<p>Si je vous demandais de supporter un DSL dans plusieurs IDE, vous ne trouveriez pas ça compliqué ? Vive le mal de crâne! Et si je vous disais que j'avais un outil pour vous aider ? Faites place au Language Server Protocol! Cette spécification vise à simplifier l'intégration d'un language de programmation dans un IDE. Elle est totalement hallucinante. Le support de C# dans Eclipse, celui de java dans VSCode c'est grâce à elle. Alors si vous voulez simplement comprendre comment ça marche ou si vous voulez créer et intégrer votre propre serveur de language, venez voir cette présentation. Je vous montrerez comment jouer avec le LSP pour avoir de la complétion, documentation et validation sur un DSL maison.</p>", 2763 speakers: ['gautier_de_saint_martin_lacaze'] 2764 }, { 2765 title: 'Cocktail ð¾ ð ð¹', 2766 time: '20h30', 2767 type: 'cocktail', 2768 abstract: '<p>Quoi de mieux qu\'un cocktail offert par le Nantes JUG pour fêter la fin de l\'année.</p>' + 2769 '<p>Au programme : boissons, petits fours et discussions tech (ou pas).</p>' 2770 } 2771 ] 2772 }, { 2773 id: '2017_10_26', 2774 title: "Event Sourcing avec Apache Kafka // L'IoT dans la vraie vie", 2775 date: new Date(2017, 9, 26), //month begin at 0 2776 time: '19', 2777 register: 'https://www.meetup.com/fr-FR/preview/Nantes-Java-User-Group/events/243675823', 2778 place: 'eartsup', 2779 subjects: [{ 2780 title: "L'IoT dans la vraie vie", 2781 length: '30min', 2782 time: '19h00', 2783 type: 'quickie', 2784 abstract: "<p>L'internet des objets, décrit par certains comme une nouvelle révolution de l'Internet, est un sujet au coeur d'une multitude d'actualités et de controverses, si bien qu'on a
2784souvent du mal à faire le point sur son réel potentiel.</p>" + 2785 "<p>Oui mais les faits sont là : investissement des grands du numérique, accélération de startup, bassins d'emplois en France autour de l'IoT, réseau d'objets connectés, l'évolution est en marche, pour de vrai ! Alors, innovation surestimée ou réelle révolution ? </p>" + 2786 "<p>Ce Quickie a pour but de faire un bilan, sans compromis et en apportant une vision globale sur ce nouvel usage d'Internet, complété par un retour d'expérience à la Cité de l'objet connecté et illustré par l'exemple de la SNCF.</p>", 2787 speakers: ['benjamin_demonet'] 2788 }, 2789 { 2790 title: 'Event Sourcing avec Apache Kafka', 2791 length: '1h', 2792 time: '19h30', 2793 type: 'talk', 2794 abstract: "<p>Quand j'ai découvert Apache Kafka, j'ai rapidement été séduit par son élégance et sa simplicité. J'aimerais partager cette expérience avec vous.</p>" + 2795 "<p>Malgré son apparence initiale de bus de message, Kafka est un système de stockage de données extrêmement versatile. C'est un log persisté. Naturellement, j'ai fait le lien avec l'Event Sourcing, qui consiste à utiliser un log comme source de vérité d'une application, et ainsi ne jamais perdre une seule goutte de données. Alors je me suis dit : jusqu'où peut-on aller dans le développement d'une application de gestion avec Kafka pour seule base de données ? Qu'est-ce que ça donne ? Quels sont les défis à relever ? Est-ce vraiment différent d'une application centrée autour d'une base SQL ?" + 2796 "<p>Pour explorer ce terrain j'ai choisi d'implémenter une application très simple, le fameux TodoMVC, celui-là même qui sert de terrain de jeux aux frameworks front. Mon talk sera donc un retour sur cette expérience.</p>" + 2797 "<p>La présentation inclue une introduction à Kafka et au concept d'Event Sourcing, il n'y a donc aucun pré-requis.</p>", 2798 speakers: ['hugo_wood'] 2799 } 2800 ] 2801 }, { 2802 id: '2017_09_18', 2803 title: "WebRTC // Et java 8 devient plus fonctionnel avec VAVR", 2804 date: new Date(2017, 8, 18), //month begin at 0 2805 time: '19', 2806 register: 'https://www.meetup.com/fr-FR/preview/Nantes-Java-User-Group/events/242950915', 2807 place: 'lucca', 2808 subjects: [{ 2809 title: 'WebRTC : de la visioconférence dans les navigateurs sans plugins', 2810 length: '20min', 2811 time: '19h00', 2812 type: 'quickie', 2813 speakers: ['abdellatif_el_maknati'] 2814 }, 2815 { 2816 title: 'Et java 8 devient plus fonctionnel avec VAVR', 2817 length: '1h', 2818 time: '19h20', 2819 type: 'talk', 2820 abstract: "<p>Vavr est une librairie complètement dédiée au paradigme de programmation fonctionnelle. Elle a la particularité d'aller un peu plus loin que les notions de lambdas, pipelines ou composition de fonctions offertes par Java 8.</p>" 2821 // "<p>Durant cette session nous découvrirons les structures proposées par Vavr, comme les collections immuables, les values types tels que les Option, les Try, les Eitherâ¦</p>" 2822 + 2823 "<p>Nous verrons comment cette librairie gère des aspects plus fonctionnels, à savoir la composition de fonction, le lifting, la memoization ou le currying.</p>" + 2824 "<p>Enfin nous terminerons avec la présentation de la syntaxe offerte pour le pattern Matching et le property checking.</p>", 2825 speakers: ['guillaume_lours'] 2826 } 2827 ] 2828 }, { 2829 id: '2017_08_29', 2830 title: "Concours de l'été !!!", 2831 date: new Date(2017, 7, 29), //month begin at 0 2832 time: '19', 2833 subjects: [{ 2834 title: 'Concours de l\'été !!!', 2835 length: 'Tout l\'été', 2836 abstract: '<p>Pour cet été on organise un concours sur twitter.</p>' + 2837 '<p>Comment participer ? C\'est simple. Tweetez à @nantesjug une photo de vos vacances avec votre t-shirt Nantes JUG. <a href="https://twitter.com/nantesjug/status/877198919335383042">Petit exemple de notre part.</a></p>' + 2838 '<p>Pour ceux qui n\'ont pas de compte twitter, vous pouvez nous envoyer un mail à l\'adresse [email protected].</p>' + 2839 '<p>Lots à gagner : </p><ul><li>3 licences Intellij IDEA</li><li>3 places pour le Devfest Nantes</li></ul>', 2840 speakers: [] 2841 }] 2842 }, {
2843 id: '2017_06_19', 2844 title: "Akka, java 8 // serverless, et le doux parfum des vacances !", 2845 date: new Date(2017, 5, 19), //month begin at 0 2846 time: '19', 2847 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/240136198/', 2848 place: 'insula', 2849 subjects: [{ 2850 title: 'Akka avec java 8 finalement c\'est cool !', 2851 length: '45min', 2852 time: '19h00', 2853 type: 'talk', 2854 abstract: '<p>Akka est une super boite à outils pour créer des applications ultra performantes et gérer facilement la concurrence.</p>' + 2855 '<p>Même si akka a toujours été présenté comme un framework pour les développeurs à la fois java et scala, il faut avouer que l\'api java était plutôt rebutante. L\'arrivée de java 8 a clairement changé la donne et il est enfin possible pour les développeurs java d\'utiliser akka tout en écrivant du jolie code.</p>' + 2856 '<p>Dans cette session, après une présentation du framework akka nous développerons une application akka 100% java. Au programme il y aura des acteurs, du rest et des streams !</p>', 2857 speakers: ['alexandre_delègue'] 2858 }, { 2859 title: 'Serverless: just a buzzword?', 2860 length: '1h', 2861 time: '20h00', 2862 type: 'talk', 2863 abstract: '<p>Les conteneurs se généralisent depuis maintenant quelques temps. Et un nouveau concept est déjà en train de pointer le bout de son nez : le serverless. Quâest-ce que câest ? Est-ce un buzz ou une réelle évolution ? Est-ce que lâon doit déjà mettre à la poubelle les conteneurs ?</p>' + 2864 '<p>Au cours de cette présentation, nous présenterons les principes du serverless et nous ferons une mise en application avec AWS Lambda, Google Cloud Functions et le framework serverless. Nous essaierons dâapporter un éclairage sur lâintérêt de cette technologie à travers des exemples dâutilisation.</p>', 2865 speakers: ['julien_landure'] 2866 }, { 2867 title: 'Cocktail ð¾ ð ð¹', 2868 time: '21h00', 2869 type: 'cocktail', 2870 abstract: '<p>Quoi de mieux qu\'un petit cocktail pour fêter cette fin de saison.</p>' + 2871 '<p>Rendez-vous dans le patio, et au programme, boissons, petits fours et discussions tech (ou pas). On refait le monde !</p>' 2872 }] 2873 }, { 2874 id: '2017_05_15', 2875 title: "Anki Overdrive // CI, CD, pipelines, conteneurs", 2876 date: new Date(2017, 4, 15), //month begin at 0 2877 time: '19', 2878 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/239670797/', 2879 place: 'eartsup', 2880 subjects: [{ 2881 title: 'CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?', 2882 length: '1h - 1h30', 2883 time: '19h00', 2884 type: 'talk', 2885 speakers: ['guillaume_membre'], 2886 abstract: '<p>Si vous croyez que Docker et les Pipelines ne servent qu\'aux chargements et transport de conteneurs, Jenkins, votre fidèle serviteur, vous montrera comment en tirer le meilleur parti.</p>' 2887 }, { 2888 title: 'Anki Overdrive : controllez vos voitures "circuit 24" à partir de votre code', 2889 length: '20min', 2890 time: '20h30', 2891 type: 'quickie', 2892 speakers: ['tugdual_grall'], 2893 abstract: '<p>Nous nous rappelons tous de notre premier circuit électrique, de notre premiers tours de piste dans un jeu vidéo, je vous propose dans cette présentation de passer à l\'étape suivante: mélanger un jeux vidéo et un circuit de voiture, avec Anki Overdrive ( https://anki.com/en-us/overdrive )</p>' + 2894 '<p>Vous découvrirez en quelques minutes la mise en place d\'un circuit, le contrôle des voitures à partir de votre téléphone mobile, et l\'utilisation d\'intelligence artificielle pour plonger dans un nouveau style de jeux.</p>' + 2895 '<p>Puis vous découvrirez comment "hacker" les voitures pour capturer les données en temps réel, et même controller ces voitures à partir de votre code, donc à partir de n\'importe quel device connecté. (Mio, Leap, ...)</p>' 2896 }] 2897 }, {
2898 id: '2017_04_12', 2899 title: "Netflix // Devops", 2900 date: new Date(2017, 3, 12), //month begin at 0 2901 time: '19h00', 2902 register: 'https://www.meetup.com/Nantes-Java-User-Group/events/238418834/', 2903 place: 'eartsup', 2904 subjects: [{ 2905 title: 'Netflix OSS ou comment Homer est devenu un super héros', 2906 length: '45min', 2907 time: '19h00', 2908 type: 'talk', 2909 speakers: ['vickrame_ujoodha'], 2910 abstract: '<p>La stack Netflix OSS ou comment Homer Simpsons est devenu un super héros.</p>' + 2911 '<p>Homer Simpson éternelle looser dans la série, doit faire face une fois encore à l\' homme le plus cruel de SpringField, Mrs Burns.</p>' + 2912 '<p>Dans ce nouvel épisode, nous verrons comment Homer, confronté à des multiples questions auxquels il ne sais pas quoi répondre, a pu devenir un super héros,en utilisant la stack Netflix OSS, aux yeux de cet homme impitoyable. </p>' + 2913 '<p>Alors abonnez-vous pour voir cet épisode.</p>' 2914 }, { 2915 title: 'Au secours, mon chef m\'a demandé de passer au DevOps', 2916 length: '45min', 2917 time: '19h45', 2918 type: 'talk', 2919 speakers: ['antony_guilloteau'], 2920 abstract: '<p>"Continuous Delivery" et "DevOps" font partis des buzz word du moment dans l\'IT.</p>' + 2921 '<p>Si vous n\'êtes pas encore entrés dans ces démarches, ce n\'est qu\'une question de temps ! Préparez-vous à voir bientôt débarquer votre chef sur le bench avec le bouquin "Découvrir DevOps" sous le bras.</p>' + 2922 '<p>Mais pour les développeurs, ça change quoi le DevOps ? A travers cette conférence, je vais vous faire part des mes différents retours d\'expérience sur ces changements autour des pratiques, organisations et outillages.</p>' 2923 }] 2924 }, { 2925 id: '2017_03_01', 2926 title: "Gestion de conf // Angular 2", 2927 date: new Date(2017, 2, 1), //month begin at 0 2928 time: '19h00', 2929 register: 'https://www.meetup.com/Nantes-Java-User-Group/events/237897768/', 2930 place: 'hub_creatic', 2931 subjects: [{ 2932 title: "Gestion de configuration avec Hespérides", 2933 length: '45min', 2934 time: '19h00', 2935 type: 'talk', 2936 speakers: ['emeric_martineau'], 2937 abstract: "<p>Le système d'information de Voyages-Sncf.com ce sont des centaines d'applications.<br>" + 2938 "Elles sont en Java, en PHP, en Python, en Ruby, en NodeJS... Autant de technologies qui ont leurs préférences au niveau du format de configuration (XML, YAML, INI...).<br>" + 2939 "Dans ce contexte, il faut un outil qui permet de gérer n'importe quel format de fichiers (excepté binaire) en étant totalement décorrélé de la technologie, le tout le plus simplement possible tout en proposant de gérer des environnements différents.<br>" + 2940 "Cet outil doit être accessible à tous pour faciliter la vie de tous les collaborateurs : des développeurs, aux testeurs en passant par le support, sans oublier la production.<br>" + 2941 "En plus il est OpenSource !</p>", 2942 docs: [] 2943 }, { 2944 title: "Et si on refaisait le site du NantesJug en Angular 2 ?", 2945 length: '45min', 2946 time: '19h45', 2947 type: 'talk', 2948 speakers: ['anthonny_querouil'], 2949 abstract: "<p>
2949Le site du JUG de Nantes, <a href=\"http://http://www.nantesjug.org\">http://www.nantesjug.org</a> est une application Angular 1.0.8 qui date un peu, et comme tout bon jugger, jâaime mon JUG local et je me dis quâune refonte serait la bienvenue.</p>" + 2950 "<p>Au cours de ce live-coding, nous partirons dâune application initiée avec angular-cli et nous créerons notre nouvelle version en utilisant TypeScript, un language typé de Microsoft, et la fameuse plateforme de développement on ne peut plus hype, Angular 2.</p>", 2951 docs: [ 2952 { name: 'sources', url: 'https://github.com/anthonny/nantesjug-2017', type: 'github' } 2953 ] 2954 }] 2955 }, { 2956 id: '2017_02_21', 2957 title: "Soirée Kodo Kojo", 2958 date: new Date(2017, 1, 21), //month begin at 0 2959 time: '19h30', 2960 register: 'https://www.meetup.com/Nantes-Java-User-Group/events/237810951/', 2961 place: 'dojo', 2962 subjects: [{ 2963 title: "Du Docker dans mon workflow de dev", 2964 length: '45min', 2965 time: '19h30', 2966 type: 'talk', 2967 speakers: ['jean_pascal_thiery', 'antoine_le_taxin'], 2968 abstract: "<p>Kodo Kojo est une solution Open source qui permet de fournir une usine logicielle en 3 clics qui inclut : la gestion de la sécurité, la configuration, le monitoring et la gestion des utilisateurs sur chacune des briques de l'usine.</p>" + 2969 "<p>Kodo Kojo s'appuie sur Mesos/Marathon/Docker pour lancer ses services ainsi que les briques qui constituent chaque usine logicielle. Nous proposons de vous présenter les solutions que nous avons mises en place pour tester et construire notre projet qui se compose d'une stack technique assez conséquente. Nous répondrons notamment aux questions suivantes :" + 2970 "<ul><li>Comment tester mon service de pilotage par API de Gitlab/Jenkins/Nexus ?</li>" + 2971 "<li>Comment tester l'UI sans avoir à installer Java, Maven, Meso, Marathon, Node, Npm, HaProxy, ...</li>" + 2972 "<li>Comment automatiser tous ces tests ?</li>" + 2973 "<li>Comment partager nos livrables simplement ?</li></ul>" + 2974 "</p>", 2975 docs: [] 2976 }], 2977 docs: [ 2978 { name: 'slides', url: 'http://www.slideshare.net/KodoKojo/du-docker-dans-notre-workflow-de-dev-72453736', type: 'slideshare' }, 2979 ] 2980 }, { 2981 id: '2017_02_01', 2982 title: "Soirée RxJava, Spring 5, Ratpack // Couchbase", 2983 date: new Date(2017, 1, 01), //month begin at 0 2984 time: '19', 2985 register: 'https://www.meetup.com/Nantes-Java-User-Group/events/237022612/', 2986 place: 'eartsup', 2987 subjects: [{ 2988 title: "A practical RxJava example with Ratpack and Couchbase", 2989 length: '50min', 2990 time: '19h00', 2991 type: 'talk', 2992 speakers: ['laurent_doguin'], 2993 abstract: "<p>RxJava seems to be this awesome thing that every cool kids start using. But when you read about it, half of the time itâs hard to make anything out of it. Sure the isolated examples look nice but itâs always hard to put this in perspective with a real app.</p>" + 2994 "<p>In this talk Iâll go through an application made to store, index and search files. Weâll see the benefit brought by using RxJava , Ratpack and Couchbase together. Nothing too complicated or advanced, just something pragmatic.</p>" + 2995 "<p>This talk is for you if you want to discover RxJava through a pragmatic example. Itâs a beginner talk.</p>", 2996 docs: [] 2997 }, { 2998 title: "Applications web reactives avec Spring 5 et Reactor 3", 2999 length: '40min', 3000 time: '20h00', 3001 type: 'talk', 3002 speakers: ['simon_basle'], 3003 abstract: "<p>Dans cette présentation nous découvrirons Reactor 3, une librairie réactive alternative à RxJava mais proche de celle-ci. " + 3004 "Nous verrons comment Spring 5 va mettre l\'accent sur la programmation réactive avec Reactor comme base. Nous comparerons ensuite " + 3005 "Reactor avec RxJava 1 et RxJava 2, ce qui sera l\'occasion de se focaliser (comme la librairie) sur un contexte Java 8, la spécification " + 3006 "Reactive Streams et le concept de backpressure.</p>", 3007 docs: [] 3008 } 3009 3010 ], 3011 docs: [ 3012 { name: 'Affiche de la soirée', url: 'https://drive.google.com/open?id=0BzLO1XLmywLJS1A5cm1kOFBhakk', type: 'pdf' } 3013 ] 3014 }, {
3015 id: '2017_01_18', 3016 title: "I'm a CTO Bitch // Kanban from the startup warfare", 3017 date: new Date(2017, 0, 18), //month begin at 0 3018 time: '19', 3019 register: 'https://www.meetup.com/Nantes-Java-User-Group/events/236606281/', 3020 place: 'hub_creatic', 3021 subjects: [{ 3022 title: "I'm a CTO Bitch", 3023 length: '0h40', 3024 time: '19h00', 3025 type: 'talk', 3026 speakers: ['youen_chene'], 3027 abstract: "<p>CTO, je suis un CTO, enfin! ⦠Entre la course technologique, le juridique, la levée de fonds, le recrutement, le management, la gestion de la roadmap, les comités dâadministration, les avant ventes et les 30 mn de code hebdomadaire, ce talk aidera les développeurs à mieux comprendre les CTOs et aux futurs CTOs à mieux appréhender ce nouveau role. </p>", 3028 docs: [] 3029 }, 3030 { 3031 title: "Kanban from the startup warfare", 3032 length: '0h30', 3033 time: '19h40', 3034 type: 'talk', 3035 speakers: ['youen_chene'], 3036 abstract: "<p>Nous verrons comment l'équipe produit de Saagie s'est organisé autour de l'approche Kanban pour répondre à ce système fortement contraint. Nous partagerons aussi les erreurs et les leçons apprises.</p>" + 3037 "<p>La présentation sera agrémentée d'un parallélisme avec un empire qui a eu une croissance de startup : l'empire mongol.</p>", 3038 docs: [] 3039 } 3040 ], 3041 docs: [ 3042 { name: 'slides', url: 'https://drive.google.com/open?id=0B4KTOFlyLP1xd1NtZzdTd0pDUTg', type: 'pdf' }, 3043 ] 3044 }, 3045 { 3046 id: '2016_10_14', 3047 title: "Soirée Quickies", 3048 date: new Date(2016, 11, 14), //month begin at 0 3049 time: '19', 3050 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/235607836/', 3051 place: 'insula', 3052 subjects: [{ 3053 title: "Retour sur Devoxx Belgique 2016", 3054 length: '0h15', 3055 time: '19h00', 3056 type: 'quickie', 3057 speakers: ['yann_danthu'], 3058 abstract: "<p>" + 3059 "Devoxx.be c'est sur 5 jours dont 2 jours University et 3 jours de conférences.<br>" + 3060 "Je vous propose un petit retour sur mes 3 jours de conférence de Devoxx.be 2016, histoire de vous donnez envie d'aller y faire un tour ;)" + 3061 "</p>", 3062 docs: [] 3063 }, { 3064 title: "Google Design Sprint : à quoi ça sert et pourquoi il faut essayer", 3065 length: '0h15', 3066 time: '19h15', 3067 type: 'quickie', 3068 speakers: ['matthieu_gioani'], 3069 abstract: "<p>" + 3070 "Le Google Design Sprint est une approche de prototypage d'un service ou d'un business en 5 jours qui permet d'avancer rapidement et de lever des hypothèses sur une idée.<br>" + 3071 "Venez découvrir ce qui fait le succès des Google Design Sprints !" + 3072 "</p>", 3073 docs: [] 3074 }, { 3075 title: "DropWizard for the rest of us", 3076 length: '0h15', 3077 time: '19h30', 3078 type: 'quickie', 3079 speakers: ['adrien_pessu'], 3080 abstract: "<p>" + 3081 "Avec l'essor de lâarchitecture Microservice, DropWizard est un framework idéal pour développer des services REST.<br>" + 3082 "Je vous présenterai la simplicité de mise en place d'un microservice REST, ainsi que les possibilités du framework léger et robuste qu'est DropWizard." + 3083 "</p>", 3084 docs: [ 3085 { name: 'slides', url: 'https://adrienpessu.github.io/prez/prez-DropWizard-quickie', type: 'html' }, 3086 { name: 'projet', url: 'https://github.com/adrienpessu/dropwizard-demos-quickies', type: 'github' } 3087 ] 3088 }, { 3089 title: "2017: Java 9 et autres outils!", 3090 length: '0h15', 3091 time: '19h45', 3092 type: 'quickie', 3093 speakers: ['eric_bernardeau'], 3094 abstract: "<p>" + 3095 "En 2017, nous devrions avoir Java 9 qui va entraîner pas mal de changement dans nos outils.<br>" + 3096 "Ce quickie est l'occasion de présenter les modifications / roadmap de ces outils qui s
3096ortiront en 2017, comme par exemple spring 5." + 3097 "</p>", 3098 docs: [] 3099 }, { 3100 title: "Webcomponents the state of the art", 3101 length: '0h15', 3102 time: '20h00', 3103 type: 'quickie', 3104 speakers: ['yvonnick_frin'], 3105 abstract: "<p>" + 3106 "Quoi les webcomponents !? Ce truc-là , on en entend parler depuis des années et chacun en a sa propre interprétation.<br>" + 3107 "Et puis, câest pas vraiment réutilisable car il faut se traîner le framework associé à chaque fois !</p>" + 3108 "<p>La spécification W3C est passée en working draft, Chrome et Opéra la supporte déjà entièrement.<br>" + 3109 "Profitons-en pour faire un état de lâart sur ce concept de composant standard pour le Web ! " + 3110 "</p>", 3111 docs: [] 3112 }, { 3113 title: "Keycloak, une solution simple pour sécuriser vos applications", 3114 length: '0h20', 3115 time: '20h15', 3116 type: 'quickie', 3117 speakers: ['cyril_vrillaud'], 3118 abstract: "<p>" + 3119 "Un quicky de 20mins sur Keycloak (http://www.keycloak.org) une solution de sécurisation des applications (front, API, fédération dâutilisateursâ¦), qui prendrait la forme dâune démo d'un POC illustrant un use case de Voyages-sncf.com." + 3120 "</p>", 3121 docs: [] 3122 }], 3123 docs: [ 3124 ] 3125 }, { 3126 id: '2016_11_30', 3127 title: "Démystifier ElasticSearch", 3128 date: new Date(2016, 10, 30), //month begin at 0 3129 time: '19', 3130 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/235607237', 3131 place: 'eartsup', 3132 subjects: [{ 3133 title: 'Démystifier ElasticSearch', 3134 length: '1h30', 3135 time: '19h00', 3136 type: 'talk', 3137 speakers: ['maxime_odye'], 3138 abstract: "<p>ElasticSearch est une solution de moteur de recherche utilisée par beaucoup, comprise par peu. Surcouche de l'inévitable Apache Lucene, ElasticSearch en efface la complexité pour y ajouter des interfaces \"user-friendly\". ElasticSearch est une solution Out-of-the-box étonnante, s'adaptant à l'applicatif et aux besoins sans action de l'utilisateur. Force ou faiblesse ? " + 3139 "<br>Comprendre ce qu'il se passe sous le capot est essentiel pour réaliser des applications performantes et pertinentes. Analyse de texte, types de recherche et clusterisation. Autant d'outils qui méritent d'être appréhendés et compris. ElasticSearch est une brique importante de la stack ELK (ElasticSearch, Logstash, Kibana). Comprendre ce que l'on indexe dans notre moteur et comment nous l'interrogeons est nécessaire pour une restitution pertinente dans Kibana." + 3140 "</p>", 3141 docs: [] 3142 }], 3143 docs: [ 3144 { name: 'Affiche de la soirée', url: ' https://drive.google.com/uc?export=download&id=0B9mpGdJWcahkclNrMG5nRUxob0k', type: 'pdf' } 3145 ] 3146 }, { 3147 id: '2016_10_19', 3148 title: "Dev' Party 16", 3149 date: new Date(2016, 9, 19), //month begin at 0 3150 time: '19', 3151 register: 'http://www.meetup.com/fr-FR/GDG-Nantes/events/233996882/', 3152 place: 'epitech', 3153 subjects: [{ 3154 title: 'Dev\' Party', 3155 length: '4h', 3156 time: '19h00', 3157 type: 'fun', 3158 abstract: '<p>Sous forme d\'un tournoi "Clash of Code" fourni par Codingame, vous coderez sur différentes épreuves : puzzle, rapidité, moins de ligne de code...' + 3159 '<br>Co-organisé avec le NantesJUG, cette soirée sera aggrémentée avec pizza, boissons et bien sûr des lots à gagner.' + 3160 ' <p>N\'oubliez pas votre laptop pour participer !</p>' + 3161 ' <p>INSCRIPTION sur le meetup du GDG > <a href="http://www.meetup.com/fr-FR/GDG-Nantes/events/233996882/" target="_blank">ICI</a></p>', 3162 docs: [] 3163 }], 3164 docs: [ 3165 // {name: 'Affiche de la soirée', url: 'https://drive.google.com/file/d/0B1KMBvIq23BMb1haZFFjSHdFOXc/view', type:'pdf'} 3166 ] 3167 }, {
3168 id: '2016_09_28', 3169 title: "Soirée Sonar", 3170 date: new Date(2016, 8, 28), //month begin at 0 3171 time: '19', 3172 register: 'https://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/233885243/', 3173 place: 'eartsup', 3174 subjects: [{ 3175 title: 'SonarLint et SonarQube pour détecter les bugs, code smells et vulnérabilités', 3176 length: '2h', 3177 time: '19h00', 3178 type: 'talk', 3179 speakers: ['freddy_mallet'], 3180 abstract: '<p>Durant cette présentation, Freddy montrera comment totalement intégrer SonarLint et SonarQube dans une chaine de développement' + 3181 ' pour détecter en continue les problèmes de fiabilité, maintenabilité et sécurité.' + 3182 ' La présentation s\'appuiera sur des exemples de code source Java, JavaScript, C# et C. </p>', 3183 docs: [] 3184 }], 3185 docs: [ 3186 // {name: 'Affiche de la soirée', url: 'https://drive.google.com/file/d/0B1KMBvIq23BMb1haZFFjSHdFOXc/view', type:'pdf'} 3187 ] 3188 }, { 3189 id: '2016_06_23', 3190 title: "Meet & Greet", 3191 date: new Date(2016, 5, 23), //month begin at 0 3192 time: '19', 3193 register: 'http://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/231793731/', 3194 place: 'insula', 3195 subjects: [{ 3196 title: 'Cocktail, petits fours et bla bla bla :-)', 3197 length: '4h', 3198 time: '19h00', 3199 type: 'cocktail', 3200 intro: 'Petite soirée pour discuter, échanger et vous souhaitez de bonnes vacances avant la rentrée. ' + 3201 'Ce sera l\'occasion de parler technique, cuisine, vacances ou foot autour d\'un (ou plusieurs) verre et petits fours.', 3202 speakers: [], 3203 abstract: '<p>Petite soirée pour discuter, échanger et vous souhaitez de bonnes vacances avant la rentrée.</p>' + 3204 '<p>Ce sera l\'occasion de parler technique, cuisine, vacances ou foot autour d\'un (ou plusieurs) verre et petits fours.<br>' + 3205 'Merci à nos sponsors qui ont permis l\'organisation de cette soirée gratuite.</p>', 3206 docs: [] 3207 }], 3208 docs: [ 3209 { name: 'Affiche de la soirée', url: 'https://drive.google.com/file/d/0B1KMBvIq23BMb1haZFFjSHdFOXc/view', type: 'pdf' } 3210 ] 3211 }, { 3212 id: '2016_06_14', 3213 title: "GraphQL, HTTP2 et Kill mutants !", 3214 date: new Date(2016, 5, 14), //month begin at 0 3215 time: '19', 3216 register: 'http://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/231323461/', 3217 place: 'eartsup', 3218 subjects: [{ 3219 title: 'Fetch your data with GraphQL', 3220 length: '15min', 3221 time: '19h00', 3222 type: 'quickie', 3223 speakers: ['antoine_cellier'], 3224 abstract: '<p>GraphQL est une spécification proposée par Facebook permettant dâaccéder à un schéma de données issue de sources tel que des bases de données ou des services tiers, de mettre en place un typage fort et de structurer des données. Au cours de ce talk, nous allons voir comment interroger et modifier des données grâce à l\'implémentation Javascript de GraphQL.</p>', 3225 docs: [ 3226 // {name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=bCMPs9xXrZM', type: 'youtube'}, 3227 // {name: 'Slides de la présentation', url: 'https://drive.google.com/file/d/0B0aGd3KiW4gVNElNTDczZ0NTYjg/view?usp=sharing', type: 'pdf'} 3228 ] 3229 }, { 3230 title: 'HTTP2 : ce qui va changer !', 3231 length: '20min', 3232 time: '19h30', 3233 type: 'quickie', 3234 speakers: ['julien_landure'], 3235 abstract: '<p>HTTP1 est omniprésent en 2016 et HTTP2 est pourtant "sorti" le 15 mai 2015. Qu\'est-ce qu\'on y gagne, nous développeurs ? Les principes d\'optimisation Web seront-ils toujours d\'actualités ? Venez découvrir HTTP2, le futur protocole du Web !</p>', 3236 docs: [ 3237 // {name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=bCMPs9xXrZM', type: 'youtube'}, 3238 // {name: 'Slides de la présentation', url: 'https://drive.google.com/file/d/0B0aGd3KiW4gVNElNTDczZ0NTYjg/view?usp=sharing', t
3238ype: 'pdf'} 3239 ] 3240 }, { 3241 title: 'Kill mutants, save your code!', 3242 length: '30min', 3243 time: '20h00', 3244 type: 'quickie', 3245 speakers: ['eric_briand'], 3246 abstract: '<p>Les mutants attaquent et ils en veulent à votre code ! Ils exploitent chaque faille de votre couverture de code et lâexpose au grand jour ! Mais grâce à PIT, vous allez pouvoir y remedier très vite et contrecarrer cette invasion ! Vos tests unitaires seront challengés et évoluerons pour devenir plus pertinents. Les mutants nâauront quâà bien se tenir !</p>' + 3247 '<p>Lors de cette session, nous parlerons des principes du mutation testing et montrerons son application directe avec PIT, framework de mutation testing Java. Nous utiliserons des tests unitaires plus ou moins pertinents pour etudier la manière dont les mutations mettent en évidence et ciblent les carences des tests.</p>', 3248 docs: [ 3249 // {name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=bCMPs9xXrZM', type: 'youtube'}, 3250 // {name: 'Slides de la présentation', url: 'https://drive.google.com/file/d/0B0aGd3KiW4gVNElNTDczZ0NTYjg/view?usp=sharing', type: 'pdf'} 3251 ] 3252 }], 3253 docs: [ 3254 // {name: 'Affiche de la soirée', url: 'https://drive.google.com/file/d/0B9mpGdJWcahkcEFocG02MTQ4UFU/view?usp=sharing', type: 'pdf'} 3255 ] 3256 }, { 3257 id: '2016_05_10', 3258 title: "DDD, P&A, ES, CQRS, ETC", 3259 date: new Date(2016, 4, 10), //month begin at 0 3260 time: '19', 3261 register: 'http://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/230696969/', 3262 place: 'eartsup', 3263 subjects: [{ 3264 title: 'DDD, P&A, ES, CQRS, ETC', 3265 length: '1h30', 3266 time: '19h00', 3267 type: 'talk', 3268 speakers: ['arnaud_bailly', 'cedric_pineau'], 3269 abstract: '<p>Parce que nous sommes tous des « fashion victims », parce que vous savez déjà que vous ne saurez pas résister aux sirènes des micro-services, parce vous peinez déjà à justifier l\'approche « full reactive » dont vous rêvez pour ce projet qui doit démarrer, nous vous proposons de prendre un peu de recul et de discuter, pour une fois, d\'architecture logicielle (et de moissonner au passage quelques nouvelles munitions pour votre prochaine « buzzword battle »).</p>' + 3270 '<p>Le « Domain-Driven Design » est un cadre conceptuel pour le développement de logiciels qui met l\'accent sur l\'expression directe des concepts du métier sous forme de code, dans le but de diminuer la friction entre experts métiers et informaticiens.</p>' + 3271 '<p>L\'architecture « Ports And Adapters » est une démarche de structuration du code qui vise à isoler la logique métier des détails techniques de son implémentation.</p>' + 3272 '<p>« Event Sourcing » désigne un principe d\'architecture, décrit par Martin Fowler, qui met au centre du monde les événements transformant l\'état d\'un système. L\'état n\'est alors rien d\'autre que la suite des événements l\'ayant produit à partir d\'un état initial connu et précisément défini.</p>' + 3273 '<p>Le principe de « Command Query Responsibility Separation » ou CQRS est un prolongement naturel de l\'Event Sourcing où l\'on introduit une séparation complète des schémas de données en écriture et en lecture.</p>' + 3274 '<p>Cette présentation est un retour sur nos expériences dans la mise en Åuvre de systèmes logiciels basés sur ces démarches de conception et d\'architecture. Nous voulons montrer quels sont les principes de ces architectures, quels en sont les avantages tant techniques que métiers dans des cas d\'utilisation concrets et comment les mettre en Åuvre quels que soient les environnements techniques. </p>', 3275 docs: [ 3276 { name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=bCMPs9xXrZM', type: 'youtube' }, 3277 { name: 'Slides de la présentation', url: 'https://drive.google.com/file/d/0B0aGd3KiW4gVNElNTDczZ0NTYjg/view?usp=sharing', t
3277ype: 'pdf' } 3278 ] 3279 }], 3280 docs: [ 3281 { name: 'Affiche de la soirée', url: 'https://drive.google.com/file/d/0B9mpGdJWcahkcEFocG02MTQ4UFU/view?usp=sharing', type: 'pdf' } 3282 ] 3283 }, { 3284 id: '2016_04_12', 3285 title: "Code in the cloud with Eclipse Che & Kill the REST with the Falcor", 3286 date: new Date(2016, 3, 12), //month begin at 0 3287 time: '19', 3288 register: 'http://www.meetup.com/fr-FR/Nantes-Java-User-Group/events/229939263/', 3289 place: 'hub_creatic', 3290 subjects: [{ 3291 title: 'Code in the cloud with Eclipse Che: the Next-Gen Eclipse IDE', 3292 length: '45min', 3293 time: '19h00', 3294 type: 'talk', 3295 speakers: ['stevan_le_meur', 'florent_benoit'], 3296 abstract: "<p>Cette session présentera les nouveautés du projet Eclipse Che et la façon dont les workspaces ont été redéfinis afin d'être portables et facilement mis à la disposition des développeurs.</p>" + 3297 "<p>La première démo, montrera comment créer un workspace basé sur un ensemble de machines Docker, comment lâutiliser pour développer des applications Java ainsi que quelques fonctionnalités de lâIDE (debugger, refactoring, ...).</p>" + 3298 "<p>Nous vous montrerons également comment nous utilisons Che pour développer Che et vous ferons notre retour d\'expérience lorsqu\'il est intégré à des outils tels que JIRA, Jenkins et GitHub.</p>", 3299 docs: [ 3300 ] 3301 }, { 3302 title: 'Kill all the REST with the Falcor', 3303 length: '45min', 3304 time: '19h45', 3305 type: 'talk', 3306 speakers: ['hugo_wood'], 3307 abstract: "<p>Tout comme Facebook, Netflix a présenté sa propre technologie qui pourrait sonner le glas des API REST, Falcor.<br>" + 3308 "Elle déclare avoir réduit la taille de son code serveur de 90% grâce à un unique end-point qui sert toutes les données. Deux entreprises de cette envergure qui implémentent ainsi des concepts très proches, cela mérite que l'on s'y intéresse.</p>" + 3309 "<p>Après vous avoir expliqué le pourquoi et le comment, je vous propose que l'on explore ce que l'on peut construire avec Falcor.<br>" + 3310 "Et si on développait une API pour développer des API ? (Leonardo Dicaprio ne fera pas d'apparition lors de cette conférence.)</p>", 3311 docs: [ 3312 ] 3313 }], 3314 docs: [ 3315 { name: 'Affiche de la soirée', url: 'https://drive.google.com/file/d/0B9mpGdJWcahkWkhfdi1oYkJrTWs/view?usp=sharing', type: 'pdf' } 3316 ] 3317 }, { 3318 id: '2016_03_17', 3319 title: "Soirée Sécurité des applications Java", 3320 date: new Date(2016, 2, 17), //month begin at 0 3321 time: '19', 3322 register: 'http://guestli.st/409116', 3323 place: 'eartsup', 3324 subjects: [{ 3325 title: 'REX: Audit de sécurité d\'applications Java', 3326 length: '20min', 3327 time: '19h00', 3328 type: 'talk', 3329 speakers: ['marc_lebrun'], 3330 abstract: '<p>Retour d\'expérience, du point du vue du consultant, sur les audits de sécurité portant sur des applications Java:</p>' + 3331 '<ul>' + 3332 '<li>Types d\'applications rencontrées,</li>' + 3333 '<li>Méthodologie,</li>' + 3334 '<li>Exemples de failles.</li>' + 3335 '</ul>', 3336 docs: [ 3337 ] 3338 }, { 3339 title: 'Secure Coding Live !', 3340 length: '1h', 3341 time: '19h30', 3342 type: 'talk', 3343 speakers: ['sebastien_gioria'], 3344 abstract: '<p>Lors de cette session nous prendrons une application de type shopping Card et appliquerons les bonnes pratiques de secure Coding Java dessus pour la rendre plus resistante aux différentes attaques Web. </p>', 3345 docs: [ 3346 ] 3347 }], 3348 docs: [ 3349 { name: 'Vidéo de la soirée', url: 'https://www.youtube.com/watch?v=grqesqXEAFo', type: 'youtube' } 3350 ] 3351 }, {
3352 id: '2016_03_02', 3353 title: "Vert.X", 3354 date: new Date(2016, 2, 2), //month begin at 0 3355 time: '19', 3356 register: 'http://guestli.st/404760', 3357 place: 'eartsup', 3358 subjects: [{ 3359 title: "Vert.x - Sprechen vous reactive fanta'stico ?", 3360 length: '1h30 min', 3361 time: '19h', 3362 type: 'talk', 3363 speakers: ['clement_escoffier'], 3364 abstract: "<p>Vous devez bâtir une application qui passe à lâéchelle, à base de micro-services ou plus classique, tolérante aux pannes, mais vous ne savez pas par ou commencer ? La seule chose dont vous avez besoin est un fichier jar et dâune machine virtuelle java.</p>" + 3365 "<p>Vert.x 3 est une librairie pour créer des systèmes réactifs sâexécutant sur une machine virtuelle Java. Vert.x 3 offre une nouvelle manière dâimplémenter des applications concurrentes,scalables et tolérantes aux fautes. Avec vert.x 3 vous pouvez développer des applications « micro-services » distribuées en Java, mais aussi en JavaScript, Groovy, Ruby et Ceylon. Vert.x 3 permet également dâintégrer des applications \"non-vert.x\" tel que node.js, .NET ou C.</p>" + 3366 "<p>Cette présentation introduit les concepts clés de Vert.x and comment vous pouvez utiliser Vert.x dans votre prochain projet. Cette session explique les systèmes réactifs, la programmation réactive (attention câest pas la meme chose), comment le modèle de programmation asynchrone proposé par Vert.x vous permet de construire facilement des applications concurrentes et pourquoi câest fait ainsi. Nous verrons également le passage a lâéchelle, la tolérance aux pannes, les perfs, le monitoring et les composants clés de lâéco-système Vert.xâ¦</p>", 3367 docs: [ 3368 { name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=KeZAf0fIOGA', type: 'youtube' } 3369 ] 3370 }], 3371 }, { 3372 id: '2016_02_25', 3373 title: "Infrastructure automation & React", 3374 date: new Date(2016, 1, 25), //month begin at 0 3375 time: '19', 3376 register: 'http://guestli.st/404751', 3377 place: 'hub_creatic', 3378 subjects: [{ 3379 title: "Why do you need to automate your infrastructure?", 3380 length: '40 min', 3381 time: '19h', 3382 type: 'quickie', 3383 speakers: ['guillaume_blondeau'], 3384 abstract: '<p>Dans cette présentation je ferai un retour d\'expérience sur la gestion d\'infrastructure.</p>' + 3385 '<p>Nous verrons comment nous sommes passés d\'une application hébergée sur Amazon Web Services (AWS) et gérée "à la main" à une solution complétement automatisée, du provisionnement au déploiement.</p>' + 3386 '<p>Ce sera l\'occasion de parler des problématiques, des solutions et de présenter <a href="http://www.ansible.com/" target="_blank">Ansible</a>, l\'outil d\'automatisation que nous avons utilisé.</p>', 3387 docs: [ 3388 ] 3389 }, { 3390 title: "Let's React", 3391 length: '1h20', 3392 time: '19h40', 3393 type: 'talk', 3394 speakers: ['mathieu_ancelin'], 3395 abstract: '<p>React est une librairie JavaScript développée par Facebook pour créer facilement des interfaces graphiques. La particularité de React vient de son modèle de programmation orienté composant et de sa façon de décrire les vues de ces composants. Contrairement à d\'autres librairies, ici pas de templates et de pseudo code, React permet d\'utiliser la pleine expressivité de JavaScript et de bénéficier de tout l\'écosystème Javascript et de toutes les features du langage, notamment tous les goodies apportés par ES2015.</p>' + 3396 '<p>Durant cette session orientée live coding, nous verrons comment utiliser React pour créer des composants graphiques dans le cadre d\'applications web et d\'applications mobiles natives grâce à React Native.</p>', 3397 docs: [ 3398 ] 3399 }], 3400 docs: [ 3401 { name: 'Vidéo de la soirée', url: 'https://www.youtube.com/watch?v=QZOtyKtp5Vg', type: 'youtube' } 3402 ] 3403 }, {
3404 id: '2016_01_19', 3405 title: "Orchestrating a Continuous Delivery Pipeline with Jenkins and Docker", 3406 date: new Date(2016, 0, 19), //month begin at 0 3407 time: '19', 3408 register: 'http://guestli.st/401376', 3409 place: 'hub_creatic', 3410 subjects: [{ 3411 title: "What\'s new in Java 9", 3412 length: '30 min', 3413 time: '19h', 3414 type: 'quickie', 3415 speakers: ['laurent_maillet'], 3416 abstract: "Java 8 est sorti depuis près de deux ans. " + 3417 "Alors qu\'Oracle avait avancé un rythme de release de version majeurs tous les deux ans, qu\'en est-il réellement ? " + 3418 "Java 9 s\'annonce-t-il aussi riche que l\'a pu être son prédécesseur ? Je vous propose un tour d'horizon de l\'avancée de Java 9 et de ces nouveautés.", 3419 docs: [ 3420 { name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=XX2OLBdyJ1s', type: 'youtube' } 3421 ] 3422 }, { 3423 title: "Orchestrating a Continuous Delivery Pipeline with Jenkins and Docker", 3424 length: '1h', 3425 time: '19h30', 3426 type: 'talk', 3427 speakers: ['nicolas_deloof'], 3428 abstract: "<p>le \"Continuous Delivery\" est un sacré buzz word, et \"Docker\" encore plus, mais les blog que j'ai pu lire sur sujet ne proposent qu'un pipeline naif et minimaliste : compile, test, push docker image, et voilà .</p>" + 3429 "<p>En 2015 Jenkins adresse clairement plus que de l'Integration Continue, et avec le support récent du workflow plugin nous pouvons orchestrer avec un DSL des pipelines de grande complexité. L'integration avec Docker lui donne encore plus de puissance.</p>" + 3430 "<p>Pendant cette session, je vais construire un pipeline de CD from scratch pour montrer l'utilisation du workflow et sa flexibilité, ainsi que le support de Docker.</p>", 3431 docs: [ 3432 { name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=o26DbcN11Hw', type: 'youtube' } 3433 ] 3434 }], 3435 }, { 3436 id: '2015_12_15', 3437 title: "Livrer chaque jour ce qui est prêt & Continuous Merge avec Git", 3438 date: new Date(2015, 11, 15), //month begin at 0 3439 time: '19', 3440 register: 'http://guestli.st/398028', 3441 place: 'eartsup', 3442 subjects: [{ 3443 title: "Livrer chaque jour ce qui est prêt", 3444 length: '1h', 3445 time: '19h', 3446 type: 'talk', 3447 speakers: ['dimitri_baeli', 'geoffrey_berard'], 3448 abstract: "<p>C\'est une aventure très enrichissante de passer d\'une organisation de type \"éditeur logiciel\" (Cycle Plan/Dev/Recette/Prod) " + 3449 "avec une release par mois à une organisation non moins solide de type \"Continuous Delivery\" avec une mise en production par jour de " + 3450 "\"ce qui est prêt\". C\'est pourquoi nous vous proposons de découvrir les moyens techniques et organisationnels en pratique chez LesFurets.com " + 3451 "pour garantir la qualité tout en diminuant le \"Time To Market\" : déploiement par les devs, travail en feature branches avec un merge continu, " + 3452 "itérations avec le business, monitoring de prod pour tous, ...</p>" + 3453 "<p>Organisation du travail, principes directeurs et pistes à suivre.</p>", 3454 docs: [ 3455 ] 3456 }, { 3457 title: "Continuous Merge avec Git", 3458 length: '1h', 3459 time: '20h', 3460 type: 'talk', 3461 speakers: ['dimitri_baeli', 'geoffrey_berard'], 3462 abstract: "<p>Partage du fonctionnement de l\'outillage Git chez LesFurets.com. Le \"merge continu\" étend notre intégration continue pour nous permettre" + 3463 " de gérer au quotidien plus dâune cinquantaine de branches de développement. Détection des conflits, intégration, qualité... " + 3464 "Venez découvrir comment nous livrons 5 à 20 branches de code en production chaque jour !</p>" + 3465 "<p>Présentation beaucoup plus détaillée de notre organisation du code en GIT (feature branching & merge continu)</p>", 3466 docs: [ 3467 ] 3468 }], 3469 docs: [ 3470 { name: 'Vidéo de la soirée', url: 'https://www.youtube.com/watch?v=V37UJ7_V22s', type: 'youtube' }, 3471 ] 3472 }, {
3473 id: '2015_11_23', 3474 title: "REX docker puis Monoliths et Microservices", 3475 date: new Date(2015, 10, 23), //month begin at 0 3476 time: '19', 3477 register: 'http://guestli.st/350382', 3478 place: 'eartsup', 3479 subjects: [{ 3480 title: "REX docker sur la mise d'une forge logicielle et ALM", 3481 length: '20 min', 3482 time: '19h', 3483 type: 'quickie', 3484 speakers: ['guillaume_membre'], 3485 abstract: "<p>Un petit REX sur la mise en place de Docker pour construire une plateforme de forge logicielle et ALM.</p>" + 3486 "<p>L'idée n'est pas de re-présenter Docker mais plutot ce qui a bien " + 3487 "marché et moins bien sur le déploiement d'une forge logicielle que " + 3488 "j'ai mis en place pour un de mes clients, les difficultés à créér des " + 3489 "images, la facilité à customiser les existantes, le temps passé par " + 3490 "rapport à l'installation directe sur la machine hote...</p>", 3491 docs: [ 3492 { name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=YzfZsEAgNHc', type: 'youtube' } 3493 ] 3494 }, { 3495 title: "Monoliths et Microservices", 3496 length: '1h30 min', 3497 time: '19h30', 3498 type: 'talk', 3499 speakers: ['steve_sfartz'], 3500 abstract: "<p>Monoliths et Microservices : buzz words 2015, il est temps de vous faire un avis sur le sujet.</p>" + 3501 "<p>Venez découvrir les microservices, et les outils disponibles pour démarrer. " + 3502 " Illustrations avec la stack Netflix, quelques retours d'expérience, et une démo de la Gateway Programmatique Kong.</p>", 3503 docs: [ 3504 { name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=5LnL1HYmLwY', type: 'youtube' } 3505 ] 3506 }], 3507 }, { 3508 id: '2015_10_13', 3509 title: "Soirée Reconnaissance d'écriture et GitHub", 3510 date: new Date(2015, 9, 13), //month begin at 0 3511 time: '19', 3512 register: 'http://guestli.st/346224', 3513 place: 'eartsup', 3514 subjects: [{ 3515 title: "Ajoutez de la reconnaissance d'écriture à votre webapp grâce à Polymer", 3516 length: '30 min', 3517 time: '19h', 3518 type: 'quickie', 3519 speakers: ['pierre_alban_dewitte'], 3520 abstract: "<p>MyScript construit une technologie de reconnaissance d'écriture depuis plus de 15 ans. Nous avons récemment ajouté à notre portfolio un composant Polymer permettant d'intégrer très facilement de la reconnaissance d'écriture dans votre webapp.</p>" + 3521 "<p>Ce quickie sera d'abord lâoccasion de comprendre comment fonctionne la reconnaissance d'écriture grâce au machine learning avec une illustration au travers de plusieurs démonstrations.</p>" + 3522 "<p>Ensuite nous expliquerons l'anatomie du composant Polymer de reconnaissance puis lors d'une séance de codage en direct nous intégrerons de la reconnaissance d'expression mathématique dans une webapp.<br><br></p>" + 3523 "<p>Venez avec votre téléphone, tablette ou ordinateur portable pour observer Polymer en action.</p>", 3524 docs: [ 3525 { name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=gUfYJ5CgCA4', type: 'youtube' } 3526 ] 3527 }, { 3528 title: "Stratégies de collaboration avec Git & GitHub", 3529 length: '1h30', 3530 time: '19h30', 3531 type: 'talk', 3532 speakers: ['alain_helaili'], 3533 abstract: "<p>De nombreuses équipes se contentent de remplacer leur gestionnaire de code source par Git sans vraiment revoir leur mode de collaboration ni exploiter ses possibilités.</p>" + 3534 "<p>Il n'y a pas mieux pour se récupérer les contraintes du changement et aucun de ses bénéfices. L'objectif de cette présentation est de passer en revue différents workflows basés sur Git et GitHub, en y incluant des stratég
3534ies de code review et des exemples d'outils tiers.</p>" + 3535 "<p>Enfin, on verra comment le workflow humain peut se prolonger par un déploiement automatisé bien que pas forcément continu.</p>", 3536 docs: [ 3537 { name: 'Vidéo de la présentation', url: 'https://www.youtube.com/watch?v=CUsZYzvrKog', type: 'youtube' } 3538 ] 3539 }], 3540 }, { 3541 id: '2015_09_24', 3542 title: "Restitution du Hackathon des communautés nantaises de développeurs", 3543 date: new Date(2015, 8, 24), //month begin at 0 3544 time: '19', 3545 register: 'https://guestlistapp.com/events/341355', 3546 place: 'eartsup', 3547 subjects: [{ 3548 title: "Restitution du Hackathon des communautés nantaises de développeurs", 3549 length: '2h', 3550 time: '19h', 3551 type: 'talk', 3552 speakers: [], 3553 abstract: "<p>Le NantesJUG organise un événement dans le cadre de la Digital Week 2015, le <a href=\"http://www.nantesdigitalweek.com/evenement-2015/hackathon-des-communautes-nantaises-de-developpeurs/\">\"Hackathon des communautés nantaises de développeurs\".</a></p>" + 3554 "<p>Ce hackathon a pour objectif de réunir les différentes communautés de développeurs nantais autour d'un sujet à base d'Open Data de la ville de Nantes. Chaque communauté doit créer une équipe afin de participer.</p>" + 3555 "<p>Le sujet sera communiqué à chaque équipe au début de la Digital Week, le 17/09. Elles auront alors une semaine pour relever le défi.</p>" + 3556 "<p>Lors de la soirée, un jury, composé de membres des différentes communautés, désignera l'équipe gagnante.</p>", 3557 docs: [ 3558 ] 3559 }], 3560 }, { 3561 id: '2015_06_22', 3562 title: "Soirée sur l'importance de l'UX & sur Meteor.js", 3563 date: new Date(2015, 5, 22), //month begin at 0 3564 time: '19', 3565 register: 'https://guestlistapp.com/events/333678', 3566 place: 'hub_creatic', 3567 subjects: [{ 3568 title: "L'expérience utilisateur est importante pour nous", 3569 length: '45 min', 3570 time: '19h', 3571 type: 'talk', 3572 speakers: ['florence_herrou'], 3573 abstract: "<p>L'expérience utilisateur est une discipline peu connue et encore très négligée en France, en particulier lors de la conception d'applications métier. " + 3574 "Pourtant, une bonne ergonomie améliore la productivité et facilite l'adoption par les usagers. Dans beaucoup de projets, en particulier en mode agile, " + 3575 "le développeur participe à la définition de l'interface et des fonctionnalités.</p>" + 3576 "<p>Cette conférence le sensibilisera à l'importance de l'expérience utilisateur et lui donnera quelques clés pour savoir comment l'améliorer.</p>", 3577 docs: [ 3578 ] 3579 }, { 3580 title: "Full Stack Reactivity avec Meteor.js", 3581 length: '45 min', 3582 time: '19h45', 3583 type: 'talk', 3584 speakers: ['anthonny_querouil'], 3585 abstract: "<p>Vous souhaitez créer des applications réactives et virer vos spinners ? Vous cherchez un environnement de développement javascript efficace ?</p>" + 3586 "<p>Meteor.js est fait pour vous !</p>" + 3587 "<p>Je vous présenterai cet outil et ce qui gravite autour.</p>", 3588 docs: [{ 3589 name: 'Les slides', 3590 url: 'http://anthonny.github.io/decks/full-stack-reactivity-avec-meteorjs/', 3591 type: 'html' 3592 }, { 3593 name: 'Les sources de Tweetiments', 3594 url: 'https://github.com/anthonny/tweetiments', 3595 type: 'github' 3596 }] 3597 }], 3598 }, { 3599 id: '2015_05_11', 3600 title: 'Soirée Quickies', 3601 date: new Date(2015, 4, 11), //month begin at 0 3602 time: '19', 3603 register: 'https://guestlistapp.com/events/324039', 3604 place: 'eartsup', 3605 subjects: [{ 3606 title: "Java 8 en pratique", 3607 length: '30 min', 3608 time: '19h', 3609 type: 'quickie', 3610 speakers: ['gabriel_landais'], 3611 abstract: "<p>Quelques exemples de réécriture de code legacy avec les nouvelles API Java 8.</p>", 3612 }, 3613 { 3614 title: 'Gitflow In Action', 3615 length: '30 min', 3616 time: '19h30', 3617 type: 'quickie', 3618 speakers: ['cecilia_bossard'], 3619 abstract: "<p>Vous cherchez un modèle de gestion des branches pour Git facile et pratique à utiliser ? Vous souhaitez avoir un workflow simple et agile pour gérer vos versions ?</p>" + 3620 "<p>Venez jeter un oeil à GitFlow !</p>" + 3621 "<p>Je vous présenterai ce workflow qui nous a permis de mieux organiser nos versions et de remplacer SVN par Git sans regret.</p>", 3622 docs: [ 3623 { name: 'Slides', url: 'http://www.slideshare.net/cecilia_bossard/git-flow-in-action', type: 'slideshare' } 3624 ] 3625 }, 3626 { 3627 title: 'Tips and tricks for clean relational db schemas', 3628 length: '45 min', 3629 time: '20h', 3630 type: 'quickie', 3631 speakers: ['clement_delafargue'],
3632 abstract: "<p>It can be usual for software developers to let the ORM take care of the database schema. In many cases it's a bad idea as it makes the data stored in your database brittle and hard to use confidently. I'll show a few tricks which will help you cleanly store and query data by using your database engine to its full power.</p>" + 3633 "<p>In some cases, using an ORM brings more problems than solutions. I'll explore these cases (they are more common than you think) and how to use the freedom given by having complete control over your schema and your queries:" + 3634 "<ul>" + 3635 "<li>indexes</li>" + 3636 "<li>semantic data types</li>" + 3637 "<li>query composition</li>" + 3638 "<li>window functions</li>" + 3639 "</ul>" + 3640 "<p>I'll show how to still be efficient and concise when going this path (with Jooq / Slick / Anorm)</p>", 3641 } 3642 ], 3643 docs: [ 3644 { name: 'Vidéo de la soirée', url: 'https://www.youtube.com/watch?v=i4NcsrtZWOA', type: 'youtube' }, 3645 ] 3646 }, { 3647 id: '2015_04_16', 3648 title: 'Soirée Invoke Dynamite / BDD', 3649 date: new Date(2015, 3, 16), //month begin at 0 3650 time: '19', 3651 register: 'https://guestlistapp.com/events/317631', 3652 place: 'netapsys', 3653 subjects: [{ 3654 title: "BDD & Cucumber: Feature first", 3655 length: '30 min', 3656 time: '19h', 3657 type: 'quickie', 3658 speakers: ['renan_michaud'], 3659 abstract: "<p>Imaginez un projet dâenvergure mené en SCRUM avec un backlog constitué dâune multitude dâUS plus ou moins organisées. Pensez-vous que ce Backlog ayant lâemprunte forte de la vie courante du BUILD puisse constituer votre référentiel fonctionnel ?" + 3660 " Non. L'approche BDD permet d'établir ce référentiel et d'en automatiser la vérification." + 3661 " Avec Cucumber, je vous propose de voir comment effectuer cette automatisation autant sur les web services que sur les IHM du poste de développement à la production !.</p>", 3662 }, 3663 { 3664 title: 'Let\'s invoke dynamite', 3665 length: '1h30', 3666 time: '19h30', 3667 type: 'talk', 3668 speakers: ['antoine_sabot_durand'], 3669 abstract: "<p>Si l'arrivée d'InvokeDynamic dans Java 7 a marqué un tournant pour la création de langages basés sur la JVM, cette fonctionnalité est restée confidentielle dans l'univers des développeurs de frameworks Java et de Java EE.</p>" + 3670 "<p>Dans cette présentation nous reviendrons sur les particularités d'InvokeDynamic et sur sa mise en oeuvre en Java.</p>" + 3671 "<p>Ensuite nous verrons comment remplacer le mécanisme de Proxy utilisé dans CDI par des appels InvokeDynamic.</p>" + 3672 "<p>Enfin nous expliquerons comment la généralisation d'invokeDynamic pourrait marquer la mort des conteneurs et la fin de Java EE tel que nous le connaissons.</p>", 3673 } 3674 ], 3675 }, { 3676 id: '2015_03_11', 3677 title: 'Soirée Cassandra / GAE', 3678 date: new Date(2015, 2, 11), //month begin at 0 3679 time: '19', 3680 register: 'https://guestlistapp.com/events/312915', 3681 place: 'eartsup', 3682 subjects: [{ 3683 title: "Google App Engine, déployer plus vite que son ombre !", 3684 length: '30 min', 3685 time: '19h', 3686 type: 'quickie', 3687 speakers: ['remi_picard'], 3688 abstract: "<p>\"Cloud\" par çi, \"Solutions PaaS\" par là . Mais quel est donc le sens de ces termes si présents ces dernières années ? Pourquoi tant de succès ? Et le développeur dans tout ça ?</p>" + 3689 "<p>Si vous vous posez toutes ces questions, venez assister à une présentation de la solution Google App Engine. Celle-ci sera illustrée par une démonstration du déploiement sur le Cloud d'un site Java JEE.</p>", 3690 }, 3691 { 3692 title: 'Introduction to Cassandra', 3693 length: '1h00', 3694 time: '19h30', 3695 type: 'talk', 3696 speakers: ['duyhai_doan'], 3697 abstract: "<p>In this session, weâll introduce Apache Cassandra, highlight its architecture, consistency and replication model to explain how the database can provide linear scalability, high availability and consistent performance.</p>" + 3698 "<p>There will be a quick overview of the Cassandra data model, query language and tooling for developers.</p>" + 3699 "<p>Sujet en français</p>", 3700 docs: [ 3701 { name: 'Les slides', url: 'http://www.slideshare.net/doanduyhai/cassandra-introduction-nantesjug', type: 'slideshare' } 3702 ] 3703 }, 3704 {
3705 title: 'Cassandra nice use-cases and worst anti-patterns seen in production', 3706 length: '30 min', 3707 time: '20h30', 3708 type: 'talk', 3709 speakers: ['duyhai_doan'], 3710 abstract: "<p>For this session, we'll show some best practices, dig into some nice use-cases seen in production but also the worst anti-patterns to avoid. There will be an interactive demo.</p>" + 3711 "<p>Sujet en français</p>", 3712 docs: [ 3713 { name: 'Les slides sur Killrchat', url: 'http://fr.slideshare.net/doanduyhai/killrchat-presentation', type: 'slideshare' } 3714 ] 3715 } 3716 ], 3717 docs: [ 3718 { name: 'Slides d\'intro', url: 'https://docs.google.com/presentation/d/1bOwzcFsAskoVdozoo-ClgLSxK4IDJhlUpPz_hSTl2_Y/edit?usp=sharing', type: 'drive' }, 3719 { name: 'Restlet', url: 'https://docs.google.com/presentation/d/1PGf2fQMqm4G8ozkW8uLtaZToUM216nK7k0aC6_8_fYw/edit?usp=sharing', type: 'drive' }, 3720 { name: 'Zenika', url: 'https://docs.google.com/presentation/d/1ndb-d18uvE6Z5I_OrwzTcXCSTUrPTIC9sqNMuEPrSsM/edit?usp=sharing', type: 'drive' } 3721 ] 3722 }, { 3723 id: '2015_02_16', 3724 title: 'Soirée Search Lucene/Solr - Rex Chef', 3725 date: new Date(2015, 1, 16), //month begin at 0 3726 time: '19', 3727 register: 'https://guestlistapp.com/events/310620', 3728 place: 'eartsup', 3729 subjects: [{ 3730 title: "Chef, oui Chef !", 3731 length: '30 min', 3732 time: '19h', 3733 type: 'quickie', 3734 speakers: ['francois_kha'], 3735 abstract: "Nous allons vous faire un petit retour d'expérience sur la mise en place de Chef à CBP pour livrer plus fréquemment nos applications Java/JEE. Qu'est-ce que Chef ? Pourquoi l'utiliser ? Comment ? Pour quels usages ?<br/> Deux développeurs, un adminsys pour vous répondre." + 3736 "<p>par François Kha <a href='http://twitter.com/fanchok'>@fanchok</a> - Sébastien Errien <a href='http://twitter.com/SebErrien'>@SebErrien</a> - Bastien Jové <a href='http://twitter.com/Tensibai'>@Tensibai</a></p>", 3737 docs: [ 3738 { name: 'Les slides', url: 'http://fr.slideshare.net/francoiskha/20150216-quickie-chef-au-jug-nantes', type: 'slideshare' } 3739 ] 3740 }, 3741 { 3742 title: 'Soirée Search Lucene/Solr', 3743 length: '1h30', 3744 time: '19h30', 3745 type: 'talk', 3746 speakers: ['olivier_tavard'], 3747 abstract: "<p>Découvrez les outils open source de Search qui ont déjà convaincu de nombreuses entreprises, et qui est proposé par la fondation Apache: Lucene / Solr.</p>" + 3748 "<p>Dans la première partie de soirée, histoire de savoir de quoi on parle, Olivier vous présentera les projets Lucene et Solr, leurs composants, leur architecture, leurs features, et on saupoudrera tout ça de scalabilité avec SolrCloud (avec démo).</p>" + 3749 "<p>En deuxième partie de soirée, Olivier vous présentera lâécosystème (ou du moins une partie) qui gravite autour de Lucene /Solr: ManifoldCF qui permet de gérer les connexions aux sources de données (avec démo dâindexation de contenu et recherche en live grâce à Datafari) et Hadoop, car il faut bien parler de Big Data, et parce que Solr devient un des outils de référence pour faire du search sur Hadoop.</p>" + 3750 "Avec tout ça vous aurez dans vos bagages de quoi gérer des Big projets avec du Big search dedans.</p>", 3751 docs: [{ 3752 name: 'Les slides', 3753 url: 'http://fr.slideshare.net/francelabs/presentation-lucene-solr-datafari-nantes-jug', 3754 type: 'slideshare' 3755 }] 3756 } 3757 ], 3758 docs: [ 3759 { name: 'Vidéo de la soirée', url: 'https://www.youtube.com/watch?v=RpAGb8fO97k', type: 'youtube' } 3760 ] 3761 }, 3762 { 3763 id: '2015_01_27', 3764 title: 'JavaFX.forReal() - MongoDB Pub/Sub', 3765 date: new Date(2015, 0, 27), //month begin at 0 3766 time: '19', 3767 register: 'http://guestli.st/306156', 3768 place: 'netapsys', 3769 subjects: [{ 3770 title: 'Pub/Sub avec MongoDB', 3771 length: '30 min', 3772 time: '19h', 3773 type: 'quickie', 3774 speakers: ['tugdual_grall'], 3775 abstract: "Venez découvrir comment créer un système pub/sub de messages/notifications avec MongoDB.<br/>Durant ce quickie nous utiliserons : des capped collections, tailable cursors, Java, Node, WebSocket/Socket.io, .... pour créer une application de notification en temps réel.", 3776 docs: [{ 3777 name: 'La vidéo de la soirée', 3778 url: 'http://youtu.be/ezZkiQLb7BE', 3779 type: 'youtube' 3780 }] 3781 }, 3782 { 3783 title: 'JavaFX.forReal()', 3784 length: '1h30', 3785 time: '19h30', 3786 type: 'talk', 3787 speakers: ['thierry_wasylcszenko'], 3788 abstract: '<p><b>En reve:</b><br/>JavaFX (8) ... le buzz word d\'Oracle, en terme de développement de clients lourds, qui le présente comme le successeur de Swing. Tout est faisable facilement en JavaFX.</p><p><b>Dans la vraie vie:</b><br/>Mais âSwing c\'est mortâ, âquelqu\'un fait-il encore du desktop?â, "y a-t-il sérieusement des gens qui utilisent JavaFX?â, âl\'avenir c\'est du web 2.0 (et au-delà ) avec du *JSâ, âmoi je ne fais que du webâ.<br/>Ces remarques vous semblent-elles familières? Cette session est faite pour vous car JavaFX répondra sans doute à toutes ces interrogations mais aussi à vos besoins.<br/>Cessons de (trop) rêver, soyons pragmatiques et revenons à la réalité. Est-il possible de réaliser des applications JavaFX complexes, pas uniquement un Bonjour Monde, et pourquoi ne pas coupler cela à du Vertx, asciidoctor, LeapMotion, JavaScript, OSGi & friends?<br/>
3788JavaFX peut-il concurrencer le web de demain voire en être complémentaire? JavaFX peut-il répondre à vos besoins?<br/>Découvrons-le ensemble lors de cette session orientée REX. Ce n\'est pas toujours aussi simple que l\'on pourrait se l\'imaginer bien que ce soit la réalité.</p>', 3789 docs: [{ 3790 name: 'Les slides', 3791 url: 'http://fr.slideshare.net/twasyl/javafxforreal', 3792 type: 'slideshare' 3793 }, { 3794 name: 'La vidéo de la soirée', 3795 url: 'http://youtu.be/c011LBQRWbs', 3796 type: 'youtube' 3797 }] 3798 } 3799 ] 3800 }, { 3801 id: '2014_12_15', 3802 title: 'Le BigData NoBullShit: Cas dâutilisation chez Dictanova et Cityzen Data', 3803 date: new Date(2014, 11, 15), //month begin at 0 3804 time: '19', 3805 register: 'http://guestli.st/301611', 3806 place: 'eartsup', 3807 subjects: [{ 3808 title: 'Le BigData NoBullShit: Cas dâutilisation chez Dictanova et Cityzen Data', 3809 length: '2 h', 3810 time: '19h', 3811 type: 'talk', 3812 speakers: ['damien_raude_morvan', 'david_morin'], 3813 abstract: "<p>Il y a 2 ans, la mode était de faire du Big Data, désormais il faut faire du Smart Data... Mais concrètement, à quoi est-ce que cela peut bien servir ?</p>" + 3814 "<p>A travers les expériences de deux entreprises, Dictanova (Damien Raude-Morvan) et de Cityzen Data (David Morin), nous essayerons de vous présenter des exemples concrets dâutilisations du Big Data et répondre par exemple aux questions suivantes :</p>" + 3815 "<ul><li>Quelle infrastructure mettre en place pour gérer de gros volumes de données ? Quels sont les écueils à éviter ? Les offres de type XaaS sont-elles pertinentes ?</li>" + 3816 "<li>Comment passer du simple "hello world" en Map/Reduce à un véritable traitement métier ? Comme modéliser un enchaînement de jobs avec Oozie ? Comme obtenir des primitives de plus haut niveau que Map/Reduce ? Cascading, Spark, Tez ?</li>" + 3817 "<li>Une fois les données stockées, comment effectuer de lâanalyse sur ces dernières ? Comment utiliser des langages de requêtage comme Pig ?</li>" + 3818 "<li>Comment gérer le changement dans son modèle de données ? Modèle de données avec Avro ? Avec Parquet ou encore Thrift ?</li>" + 3819 "<li>Comment assurer la supervision de jobs en production sur un cluster Hadoop ?</li></ul>", 3820 }] 3821 }, { 3822 id: '2014_11_17', 3823 title: 'Stresser vos applications web avec Gatling', 3824 date: new Date(2014, 10, 17), //month begin at 0 3825 time: '19', 3826 register: 'http://guestli.st/296148', 3827 place: 'epsi', 3828 subjects: [{ 3829 title: 'Les backstages de Devfest 2014', 3830 length: '30 min', 3831 time: '19h', 3832 type: 'quickie', 3833 speakers: ['jean-francois-garreau'], 3834 }, 3835 { 3836 title: 'Stresser vos applications web avec Gatling', 3837 length: '1 h 30', 3838 time: '19h30', 3839 type: 'talk', 3840 abstract: "<p>Vous vous posez les questions :<ul><li>Mon application web (quelque soit la technologie) tient-elle la charge ?</li><li>Jusqu'à combien d'utilisateurs mon application a des temps de réponse acceptable ?</li></ul></p>" + 3841 "<p><a href='http://gatling.io/'>Gatling</a> va vous aider à y répondre.<ul><li>La philosophie de l'outil, en quoi il se distingue de ses concurrents</li><li>Une démonstration de son utilisation avec une application concrète</li></ul></p>", 3842 speakers: ['rossi_oddet'], 3843 docs: [{ 3844 name: 'Les slides', 3845 url: 'http://fr.slideshare.net/RossiOddet/jug-nantes-novembre-2014', 3846 type: 'slideshare' 3847 }] 3848 } 3849 ] 3850 }, 3851 { 3852 id: '2014_10_27', 3853 title: 'Java Embarqué / Internet des Objects avec IS2T -- Une fille dans mon équipe', 3854 date: new Date(2014, 9, 27), //month begin at 0 3855 time: '19', 3856 register: 'http://guestli.st/293664', 3857 place: 'cantine_juton', 3858 subjects: [{ 3859 title: 'Une fille dans mon équipe', 3860 length: '30 min', 3861 time: '19h', 3862 type: 'quickie', 3863 speakers: ['cecilia_bossard', 'jean_palies'], 3864 abstract: '<p>Actuellement, 20% des postes dans le domaine de l\'IT sont occupés par des femmes, et la tendance ne va pas en s\'arrangeant. Pourquoi ce désintérêt ?</p>' + 3865 '<p>Le groupe Women In Technology vous propose de revenir sur ce sujet et de présenter son a
3865pproche pour essayer dâinverser la tendance.</p>', 3866 }, 3867 { 3868 title: 'Java Embarqué / Internet des Objects avec IS2T', 3869 length: '1 h 30', 3870 time: '19h30', 3871 type: 'talk', 3872 abstract: '<p>A travers une présentation de la plateforme d\'exécution embarquée MicroEJ, la société IS2T parlera du Java dans le monde des objets intelligents ou comment l\'usage de Java permet d\'accélérer la conception d\'un logiciel dans l\'embarqué contraint et d\'en réduire les coûts. </p>' + 3873 '<p></p>', 3874 speakers: ['fred_rivard'], 3875 } 3876 ] 3877 }, { 3878 id: '2014_09_29', 3879 title: 'Metrics & Docker ', 3880 date: new Date(2014, 8, 29), //month begin at 0 3881 time: '19', 3882 register: 'http://guestli.st/286752', 3883 place: 'eartsup', 3884 subjects: [{ 3885 title: 'Codehale Metrics', 3886 length: '30 min', 3887 time: '19h', 3888 type: 'quickie', 3889 speakers: ['damien_raude_morvan'], 3890 abstract: '<p>En 2014, un développeur Java est plutôt habitué à évaluer la "qualité" de son code - avec SonarQube ou des processus de peer review.</p>' + 3891 '<p>Mais lorsqu\'on lui parle de la "production", il est souvent désarmé : les métriques qu\'on lui propose ne correspondent à rien de connu et il n\'a pas assez d\'informations pour guider ses améliorations.</p>' + 3892 '<p>Dans ce quicky, jâessaierais de vous présenter la solution que j\'utilise : le framework Codehale Metrics.</p>' + 3893 '<p>Ce dernier vise à permettre au développeur de créer des indicateurs techniques ou fonctionnels. Il propose de nombreux choix d\'intégration avec vos frameworks préférés et permet un export des métriques dans de nombreux formats.</p>', 3894 docs: [ 3895 { name: 'Support de présentation', url: 'http://www.drazzib.com/projects/docs/metrics/#/', type: 'html' } 3896 ] 3897 }, 3898 { 3899 title: 'Lucy in the sky with docker', 3900 length: '1 h 30', 3901 time: '19h30', 3902 type: 'talk', 3903 abstract: '<p>On parle beaucoup de Docker en ce moment. Je vais tenter de vous expliquer comment fonctionne Docker comme jâaurais aimé quâon me lâexplique.</p>' + 3904 '<p>Nous allons apprendre à prendre en main Docker pour construire une application web Java 8 et la déployer sur la Google Cloud Platform.</p>', 3905 speakers: ['david_gageot'], 3906 } 3907 ] 3908 }, { 3909 id: '2014_06_30', 3910 title: 'Flyway & Patterns de cache ', 3911 date: new Date(2014, 5, 30), //month begin at 0 3912 time: '20', 3913 old_time: '19', 3914 register: 'http://guestli.st/265998', 3915 place: 'eartsup', 3916 subjects: [{ 3917 title: 'France - Nigéria', 3918 length: '90 min', 3919 type: 'foot', 3920 time: '18h', 3921 speakers: ['didier_deschamps'], 3922 abstract: '<p>Huitième de finale de la coupe du monde.</p> ' 3923 }, 3924 { 3925 title: 'Comment planner avec Flyway', 3926 length: '30 min', 3927 time: '20h', 3928 type: 'quickie', 3929 speakers: ['ludovic_praud'], 3930 abstract: '<p>Pour avoir l\'esprit tranquille avec vos migrations SQL en DEV ou en PROD, voici un petit retour d\'expérience de 2 ans d\'utilisation quotidienne de Flyway.</p> ', 3931 docs: [ 3932 { name: 'Support de présentation', url: 'https://drive.google.com/file/d/0B41V8oJXwyYhb1pTeHpsQzNsRmhYd3ZPMEhsVHduTm9tSXBr/edit?usp=sharing', type: 'drive' } 3933 ] 3934 }, 3935 { 3936 title: 'Les Patterns de Cache', 3937 length: '1 h 30', 3938 time: '20h30', 3939 type: 'talk', 3940 abstract: '<p>Comment diminuer le temps de traitement dâun batch ? Le temps dâexécution d\'une requête ? Le cache est un des outils du développeur pour résoudre ses problématiques quotidiennes et les concepts qui gravitent autour sont nombreux.</p>' + 3941 '<p>Si les mots Cache Aside, Write-Behind, Read-Through ne vous sont pas familiers, cela fait pourtant parti des architectures quâil est facile à mettre en place et qui dans certains contextes peuvent diminuer de manière drastique la durée dâun batch ou dâune requête.</p>' + 3942 '<p>
3942Nous aborderons également les différents moyens de scaler horizontalement et verticalement le cache (réplication, miroir, partitionnement) en nous appuyant sur différentes librairies existantes (GemFire, Coherence, Terracotta, Ehcache, Infinispan, Hazelcast) mais également NoSQL et plus généralement les In Memory Data Grid (IMDG)</p>', 3943 speakers: ['mathilde_lemee'], 3944 } 3945 ] 3946 }, { 3947 id: '2014_05_20', 3948 title: 'Devoxx Fr & Gradle', 3949 date: new Date(2014, 4, 20), //month begin at 0 3950 time: '19', 3951 register: 'http://guestli.st/254883', 3952 place: 'epsi', 3953 subjects: [{ 3954 title: 'Devoxx France 2014', 3955 length: '30 min', 3956 type: 'quickie', 3957 speakers: ['thibaud_raison', 'pierre_cosson'], 3958 abstract: '<p>Compte-rendu et tour d\'horizon de l\'édition 2014 de Devoxx France.</p> ', 3959 docs: [{ 3960 name: 'Support de présentation', 3961 url: 'https://drive.google.com/file/d/0BzLO1XLmywLJS1Q4alIxeFRxTTA/edit?usp=sharing', 3962 type: 'drive' 3963 }, { 3964 name: 'Listing ressources Devoxx 2014', 3965 url: 'https://drive.google.com/file/d/0BzLO1XLmywLJbWczVU55RGFFMEE/edit?usp=sharing', 3966 type: 'drive' 3967 }] 3968 }, 3969 { 3970 title: 'Gradle ne fait pas que remplacer Maven', 3971 length: '1 h 30', 3972 type: 'talk', 3973 abstract: '<p>Il faut que vous le sachiez, Gradle ne fait pas que remplacer Maven. Il répond à d\'autres problématiques : conventions d\'entreprise, intégration continue, DevOps, parallélisme, gestion avancée des dépendances, ' + 3974 'variantes de build déclarative, compilation incrémentale, projets polyglottes, artéfacts multiples...</p>' + 3975 '<p>Dans cette session, vous apprendrez pourquoi on ne peut pas réduire Gradle à un Maven sans XML ou un Ant sous stéroïdes. Vous verrez qu\'écrire une build sera plus jamais une punition. Pire, ça pourrait devenir un plaisir !', 3976 speakers: ['cedric_champeau'], 3977 } 3978 ] 3979 }, 3980 { 3981 id: '2014_04_14', 3982 title: 'Soirée Tools : Developper Efficacement', 3983 date: new Date(2014, 3, 14), //month begin at 0 3984 time: '19', 3985 register: 'http://guestli.st/245676', 3986 place: 'eartsup', 3987 subjects: [{ 3988 title: 'Write Java Apps Faster Using SaaS Developer Environments', 3989 length: '45 min', 3990 type: 'talk', 3991 speakers: ['tyler_jewell', 'stevan_le_meur'], 3992 abstract: '<p>The Java community is filled with terrific solutions for enabling development of apps. Every Java developer has their choice of tools and the openness of the platform makes it accessible to anyone and extensible by everyone.</p>' + 3993 '<p>But why then, is 99% of all development still done locally? While sales, marketing, customer service, support, finance, and infrastructure has steadily moved to the cloud over the past decade, Java development remains rooted on the desktop. Will it always be this way? </p>' + 3994 '<p>In this session, we will discuss the evolution of remote development of Java applications and the emergence of SaaS Developer Environments. Often times called a cloud IDE, a SaaS environment can eliminate configuration, increase collaboration, and alleviate management concerns around consistency, compliance, and velocity. In essence, SaaS developer environments can make agile, more agile.</p>' + 3995 '<p>We will present a beta of the Codenvy Cloud, a sister system to codenvy.com that has been in development since 2011.</p>', 3996 }, 3997 { 3998 title: 'Faites un « départ lancé » sur les technos Angular JS, Spring MVC, JPA, REST/HATEOAS', 3999 length: '1 h 00', 4000 type: 'talk', 4001 abstract: '<p>Présentation du principe de « Development Accelerator » avec un générateur de code simple et pragmatique.</p>' + 4002 '<p>Démos : génération de deux types dâapplications immédiatement utilisables :' + 4003 '<ul>' + 4004 ' <li>services RESTful avec Spring Data Rest / HATEOAS</li>' + 4005 ' <li>application AngularJS, REST/SpringMVC/JPA ou Spring Data</li>' + 4006 '<ul></p>', 4007 speakers: ['laurent_guerin', 'benoit_wilcox', 'ludovic_chaboud'], 4008 } 4009 ] 4010 }, 4011 { 4012 id: '2014_03_17', 4013 title: 'Du Legacy Au Cloud en Moins d\'Une Heure', 4014 date: new Date(2014, 2, 17), //month begin at 0 4015 time: '19', 4016 register: 'http://guestlistapp.com/events/234840', 4017 place: 'eartsup', 4018 subjects: [{ 4019 title: 'Dart, c\'est aussi Angular', 4020 length: '45 min', 4021 type: 'talk', 4022 speakers: ['pierre_reliquet'], 4023 abstract: '<p>AngularJS n\'est plus seul! Il possède désormais un concurrent de premier choix car soutenu par ... Google!</p>' + 4024 '<p>Il vous est donc désormais possible de rassurer vos DSI en argumentant que vous n\'allez pas coder votre front en JS, que vous allez utiliser un langage "réellement" typé [ressemblant à java] et qu\'en plus vous aurez les fonctionnalités d\'Angular (2-way binding, filtres...)! Ce concurrent c\'est AngularDart qui est, en réalité, plus qu\'un simple portage d\'AngularJS pour Dart.</p>' + 4025 '<p>Ce quickie a pour but de vous présenter rapidement comment, lorsque Dart rencontre Angular, les choses peuvent devenir rapidement plaisantes et puissantes.</p>', 4026 docs: [{ 4027 name: 'Les sources du projet Angular Dart', 4028 url: 'https://github.com/PierreReliquet/angulardart_nantesjug', 4029 type: 'github' 4030 }] 4031 }, 4032 { 4033 title: 'Du Legacy Au Cloud en Moins d\'Une Heure', 4034 length: '1 h 00', 4035 type: 'talk', 4036 abstract: '<p>Il est de plus en plus simple de développer des applications web de zéro, pour les héberger sur le cloud. Mais est-ce aussi simple quand on part de code existant ? Les techniques adaptées à un projet tout neuf sont-elles utilisables de la même façon ?</p>' + 4037 '<p>Nous verrons quâil est possible de partir dâune application legacy, de lui ajouter des fonctionnalités et de la déployer en continu sur le cloud en moins dâune heure.</p>' + 4038 '<p>Cette session de live coding sera lâoccasion de découvrir des techniques de refactoring, de développement piloté par les tests, de test et dâinspection continue. Et ce, en tentant à chaque étape de faire les choses les plus simples possibles.</p>', 4039 speakers: ['david_gageot'], 4040 } 4041 ] 4042 }, 4043 { 4044 id: '2014_02_17', 4045 title: 'Gros projet en JAVA & AngularJS / Travail collaboratif en temps réél', 4046 date: new Date(2014, 1, 17), //month begin at 0 4047 time: '19', 4048 register: 'https://guestlistapp.com/events/230988', 4049 place: 'epsi', 4050 subjects: [{ 4051 title: 'Vécu - Gros projet en JAVA & AngularJS', 4052 length: '45 min', 4053 type: 'talk', 4054 speakers: ['sebastien_roul', 'medy_belmokhtar'], 4055 abstract: '<p>Comment une équipe Java attaque un projet avec de l\'Angular : Cette sale bête qui fait des miracles :o)</p>' + 4056 '<p>Retour sur d\'experience sur un gros projet :' + 4057 '<ul>' + 4058 '<li>Comment organiser l\'équipes</li>' + 4059 '<li>Les pièges dans lesquels nous sommes tombés</li>' + 4060 '<li>Le choc de deux cultures... ou pas !</li>' + 4061 '<li>Les clés de succès que nous avons trouvé</li>' + 4062 '</ul>' + 4063 '</p>' + 4064 '<p>Focus sur le vécu d\'une équipe qui est passée en 6 mois à un projet multi-langages. </li>' + 4065 '</ul>' + 4066 '</p>', 4067 docs: [{ 4068 name: 'La vidéo de la soirée', 4069 url: 'http://youtu.be/Rgbcjb_rVIM', 4070 type: 'youtube' 4071 }] 4072 }, 4073 { 4074 title: 'Travail collaboratif en temps-réel : quand WebSocket rencontre Asciidoctor...', 4075 length: '1 h 00', 4076 type: 'talk', 4077 abstract: '<p>Ecrire de la documentation technique est primordial à la réussite d\'un projet. Afin d\'être efficace et d\'en finir avec les pertes de temps dues à l\'utilisation des Word, Open Office et consort, le projet Asciidoctor a vu le jour en 2012. Il est de plus en plus utilisé du fait de sa simplicité, sa rapidité et ses possibilités.</p>' + 4078 '<p>Parallèlement, mi 2013 la nouvelle spécification Java EE était officiellement annoncée avec 4 nouvelles JSR dont la JSR 356 : Java API for WebSocket 1.0. Ce nouveau standard (couplé à JSON-P et JAX-RS) permet aux applications Java EE 7 de s\'interfacer très facilement avec les applications HTML5.</p>' + 4079 '<p>Dans cette conférence vous verrez comment il devient enfin intéressant d\'écrire de la documentation technique en équipe grâce à la mise en oeuvre des technologies Java EE 7 / HTML 5 et Asciidoctor (+ du AngularJS). Cet ensemble de technologie sera utilisé pour créer un éditeur de travail collaboratif en temps réel. En tant que spectateur actif, vous pourrez participer à la démonstration avec d\'autres membres de l\'assemblée.</p>', 4080 speakers: ['maxime_greau'], 4081 docs: [{ 4082 name: 'La vidéo de la soirée', 4083 url: 'http://youtu.be/2XJo3UmT80U', 4084 type: 'youtube' 4085 }] 4086 } 4087 ] 4088 }, {
4089 id: '2014_01_20', 4090 title: 'Soyons RESTful avec RESTX', 4091 date: new Date(2014, 0, 20), //month begin at 0 4092 time: '19', 4093 register: 'https://guestlistapp.com/events/218334', 4094 place: 'eartsup', 4095 subjects: [{ 4096 title: 'JParsec', 4097 length: '20 min', 4098 type: 'quickie', 4099 speakers: ['arnaud_bailly'], 4100 abstract: '<p><a href="http://jparsec.codehaus.org/" target="_blank">jparsec</a> est une simple bibliothèque, inspirée d\'Haskell, qui permet d\'écrire des grammaires directement en Java au moyen de combinateurs fonctionnels. Une telle grammaire devient testable, incrémentale, composable ce qui permet de développer plus vite et de manière plus fiable des mini-langages.Cette présentation est une introduction pratique à l\'écriture d\'interpréteurs de langages avec <a href="http://jparsec.codehaus.org/" target="_blank">jparsec</a>.</p>', 4101 docs: [{ 4102 name: 'Les slides (sources)', 4103 url: 'https://github.com/abailly/jparsec/tree/master/parsing-made-easy', 4104 type: 'github' 4105 }] 4106 }, 4107 { 4108 title: 'Soyons RESTful avec RESTX', 4109 length: '1 h 30', 4110 type: 'talk', 4111 abstract: '<p>Le monde du web est en pleine ébullition, on voit de plus en plus de JS sur le frontend avec des frameworks comme Angular ou Backbone qui finissent même pas séduire les développeurs Java que nous sommes.</p>' + 4112 '<p>Mais pour le serveur, le monde Java garde quand même l\'avantage avec son typage, sa maintenabilité et ses performances. Et pour faire communiquer les deux, rien de mieux que des services REST !<br/>Dans cette session, je vous propose donc quelques révisions sur les principes des services REST, pour voir ensuite au travers de nombreuses démos comment RESTX, un outil open source, innovant et made in France peut vous aider à construire, documenter et tester l\'API REST idéale pour vos applications web de demain.</p>' + 4113 '<p>Pour plus d\'infos sur RESTX, jetez un oeil à <a href="http://restx.io/" target="_blank">restx.io</a></p>', 4114 speakers: ['xavier_hanin'], 4115 docs: [{ 4116 name: 'Les slides', 4117 url: 'http://slid.es/xavierhanin/restx', 4118 type: 'slides' 4119 }] 4120 } 4121 ] 4122 }, { 4123 id: '2013_12_04', 4124 title: 'Java 8 : Lambdas, Streams et Collectors', 4125 date: new Date(2013, 11, 4), //month begin at 0 4126 time: '19', 4127 register: 'http://guestli.st/212961', 4128 place: 'eartsup', 4129 subjects: [{ 4130 title: 'Grails dans les tranchées', 4131 length: '20 min', 4132 type: 'quickie', 4133 speakers: ['dominique_jocal'], 4134 abstract: '<p>Après 2 ans et demi de développements et déploiements dâapplications backoffice et front-office B2B bâties sur technologie Grails, nous présentons les patterns, configs et libs retenues, et nous débattrons de lâimpact de ces nouveaux stack pour les devs critiques en entreprise.</p>' 4135 }, 4136 { 4137 title: 'Java 8 : Lambdas, Streams et Collectors', 4138 length: '1 h 30', 4139 type: 'talk', 4140 intro: 'le nouveau visage de l\'API Collection', 4141 abstract: '<p>L\'API la plus utilisée du JDK est sans aucun doute l\'API Collection. Brillamment conçue il y a un peu plus de 15 ans, elle est encore aujourd\'hui au coeur de toutes les applications Java. En 2004, elle a subi son premier lifting, avec l\'introduction des génériques. Cette mise à jour, bien qu\'importante, n\'a cependant pas modifié ses patterns d\'utilisation. Avec l\'introduction des lambdas en Java 8, l\'API Collection est à nouveau réécrite, mais cette fois la situation est différente : ses patterns d\'utilisation sont complètement changés. </p><p>La première partie de cette conférence introduit les lambda expressions, comment les écrire, et ce qu\'elle nous apportent en tant que développeurs. La deuxième partir présente en détail les nouveaux patterns introduits par les API Stream et Collector. Ces nouvelles API vont changer la façon dont nous allons pouvoir traiter les collections de grande taille, y compris en parallèle, avec un modèle de programmation très simple, et des patterns très puissants. Cette puissance sera montrée dans de
4141s exemples réels, qui monteront comment Java 8 va pouvoir nous aider à écrire simplement du code efficace et performant.</p>', 4142 speakers: ['jose_paumard'], 4143 docs: [{ 4144 name: 'Les slides', 4145 url: 'http://fr.slideshare.net/jpaumard/jdk-8-lambdas-streams-collectos-bretagne-tour', 4146 type: 'slideshare' 4147 }] 4148 } 4149 ] 4150 }, { 4151 id: '2013_11_04', 4152 title: 'Du SQL au NoSQL en moins d\'une heure', 4153 date: new Date(2013, 10, 4), //month begin at 0 4154 time: '19', 4155 register: 'http://guestli.st/206877', 4156 place: 'epsi', 4157 subjects: [{ 4158 title: 'Amélioration de la qualité du code par restriction du langage', 4159 length: '20 min', 4160 type: 'quickie', 4161 speakers: ['hugo_wood'], 4162 abstract: '<p>Lorsque que beaucoup de possibilités s\'offrent à nous, il est difficile de prendre une décision sans expérience.</p>' + 4163 '<p>Au vu de la piètre qualité générale du code dans l\'industrie, ne serait-il pas intéressant pas de restreindre la flexibilité des langages de programmation afin de "guider" les développeurs n\'ayant pas encore acquis cette expérience ? Je vais présenter quelques fonctionnalités des langages orientés classe dont la difficulté d\'utilisation, la dangerosité, ou l\'inutilité ne sont selon moi pas assez abordées dans la formation du programmeur.</p>' 4164 }, 4165 { 4166 title: 'Elastifiez votre application : du SQL au NoSQL en moins d\'une heure', 4167 length: '1 h 30', 4168 type: 'talk', 4169 abstract: 'Au cours de cette session "live coding", Tugdual et David reprendront une application full SQL "à papa" pour la réécrire en NoSQL en 60 minutes.<br/>' + 4170 'En s\'appuyant sur CouchBase et Elasticsearch, ils mettront en avant les bénéfices de cette nouvelle architecture :<br/>' + 4171 '<ul><li>la facilité de mise en place (productivité)</li>' + 4172 '<li>l\'élasticité (scalabilité)</li></ul>' + 4173 'Les thèmes abordés seront :' + 4174 '<ul><li>Approche document</li>' + 4175 '<li>JSon</li>' + 4176 '<li>REST</li>' + 4177 '<li>Cache / Memcached</li>' + 4178 '<li>Filtres et Facettes</li></ul>' + 4179 'Notre plan diabolique est de vous convertir au NoSQL à tel point que vous ne puissiez faire autrement que de le mettre chez vous (et chez vos amis) !<br><br>' + 4180 'Devoxx preview ;) ', 4181 speakers: ['david_pilato', 'tugdual_grall'] 4182 } 4183 ] 4184 }, { 4185 id: '2013_10_10', 4186 title: 'Cloud Pattern', 4187 date: new Date(2013, 9, 10), //month begin at 0 4188 time: '19', 4189 register: 'https://guestlistapp.com/events/190722', 4190 place: 'epsi', 4191 subjects: [{ 4192 title: 'Tour de l\'actualité', 4193 length: '20 min', 4194 type: 'quickie', 4195 intro: 'présenté par Sébastien Prunier qui lance par la même occasion les quickies.', 4196 speakers: ['sebastien_prunier'], 4197 abstract: '<p>L\'actualité informatique est riche est nécessite d\'être suivi continuellement.</p>' + 4198 '<p> Sébastien le fera pour vous en présentant les dernières nouveautés technologiques.</p>' 4199 }, 4200 { 4201 title: 'Les "Cloud Patterns"', 4202 length: '1 h 30', 4203 type: 'talk', 4204 intro: 'par Nicolas Deloof, en avant-première avant Devoxx.be, dont nous avons gardé la description originale.', 4205 abstract: '<p>Le sujet lui sera bien en français - mais le speaker est trop flemmard - enfin c\'est lui qui le dit :p.</p>' + 4206 '<p>Cloud "Platform as a Service" promise to host your application without a change, but things are not so simple and you can\'t deploy your legacy EJB 1.0 application to the Cloud without some refactoring.</p>' + 4207 '<p>During this session, I will explain some architecture patterns to apply to your new developments, and the possible refactoring or platform services that can help to get your existing application migrated without major changes, so that your transition to the cloud is as smooth as possible. To avoid a pure theoretical talk, I\'ll share experience about migrating devoxx application from traditional hosting to cloud.</p>', 4208 speakers: ['nicolas_deloof'] 4209 } 4210 ] 4211 }, 4212 { 4213 id: '2013_06_18', 4214 title: 'SEO - Scalabilité', 4215 date: new Date(2013, 5, 18), //month begin at 0 4216 time: '19', 4217 place: 'cantine_juton', 4218 subjects: [{ 4219 title: 'Nouveaux impacts du développement web sur le référencement naturel (SEO)', 4220 length: '1 h', 4221 type: 'talk', 4222 abstract: '<p>Vous réalisez des développements web (sites, applicatifs ...) et vous cherchez à optimiser leur visibilité dans les moteurs de recherches ? Alors cette conférence s\'adresse à vous !</p>' + 4223 '<p>Durant 1h, nous allons dresser les grandes recommandations SEO à prendre en compte lorsque l\'on développe pour le web, les standards mais
4223surtout les pratiques émergentes : balisage sémantique, performances, analyse des erreurs, crawl des robots ... illustrés au travers de cas pratiques. L\'objectif : vous donner les bons réflexes pour intégrer les pré-requis du SEO dès la phase de conception du projet afin de gagner en temps et donc en rentabilité.</p>', 4224 speakers: ['guillaume_degre'], 4225 docs: [{ 4226 name: 'Support de présentation', 4227 url: 'https://drive.google.com/file/d/0BzLO1XLmywLJUFUyTmtEbEpVNm8/edit?usp=sharing', 4228 type: 'drive' 4229 }] 4230 }, 4231 { 4232 title: 'How to Scale?', 4233 length: '1 h', 4234 type: 'talk', 4235 abstract: '<p>Quentin presentera en s\'appuyant sur l\'experience de Clever Cloud les defis que vous allez rencontrés pour "scaler" une application.</p>' + 4236 '<p>Cette sessions s\'appuiera sur des retour d\'experience sur différentes applications et framework.</p>', 4237 speakers: ['quentin_adam'] 4238 } 4239 ] 4240 }, 4241 { 4242 id: '2013_05_14', 4243 title: 'Neo4J & SoapUI', 4244 date: new Date(2013, 4, 14), //month begin at 0 4245 time: '19', 4246 place: 'cantine_juton', 4247 subjects: [{ 4248 title: 'Découverte de \'SoapUI\'', 4249 length: '30 min', 4250 type: 'quickie', 4251 intro: 'par Antony Guilloteau', 4252 abstract: '<p>Autour d\'une petite application train tweet, une session de live coding pour démontrer l\'utilité de SoapUI dans les développements de type SOA : shoot, mock & test..</p>', 4253 speakers: ['antony_guilloteau'] 4254 }, 4255 { 4256 title: 'Soirée NoSQL : Base de Données Graph avec Neo4J', 4257 length: '1 h 30', 4258 type: 'talk', 4259 abstract: '<p>Prendre un tableau et un papier pour modéliser ses données, c\'est ce que nous faisons régulièrement. Cependant à chaque fois nous devons traduire notre modèle en MCD pour l\'insérer dans un SGBD. La promesse des bases de données orientées graphe c\'est d\'être veleda ready ! Plus besoin de convertir notre modèle.</p>' + 4260 '<p>Lors de cette présentation nous vous parlerons de Neo4j, une base données NoSQL orientée graph écrite en java, ainsi que des concepts qui gravitent autour.</p>' + 4261 '<p>On vous montrera comment réaliser un système de recommandation simple et efficace basé sur les données de github.</p>', 4262 speakers: ['benoit_simard', 'damien_raude_morvan', 'cedric_fauvet'], 4263 docs: [{ 4264 name: 'Support de présentation (HTML)', 4265 url: 'http://hype.logisima.com/prez/view/5561322/Neo4j%20-%20JUG%20Nantes', 4266 type: 'slid-es' 4267 }] 4268 } 4269 ] 4270 }, 4271 { 4272 id: '2013_04_15', 4273 title: 'JavaScript pour le développeur Java', 4274 date: new Date(2013, 3, 15), //month begin at 0 4275 time: '19', 4276 place: 'cantine_juton', 4277 subjects: [{ 4278 title: 'JavaScript pour le développeur Java', 4279 length: '1 h 30', 4280 type: 'talk', 4281 abstract: '<p>Dans sa présentation Christophe va nous expliquer pourquoi et comment l\'ancien détracteur de JavaScript est devenu un fan du langage et, en orientant sa présentation vers des développeurs Java comme lui, essayer de nous faire regarder JavaScript sous un autre angle, à apprécier ses forces, à mieux comprendre ses faiblesses et à nous donner envie de s\'y essayer.</p>' + 4282 '<p>La présentation sera structurée en deux parties :</p>' + 4283 '<p><b>JavaScript pour le développeur Java</b></p>' + 4284 '<p>Au cours de cette présentation nous balayerons les caractéristiques de JavaScript du point de vue du développeur Java en appuyant notamment sur les différences entre les deux langages et ce qui peut se transformer en piège pour le développeur qui aurait juger inutile d\'apprendre JavaScript.</p>' + 4285 '<p><b>La caisse d\'outils du développeur JavaScript</b></p>' + 4286 '<p>Au secours, votre chef a vu dans DSI-01-MAG-INFORMATIQUE que l\'avenir est au application Web et il veut maintenant que tous vos projets soient en JavaScript. Vous paniquez parce que la dernière fois que vous avez fait du JavaScript, c\'était à la faculté dans un éditeur de texte et vous débugguiez en affichant des boites de dialogue.</p>' + 4287 '<p>Au cours de cette présentation, nous verrons que l\'écosystème JavaScript a évolué et que vous disposez maintenant de frameworks complets gérant vos couches de présentation, vos test, vos dépendances et même le backend de vos applications. Nous verrons aussi que l\'outillage a progressé et que nous pouvons maintenant faire du débuggage comme dans nos application Java, de l\'intégration continue et même de l\'audit de qualité !</p>', 4288 speakers: ['christophe_jollivet'] 4289 }] 4290 }, 4291 { 4292 id: '2013_03_18', 4293 title: 'Traçabilité d\'une architecture distribuée & Code Story 2013', 4294 date: new Date(2013, 2, 18), //month begin at 0 4295 time: '19', 4296 place: 'cantine_juton', 4297 subjects: [{ 4298 title: 'Code Story 2013', 4299 length: '30 min', 4300 type: 'quickie', 4301 abstract: '<p>Les architectures distribuées soulèvent un certains nombre de problématiques en terme de traçabilité : détection des anomalies, suivi des utilisateurs, mesure des performances des différents services ...</p>' + 4302 '<p>Durant cette session, nous vous montrerons - démonstration à l\'appui - comment nous avons apporté une solution simple à ces problématiques, en mettant en place un système de consolidation de logs avec Node.js et MongoDb.</p>', 4303 speakers: ['sebastien_prunier', 'jerome_creignou'] 4304 }, 4305 { 4306 title: 'Traçabilité d\'une architecture distribuée avec NodeJS et MongoDB', 4307 length: '1 h 30', 4308 type: 'talk', 4309 abstract: '<p>Une des bonnes nouvelles du début d\'année a été le concours Code Story pour l\'édition 2013 de Devoxx France. Une superbe occasion de développer et de tester de nouvelles technos, tout en s\'amusant !</p>' + 4310 '<p>Nous débuterons la session par un retour sur notre participation à la première phase de ce concours, en vous présentant et en comparant nos choix technologiques.</p>', 4311 speakers: ['sebastien_prunier', 'jerome_creignou'] 4312 } 4313 ] 4314 }, 4315 { 4316 id: '2013_02_11', 4317 title: 'Soirée NoSQL - Couchbase & MongoDB', 4318 date: new Date(2013, 1, 11), //month begin at 0 4319 time: '19', 4320 place: 'cantine_juton', 4321 subjects: [{ 4322 title: 'Introduction au NoSQL', 4323 length: '20 min', 4324 type: 'intro', 4325 abstract: '<p>Cette présentation commencera par une rapide introduction au NoSQL expliquant les raisons pour lesquelles de plus en plus de projets utilisent ce type de solutions. Tugdual fera également le tour des différentes approches (Clé Valeur, Document, Colonnes, Graph) et solutions du marché.</p>' + 4326 '<p>Manuel présentera MongoDB et Tugdual présentera Couchbase, deux solutions open source de base de données orientées document. Ces présentations s\'appuieront sur de nombreuses démonstrations qui mettront en avant :' + 4327 '<ul>' + 4328 '<li>L\'utilisation de JSON pour le stockage et les bénéfices et défis associés à l\'approche "Schemaless"</li>' + 4329 '<li>Le développement d\'applications</li>' + 4330 '<li>Le déploiement et l\'administration de cluster</li>' + 4331 '</ul></p>' + 4332 '', 4333 speakers: ['tugdual_grall', 'manuel_boillod'] 4334 }, 4335 { 4336 title: 'MongoDB', 4337 length: '45 min', 4338 type: 'talk', 4339 abstract: '<p>Présentation de MongoDB</p>', 4340 speakers: ['manuel_boillod'] 4341 }, 4342 { 4343 title: 'Couchbase', 4344 length: '45 min', 4345 type: 'talk', 4346 abstract: '<p>Présentation de Couchbase</p>', 4347 speakers: ['tugdual_grall'] 4348 } 4349 ] 4350 }, 4351 { 4352 id: '2013_01_16', 4353 title: 'Soirée Langage et Framework : Dart & Clojure', 4354 date: new Date(2013, 0, 16), //month begin at 0 4355 time: '19', 4356 place: 'cantine_juton', 4357 subjects: [{ 4358 title: 'Clojure', 4359 length: '1 h', 4360 type: 'talk', 4361 abstract: '<p>Le paradigme fonctionnel revient à la mode décennie après décennie. Pourquoi l\'est-il aujourd\'hui ? Au travers de Clojure, un langage de cette nouvelle vague, nous explorerons les idées anciennes et nouvelles qu\'elle pousse et que nous retrouverons (ou pas) demain dans notre Java quotidien. (Préférerez vous au final l\'original ou la copie :-) ?)</p>', 4362 speakers: ['cedric_pineau'] 4363 }, 4364 { 4365 title: 'Dart', 4366 length: '1 h', 4367 type: 'talk', 4368 abstract: '<p>Dart est un nouveau langage de programmation pour développer des applications web. Créé par Google et ouvert au grand public en octobre 2011, c\'est un langage orienté-objet avec une syntaxe familière que l\'on soit développeur Java ou développeur JavaScript. Ses deux objectifs ? Performance et facilité d\'utilisation.</p>' + 4369 '<p>
4369Dans cette présentation, nous verrons quels sont les objectifs de Google en introduisant ce nouveau langage. Nous irons au coeur de celui-ci en présentant les différentes spécificités, typage optionnel, les Isolates comme modèle de concurrence, les différents mode d\'exécution, la gestion du DOM... Enfin, nous discuterons des échéances à venir pour savoir si Dart saura s\'imposer ou non en tant que langage d\'avenir pour le web.</p>', 4370 speakers: ['julien_vey'] 4371 } 4372 ] 4373 }, 4374 { 4375 id: '2012_12_06', 4376 title: 'Elastic Search', 4377 date: new Date(2012, 11, 6), //month begin at 0 4378 time: '19', 4379 place: 'cantine_juton', 4380 subjects: [{ 4381 title: 'Elastic Search', 4382 length: '2 h', 4383 type: 'talk', 4384 abstract: '<p>Ce soirée est faite pour vous si :' + 4385 '<ul>' + 4386 '<li>Vous utilisez encore des requêtes SQL pour faire des recherches</li>' + 4387 '<li>Vos utilisateurs vous reprochent de ne pas pouvoir chercher sur toutes les rubriques</li>' + 4388 '<li>Votre temps de réponse moyen est supérieur à la demi-seconde avec seulement quelques millions de documents</li>' + 4389 '<li>Il vous faut 3 jours pour produire des statistiques sur vos données</li>' + 4390 '<li>Vous rêvez d\'offrir une recherche âà la googleâ sur les données de votre SI</li>' + 4391 '</ul></p>' + 4392 '<p>David présentera au cours de la soirée pourquoi et comment il est passé de la recherche SQL à Elasticsearch en détaillant les apports de ce moteur par rapport à une solution pure Lucene</p>' + 4393 '<p>Pourquoi Elasticsearch ?' + 4394 '<ul>' + 4395 '<li>L\'indexation</li>' + 4396 '<li>La recherche</li>' + 4397 '<li>La collecte de données (rivers)</li>' + 4398 '<li>Les facettes et le principe de navigation par facettes</li>' + 4399 '<li>La scalabilité horizontale</li>' + 4400 '<li>La communauté</li>' + 4401 '</ul></p>' + 4402 '<p></p>', 4403 speakers: ['david_pilato'] 4404 }] 4405 }, 4406 { 4407 id: '2012_11_07', 4408 title: 'OpenShift', 4409 date: new Date(2012, 10, 7), //month begin at 0 4410 time: '19', 4411 place: 'sup_info', 4412 subjects: [{ 4413 title: 'OpenShift: Enjoy the benefits of cloud computing as a developer', 4414 length: '1 h 30', 4415 type: 'talk', 4416 abstract: '<p>In this session, Marek will give a quick introduction to Platform as a Service (aka awesome-sauce for developers) with OpenShift as an example. After a few slides and your questions we will spend the rest of the time working with you to get your Web code (see the languages available on our website, but Java in our case) up and running in less than 5 minutes.</p>' + 4417 '<p>We will also demonstrate how to connect your code to a back-end data store such as MongoDB and MySQL. The goal of this session is to have you excited in running your code in the cloud for free! http://openshift.redhat.com</p>', 4418 speakers: ['marek_jelen'] 4419 }] 4420 }, 4421 { 4422 id: '2012_10_23', 4423 title: 'Build Living Web Applications with WebSockets', 4424 date: new Date(2012, 9, 23), //month begin at 0 4425 time: '19', 4426 place: 'cantine_juton', 4427 subjects: [{ 4428 title: 'Build Living Web Applications with WebSockets', 4429 length: '1 h 30', 4430 type: 'talk', 4431 abstract: '<p>Take your desktop and mobile Web apps to the next level with true, real-time connectivity. Learn how to build real-time, multi-user interaction and collaboration into your Web apps using HTML5 and WebSockets.</p>' + 4432 '<p>Whether you want your app to be a real-time retail experience or a fast-paced MMO, you\'ll learn hands-on skills to turn your mobile apps into live apps, by building peer-to-peer mobile apps, mobile-desktop interaction, and even turning your smartphone into a Nintendo Wii-style remote control.</p>', 4433 speakers: ['peter_moskovits'] 4434 }] 4435 }, 4436 { 4437 id: '2012_10_10', 4438 title: 'Copyright et Licence & WebMotion', 4439 date: new Date(2012, 9, 10), //month begin at 0 4440 time: '19', 4441 place: 'cantine_juton', 4442 subjects: [{ 4443 title: 'Copyright et Licence', 4444 length: '1 h', 4445 type: 'talk', 4446 abstract: '<p>Le but est de présenter les notions de copyright et de licence et de sensibilisé les personnes aux problématiques qu\'elles induisent dans un développement logiciel.</p>' + 4447 '<p><ul>' + 4448 '<li>Copyright et licence (différence, but)</li>' + 4449 '<li>Les grandes familles de licences</li>' + 4450 '<li>Leur compatibilité ou incompatibilité (un casse tête pour les développeurs et les décideurs)</li>' + 4451 '<li>Les outils pour aider à leur mise en place et leur gestion</li>' + 4452 '</ul></p>', 4453 speakers: ['benjamin_poussin'] 4454 }, { 4455 title: 'WebMotion', 4456 length: '1 h', 4457 type: 'talk', 4458 abstract: '<p>WebMotion est un projet libre pour le développement d\'application web en Java orienté REST. Il s\'appuie sur le standard JEE 6 avec les Servlet 3. Il fonctionne avec les principaux serveurs d\'application Tomcat, Jetty et Glassfish.</p>' + 4459 '<p>Le projet a été développé pour respecter une approche outils. Ainsi il s\'occupe principalement des interactions entre le serveur et le client. Il vous laisse libre de choisir vos framework de persistance, d\'injection de dépendance, ... pour créer votre architecture adaptée à vos besoin. Vous pouvez l\'utiliser avec vos IDE et outils de build habituels. Il se base sur un fichier de routes pour décrire la relation entre les URLs et les actions Java. Il propose aussi un ensemble d\'extra pour vous permettre de développer rapidement et simplement des sites web.</p>' + 4460 '<p>Le site web (http://www.webmotion-framework) est un exemple d\'utilisation, vous y trouverez une documentation détaillée et de nombreux exemples.</p>' + 4461 '<p>La présentation vous permettra de découvrir l\'origine du framework, sa philosophie ainsi que quelques points fonctionnels, suivants :' + 4462 '<ul>' + 4463 '<li>
4463Le fichier de route</li>' + 4464 '<li>Les actions en Java</li>' + 4465 '<li>Les extras</li>' + 4466 '</ul></p>', 4467 speakers: ['julien_ruchaud'] 4468 }] 4469 }, 4470 { 4471 id: '2012_06_06', 4472 title: 'Introduction au langage Ceylon', 4473 date: new Date(2012, 5, 6), //month begin at 0 4474 time: '19', 4475 place: 'netapsys', 4476 subjects: [{ 4477 title: 'Introduction au langage Ceylon', 4478 length: '1 h 30', 4479 type: 'talk', 4480 abstract: '<p>Ceylon est un nouveau langage de programmation pour la machine virtuelle Java. Nous sommes fans de Java et de son écosysteme, cependant nous pensons que le langage Java et ses libraires conçus il y a 15 ans sont désuets face aux challenges actuels. Ceylon a été conçu avec plusieurs objectifs</p>' + 4481 '<p>Facile à apprendre pour les développeurs Java et C# Améliorer le typage fort de Java Fournir une syntaxe déclarative pour exprimer des concepts hierarchiques (interface utilisateurs, configuration systeme, etc...) Promouvoir l\'approche fonctionelle par des objects immuables et des fonction d\'ordre supérieur Support de la méta programmation Modulaire</p>' + 4482 '<p>Cette introduction à Ceylon vous montrera les fonctionnalités de Ceylon ainsi que les derniers progrès faits sur le compilateur, l\'IDE et la communauté autour de Ceylon.</p>', 4483 speakers: ['stephane_epardaud'] 4484 }] 4485 }, 4486 { 4487 id: '2012_06_04', 4488 title: 'Hibernate OGM: JPA pour NoSQL', 4489 date: new Date(2012, 5, 4), //month begin at 0 4490 time: '19', 4491 place: 'cantine_juton', 4492 subjects: [{ 4493 title: 'Hibernate OGM: JPA pour NoSQL', 4494 length: '1 h 30', 4495 type: 'talk', 4496 abstract: '<p>PaaS (Plate-forme as a Service), Cloud, élasticité. Ces mots font le buzz ces temps-ci.</p>' + 4497 '<p>Mais le vrai challenge c\'est comment et où stocker vos données. Dans un data grid pour bénéficier de la scalabilité ? Via une API propriétaire ? Pourrait on utiliser une API familière ?</p>' + 4498 '<p>L\'objectif d\'Hibernate OGM est d\'explorer comment réutiliser Java Persistence et son API familière pour persister les entités dans une base de données non relationnelle.</p>' + 4499 '<p>Hibernate Object/Grid Mapper (OGM) offre une implementation JPA (manipulation d\'objets et requêtes JP-QL) tout en stockant et requêtant les données d\'une grille clé/valeur (et d\'autres approches NoSQL dans un second temps). Autrement dit, il offre une API familière tout en permettant de bénéficier des possibilités de scalabilité des data grids. Cela inclut notamment de supporter des applications JPA existantes.</p>' + 4500 '<p>Dans cette présentation, nous allons:' + 4501 '<ul>' + 4502 '<li>Faire un survol du monde NoSQL et voir l\'intérêt d\'une API comme JPA</li>' + 4503 '<li>Voir comment Hibernate OGM stocke les entités et les associations dans la base clé/valeur et explorer les compromis faits.</li>' + 4504 '<li>Voir comment les requêtes JP-QL sont implémentées au dessus d\'une technologie qui ne supporte pas la notion de requête (clé/valeur) et quel niveau de couverture peut-être obtenu faire une démonstration d\'Hibernate OGM</li>' + 4505 '</ul></p>', 4506 speakers: ['emmanuel_bernard'] 4507 }] 4508 }, 4509 { 4510 id: '2012_03_14', 4511 title: 'Introduction à Wicket', 4512 date: new Date(2012, 2, 14), //month begin at 0 4513 time: '19', 4514 place: 'cantine_juton', 4515 subjects: [{ 4516 title: 'Introduction à Wicket', 4517 length: '1 h 30', 4518 type: 'talk', 4519 abstract: '<p>Wicket est un Framework de présentation Java orienté composant, comme JSF ou GWT, qui propose une séparation très claire entre la vue et les données. Les vues sont écrites en XHTML tandis que la partie dynamique et les données sont codées en Java.</p>' + 4520 '<p>Lors de cette présentation 100% démo, Manuel présentera les bases du framework en développant une application de gestion de contacts.</p>', 4521 speakers: ['manuel_boillod'] 4522 }] 4523 }, 4524 { 4525 id: '2012_02_09', 4526 title: 'Application versioning et rolling upgrade', 4527 date: new Date(2012, 1, 9), //month begin at 0 4528 time: '19', 4529 place: 'cantine_juton', 4530 subjects: [{ 4531 title: 'Application versioning et rolling upgrade en haute disponibilité, avec Glassfish', 4532 length: '1 h 30', 4533 type: 'talk', 4534 abstract: '<p>Une fois qu\'une application est en production, réaliser une montée de version sans perte de service est délicat et peut rapidement vous donner la migraine. Il faut en général le faire manuellement en montant un cluster, en répliquant l\'application et ses sessions, et en j
4534onglant avec le répartiteur de charge et les instances de serveur à chaque montée en version.</p>' + 4535 '<p>La fonctionnalité de versioning présente dans GlassFish, combinée avec le rolling upgrade (en early preview) permet de réaliser cette montée en version sans perte de service sur une instance stand-alone de GlassFish.</p>' + 4536 '<p>Dans cette session, Marian présente ces fonctionnalités et comment les utiliser pour réaliser une montée en version d\'application en production sans perte de service, en utilisant exclusivement les services offerts par GlassFish.</p>', 4537 speakers: ['marian_muller'] 4538 }] 4539 }, 4540 { 4541 id: '2012_01_12', 4542 title: 'Introduction aux DSL en Groovy', 4543 date: new Date(2012, 0, 12), //month begin at 0 4544 time: '19', 4545 place: 'cantine_juton', 4546 subjects: [{ 4547 title: 'Introduction aux DSL (Domain Specific Languages) en Groovy', 4548 length: '1 h 30', 4549 type: 'talk', 4550 abstract: '<p>Durant cette présentation, Cedric nous expliquera ce que sont les DSL (Domain Specific Languages), leurs champs d\'application et les techniques courantes pour en implémenter. Cédric presentera quelques exemples de DSL écrits avec le langage Groovy, dans l\'objectif de montrer ce que ce langage permet d\'obtenir.</p>', 4551 speakers: ['cedric_champeau'] 4552 }] 4553 }, 4554 { 4555 id: '2011_12_14', 4556 title: 'Hibernate vs Cloud computing', 4557 date: new Date(2011, 11, 14), //month begin at 0 4558 time: '19', 4559 place: 'cantine_juton', 4560 subjects: [{ 4561 title: 'Hibernate vs Cloud computing', 4562 length: '1 h 30', 4563 type: 'talk', 4564 abstract: '<p>Au cours de cette presentation, Julien Dubois d\'Ippon Technologies abordera les sujets suivant :</p>' + 4565 '<p>Les bases de données relationnelles classiques ont du mal à monter en charge de manière âélastiqueâ: elles sont de manière générale peu adaptées aux nouvelles s
4565olutions de cloud computing, de type Amazon EC2 ou VMWare.</p>' + 4566 '<p>Nous verrons dans cette session :</p>' + 4567 '<p><ul>' + 4568 '<li>Les problèmes couramment rencontrés et leurs solutions proposées par les grand éditeurs (type Oracle RAC), ainsi que leurs limitations</li>' + 4569 '<li>Comment ces problèmes se traduisent dans le monde Java, en particulier avec Hibernate</li>' + 4570 '<li>Quelles solutions peuvent être utilisées avec Hibernate, en particulier avec son système de cache: nous verrons les solutions de clustering, dont Terracotta et Coherence</li>' + 4571 '<li>Ce que proposent les nouvelles solutions dites âNoSQLâ, en prenant l\'exemple de Cassandra: leurs avantages, leurs inconvénients, leurs limitations</li>' + 4572 '</ul></p>', 4573 speakers: ['julien_dubois'] 4574 }] 4575 }, 4576 { 4577 id: '2011_11_03', 4578 title: 'Java 7 : Introduction', 4579 date: new Date(2011, 10, 3), //month begin at 0 4580 time: '19', 4581 place: 'cantine_juton', 4582 subjects: [{ 4583 title: 'Java 7 : Introduction', 4584 length: '1 h 30', 4585 type: 'talk', 4586 abstract: '<p>Pour cette soirée, Sebastien va nous presenter les points suivants:' + 4587 '<ul>' + 4588 '<li>Rapide historique des versions de Java</li>' + 4589 '<li>Quoi de nouveau dans Java 7 (invokedynamic, fork/join, nio2, javadoc ...) ?</li>' + 4590 '<li>Zoom sur les nouveautés dans la syntaxe (Projet Coin), avec exemples de code âavant/aprèsâ (Strings in switch, Try-with-ressource, Binary literals, Inférence de type avec l\'opérateur diamond, catch multiple, etc ...)</li>' + 4591 '<li>Un petit exemple de l\'API NIO2 qui simplifie la vie : la copie de fichier (en une ligne !)</li>' + 4592 '</ul></p>' + 4593 '<p>Pour conclure, les perspectives avec Java 8 (Closures, Collection litterals, Projet Jigsaw).</p>', 4594 speakers: ['sebastien_prunier'] 4595 }] 4596 }, 4597 { 4598 id: '2011_10_12', 4599 title: 'Statefull is Beautiful', 4600 date: new Date(2011, 9, 12), //month begin at 0 4601 time: '19', 4602 place: 'cantine_juton', 4603 subjects: [{ 4604 title: 'Statefull is Beautiful', 4605 length: '1 h 30', 4606 type: 'talk', 4607 abstract: '<p>Pour cette presentation, Antoine d\'Ippon Technologies va nous permettre de revenir aux sources de Java EE, en abordant les sujets suivants :' + 4608 '<ul>' + 4609 '<li>Des différentes stratégies de stockage des états dans une application Java EE.</li>' + 4610 '<li>Du scope Session de l\'Api Servlet</li>' + 4611 '<li>De CDI</li>' + 4612 '<li>Des EJB 3.X</li>' + 4613 '<li>De sérialisation, passivation et résilience</li>' + 4614 '<li>De scalabilité</li>' + 4615 '<li>Des design patterns que ces concepts et technos permettent de mettre en oeuvre</li>' + 4616 '</ul></p>', 4617 speakers: ['antoine_sabot_durand'] 4618 }] 4619 }, 4620 { 4621 id: '2011_06_23', 4622 title: 'A la découverte de Gradle', 4623 date: new Date(2012, 6, 0), //month begin at 0 4624 time: '19', 4625 place: 'cantine_juton', 4626 subjects: [{ 4627 title: 'A la découverte de Gradle', 4628 length: '1 h 30', 4629 type: 'talk', 4630 intro: 'par Grégory Boissinot de Zenika', 4631 abstract: '<p>La construction d\'un logiciel est l\'étape essentielle dans un processus d\'intégration continue. Il n\'est pas rare que cette étape de build soit complexe tant par sa mise en Åuvre que par son adéquation aux besoins changeant du projet. Il est alors nécessaire d\'outiller cette c
4631onstruction par un langage épousant les spécificités du projet.</p>' + 4632 '<p>Je présenterai le système de build Gradle qui répond à cette problématique.</p>' + 4633 '<p>Gradle est un outil extrêmement flexible permettant de construire les différents types d\'applications Java/JEE. Sous le capot, Gradle s\'appuie sur un certain nombre de standards pour orchestrer ses composants :</p>' + 4634 '<p>Les conventions du système de build Maven Le gestionnaire de dépendance Ivy Une totale intégration avec les taches Ant existantes Le langage de script Groovy</p>' + 4635 '<p>La présentation détaillera les concepts principaux de Gradle et sa mise en oeuvre pour le build d\'une application JEE. Nous verrons également comment Gradle est capable de s\'insérer dans une infrastructure d\'entreprise Ant/Maven existante afin de donner toute la puissance nécessaire aux projets existants.</p>', 4636 speakers: ['gregory_boissinot'] 4637 }] 4638 } 4639];
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.