LCC 325 - Trier le hachis des concurrents
Posté le 09/05/2025Gros épisode qui couvre un large spectre de sujets : Java, Scala, Micronaut, NodeJS, l’IA et la compétence des développeurs, le sampling dans les LLMs, les DTO, le vibe coding, les changements chez Broadcom et Red Hat ainsi que plusieurs nouvelles sur les licences open source.
Enregistré le 7 mai 2025
Téléchargement de l’épisode LesCastCodeurs-Episode-325.mp3 ou en vidéo sur YouTube.
News
Langages
A l’occasion de JavaOne et du lancement de Java 24, Oracle lance un nouveau site avec des ressources vidéo pour apprendre le langage https://learn.java/
- site plutôt à destination des débutants et des enseignants
- couvre la syntaxe aussi, y compris les ajouts plus récents comme les records ou le pattern matching
- c’est pas le site le plus trendy du monde.
Martin Odersky partage un long article sur l’état de l’écosystème Scala et les évolutions du language https://www.scala-lang.org/blog/2025/03/24/evolving-scala.html
- Stabilité et besoin d’évolution : Scala maintient sa position (~14ème mondial) avec des bases techniques solides, mais doit évoluer face à la concurrence pour rester pertinent.
- Axes prioritaires : L’évolution se concentre sur l’amélioration du duo sécurité/convivialité, le polissage du langage (suppression des “rugosités”) et la simplification pour les débutants.
- Innovation continue : Geler les fonctionnalités est exclu ; l’innovation est clé pour la valeur de Scala. Le langage doit rester généraliste et ne pas se lier à un framework spécifique.
- Défis et progrès : L’outillage (IDE, outils de build comme
sbt
,scala-cli
,Mill
) et la facilité d’apprentissage de l’écosystème sont des points d’attention, avec des améliorations en cours (partenariat pédagogique, plateformes simples).
Des strings encore plus rapides ! https://inside.java/2025/05/01/strings-just-got-faster/
- Dans JDK 25, la performance de la fonction
String::hashCode
a été améliorée pour être principalement constant foldable. - Cela signifie que si les chaînes de caractères sont utilisées comme clés dans une
Map
statique et immuable, des gains de performance significatifs sont probables. - L’amélioration repose sur l’annotation interne
@Stable
appliquée au champ privéString.hash
. - Cette annotation permet à la machine virtuelle de lire la valeur du hash une seule fois et de la considérer comme constante si elle n’est pas la valeur par défaut (zéro).
- Par conséquent, l’opération
String::hashCode
peut être remplacée par la valeur de hash connue, optimisant ainsi les lookups dans lesMap
immuables. - Un cas limite est celui où le code de hachage de la chaîne est zéro, auquel cas l’optimisation ne fonctionne pas (par exemple, pour la chaîne vide “”).
- Bien que l’annotation
@Stable
soit interne au JDK, un nouveau JEP (JEP 502: Stable Values (Preview)) est en cours de développement pour permettre aux utilisateurs de bénéficier indirectement de fonctionnalités similaires.
AtomicHash, une implémentation Java d’une HashMap qui est thread-safe, atomique et non-bloquante https://github.com/arxila/atomichash
- implémenté sous forme de version immutable de Concurrent Hash Trie
Librairies
Sortie de Micronaut 4.8.0 https://micronaut.io/2025/04/01/micronaut-framework-4-8-0-released/
- Mise à jour de la BOM (Bill of Materials) : La version 4.8.0 met à jour la BOM de la plateforme Micronaut.
- Améliorations de Micronaut Core : Intégration de Micronaut SourceGen pour la génération interne de métadonnées et d’expressions bytecode.
- Nombreuses améliorations dans Micronaut SourceGen.
- Ajout du traçage de l’injection de dépendances pour faciliter le débogage au démarrage et à la création des beans.
- Nouveau membre
definitionType
dans l’annotation@Client
pour faciliter le partage d’interfaces entre client et serveur. - Support de la fusion dans les Bean Mappers via l’annotation
@Mapping
. - Nouvelle liveness probe détectant les threads bloqués (deadlocked) via
ThreadMXBean
. - Intégration Kubernetes améliorée : Mise à jour du client Java Kubernetes vers la version 22.0.1.
- Ajout du module Micronaut Kubernetes Client OpenAPI, offrant une alternative au client officiel avec moins de dépendances, une configuration unifiée, le support des filtres et la compatibilité Native Image.
- Introduction d’un nouveau runtime serveur basé sur le serveur HTTP intégré de Java, permettant de créer des applications sans dépendances serveur externes.
- Ajout dans Micronaut Micrometer d’un module pour instrumenter les sources de données (traces et métriques).
- Ajout de la condition
condition
dans l’annotation@MetricOptions
pour contrôler l’activation des métriques via une expression. - Support des Consul watches dans Micronaut Discovery Client pour détecter les changements de configuration distribuée.
- Possibilité de générer du code source à partir d’un schéma JSON via les plugins de build (Gradle et Maven).
Web
Node v24.0.0 passe en version Current: https://nodejs.org/en/blog/release/v24.0.0
- Mise à jour du moteur V8 vers la version 13.6 : intégration de nouvelles fonctionnalités JavaScript telles que
Float16Array
, la gestion explicite des ressources (using
),RegExp.escape
,WebAssembly Memory64
etError.isError
. - npm 11 inclus : améliorations en termes de performance, de sécurité et de compatibilité avec les packages JavaScript modernes.
- Changement de compilateur pour Windows : abandon de MSVC au profit de ClangCL pour la compilation de Node.js sur Windows.
AsyncLocalStorage
utilise désormaisAsyncContextFrame
par défaut : offrant une gestion plus efficace du contexte asynchrone.URLPattern
disponible globalement : plus besoin d’importer explicitement cette API pour effectuer des correspondances d’URL.- Améliorations du modèle de permissions : le flag expérimental
--experimental-permission
devient--permission
, signalant une stabilité accrue de cette fonctionnalité. - Améliorations du test runner : les sous-tests sont désormais attendus automatiquement, simplifiant l’écriture des tests et réduisant les erreurs liées aux promesses non gérées.
- Intégration d’Undici 7 : amélioration des capacités du client HTTP avec de meilleures performances et un support étendu des fonctionnalités HTTP modernes.
- Dépréciations et suppressions :
- Dépréciation de
url.parse()
au profit de l’API WHATWG URL. - Suppression de
tls.createSecurePair
. - Dépréciation de
SlowBuffer
. - Dépréciation de l’instanciation de REPL sans
new
. - Dépréciation de l’utilisation des classes Zlib sans
new
. - Dépréciation du passage de
args
àspawn
etexecFile
danschild_process
.
- Dépréciation de
- Node.js 24 est actuellement la version “Current” et deviendra une version LTS en octobre 2025. Il est recommandé de tester cette version pour évaluer son impact sur vos applications.
Data et Intelligence Artificielle
Apprendre à coder reste crucial et l’IA est là pour venir en aide : https://kyrylo.org/software/2025/03/27/learn-to-code-ignore-ai-then-use-ai-to-code-even-better.html
- Apprendre à coder reste essentiel malgré l’IA.
- L’IA peut assister la programmation.
- Une solide base est cruciale pour comprendre et contrôler le code.
- Cela permet d’éviter la dépendance à l’IA.
- Cela réduit le risque de remplacement par des outils d’IA accessibles à tous.
- L’IA est un outil, pas un substitut à la maîtrise des fondamentaux.
Super article de Anthropic qui essaie de comprendre comment fonctionne la “pensée” des LLMs https://www.anthropic.com/research/tracing-thoughts-language-model
- Effet boîte noire : Stratégies internes des IA (Claude) opaques aux développeurs et utilisateurs.
- Objectif : Comprendre le “raisonnement” interne pour vérifier capacités et intentions.
- Méthode : Inspiration neurosciences, développement d’un “microscope IA” (regarder quels circuits neuronaux s’activent).
- Technique : Identification de concepts (“features”) et de “circuits” internes.
- Multilinguisme : Indice d’un “langage de pensée” conceptuel commun à toutes les langues avant de traduire dans une langue particulière.
- Planification : Capacité à anticiper (ex: rimes en poésie), pas seulement de la génération mot par mot (token par token).
- Raisonnement non fidèle : Peut fabriquer des arguments plausibles (“bullshitting”) pour une conclusion donnée.
- Logique multi-étapes : Combine des faits distincts, ne se contente pas de mémoriser.
- Hallucinations : Refus par défaut ; réponse si “connaissance” active, sinon risque d’hallucination si erreur.
- “Jailbreaks” : Tension entre cohérence grammaticale (pousse à continuer) et sécurité (devrait refuser).
- Bilan : Méthodes limitées mais prometteuses pour la transparence et la fiabilité de l’IA.
Le “S” dans MCP veut dire Securité (ou pas !) https://elenacross7.medium.com/%EF%B8%8F-the-s-in-mcp-stands-for-security-91407b33ed6b
- La spécification MCP pour permettre aux LLMs d’avoir accès à divers outils et fonctions a peut-être été adoptée un peu rapidement, alors qu’elle n’était pas encore prête niveau sécurité
- L’article liste 4 types d’attaques possibles :
- vulnérabilité d’injection de commandes
- attaque d’empoisonnement d’outils
- redéfinition silencieuse de l’outil
- le shadowing d’outils inter-serveurs
- Pour l’instant, MCP n’est pas sécurisé :
- Pas de standard d’authentification
- Pas de chiffrement de contexte
- Pas de vérification d’intégrité des outils
- Basé sur l’article de InvariantLabs https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks
Sortie Infinispan 15.2 - pre rolling upgrades 16.0 https://infinispan.org/blog/2025/03/27/infinispan-15-2
- Support de Redis JSON + scripts Lua
- Métriques JVM désactivables
- Nouvelle console (PatternFly 6)
- Docs améliorées (métriques + logs)
- JDK 17 min, support JDK 24
- Fin du serveur natif (performances)
Guillaume montre comment développer un serveur MCP HTTP Server Sent Events avec l’implémentation de référence Java et LangChain4j https://glaforge.dev/posts/2025/04/04/mcp-client-and-server-with-java-mcp-sdk-and-langchain4j/
- Développé en Java, avec l’implémentation de référence qui est aussi à la base de l’implémentation dans Spring Boot (mais indépendant de Spring)
- Le serveur MCP est exposé sous forme de servlet dans Jetty
- Le client MCP lui, est développé avec le module MCP de LangChain4j
- c’est semi independant de Spring dans le sens où c’est dépendant de Reactor et de ses interface.
- il y a une conversation sur le github d’anthropic pour trouver une solution, mais cela ne parait pas simple.
Les fallacies derrière la citation “AI won’t replace you, but humans using AI will” https://platforms.substack.com/cp/161356485
- La fallacie de l’automatisation vs. l’augmentation : Elle se concentre sur l’amélioration des tâches existantes avec l’IA au lieu de considérer le changement de la valeur de ces tâches dans un nouveau système.
- La fallacie des gains de productivité : L’augmentation de la productivité ne se traduit pas toujours par plus de valeur pour les travailleurs, car la valeur créée peut être capturée ailleurs dans le système.
- La fallacie des emplois statiques : Les emplois sont des constructions organisationnelles qui peuvent être redéfinies par l’IA, rendant les rôles traditionnels obsolètes.
- La fallacie de la compétition “moi vs. quelqu’un utilisant l’IA” : La concurrence évolue lorsque l’IA modifie les contraintes fondamentales d’un secteur, rendant les compétences existantes moins pertinentes.
- La fallacie de la continuité du flux de travail : L’IA peut entraîner une réimagination complète des flux de travail, éliminant le besoin de certaines compétences.
- La fallacie des outils neutres : Les outils d’IA ne sont pas neutres et peuvent redistribuer le pouvoir organisationnel en changeant la façon dont les décisions sont prises et exécutées.
- La fallacie du salaire stable : Le maintien d’un emploi ne garantit pas un salaire stable, car la valeur du travail peut diminuer avec l’augmentation des capacités de l’IA.
- La fallacie de l’entreprise stable : L’intégration de l’IA nécessite une restructuration de l’entreprise et ne se fait pas dans un vide organisationnel.
Comprendre le “sampling” dans les LLMs https://rentry.co/samplers
- Explique pourquoi les LLMs utilisent des tokens
- Les différentes méthodes de “sampling” : càd de choix de tokens
- Les hyperparamètres comme la température, top-p, et leur influence réciproque
- Les algorithmes de tokenisation comme Byte Pair Encoding et SentencePiece.
Un de moins … OpenAI va racheter Windsurf pour 3 milliards de dollars.
https://www.bloomberg.com/news/articles/2025-05-06/openai-reaches-agreement-to-buy-startup-windsurf-for-3-billion
- l’accord n’est pas encore finalisé
- Windsurf était valorisé à 1,25 milliards l’an dernier et OpenAI a levé 40 milliards dernièrement portant sa valeur à 300 milliards
- Le but pour OpenAI est de rentrer dans le monde des assistants de code pour lesquels ils sont aujourd’hui absent
Docker desktop se met à l’IA… ? Une nouvelle fonctionnalité dans docker desktop 4.4 sur macos: Docker Model Runner https://dev.to/docker/run-genai-models-locally-with-docker-model-runner-5elb
- Permet de faire tourner des modèles nativement en local ( https://docs.docker.com/model-runner/ ) mais aussi des serveurs MCP ( https://docs.docker.com/ai/mcp-catalog-and-toolkit/ )
Outillage
Jetbrains défend la suppression des commentaires négatifs sur son assistant IA https://devclass.com/2025/04/30/jetbrains-defends-removal-of-negative-reviews-for-unpopular-ai-assistant/?td=rt-3a
- L’IA Assistant de JetBrains, lancée en juillet 2023, a été téléchargée plus de 22 millions de fois mais n’est notée que 2,3 sur 5.
- Des utilisateurs ont remarqué que certaines critiques négatives étaient supprimées, ce qui a provoqué une réaction négative sur les réseaux sociaux.
- Un employé de JetBrains a expliqué que les critiques ont été supprimées soit parce qu’elles mentionnaient des problèmes déjà résolus, soit parce qu’elles violaient leur politique concernant les “grossièretés, etc.”
- L’entreprise a reconnu qu’elle aurait pu mieux gérer la situation, un représentant déclarant : “Supprimer plusieurs critiques d’un coup sans préavis semblait suspect. Nous aurions dû au moins publier un avis et fournir plus de détails aux auteurs.”
- Parmi les problèmes de l’IA Assistant signalés par les utilisateurs figurent : un support limité pour les fournisseurs de modèles tiers, une latence notable, des ralentissements fréquents, des fonctionnalités principales verrouillées aux services cloud de JetBrains, une expérience utilisateur incohérente et une documentation insuffisante.
- Une plainte courante est que l’IA Assistant s’installe sans permission. Un utilisateur sur Reddit l’a qualifié de “plugin agaçant qui s’auto-répare/se réinstalle comme un phénix”.
- JetBrains a récemment introduit un niveau gratuit et un nouvel agent IA appelé Junie, destiné à fonctionner parallèlement à l’IA Assistant, probablement en réponse à la concurrence entre fournisseurs. Mais il est plus char a faire tourner.
- La société s’est engagée à explorer de nouvelles approches pour traiter les mises à jour majeures différemment et envisage d’implémenter des critiques par version ou de marquer les critiques comme “Résolues” avec des liens vers les problèmes correspondants au lieu de les supprimer.
- Contrairement à des concurrents comme Microsoft, AWS ou Google, JetBrains commercialise uniquement des outils et services de développement et ne dispose pas d’une activité cloud distincte sur laquelle s’appuyer.
Vos images de README et fichiers Markdown compatibles pour le dark mode de GitHub: https://github.blog/developer-skills/github/how-to-make-your-images-in-markdown-on-github-adjust-for-dark-mode-and-light-mode/
- Seulement quelques lignes de pure HTML pour le faire
Architecture
Alors, les DTOs, c’est bien ou c’est pas bien ? https://codeopinion.com/dtos-mapping-the-good-the-bad-and-the-excessive/
- Utilité des DTOs : Les DTOs servent à transférer des données entre les différentes couches d’une application, en mappant souvent les données entre différentes représentations (par exemple, entre la base de données et l’interface utilisateur).
- Surutilisation fréquente : L’article souligne que les DTOs sont souvent utilisés de manière excessive, notamment pour créer des API HTTP qui ne font que refléter les entités de la base de données, manquant ainsi l’opportunité de composer des données plus riches.
- Vraie valeur : La valeur réelle des DTOs réside dans la gestion du couplage entre les couches et la composition de données provenant de sources multiples en formes optimisées pour des cas d’utilisation spécifiques.
- Découplage : Il est suggéré d’utiliser les DTOs pour découpler les modèles de données internes des contrats externes (comme les API), ce qui permet une évolution et une gestion des versions indépendantes.
- Exemple avec CQRS : Dans le cadre de CQRS (Command Query Responsibility Segregation), les réponses aux requêtes (queries) agissent comme des DTOs spécifiquement adaptés aux besoins de l’interface utilisateur, pouvant inclure des données de diverses sources.
- Protection des données internes : Les DTOs aident à distinguer et protéger les modèles de données internes (privés) des changements externes (publics).
- Éviter l’excès : L’auteur met en garde contre les couches de mapping excessives (mapper un DTO vers un autre DTO) qui n’apportent pas de valeur ajoutée.
- Création ciblée : Il est conseillé de ne créer des DTOs que lorsqu’ils résolvent des problèmes concrets, tels que la gestion du couplage ou la facilitation de la composition de données.
Méthodologies
Même Guillaume se met au “vibe coding” https://glaforge.dev/posts/2025/05/02/vibe-coding-an-mcp-server-with-micronaut-and-gemini/
- Selon Andrey Karpathy, c’est le fait de POC-er un proto, une appli jetable du weekend https://x.com/karpathy/status/1886192184808149383
- Mais Simon Willison s’insurge que certains confondent coder avec l’assistance de l’IA avec le vibe coding https://simonwillison.net/2025/May/1/not-vibe-coding/
- Guillaume c’est ici amusé à développer un serveur MCP avec Micronaut, en utilisant Gemini, l’IA de Google.
- Contrairement à Quarkus ou Spring Boot, Micronaut n’a pas encore de module ou de support spécifique pour faciliter la création de serveur MCP
Sécurité
Une faille de sécurité 10/10 sur Tomcat https://www.it-connect.fr/apache-tomcat-cette-faille-activement-exploitee-seulement-30-heures-apres-sa-divulgation-patchez/
- Une faille de sécurité critique (CVE-2025-24813) affecte Apache Tomcat, permettant l’exécution de code à distance
- Cette vulnérabilité est activement exploitée seulement 30 heures après sa divulgation du 10 mars 2025
- L’attaque ne nécessite aucune authentification et est particulièrement simple à exécuter
- Elle utilise une requête PUT avec une charge utile Java sérialisée encodée en base64, suivie d’une requête GET
- L’encodage en base64 permet de contourner la plupart des filtres de sécurité
- Les serveurs vulnérables utilisent un stockage de session basé sur des fichiers (configuration répandue)
- Les versions affectées sont : 11.0.0-M1 à 11.0.2, 10.1.0-M1 à 10.1.34, et 9.0.0.M1 à 9.0.98
- Les mises à jour recommandées sont : 11.0.3+, 10.1.35+ et 9.0.99+
- Les experts prévoient des attaques plus sophistiquées dans les prochaines phases d’exploitation (upload de config ou jsp)
Sécurisation d’un serveur ssh https://ittavern.com/ssh-server-hardening/
- un article qui liste les configurations clés pour sécuriser un serveur SSH
- par exemple, enlever password authentigfication, changer de port, desactiver le login root, forcer le protocol ssh 2,
- certains que je ne connaissais pas comme
MaxStartups
qui limite le nombre de connections non authentifiées concurrentes - Port knocking est une technique utile mais demande une approche cliente consciente du protocol
Oracle admet que les identités IAM de ses clients ont leaké https://www.theregister.com/2025/04/08/oracle_cloud_compromised/
- Oracle a confirmé à certains clients que son cloud public a été compromis, alors que l’entreprise avait précédemment nié toute intrusion.
- Un pirate informatique a revendiqué avoir piraté deux serveurs d’authentification d’Oracle et volé environ six millions d’enregistrements, incluant des clés de sécurité privées, des identifiants chiffrés et des entrées LDAP.
- La faille exploitée serait la vulnérabilité CVE-2021-35587 dans Oracle Access Manager, qu’Oracle n’avait pas corrigée sur ses propres systèmes.
- Le pirate a créé un fichier texte début mars sur login.us2.oraclecloud.com contenant son adresse email pour prouver son accès.
- Selon Oracle, un ancien serveur contenant des données vieilles de huit ans aurait été compromis, mais un client affirme que des données de connexion aussi récentes que 2024 ont été dérobées.
- Oracle fait face à un procès au Texas concernant cette violation de données.
- Cette intrusion est distincte d’une autre attaque contre Oracle Health, sur laquelle l’entreprise refuse de commenter.
- Oracle pourrait faire face à des sanctions sous le RGPD européen qui exige la notification des parties affectées dans les 72 heures suivant la découverte d’une fuite de données.
- Le comportement d’Oracle consistant à nier puis à admettre discrètement l’intrusion est inhabituel en 2025 et pourrait mener à d’autres actions en justice collectives.
Une GitHub action très populaire compromise https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-action-is-compromised
- Compromission de l’action
tj-actions/changed-files
: En mars 2025, une action GitHub très utilisée (tj-actions/changed-files
) a été compromise. Des versions modifiées de l’action ont exposé des secrets CI/CD dans les logs de build. - Méthode d’attaque : Un PAT compromis a permis de rediriger plusieurs tags de version vers un commit contenant du code malveillant.
- Détails du code malveillant : Le code injecté exécutait une fonction Node.js encodée en base64, qui téléchargeait un script Python. Ce script parcourait la mémoire du runner GitHub à la recherche de secrets (tokens, clés…) et les exposait dans les logs. Dans certains cas, les données étaient aussi envoyées via une requête réseau.
- Période d’exposition : Les versions compromises étaient actives entre le 12 et le 15 mars 2025. Tout dépôt, particulièrement ceux publiques, ayant utilisé l’action pendant cette période doit être considéré comme potentiellement exposé.
- Détection : L’activité malveillante a été repérée par l’analyse des comportements inhabituels pendant l’exécution des workflows, comme des connexions réseau inattendues.
- Réaction : GitHub a supprimé l’action compromise, qui a ensuite été nettoyée.
- Impact potentiel : Tous les secrets apparaissant dans les logs doivent être considérés comme compromis, même dans les dépôts privés, et régénérés sans délai.
Loi, société et organisation
Les startup the YCombinateur ont les plus fortes croissances de leur histoire https://www.cnbc.com/2025/03/15/y-combinator-startups-are-fastest-growing-in-fund-history-because-of-ai.html
- Les entreprises en phase de démarrage à Silicon Valley connaissent une croissance significative grâce à l’intelligence artificielle.
- Le PDG de Y Combinator, Garry Tan, affirme que l’ensemble des startups de la dernière cohorte a connu une croissance hebdomadaire de 10% pendant neuf mois.
- L’IA permet aux développeurs d’automatiser des tâches répétitives et de générer du code grâce aux grands modèles de langage.
- Pour environ 25% des startups actuelles de YC, 95% de leur code a été écrit par l’IA.
- Cette révolution permet aux entreprises de se développer avec moins de personnel - certaines atteignant 10 millions de dollars de revenus avec moins de 10 employés.
- La mentalité de “croissance à tout prix” a été remplacée par un renouveau d’intérêt pour la rentabilité.
- Environ 80% des entreprises présentées lors du “demo day” étaient centrées sur l’IA, avec quelques startups en robotique et semi-conducteurs.
- Y Combinator investit 500 000 dollars dans les startups en échange d’une participation au capital, suivi d’un programme de trois mois.
Red Hat middleware (ex-jboss) rejoint IBM https://markclittle.blogspot.com/2025/03/red-hat-middleware-moving-to-ibm.html
- Les activités Middleware de Red Hat (incluant JBoss, Quarkus, etc.) vont être transférées vers IBM, dans l’unité dédiée à la sécurité des données, à l’IAM et aux runtimes.
- Ce changement découle d’une décision stratégique de Red Hat de se concentrer davantage sur le cloud hybride et l’intelligence artificielle.
- Mark Little explique que ce transfert était devenu inévitable, Red Hat ayant réduit ses investissements dans le Middleware ces dernières années.
- L’intégration vise à renforcer l’innovation autour de Java en réunissant les efforts de Red Hat et IBM sur ce sujet.
- Les produits Middleware resteront open source et les clients continueront à bénéficier du support habituel sans changement.
- Mark Little affirme que des projets comme Quarkus continueront à être soutenus et que cette évolution est bénéfique pour la communauté Java.
Un an de commonhaus https://www.commonhaus.org/activity/253.html
- un an, démarré sur les communautés qu’ils connaissaient bien
- maintenant 14 projets et put en accepter plus
- confiance, gouvernance legère et proteger le futur des projets
- automatisation de l’administratif, stabiilité sans complexité, les developpeurs au centre du processus de décision
- ils ont besoins de members et supporters (financiers)
- ils veulent accueillir des projets au delà de ceux du cercles des Java Champions
Spring Cloud Data Flow devient un produit commercial et ne sera plus maintenu en open source https://spring.io/blog/2025/04/21/spring-cloud-data-flow-commercial
- Peut-être sous l’influence de Broadcom, Spring se met à mettre en mode propriétaire des composants du portefeuille Spring
- ils disent que peu de gens l’utilisaent en mode OSS et la majorité venait d’un usage dans la plateforme Tanzu
- Maintenir en open source le coutent du temps qu’ils son’t pas sur ces projets.
La CNCF protège le projet NATS, dans la fondation depuis 2018, vu que la société Synadia qui y contribue souhaitait reprendre le contrôle du projet https://www.cncf.io/blog/2025/04/24/protecting-nats-and-the-integrity-of-open-source-cncfs-commitment-to-the-community/
- CNCF : Protège projets OS, gouvernance neutre.
- Synadia vs CNCF : Veut retirer NATS, licence non-OS (BUSL).
- CNCF : Accuse Synadia de “claw back” (reprise illégitime).
- Revendications Synadia : Domaine nats.io, orga GitHub.
- Marque NATS : Synadia n’a pas transféré (promesse rompue malgré aide CNCF).
- Contestation Synadia : Juge règles CNCF “trop vagues”.
- Vote interne : Mainteneurs Synadia votent sortie CNCF (sans communauté).
- Support CNCF : Investissement majeur ($ audits, légal), succès communautaire (>700 orgs).
- Avenir NATS (CNCF) : Maintien sous Apache 2.0, gouvernance ouverte.
- Actions CNCF : Health check, appel mainteneurs, annulation marque Synadia, rejet demandes.
- Mais finalement il semble y avoir un bon dénouement :
- https://www.cncf.io/announcements/2025/05/01/cncf-and-synadia-align-on-securing-the-future-of-the-nats-io-project/
- Accord pour l’avenir de NATS.io : La Cloud Native Computing Foundation (CNCF) et Synadia ont conclu un accord pour sécuriser le futur du projet NATS.io.
- Transfert des marques NATS : Synadia va céder ses deux enregistrements de marque NATS à la Linux Foundation afin de renforcer la gouvernance ouverte du projet.
- Maintien au sein de la CNCF : L’infrastructure et les actifs du projet NATS resteront sous l’égide de la CNCF, garantissant ainsi sa stabilité à long terme et son développement en open source sous licence Apache-2.0.
- Reconnaissance et engagement : La Linux Foundation, par la voix de Todd Moore, reconnaît les contributions de Synadia et son soutien continu. Derek Collison, PDG de Synadia, réaffirme l’engagement de son entreprise envers NATS et la collaboration avec la Linux Foundation et la CNCF.
- Adoption et soutien communautaire : NATS est largement adopté et considéré comme une infrastructure critique. Il bénéficie d’un fort soutien de la communauté pour sa nature open source et l’implication continue de Synadia.
Finalement, Redis revient vers une licence open source OSI, avec la AGPL https://foojay.io/today/redis-is-now-available-under-the-agplv3-open-source-license/
- Redis passe à la licence open source AGPLv3 pour contrer l’exploitation par les fournisseurs cloud sans contribution.
- Le passage précédent à la licence SSPL avait nui à la relation avec la communauté open source.
- Salvatore Sanfilippo (antirez) est revenu chez Redis.
- Redis 8 adopte la licence AGPL, intègre les fonctionnalités de Redis Stack (JSON, Time Series, etc.) et introduit les “vector sets” (le support de calcul vectoriel développé par Salvatore).
- Ces changements visent à renforcer Redis en tant que plateforme appréciée des développeurs, conformément à la vision initiale de Salvatore.
Conférences
La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 6-7 mai 2025 : GOSIM AI Paris - Paris (France)
- 7-9 mai 2025 : Devoxx UK - London (UK)
- 15 mai 2025 : Cloud Toulouse - Toulouse (France)
- 16 mai 2025 : AFUP Day 2025 Lille - Lille (France)
- 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France)
- 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France)
- 22-23 mai 2025 : Flupa UX Days 2025 - Paris (France)
- 24 mai 2025 : Polycloud - Montpellier (France)
- 24 mai 2025 : NG Baguette Conf 2025 - Nantes (France)
- 3 juin 2025 : TechReady - Nantes (France)
- 5-6 juin 2025 : AlpesCraft - Grenoble (France)
- 5-6 juin 2025 : Devquest 2025 - Niort (France)
- 10-11 juin 2025 : Modern Workplace Conference Paris 2025 - Paris (France)
- 11-13 juin 2025 : Devoxx Poland - Krakow (Poland)
- 12 juin 2025 : Positive Design Days - Strasbourg (France)
- 12-13 juin 2025 : Agile Tour Toulouse - Toulouse (France)
- 12-13 juin 2025 : DevLille - Lille (France)
- 13 juin 2025 : Tech F’Est 2025 - Nancy (France)
- 17 juin 2025 : Mobilis In Mobile - Nantes (France)
- 19-21 juin 2025 : Drupal Barcamp Perpignan 2025 - Perpignan (France)
- 24 juin 2025 : WAX 2025 - Aix-en-Provence (France)
- 25-26 juin 2025 : Agi’Lille 2025 - Lille (France)
- 25-27 juin 2025 : BreizhCamp 2025 - Rennes (France)
- 26-27 juin 2025 : Sunny Tech - Montpellier (France)
- 1-4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France)
- 7-9 juillet 2025 : Riviera DEV 2025 - Sophia Antipolis (France)
- 5 septembre 2025 : JUG Summer Camp 2025 - La Rochelle (France)
- 12 septembre 2025 : Agile Pays Basque 2025 - Bidart (France)
- 18-19 septembre 2025 : API Platform Conference - Lille (France) & Online
- 23 septembre 2025 : OWASP AppSec France 2025 - Paris (France)
- 25-26 septembre 2025 : Paris Web 2025 - Paris (France)
- 2-3 octobre 2025 : Volcamp - Clermont-Ferrand (France)
- 3 octobre 2025 : DevFest Perros-Guirec 2025 - Perros-Guirec (France)
- 6-10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium)
- 7 octobre 2025 : BSides Mulhouse - Mulhouse (France)
- 9-10 octobre 2025 : Forum PHP 2025 - Marne-la-Vallée (France)
- 9-10 octobre 2025 : EuroRust 2025 - Paris (France)
- 16 octobre 2025 : PlatformCon25 Live Day Paris - Paris (France)
- 16-17 octobre 2025 : DevFest Nantes - Nantes (France)
- 30-31 octobre 2025 : Agile Tour Bordeaux 2025 - Bordeaux (France)
- 30-31 octobre 2025 : Agile Tour Nantais 2025 - Nantes (France)
- 30 octobre 2025-2 novembre 2025 : PyConFR 2025 - Lyon (France)
- 4-7 novembre 2025 : NewCrafts 2025 - Paris (France)
- 6 novembre 2025 : dotAI 2025 - Paris (France)
- 7 novembre 2025 : BDX I/O - Bordeaux (France)
- 12-14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco)
- 13 novembre 2025 : DevFest Toulouse - Toulouse (France)
- 15-16 novembre 2025 : Capitole du Libre - Toulouse (France)
- 20 novembre 2025 : OVHcloud Summit - Paris (France)
- 21 novembre 2025 : DevFest Paris 2025 - Paris (France)
- 27 novembre 2025 : Devfest Strasbourg 2025 - Strasbourg (France)
- 28 novembre 2025 : DevFest Lyon - Lyon (France)
- 5 décembre 2025 : DevFest Dijon 2025 - Dijon (France)
- 10-11 décembre 2025 : Devops REX - Paris (France)
- 10-11 décembre 2025 : Open Source Experience - Paris (France)
- 28-31 janvier 2026 : SnowCamp 2026 - Grenoble (France)
- 2-6 février 2026 : Web Days Convention - Aix-en-Provence (France)
- 23-25 avril 2026 : Devoxx Greece - Athens (Greece)
- 17 juin 2026 : Devoxx Poland - Krakow (Poland)
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 324 - Devoxx France 2025 en live
Posté le 29/04/2025Arnaud, Antonio, Guillaume et Emmanuel font la clôture de Devoxx France dans la fumée et la bonne humeur avec l’aide des organisateurs de Devoxx et surtout les inimitables polos rouges !
Enregistré le 25 avril 2025
Téléchargement de l’épisode LesCastCodeurs-Episode-324.mp3 ou en vidéo sur YouTube.
News
Les news c’est Devoxx France bien sûr.
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 323 - L'accessibilité des messageries chiffrées
Posté le 17/03/2025Dans cet épisode, Emmanuel et Arnaud discutent des dernières nouvelles du dev, en mettant l’accent sur Java, l’intelligence artificielle, et les nouvelles fonctionnalités des versions JDK 24 et 25. Ils abordent également des sujets comme Quarkus, l’accessibilité des sites web, et l’impact de l’IA sur le trafic web. Cette conversation aborde les approches pour les devs en matière d’intelligence artificielle et de développement logiciel. On y discute notamment des défis et des bénéfices de l’utilisation de l’IA. Enfin, ils partagent leurs réflexions sur l’importance des conférences pour le développement professionnel.
Enregistré le 14 mars 2025
Téléchargement de l’épisode LesCastCodeurs-Episode-323.mp3 ou en vidéo sur YouTube.
News
Langages
Java Metal https://www.youtube.com/watch?v=yup8gIXxWDU
- Peut-être qu’on l’a déjà partagé ?
Article d’opinion Java coming for AI https://thenewstack.io/2025-is-the-last-year-of-python-dominance-in-ai-java-comin/
- 2025 pourrait être la dernière année où Python domine l’IA.
- Java devient un concurrent sérieux dans le domaine.
- En 2024, Python était toujours en tête, Java restait fort en entreprise, et Rust gagnait en popularité.
- Java est de plus en plus utilisé pour l’AI reméttant en cause la suprématie de Python.
- Article provenant de javaistes.
- La domination de python est culturelle et plus technique (enfin pour les ML lib, c’est encore technique).
- Les projets Panama et Babylon changent la donne.
- JavaML est populaire.
L’almanach java sur les versions https://javaalmanac.io/
- Montre les APIs et les diffs entre versions.
- Puis les release notes ou la spec Java.
Les nouvelles de JDK 24 et du futur 25 https://www.infoq.com/news/2025/02/java-24-so-far/
- JDK 24 a atteint sa première phase de release candidate et sera officiellement publié le 18 mars 2025.
- 24 nouvelles fonctionnalités (JEPs) réparties en 5 catégories : Core Java Library (7), Java Language Specification (4), Security Library (4), HotSpot (8) et Java Tools (1).
- Project Amber : JEP 495 “Simple Source Files and Instance Main Methods” en quatrième preview, visant à simplifier l’écriture des premiers programmes Java pour les débutants.
- Project Loom : JEP 487 “Scoped Values” en quatrième preview, permettant le partage de données immuables entre threads, particulièrement utile avec les virtual threads.
- Project Panama : JEP 489 “Vector API” en neuvième incubation, continuera d’incuber jusqu’à ce que les fonctionnalités nécessaires de Project Valhalla soient disponibles.
- Project Leyden : JEP 483 “Ahead-of-Time Class Loading & Linking” pour améliorer le temps de démarrage en rendant les classes d’une application instantanément disponibles au démarrage de la JVM.
- Sécurité quantique : Deux JEPs (496 et 497) introduisant des algorithmes résistants aux ordinateurs quantiques pour la cryptographie, basés sur les réseaux modulaires.
- Sécurité renforcée : JEP 486 propose de désactiver définitivement le Security Manager, tandis que JEP 478 introduit une API de dérivation de clés.
- Optimisations HotSpot : JEP 450 “Compact Object Headers” (expérimental) pour réduire la taille des en-têtes d’objets de 96-128 bits à 64 bits sur les architectures 64 bits (à ne pas utiliser en prod !).
- Améliorations GC : JEP 404 “Generational Shenandoah” (expérimental) introduit un mode générationnel pour le Garbage Collector Shenandoah, tout en gardant le non générationnel.
- Évolution des ports : Windows 32-bit x86 ça sent le sapin.
- JEP 502 dans JDK 25 : Introduction des “Stable Values” (preview), anciennement “Computed Constants”, offrant les avantages des champs finaux avec plus de flexibilité pour l’initialisation.
- Points Supplémentaires sur JDK 25.
- Date de sortie : JDK 25 est prévu pour septembre 2025 et représentera la prochaine version LTS (Long-Term Support) après JDK 21.
- Finalisation de l’on-ramp : Gavin Bierman a annoncé son intention de finaliser la fonction “Simple Source Files” dans JDK 25, après quatre previews successives.
- CDS Object Streaming : Le JEP Draft 8326035 propose d’ajouter un mécanisme d’archivage d’objets pour Class-Data Sharing (CDS) dans ZGC, avec un format d’archivage et un chargeur unifiés.
- HTTP/3 supporté dans HttpClient.
Un article sur l’approche de Go pour éviter les attaques par chemin de fichier https://go.dev/blog/osroot
Librairies
Quarkus 3.19 est sorti https://quarkus.io/blog/quarkus-3-19-1-released/
- UBI 9 par défaut pour les conteneurs.
- En plus de AppCDS, support du cache AOT (JEP 483) pour démarrer encore plus rapidement.
- Preuve de possession dans les tokens OAuth 2.
Mario Fusco sur les patterns d’agents en Quarkus https://quarkus.io/blog/agentic-ai-with-quarkus/ et https://quarkus.io/blog/agentic-ai-with-quarkus-p2/
- Premier article sur les patterns de workflow.
- Chainer, paralléliser ou router.
- Avec des exemples de code qui tournent.
- Les agents à proprement parler (le LLM qui decide du workflow).
- Les agents ont des toolbox que le LLM peut decider d’invoquer.
- Le code va dans les détails et permet de mettre les interactions en lumière.
- Le tracing rend les choses visuelles.
Web
Le European Accessibility Act (EAA) https://martijnhols.nl/blog/the-european-accessibility-act-for-websites-and-apps
- Loi européenne sur l’accessibilité (EAA) adoptée en 2019.
- Vise à rendre sites web et apps accessibles aux personnes handicapées.
- Suivre les normes WCAG 2.1 AA (clarté, utilisabilité, compatibilité).
- Entreprises concernées : banques, e-commerce, transports, etc.
- Date limite de mise en conformité : 28 juin 2025.
- 2025, c’est pour les nouveaux développements.
- 2027, c’est pour les applications existantes.
- Bon et je fais comment pour savoir si le site web des Cast Codeurs est conforme ?
API Popover https://web.dev/blog/popover-baseline
- L’API Popover est maintenant disponible dans tous les navigateurs majeurs.
- Ajoutée à Baseline le 27 janvier 2025.
- Permet de créer des popovers natifs en HTML, sans JavaScript complexe.
- Exemple :
<button popovertarget="mon-popover">Ouvrir</button>
<div id="mon-popover" popover>Contenu du popover</div>
- Problème initial (2024) : Bug sur iOS empêchant la fermeture des popovers.
Intégrer un front-end React dans une app Spring Boot https://bootify.io/frontend/react-spring-boot-integration.html
- Étape par étape, comment configurer son build (https://bootify.io/frontend/webpack-spring-boot.html) et son app (controllers…) pour y intégrer un front en React.
Data et Intelligence Artificielle
Traffic des sites web venant de IA https://ahrefs.com/blog/ai-traffic-study/
- Le AIEO après le SEO va devenir un gros business vu que les modèles ont tendance à avoir leurs chouchous techniques ou de reference.
- 63% des sites ont au moins un referal viennent d’une IA.
- 50% ChatGPT, puis Perplexity et enfin Gemini, bah et LeChat alors ?
- 0,17% du traffic des sites vient de l’IA. Et en meme temps l’AI resume plutôt que pointe donc c’est logique.
Granite 3.2 est sorti https://www.infoq.com/news/2025/03/ibm-granite-3-2/
- IBM sort Granite 3.2, un modèle IA avancé.
- Meilleur raisonnement et nouvelles capacités multimodales.
- Granite Vision 3.2 excelle en compréhension d’images et de documents.
- Granite Guardian 3.2 détecte les risques dans les réponses IA.
- Modèles plus petits et efficaces pour divers usages.
- Améliorations en raisonnement mathématique et prévisions temporelles.
- les trucs intéressants de Granite c’est sa petite taille et son cote “vraiment” open source
Prompt Engineering : article détaillé https://www.infoq.com/articles/prompt-engineering/
- Le prompt engineering, c’est l’art de bien formuler les instructions pour guider l’IA.
- Accessible à tous, il ne remplace pas la programmation mais la complète.
- Techniques clés : few-shot learning, chain-of-thought, tree-of-thought.
- Avantages : flexibilité, rapidité, meilleure interaction avec l’IA.
- Limites : manque de précision et dépendance aux modèles existants.
- Futur : un outil clé pour améliorer l’IA et le développement logiciel.
QCon San Francisco - Les agents AI - Conference https://www.infoq.com/presentations/ai-agents-infrastructure/
- Sujet : Infrastructure pour agents d’IA.
- Technologies : RAG et bases de données vectorielles.
- Rôle des agents d’IA : Automatiser des tâches, prévoir des besoins, superviser.
- Expérience : Shruti Bhat d’Oracle à Rockset (acquis par OpenAI).
- Objectif : Passer des applis classiques aux agents IA intelligents.
- Défis : Améliorer la recherche en temps réel, l’indexation et la récupération.
- Nous concernant :
- Évolution des rôles : Les développeurs passent à des rôles plus stratégiques.
- Adaptation nécessaire : Les développeurs doivent s’adapter aux nouvelles technologies.
Official Java SDK for MCP & Spring AI https://spring.io/blog/2025/02/14/mcp-java-sdk-released-2
- Désormais une implémentation officielle aux côtés des SDK Python, TypeScript et Kotlin (https://modelcontextprotocol.io/)
- Prise en charge de Stdio-based transport, SSE (via HTTP) et intégration avec Spring WebFlux et WebMVC.
- Intégration avec Spring AI, configuration simplifiée pour les applications Spring Boot (different starters disponibles).
Codez avec Claude https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview
- Claude Code est en beta, plus de liste d’attente.
- Un outil de codage agentique intégré au terminal, capable de comprendre votre base de code et d’accélérer le développement grâce à des commandes en langage naturel.
- Les fonctionnalités permettent de comprendre le code, le refactorer, tester, debugger…
Gemini Code Assist est gratuit https://blog.google/technology/developers/gemini-code-assist-free/
- Pour un usage personnel.
- Pas besoin de compte.
- Pas de limite.
- 128K token input.
Guillaume démarre une série d’articles sur le RAG (niveau avancé). Le premier sur Sentence Window Retrieval https://glaforge.dev/posts/2025/02/25/advanced-rag-sentence-window-retrieval/
- Guillaume propose une technique qui améliore les résultats de rechercher de Retrieval Augmented Generation.
- L’idée est de calculer des vecteurs embeddings sur des phrases, par exemple, mais de retourner un contexte plus large.
- L’intérêt, c’est d’avoir des calculs de similarité de vector embedding qui ont de bons scores (sans dilution de sens) de similarité, mais de ne pas perdre des informations sur le contexte dans lequel cette phrase se situe.
GitHub Copilot edits en GA, GitHub Copilot en mode agent dans VSCode Insiders https://github.blog/news-insights/product-news/github-copilot-the-agent-awakens/
- Copilot Edits permet via le chat de modifier plusieurs fichiers en même temps, ce qui simplifie les refactoring.
- Copilot en mode agent ajoute un mode autonome (Agentic AI) qui va tout seul chercher les modifications à faire dans votre code base.
- what could possibly go wrong?
Méthodologies
Article d’opinion intéressant sur l’IA et le code assistant de Addy Osmani https://addyo.substack.com/p/the-70-problem-hard-truths-about
- Un article de l’année dernière de Addy Osmani https://addyo.substack.com/p/10-lessons-from-12-years-at-google.
- Plusieurs types d’aide IA.
- Celles pour démarrer d’un Figma ou d’une image et avoir un proto non fonctionnel en quelques jours.
- Celles pour itérer sur du code donc plus long terme.
- On va faire une interview sur les assistants de code IA.
- Le coût de la vitesse de l’IA.
- Les dev senior refactorent et modifie le code proposé pour se l’approprier, changer l’architecture…
- Donc basé sur leur connaissance.
- Appliquer ce qu’on connait déjà mais plus vite est un pattern different d’apprendre avec l’IA.
- Explore des patterns d’approche.
- Et la prospective sur le futur.
Loi, société et organisation
Elon Musk essaie d’acheter Open AI https://www.bbc.com/news/articles/cpdx75zgg88o
- La réponse : non merci, mais on peut racheter Twitter pour 9,74 milliards si tu veux
Avec la loi narcotrafic votée au sénat, Signal ne serait plus disponible en France https://www.clubic.com/actualite-555135-avec-la-loi-narcotrafic-signal-quittera-la-france.html
- En plus de légaliser les logiciels espions s’appuyant sur les failles logicielles.
- La loi demande aux messageries de laisser l’État accéder aux conversations.
- Donc une backdoor avec une clé étatique par exemple.
- Une backdoor comme celle des téléphones filaires américains mis en place il y a des années et maintenant exploitée par l’espionnage chinois.
- Signal a une position ferme, soit c’est sécurisé soit on sort d’un pays.
- Olvid, WhatsApp et iMessage sont aussi visées par exemple.
- La loi défini la cible comme la criminalité organisée : les classiques, mais aussi les gilets jaunes, les opposants au projet de Bure, les militants aidant les personnes exilées à Briançon, ou encore les actions contre le cimentier Lafarge à Bouc-Bel-Air et à Évreux.
- Donc plus large que ce que les gens pensent.
Conférences
La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 14 mars 2025 : Rust In Paris 2025 - Paris (France)
- 19-21 mars 2025 : React Paris - Paris (France)
- 20 mars 2025 : PGDay Paris - Paris (France)
- 20-21 mars 2025 : Agile Niort - Niort (France)
- 25 mars 2025 : ParisTestConf - Paris (France)
- 26-29 mars 2025 : JChateau Unconference 2025 - Cour-Cheverny (France)
- 27-28 mars 2025 : SymfonyLive Paris 2025 - Paris (France)
- 28 mars 2025 : DataDays - Lille (France)
- 28-29 mars 2025 : Agile Games France 2025 - Lille (France)
- 28-30 mars 2025 : Shift - Nantes (France)
- 3 avril 2025 : DotJS - Paris (France)
- 3 avril 2025 : SoCraTes Rennes 2025 - Rennes (France)
- 4 avril 2025 : Flutter Connection 2025 - Paris (France)
- 4 avril 2025 : aMP Orléans 04-04-2025 - Orléans (France)
- 10-11 avril 2025 : Android Makers - Montrouge (France)
- 10-12 avril 2025 : Devoxx Greece - Athens (Greece)
- 11-12 avril 2025 : Faiseuses du Web 4 - Dinan (France)
- 14 avril 2025 : Lyon Craft - Lyon (France)
- 16-18 avril 2025 : Devoxx France - Paris (France)
- 23-25 avril 2025 : MODERN ENDPOINT MANAGEMENT EMEA SUMMIT 2025 - Paris (France)
- 24 avril 2025 : IA Data Day - Strasbourg 2025 - Strasbourg (France)
- 29-30 avril 2025 : MixIT - Lyon (France)
- 6-7 mai 2025 : GOSIM AI Paris - Paris (France)
- 7-9 mai 2025 : Devoxx UK - London (UK)
- 15 mai 2025 : Cloud Toulouse - Toulouse (France)
- 16 mai 2025 : AFUP Day 2025 Lille - Lille (France)
- 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France)
- 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France)
- 22-23 mai 2025 : Flupa UX Days 2025 - Paris (France)
- 24 mai 2025 : Polycloud - Montpellier (France)
- 24 mai 2025 : NG Baguette Conf 2025 - Nantes (France)
- 3 juin 2025 : TechReady - Nantes (France)
- 5-6 juin 2025 : AlpesCraft - Grenoble (France)
- 5-6 juin 2025 : Devquest 2025 - Niort (France)
- 10-11 juin 2025 : Modern Workplace Conference Paris 2025 - Paris (France)
- 11-13 juin 2025 : Devoxx Poland - Krakow (Poland)
- 12-13 juin 2025 : Agile Tour Toulouse - Toulouse (France)
- 12-13 juin 2025 : DevLille - Lille (France)
- 13 juin 2025 : Tech F’Est 2025 - Nancy (France)
- 17 juin 2025 : Mobilis In Mobile - Nantes (France)
- 19-21 juin 2025 : Drupal Barcamp Perpignan 2025 - Perpignan (France)
- 24 juin 2025 : WAX 2025 - Aix-en-Provence (France)
- 25-26 juin 2025 : Agi’Lille 2025 - Lille (France)
- 25-27 juin 2025 : BreizhCamp 2025 - Rennes (France)
- 26-27 juin 2025 : Sunny Tech - Montpellier (France)
- 1-4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France)
- 7-9 juillet 2025 : Riviera DEV 2025 - Sophia Antipolis (France)
- 18-19 septembre 2025 : API Platform Conference - Lille (France) & Online
- 23 septembre 2025 : OWASP AppSec France 2025 - Paris (France)
- 25-26 septembre 2025 : Paris Web 2025 - Paris (France)
- 2-3 octobre 2025 : Volcamp - Clermont-Ferrand (France)
- 6-10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium)
- 9-10 octobre 2025 : Forum PHP 2025 - Marne-la-Vallée (France)
- 9-10 octobre 2025 : EuroRust 2025 - Paris (France)
- 16-17 octobre 2025 : DevFest Nantes - Nantes (France)
- 4-7 novembre 2025 : NewCrafts 2025 - Paris (France)
- 6 novembre 2025 : dotAI 2025 - Paris (France)
- 7 novembre 2025 : BDX I/O - Bordeaux (France)
- 12-14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco)
- 21 novembre 2025 : DevFest Paris 2025 - Paris (France)
- 28 novembre 2025 : DevFest Lyon - Lyon (France)
- 28-31 janvier 2026 : SnowCamp 2026 - Grenoble (France)
- 23-25 avril 2026 : Devoxx Greece - Athens (Greece)
- 17 juin 2026 : Devoxx Poland - Krakow (Poland)
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 322 - Maaaaveeeeen 4 !
Posté le 09/02/2025Arnaud et Emmanuel discutent des nouvelles de ce mois. On y parle intégrité de la JVM, fetch size de JDBC, MCP, de prompt engineering, de DeepSeek bien sûr, mais aussi de Maven 4 et des proxy de repository Maven. Et d’autres choses encore. Bonne lecture !
Enregistré le 7 février 2025
Téléchargement de l’épisode LesCastCodeurs-Episode-322.mp3 ou en vidéo sur YouTube.
News
Langages
Les évolutions de la JVM pour augmenter l’intégrité https://inside.java/2025/01/03/evolving-default-integrity/
- Un article sur les raisons pour lesquelles les éditeurs de frameworks et les utilisateurs s’arrachent les cheveux et vont continuer.
- Garantir l’intégrité du code et des données en supprimant des APIs existantes historiquement.
- Agents dynamiques, setAccessible, Unsafe, JNI.
- L’article explique les risques perçus par les mainteneurs de la JVM.
- Franchement, c’est un peu léger sur les causes, auto-propagande.
JavaScript Temporal, enfin une API propre et moderne pour gérer les dates en JS https://developer.mozilla.org/en-US/blog/javascript-temporal-is-coming/
- JavaScript Temporal est un nouvel objet conçu pour remplacer l’objet Date, qui présente des défauts.
- Il résout des problèmes tels que le manque de prise en charge des fuseaux horaires et la mutabilité.
- Temporal introduit des concepts tels que les instants, les heures civiles et les durées.
- Il fournit des classes pour gérer diverses représentations de date/heure, y compris celles qui tiennent compte du fuseau horaire et celles qui n’en tiennent pas compte.
- Temporal simplifie l’utilisation de différents calendriers (par exemple, chinois, hébreu).
- Il comprend des méthodes pour les comparaisons, les conversions et le formatage des dates et des heures.
- La prise en charge par les navigateurs est expérimentale, Firefox Nightly ayant l’implémentation la plus aboutie.
- Un polyfill est disponible pour essayer Temporal dans n’importe quel navigateur.
Librairies
Un article sur les fetch size du JDBC et les impacts sur vos applications https://in.relation.to/2025/01/24/jdbc-fetch-size/
- Qui connaît la valeur par défaut du fetch size de son driver ?
- En fonction des cas d’utilisation ça peut être dévastateur.
- Exemple d’une appli qui retourne 12 lignes et un fetch size d’Oracle à 10, 2 aller-retours pour rien.
- Et si c’est 50 lignes retournées.
- La base de données est le facteur limitant, pas Java.
- Donc monter sont fetch size est avantageux, on utilise la mémoire de Java pour éviter la latence.
Quarkus annonce les MCP servers project pour collecter les server MCP en Java https://quarkus.io/blog/introducing-mcp-servers/
- MCP d’Anthropic.
- Introspecteur de bases JDBC.
- Lecteur de file system.
- Dessine en Java FX.
- Démarable facilement avec jbang.
- Et testés avec Claude desktop, Goose et mcp-cli.
- Permet d’utiliser le pouvoir des libraries Java de votre IA.
- D’ailleurs Spring a la version 0.6 de leur support MCP https://spring.io/blog/2025/01/23/spring-ai-mcp-0.
Infrastructure
Apache Flink sur Kubernetes https://www.decodable.co/blog/get-running-with-apache-flink-on-kubernetes-2
- Un article très complet en deux parties sur l’installation de Flink sur Kubernetes.
- Installation, setup.
- Mais aussi le checkpointing, la HA, l’observabilité.
Data et Intelligence Artificielle
10 techniques de prompt engineering https://medium.com/google-cloud/10-prompt-engineering-techniques-every-beginner-should-know-bf6c195916c7
- Si vous voulez aller plus loin, l’article référence un très bon livre blanc sur le prompt engineering https://www.kaggle.com/whitepaper-prompt-engineering
- Les techniques évoquées :
- Zero-Shot Prompting : On demande directement à l’IA de répondre à une question sans lui fournir d’exemple préalable. C’est comme si on posait une question à une personne sans lui donner de contexte.
- Few-Shot Prompting : On donne à l’IA un ou plusieurs exemples de la tâche qu’on souhaite qu’elle accomplisse. C’est comme montrer à quelqu’un comment faire quelque chose avant de lui demander de le faire.
- System Prompting : On définit le contexte général et le but de la tâche pour l’IA. C’est comme donner à l’IA des instructions générales sur ce qu’elle doit faire.
- Role Prompting : On attribue un rôle spécifique à l’IA (enseignant, journaliste, etc.). C’est comme demander à quelqu’un de jouer un rôle spécifique.
- Contextual Prompting : On fournit des informations supplémentaires ou un contexte pour la tâche. C’est comme donner à quelqu’un toutes les informations nécessaires pour répondre à une question.
- Step-Back Prompting : On pose d’abord une question générale, puis on utilise la réponse pour poser une question plus spécifique. C’est comme poser une question ouverte avant de poser une question plus fermée.
- Chain-of-Thought Prompting : On demande à l’IA de montrer étape par étape comment elle arrive à sa conclusion. C’est comme demander à quelqu’un d’expliquer son raisonnement.
- Self-Consistency Prompting : On pose plusieurs fois la même question à l’IA et on compare les réponses pour trouver la plus cohérente. C’est comme vérifier une réponse en la posant sous différentes formes.
- Tree-of-Thoughts Prompting : On permet à l’IA d’explorer plusieurs chemins de raisonnement en même temps. C’est comme considérer toutes les options possibles avant de prendre une décision.
- ReAct Prompting : On permet à l’IA d’interagir avec des outils externes pour résoudre des problèmes complexes. C’est comme donner à quelqu’un les outils nécessaires pour résoudre un problème.
Les patterns GenAI the Thoughtworks https://martinfowler.com/articles/gen-ai-patterns/
- Très introductif et pre-RAG.
- Le direct prompt qui est un appel direct au LLM : limitations de connaissance et de contrôle de l’expérience.
- Eval : évaluer la sortie d’un LLM avec plusieurs techniques, mais fondamentalement une fonction qui prend la demande, la réponse et donc un score numérique.
- Évaluation via un LLM (le meme ou un autre), ou evaluation humaine.
- Tourner les evaluations à partir de la chaine de build, mais aussi en live vu que les LLMs peuvent évoluer.
- Décrit les embedding notamment d’image, mais aussi de texte avec la notion de contexte
DeepSeek et la fin de la domination de Nvidia https://youtubetranscriptoptimizer.com/blog/05_the_short_case_for_nvda
- Un article sur les raisons pour lesquelles NVIDIA va se faire challenger sur ses marges.
- 90% de marge quand même parce que les plus gros GPU et CUDA qui est proprio.
- Mais des approches hardware alternatives existent qui sont plus efficientes (TPU et gros waffle).
- Google, MS et d’autres construisent leurs GPU alternatifs.
- CUDA devient de moins en moins le linga franca avec l’investissement sur des langages intermédiaires alternatifs par Apple, Google OpenAI…
- L’article parle de DeepSeek qui est venu mettre une baffe dans le monde des LLMs.
- Ils ont construit un compétiteur à GPT 4o et o1 avec 5M de dollars et des capacités de raisonnements impressionnant.
- La clé, c’était beaucoup de trick d’optimisation, mais le plus gros est d’avoir des poids de neurones sur 8 bits vs 32 pour les autres.
- Et donc de quantizer au fil de l’eau et au moment de l’entrainement.
- Beaucoup de reinforcement learning innovatif aussi.
- Et des Mixture of Expert.
- Donc ~50x moins chère que OpenAI.
- Donc plus besoin de GPU qui ont des tonnes de vRAM.
- Ah et DeepSeek est Open Source.
- Un article de semianalytics change un peu le narratif.
- Le papier de DeepSeek en dit long via ses omissions.
- Par exemple les 6M c’est juste l’inference en GPU, pas les coûts de recherches et divers essais et erreurs.
- En comparaison Claude Sonnet a coûté 10M en inference.
- DeepSeek a beaucoup de CPU pre-ban et certains post-bans évalués a 5 Milliards en investissement.
- Leurs avancées et leur ouverture restent extrêmement intéressantes.
Une intro à Apache Iceberg http://blog.ippon.fr/2025/01/17/la-revolution-des-donnees-lavenement-des-lakehouses-avec-apache-iceberg/
- Issue des limites du Data Lake non structuré et des Data Warehouses aux limites en diversité de données et de volume.
- Entre les lakehouse.
- Et particulièrement Apache Iceberg est issu de Netflix
- Gestion de schema mais flexible.
- Notion de copy en write vs merge on read en fonction de besoins.
- Garantie l’atomicité, la cohérence, l’isolation et la durabilité.
- Notion de time travel et rollback.
- Partitions cachées (qui abstraient la partition et ses transfos) et evolution de partitions.
- Compatible avec les moteurs de calcul comme Spark, Trino, Flink…
- Explique la structure des métadonnées et des données.
Guillaume s’amuse à générer des histoires courtes de Science-Fiction en programmant des Agents IA avec LangChain4j et aussi avec des workflows https://glaforge.dev/posts/2025/01/27/an-ai-agent-to-generate-short-scifi-stories/ https://glaforge.dev/posts/2025/01/31/a-genai-agent-with-a-real-workflow/
- Création d’un générateur automatisé de nouvelles de science-fiction à l’aide de Gemini et Imagen en Java, LangChain4j, sur Google Cloud.
- Le système génère chaque nuit des histoires, complétées par des illustrations créées par le modèle Imagen 3, et les publie sur un site Web.
- Une étape d’auto-réflexion utilise Gemini pour sélectionner la meilleure image pour chaque chapitre.
- L’agent utilise un workflow explicite, drivé par le code Java, où les étapes sont prédéfinies dans le code, plutôt que de s’appuyer sur une planification basée sur LLM.
- Le code est disponible sur GitHub et l’application est déployée sur Google Cloud.
- L’article oppose les agents de workflow explicites aux agents autonomes, en soulignant les compromis de chaque approche. Car parfois, les agents IA autonomes qui gèrent leur propre planning hallucinent un peu trop et n’établissent pas un plan correctement, ou ne le suivent pas comme il faut, voire hallucine des “function call”.
- Le projet utilise Cloud Build, le Cloud Run jobs, Cloud Scheduler, Firestore comme base de données, et Firebase pour le déploiement et l’automatisation du frontend.
- Dans le deuxième article, L’approche est différente, Guillaume utilise un outil de Workflow, plutôt que de diriger le planning avec du code Java.
- L’approche impérative utilise du code Java explicite pour orchestrer le workflow, offrant ainsi un contrôle et une parallélisation précis.
- L’approche déclarative utilise un fichier YAML pour définir le workflow, en spécifiant les étapes, les entrées, les sorties et l’ordre d’exécution.
- Le workflow comprend les étapes permettant de générer une histoire avec Gemini 2, de créer une invite d’image, de générer des images avec Imagen 3 et d’enregistrer le résultat dans Cloud Firestore (base de donnée NoSQL).
- Les principaux avantages de l’approche impérative sont un contrôle précis, une parallélisation explicite et des outils de programmation familiers.
- Les principaux avantages de l’approche déclarative sont des définitions de workflow peut-être plus faciles à comprendre (même si c’est un YAML, berk !) la visualisation, l’évolutivité et une maintenance simplifiée (on peut juste changer le YAML dans la console, comme au bon vieux temps du PHP en prod).
- Les inconvénients de l’approche impérative incluent le besoin de connaissances en programmation, les défis potentiels en matière de maintenance et la gestion des conteneurs.
- Les inconvénients de l’approche déclarative incluent une création YAML pénible, un contrôle de parallélisation limité, l’absence d’émulateur local et un débogage moins intuitif.
- Le choix entre les approches dépend des exigences du projet, la déclarative étant adaptée aux workflows plus simples.
- L’article conclut que la planification déclarative peut aider les agents IA à rester concentrés et prévisibles.
Outillage
Vulnérabilité des proxy Maven https://github.blog/security/vulnerability-research/attacks-on-maven-proxy-repositories/
- Quel que soit le langage, la techno, il est hautement conseillé de mettre en place des gestionnaires de repositories en tant que proxy pour mieux contrôler les dépendances qui contribuent à la création de vos produits.
- Michael Stepankin de l’équipe GitHub Security Lab a cherché à savoir si ces derniers ne sont pas aussi sources de vulnérabilité en étudiant quelques CVEs sur des produits comme JFrog Artifactory, Sonatype Nexus et Reposilite.
- Certaines failles viennent de la UI des produits qui permettent d’afficher les artifacts (ex : mettez un JS dans un fichier POM) et même de naviguer dedans (ex : voir le contenu d’un jar / zip et on exploite l’API pour lire, voir modifier des fichiers du serveur en dehors des archives).
- Les artifacts peuvent aussi être compromis en jouant sur les paramètres propriétaires des URLs ou en jouant sur le nommage avec les encodings.
- Bref, rien n’est simple, tout système rajoute de la complexité et il est important de les tenir à mettre à jour. Il faut surveiller activement sa chaine de distribution via différents moyens et ne pas tout miser sur le repository manager.
- L’auteur a fait une présentation sur le sujet : https://www.youtube.com/watch?v=0Z_QXtk0Z54.
Apache Maven 4… Bientôt, c’est promis… qu’est-ce qu’il y aura dedans ? https://gnodet.github.io/maven4-presentation/
- Et aussi https://github.com/Bukama/MavenStuff/blob/main/Maven4/whatsnewinmaven4.md
- Apache Maven 4
- Doucement, mais surement… c’est le principe d’un projet
- Maven 4.0.0-rc-2 est dispo (Dec 2024).
- Maven a plus de 20 ans et est largement utilisé dans l’écosystème Java.
- La compatibilité ascendante a toujours été une priorité, mais elle a limité la flexibilité.
- Maven 4 introduit des changements significatifs, notamment un nouveau schéma de construction et des améliorations du code.
- Changements du POM
- Séparation du Build-POM et du Consumer-POM :
- Build-POM : Contient des informations propres à la construction (ex. plugins, configurations).
- Consumer-POM : Contient uniquement les informations nécessaires aux consommateurs d’artefacts (ex. dépendances).
- Nouveau Modèle Version 4.1.0 :
- Utilisé uniquement pour le Build-POM, alors que le Consumer-POM reste en 4.0.0 pour la compatibilité.
- Introduit de nouveaux éléments et en marque certains comme obsolètes.
- Modules renommés en sous-projets :
- “Modules” devient “Sous-projets” pour éviter la confusion avec les Modules Java.
- L’élément
<subprojects>
remplace<modules>
(qui reste pris en charge).
- Nouveau type de packaging : “bom” (Bill of Materials) :
- Différencie les POMs parents et les BOMs de gestion des dépendances.
- Prend en charge les exclusions et les imports basés sur les classifiers.
- Déclaration explicite du répertoire racine :
<project root="true">
permet de définir explicitement le répertoire racine du projet.- Élimine toute ambiguïté sur la localisation des racines de projet.
- Nouvelles variables de répertoire :
${project.rootDirectory}
,${session.topDirectory}
et${session.rootDirectory}
pour une meilleure gestion des chemins.- Remplace les anciennes solutions non officielles et variables internes obsolètes.
- Prise en charge de syntaxes alternatives pour le POM
- Introduction de ModelParser SPI permettant des syntaxes alternatives pour le POM.
- Apache Maven Hocon Extension est un exemple précoce de cette fonctionnalité.
- Séparation du Build-POM et du Consumer-POM :
- Améliorations pour les sous-projets
- Versioning automatique des parents
- Il n’est plus nécessaire de définir la version des parents dans chaque sous-projet.
- Fonctionne avec le modèle de version 4.1.0 et s’étend aux dépendances internes au projet.
- Support complet des variables compatibles CI
- Le Flatten Maven Plugin n’est plus requis.
- Prend en charge les variables comme
${revision}
pour le versioning. - Peut être défini via
maven.config
ou la ligne de commande (mvn verify -Drevision=4.0.1
).
- Améliorations et corrections du Reactor
- Correction de bug : Gestion améliorée de
--also-make
lors de la reprise des builds. - Nouvelle option
--resume
(-r
) pour redémarrer à partir du dernier sous-projet en échec. - Les sous-projets déjà construits avec succès sont ignorés lors de la reprise.
- Constructions sensibles aux sous-dossiers : Possibilité d’exécuter des outils sur des sous-projets sélectionnés uniquement.
- Recommandation : Utiliser
mvn verify
plutôt quemvn clean install
.
- Correction de bug : Gestion améliorée de
- Autres Améliorations
- Timestamps cohérents pour tous les sous-projets dans les archives packagées.
- Déploiement amélioré : Le déploiement ne se produit que si tous les sous-projets sont construits avec succès.
- Versioning automatique des parents
- Changements de workflow, cycle de vie et exécution
- Java 17 requis pour exécuter Maven
- Java 17 est le JDK minimum requis pour exécuter Maven 4.
- Les anciennes versions de Java peuvent toujours être ciblées pour la compilation via Maven Toolchains.
- Java 17 a été préféré à Java 21 en raison d’un support à long terme plus étendu.
- Mise à jour des plugins et maintenance des applications
- Suppression des fonctionnalités obsolètes (ex. Plexus Containers, expressions
${pom.}
). - Mise à jour du Super POM, modifiant les versions par défaut des plugins.
- Les builds peuvent se comporter différemment ; définissez des versions fixes des plugins pour éviter les changements inattendus.
- Maven 4 affiche un avertissement si des versions par défaut sont utilisées.
- Suppression des fonctionnalités obsolètes (ex. Plexus Containers, expressions
- Nouveau paramètre “Fail on Severity”
- Le build peut échouer si des messages de log atteignent un niveau de gravité spécifique (ex.
WARN
). - Utilisable via
--fail-on-severity WARN
ou-fos WARN
.
- Le build peut échouer si des messages de log atteignent un niveau de gravité spécifique (ex.
- Maven Shell (
mvnsh
)- Chaque exécution de
mvn
nécessitait auparavant un redémarrage complet de Java/Maven. - Maven 4 introduit Maven Shell (
mvnsh
), qui maintient un processus Maven résident unique ouvert pour plusieurs commandes. - Améliore la performance et réduit les temps de build.
- Alternative : Utilisez Maven Daemon (
mvnd
), qui gère un pool de processus Maven résidents.
- Chaque exécution de
- Java 17 requis pour exécuter Maven
Architecture
Un article sur les feature flags avec Unleash https://feeds.feedblitz.com/~/911939960/0/baeldung~Implement-Feature-Flags-in-Java-With-Unleash
- Pour A/B testing et des cycles de développement plus rapides pour « tester en prod ».
- Montre comment tourner sous docker unleash.
- Et ajouter la librairie a du code java pour tester un feature flag.
Sécurité
Keycloak 26.1 https://www.keycloak.org/2025/01/keycloak-2610-released.html
- Détection des nœuds via la base de données au lieu d’échanges réseau
- Virtual threads pour infinispan et jgroups.
- OpenTelemetry tracing supporté.
- Et plein de fonctionnalités de sécurité.
Loi, société et organisation
Les grands morceaux du coût et des revenus d’une conférence. Ici http://bdx.io|bdx.io https://bsky.app/profile/ameliebenoit33.bsky.social/post/3lgzslhedzk2a
- 44% le billet.
- 52% les sponsors.
- 38% la location du lieu.
- 29% le traiteur et le café.
- 12% standiste.
- 5% frais speaker (donc pas tous).
Ask Me Anything
Julien de Provin : J’aime beaucoup le mode “continuous testing” de Quarkus, et je me demandais s’il existait une alternative en dehors de Quarkus, ou à défaut, des ressources sur son fonctionnement ? J’aimerais beaucoup avoir un outil agnostique utilisable sur les projets non-Quarkus sur lesquels j’interviens, quitte à y mettre un peu d’huile de coude (ou de phalange pour le coup).
Conférences
La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 6-7 février 2025 : Touraine Tech - Tours (France)
- 21 février 2025 : LyonJS 100 - Lyon (France)
- 28 février 2025 : Paris TS La Conf - Paris (France)
- 6 mars 2025 : DevCon #24 : 100% IA - Paris (France)
- 13 mars 2025 : Oracle CloudWorld Tour Paris - Paris (France)
- 14 mars 2025 : Rust In Paris 2025 - Paris (France)
- 19-21 mars 2025 : React Paris - Paris (France)
- 20 mars 2025 : PGDay Paris - Paris (France)
- 20-21 mars 2025 : Agile Niort - Niort (France)
- 25 mars 2025 : ParisTestConf - Paris (France)
- 26-29 mars 2025 : JChateau Unconference 2025 - Cour-Cheverny (France)
- 27-28 mars 2025 : SymfonyLive Paris 2025 - Paris (France)
- 28 mars 2025 : DataDays - Lille (France)
- 28-29 mars 2025 : Agile Games France 2025 - Lille (France)
- 3 avril 2025 : DotJS - Paris (France)
- 3 avril 2025 : SoCraTes Rennes 2025 - Rennes (France)
- 4 avril 2025 : Flutter Connection 2025 - Paris (France)
- 4 avril 2025 : aMP Orléans 04-04-2025 - Orléans (France)
- 10-11 avril 2025 : Android Makers - Montrouge (France)
- 10-12 avril 2025 : Devoxx Greece - Athens (Greece)
- 16-18 avril 2025 : Devoxx France - Paris (France)
- 23-25 avril 2025 : MODERN ENDPOINT MANAGEMENT EMEA SUMMIT 2025 - Paris (France)
- 24 avril 2025 : IA Data Day 2025 - Strasbourg (France)
- 29-30 avril 2025 : MixIT - Lyon (France)
- 7-9 mai 2025 : Devoxx UK - London (UK)
- 15 mai 2025 : Cloud Toulouse - Toulouse (France)
- 16 mai 2025 : AFUP Day 2025 Lille - Lille (France)
- 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France)
- 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France)
- 24 mai 2025 : Polycloud - Montpellier (France)
- 24 mai 2025 : NG Baguette Conf 2025 - Nantes (France)
- 5-6 juin 2025 : AlpesCraft - Grenoble (France)
- 5-6 juin 2025 : Devquest 2025 - Niort (France)
- 10-11 juin 2025 : Modern Workplace Conference Paris 2025 - Paris (France)
- 11-13 juin 2025 : Devoxx Poland - Krakow (Poland)
- 12-13 juin 2025 : Agile Tour Toulouse - Toulouse (France)
- 12-13 juin 2025 : DevLille - Lille (France)
- 13 juin 2025 : Tech F’Est 2025 - Nancy (France)
- 17 juin 2025 : Mobilis In Mobile - Nantes (France)
- 24 juin 2025 : WAX 2025 - Aix-en-Provence (France)
- 25-26 juin 2025 : Agi’Lille 2025 - Lille (France)
- 25-27 juin 2025 : BreizhCamp 2025 - Rennes (France)
- 26-27 juin 2025 : Sunny Tech - Montpellier (France)
- 1-4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France)
- 7-9 juillet 2025 : Riviera DEV 2025 - Sophia Antipolis (France)
- 18-19 septembre 2025 : API Platform Conference - Lille (France) & Online
- 2-3 octobre 2025 : Volcamp - Clermont-Ferrand (France)
- 6-10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium)
- 9-10 octobre 2025 : Forum PHP 2025 - Marne-la-Vallée (France)
- 16-17 octobre 2025 : DevFest Nantes - Nantes (France)
- 4-7 novembre 2025 : NewCrafts 2025 - Paris (France)
- 6 novembre 2025 : dotAI 2025 - Paris (France)
- 7 novembre 2025 : BDX I/O - Bordeaux (France)
- 12-14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco)
- 28-31 janvier 2026 : SnowCamp 2026 - Grenoble (France)
- 23-25 avril 2026 : Devoxx Greece - Athens (Greece)
- 17 juin 2026 : Devoxx Poland - Krakow (Poland)
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 321 - Les évènements écran large
Posté le 20/01/2025Arnaud et Emmanuel discutent des versions Java, font un résumé de l’écosystème WebAssembly, discutent du nouveau Model Context Protocol, parlent d’observabilité avec notamment les Wide Events et de pleins d’autres choses encore.
Enregistré le 17 janvier 2025
Téléchargement de l’épisode LesCastCodeurs-Episode-321.mp3 ou en vidéo sur YouTube.
News
Langages
Java trend par InfoQ https://www.infoq.com/articles/java-trends-report-2024/
- Java 17 finalement dépasse Java 11/8 ~30/33%.
- Java 21 est à 1.4%.
- Commonhaus apparait.
- GraalVM en early majority.
- Spring AI et Langchain4j en innovateurs.
- Spring Boot 3 voit son adoption augmenter.
Un bon résumé sur WebAssembly, les différentes specs comme WASM GC, WASI, WIT… https://2ality.com/2025/01/webassembly-language-ecosystem.html
- WebAssembly (Wasm) est un format d’instructions binaires pour une machine virtuelle basée sur une pile, permettant la portabilité et l’efficacité du code.
- Wasm a évolué à partir d’asm.js, un sous-ensemble de JavaScript qui pouvait fonctionner à des vitesses proches de celles natives.
- WASI (WebAssembly System Interface) permet à Wasm de fonctionner en dehors des navigateurs Web, fournissant des API pour le système de fichiers, CLI, HTTP, etc.
- Le modèle de composant WebAssembly permet l’interopérabilité entre les langages Wasm à l’aide de WIT (Wasm Interface Type) et d’ABI canonique.
- Les composants Wasm se composent d’un module central et d’interfaces WIT pour les importations/exportations, facilitant l’interaction indépendante du langage.
- Les interfaces WIT décrivent les types et les fonctions, tandis que les mondes WIT définissent les capacités et les besoins d’un composant (importations/exportations).
- La gestion des packages Wasm est assurée par Warg, un protocole pour les registres de packages Wasm.
- Une enquête a montré que Rust est le langage Wasm le plus utilisé, suivi de Kotlin et de C++ ; de nombreux autres langages sont également en train d’émerger.
Un algorithme de comptage à taille limitée ne mémoire a été inventé https://www.quantamagazine.org/computer-scientists-invent-an-efficient-new-way-to-count-20240516/
- Élimine un mot de manière aléatoire, mais avec une probabilité connue quand il y a besoin de récupérer de l’espace.
- Cela se fait par round et on augmente la probabilité de suppression à chaque round.
- Donc au final, ne nombre de mots / la probabilité d’avoir été éliminé donne une mesure approximative, mais plutôt précise.
Librairies
Les contributions Spring passent du CLA au DCO https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring
- D’abord manuel, mais même automatisé le CLA est un document legal complexe
- Qui peut limiter les contributions.
- Le DCO vient le Linux (je crois) et est super simple.
- Accord que la licence de la contrib est celle du projet.
- Accord que le code est public et distribué en perpétuité.
- S’appuie sur les
-s
de git pour le sign off.
Écrire un serveur MCP en Quarkus https://quarkus.io/blog/mcp-server/
- MCP est un protocol proposé par Anthropic pour intégrer des outils orchestrables par les LLMs.
- MCP est frais et va plus loin que les outils.
- offre la notion de resource (file), de functions (tools), et de prompts pre built pour appeler l’outil de la meilleure façon.
- On en reparlera après avec les agents dans un article suivant.
- Il y a une extension Quarkus pour simplifier le codage.
- Un article plus détaillé sur l’intégration Quarkus : https://quarkus.io/blog/quarkus-langchain4j-mcp/.
GreenMail un mini mail server en java https://greenmail-mail-test.github.io/greenmail/#features-api
- Utile pour les tests d’intégration.
- Supporte SMTP, POP3 et IMAP avec TLS/SSL.
- Propose des integrations JUnit, Spring.
- Une mini UI et des APIs REST permettent d’interagir avec le serveur si par exemple vous le partagé dans un container (il n’y a pas d’intégration TestContainer existante mais elle n’est pas compliquée à écrire).
Infrastructure
Docker Bake in a visual way https://dev.to/aurelievache/understanding-docker-part-47-docker-bake-4p05
- Docker back propose d’utiliser des fichiers de configuration (format HCL) pour lancer ses builds d’images et docker compose.
- En gros voyez ce DSL comme un Makefile très simplifié pour les commandes docker qui souvent peuvent avoir un peu trop de paramètres.
Datadog continue de s’étendre avec l’acquisition de Quickwit https://www.datadoghq.com/blog/datadog-acquires-quickwit/
- Solution open-source de recherche des logs qui peut être déployée on-premise et dans le cloud https://quickwit.io/.
- Les logs ne quittent plus votre environment ce qui permet de répondre à des besoins de sécurité, privacy et réglementaire.
Web
33 concepts en javascript https://github.com/leonardomso/33-js-concepts
- Call Stack, Primitive Types, Value Types and Reference Types, Implicit, Explicit, Nominal, Structuring and Duck Typing, == vs === vs typeof, Function Scope, Block Scope and Lexical Scope, Expression vs Statement, IIFE, Modules and Namespaces, Message Queue and Event Loop, setTimeout, setInterval and requestAnimationFrame, JavaScript Engines, Bitwise Operators, Type Arrays and Array Buffers, DOM and Layout Trees, Factories and Classes, this, call, apply and bind, new, Constructor, instanceof and Instances, Prototype Inheritance and Prototype Chain, Object.create and Object.assign, map, reduce, filter, Pure Functions, Side Effects, State Mutation and Event Propagation, Closures, High Order Functions, Recursion, Collections and Generators, Promises, async/await, Data Structures, Expensive Operation and Big O Notation, Algorithms, Inheritance, Polymorphism and Code Reuse, Design Patterns, Partial Applications, Currying, Compose and Pipe, Clean Code
Data et Intelligence Artificielle
Phi 4 et les small language models https://techcommunity.microsoft.com/blog/aiplatformblog/introducing-phi-4-microsoft%e2%80%99s-newest-small-language-model-specializing-in-comple/4357090
- Phi 4 un SML pour les usages locaux notamment.
- 14B de paramètres.
- Belle progression de ~20 points sur un score agrégé et qui le rapproche de Llama 3.3 et ses 70B de paramètres.
- Bon en math (data set synthétique).
Comment utiliser Gemini 2.0 Flash Thinking (le modèle de Google qui fait du raisonnement à la sauce chain of thought) en Java avec LangChain4j https://glaforge.dev/posts/2024/12/20/lets-think-with-gemini-2-thinking-mode-and-langchain4j/
- Google a sorti Gemini 2.0 Flash, un petit modèle de la famille Gemini.
- Le “thinking mode” simule les cheminements de pensée (Chain of thoughts etc).
- Décompose beaucoup plus les tâches complexes en plusieurs taches.
- Un exemple est montré sur le modèle se battant avec le problème.
Les recommendations d’Anthropic sur les systèmes d’agents https://www.anthropic.com/research/building-effective-agents
- Défini les agents et les workflow.
- Ne recommence pas les frameworks (LangChain, Amazon Bedrock AI Agent etc) le fameux débat sur l’abstraction.
- Beaucoup de patterns implementable avec quelques lignes sans frameworks.
- Plusieurs blocks de complexité croissante.
- Augmented LLM (RAG, memory etc): Anthropic dit que les LLMs savent coordonner cela via MCP apr exemple.
- Second : workflow prompt chaining : avec des gates et appelle les LLMs savent coordonner successivement ; favorise la precision vs la latence vu que les taches sont décomposées en plusieurs calls LLMs.
- Workflow routing : classifie une entree et choisie la route la meilleure : séparation de responsabilité.
- Workflow : parallélisation : LLM travaillent en parallèle sur une tache et un agrégateur fait la synthèse. parallélisation avec saucissonnage de la tâche ou voter sur la meilleure réponse.
- Workflow : orchestrator workers : quand les tâches ne sont pas bounded ou connues (genre le nombre de fichiers de code à changer) ou quand les sous tâches ne sont pas prédéfinies.
- Workflow : evaluator optimizer : un LLM propose une réponse, un LLM l’évalue et demande une meilleure réponse au besoin.
- Agents : commande ou interaction avec l’humain puis autonome meme s’il peut revenir demander des precisions à l’humain. Agents sont souvent des LLM utilisât des outils pour modifier l’environnement et réagir à feedback en boucle.
- Ideal pour les problèmes ouverts et où le nombre d’étapes n’est pas connu.
- Recommandé d’y aller avec une complexité progressive.
L’IA c’est pas donné https://techcrunch.com/2025/01/05/openai-is-losing-money-on-its-pricey-chatgpt-pro-plan-ceo-sam-altman-says/
- OpenAI annonce que même avec des licenses à 200$/mois ils ne couvrent pas leurs couts associés…
- À quand l’explosion de la bulle IA ?
Outillage
Ghostty, un nouveau terminal pour Linux et macOS https://ghostty.org/
- Initié par Mitchell Hashimoto (Hashicorp).
- Ghostty est un émulateur de terminal natif pour macOS et Linux.
- Il est écrit en Swift et utilise AppKit et SwiftUI sur macOS, et en Zig et utilise l’API GTK4 C sur Linux.
- Il utilise des composants d’interface utilisateur native et des raccourcis clavier et souris standard.
- Il prend en charge Quick Look, Force Touch et d’autres fonctionnalités spécifiques à macOS.
- Ghostty essaie de fournir un ensemble riche de fonctionnalités utiles pour un usage quotidien.
Comment Pinterest utilise Honeycomb pour améliorer sa CI https://medium.com/pinterest-engineering/how-pinterest-leverages-honeycomb-to-enhance-ci-observability-and-improve-ci-build-stability-15eede563d75
- Pinterest utilise Honeycomb pour améliorer l’observabilité de l’intégration continue (CI).
- Honeycomb permet à Pinterest de visualiser les métriques de build, d’analyser les tendances et de prendre des décisions basées sur les données.
- Honeycomb aide également Pinterest à identifier les causes potentielles des échecs de build et à rationaliser les tâches d’astreinte.
- Honeycomb peut également être utilisé pour suivre les métriques de build locales iOS aux côtés des détails de la machine, ce qui aide Pinterest à prioriser les mises à niveau des ordinateurs portables pour les développeurs.
Méthodologies
Suite à notre épisode sur les différents types de documentation, cet article parle des bonnes pratiques à suivre pour les tutoriels https://refactoringenglish.com/chapters/rules-for-software-tutorials/
- Écrivez des tutoriels pour les débutants, en évitant le jargon et la terminologie complexe.
- Promettez un résultat clair dans le titre et expliquez l’objectif dans l’introduction.
- Montrez le résultat final tôt pour réduire les ambiguïtés.
- Rendez les extraits de code copiables et collables, en évitant les invites de shell et les commandes interactives.
- Utilisez les versions longues des indicateurs de ligne de commande pour plus de clarté.
- Séparez les valeurs définies par l’utilisateur de la logique réutilisable à l’aide de variables d’environnement ou de constantes nommées.
- Épargnez au lecteur les tâches inutiles en utilisant des scripts.
- Laissez les ordinateurs évaluer la logique conditionnelle, pas le lecteur.
- Maintenez le code en état de fonctionnement tout au long du tutoriel.
- Enseignez une chose par tutoriel et minimisez les dépendances.
Les Wide events, un “nouveau” concept en observabilité https://jeremymorrell.dev/blog/a-practitioners-guide-to-wide-events/
- un autre article https://isburmistrov.substack.com/p/all-you-need-is-wide-events-not-metrics.
- L’idée est de logger des événements (genre JSON log) avec le plus d’infos possible.
- De la machine, la ram, la version de l’appli, l’utilisateur, le numéro de build qui a produit l’appli, la dernière PR, etc.
- Ça permet de filtrer et grouper by et de voir des correlations visuelles tres rapidement et de zoomer.
- Tiens, les ventes baisses de 20%.
- Tiens, en fait ça vient de l’appli Android.
- Tiens, pas corrélé à la version de l’appli.
- Mais la version de l’os si !
- Le deuxième article est facile à lire.
- Le premier est un guide d’usage exhaustif du concept.
Entre argumenter et se donner 5 minutes https://signalvnoise.com/posts/3124-give-it-five-minutes
- On veut souvent argumenter aka poser des questions en ayant déjà la réponse en soi émotionnellement.
- Mais ça amène beaucoup de verbiage.
- Donner cinq minutes à l’idée le temps d’y penser avant d’argumenter.
Loi, société et organisation
Des juges fédéraux arrêtent le principe de la neutralité du net https://www.lemonde.fr/pixels/article/2025/01/03/les-etats-unis-reviennent-en-arriere-sur-le-principe-de-la-neutralite-du-net_6479575_4408996.html?lmd_medium=al&lmd_campaign=envoye-par-appli&lmd_creation=ios&lmd_source=default
- La neutralité du net, c’est l’interdiction de traiter un paquet différemment en fonction de son émetteur.
- Par exemple un paquet Netflix qui serait ralenti vs un paquet Amazon.
- Donald Trump est contre cette neutralité.
- À voir les impacts concrets dans un marché moins régulé.
Rubrique débutant
Un petit article sur les float vs les doubles en Java https://www.baeldung.com/java-float-vs-double
- 4 vs 8 bytes.
- Précision max de 7 vs 15.
- Échelle 10^38 vs 10^308 (ordre de grandeur).
- Perf à peu près similaire.
- Sauf peut-être pour des modèles d’IA qui vont privilégier une taille plus petite parfois.
- Attention overflow et les accumulations d’erreurs d’approximation :
BigDecimal
.
Conférences
La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 20 janvier 2025 : Elastic{ON} - Paris (France)
- 22-25 janvier 2025 : SnowCamp 2025 - Grenoble (France)
- 24-25 janvier 2025 : Agile Games Île-de-France 2025 - Paris (France)
- 6-7 février 2025 : Touraine Tech - Tours (France)
- 21 février 2025 : LyonJS 100 - Lyon (France)
- 28 février 2025 : Paris TS La Conf - Paris (France)
- 6 mars 2025 : DevCon #24 : 100% IA - Paris (France)
- 13 mars 2025 : Oracle CloudWorld Tour Paris - Paris (France)
- 14 mars 2025 : Rust In Paris 2025 - Paris (France)
- 19-21 mars 2025 : React Paris - Paris (France)
- 20 mars 2025 : PGDay Paris - Paris (France)
- 20-21 mars 2025 : Agile Niort - Niort (France)
- 25 mars 2025 : ParisTestConf - Paris (France)
- 26-29 mars 2025 : JChateau Unconference 2025 - Cour-Cheverny (France)
- 27-28 mars 2025 : SymfonyLive Paris 2025 - Paris (France)
- 28 mars 2025 : DataDays - Lille (France)
- 28-29 mars 2025 : Agile Games France 2025 - Lille (France)
- 3 avril 2025 : DotJS - Paris (France)
- 3 avril 2025 : SoCraTes Rennes 2025 - Rennes (France)
- 4 avril 2025 : Flutter Connection 2025 - Paris (France)
- 10-11 avril 2025 : Android Makers - Montrouge (France)
- 10-12 avril 2025 : Devoxx Greece - Athens (Greece)
- 16-18 avril 2025 : Devoxx France - Paris (France)
- 23-25 avril 2025 : MODERN ENDPOINT MANAGEMENT EMEA SUMMIT 2025 - Paris (France)
- 24 avril 2025 : IA Data Day 2025 - Strasbourg (France)
- 29-30 avril 2025 : MixIT - Lyon (France)
- 7-9 mai 2025 : Devoxx UK - London (UK)
- 15 mai 2025 : Cloud Toulouse - Toulouse (France)
- 16 mai 2025 : AFUP Day 2025 Lille - Lille (France)
- 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France)
- 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France)
- 24 mai 2025 : Polycloud - Montpellier (France)
- 5-6 juin 2025 : AlpesCraft - Grenoble (France)
- 5-6 juin 2025 : Devquest 2025 - Niort (France)
- 11-13 juin 2025 : Devoxx Poland - Krakow (Poland)
- 12-13 juin 2025 : Agile Tour Toulouse - Toulouse (France)
- 12-13 juin 2025 : DevLille - Lille (France)
- 17 juin 2025 : Mobilis In Mobile - Nantes (France)
- 24 juin 2025 : WAX 2025 - Aix-en-Provence (France)
- 25-27 juin 2025 : BreizhCamp 2025 - Rennes (France)
- 26-27 juin 2025 : Sunny Tech - Montpellier (France)
- 1-4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France)
- 7-9 juillet 2025 : Riviera DEV 2025 - Sophia Antipolis (France)
- 18-19 septembre 2025 : API Platform Conference - Lille (France) & Online
- 2-3 octobre 2025 : Volcamp - Clermont-Ferrand (France)
- 6-10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium)
- 9-10 octobre 2025 : Forum PHP 2025 - Marne-la-Vallée (France)
- 16-17 octobre 2025 : DevFest Nantes - Nantes (France)
- 4-7 novembre 2025 : NewCrafts 2025 - Paris (France)
- 6 novembre 2025 : dotAI 2025 - Paris (France)
- 7 novembre 2025 : BDX I/O - Bordeaux (France)
- 12-14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco)
- 23-25 avril 2026 : Devoxx Greece - Athens (Greece)
- 17 juin 2026 : Devoxx Poland - Krakow (Poland)
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 320 - Diataxis, la méthode de documentation
Posté le 21/12/2024Emmanuel, Guillaume et Arnaud se rejoignent pour discuter de Diátaxis une approche pour structurer sa documentation. Ils offrent leur perspective sur leur usage et leur compréhension. Le sujet s’ouvre ensuite pour discuter des plateformes de documentation et comment l’IA impacte la documentation. Cet épisode est aussi sorti en vidéo, n’hésitez pas nous dire ce que vous en pensez des retours et souscrivez au channel YouTube 🤗.
Enregistré le 19 décembre 2024
Téléchargement de l’épisode LesCastCodeurs-Episode-320.mp3 ou en vidéo sur YouTube.
Interview
Le retour d’expérience d’Emmanuel sur Diataxis
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 319 - le ramasse-miettes-charognes
Posté le 16/12/2024Dans cet épisode en audio et en vidéo (youtube.com/lescastcodeurs), Guillaume et Emmanuel discutent des 15 ans de Go, d’une nouvelle approche de garbage collecting, de LLMs dans les applications Java, d’observabilité, d’une attaque de chaine d’approvisionnement via javac et d’autres choses.
Enregistré le 13 décembre 2024
Téléchargement de l’épisode LesCastCodeurs-Episode-319.mp3
News
Langages
Go fête son 15ème anniversaire ! https://go.dev/blog/15years
- Discute les 15 ans
- La correction de gotchas dans les
for
loops (notamment les variables étaient loop scoped). - Le fait que la compilation échoue si on attend une version de go supérieure seulement depuis go 1.21, en parallèle de la gestion de la chaine d’outil (seulement en 2023 !).
- Opt-in telemetry aussi recent.
Construire OpenJDK à partir des sources sur macOS : https://www.morling.dev/blog/building-openjdk-from-source-on-macos/
- de manière surprenante, ce n’est pas tres compliqué.
Papier sur l’approche Mark-scavenge pour un ramasse-miette : https://inside.java/2024/11/22/mark-scavenge-gc/
- Papier de recherche.
- Utiliser l’accessibilité pour preuve de vie n’est pas idéal : un objet peut être atteignable mais ne sera jamais accédé par le programme.
- Les régions les plus pauvres en objets vivants voient leurs objets bouger dans une autre region et la region libérée, c’est le comportement classique des GC.
- Deux méthodes : mark evaluate qui le fait en deux temps et la liveness peut évoluer ; et scavenge qui bouge l’objet vivant dès sa découverte.
- Ils ont fait tourner via ZGC des expériences pour voir les objets considérés vivants et bougés inutilement.
- Les résultats montrent un gros taux d’objets bougés de manière inutile.
- Proposent un algo different.
- Ils marquent les objets vivants, mais ne les bougent pas avant le prochain GC pour leur donner une chance de devenir unreachable.
- Élimine beaucoup de déplacements inutiles vu que les objets deviennent non accessible en un cycle de GC.
- Jusqu’à 91 % de reduction ! Particulièrement notable dans les machines chargées en CPU.
Les tokens d’accès court ou longs : https://grayduck.mn/2023/04/17/refresh-vs-long-lived-access-tokens/
- Pourquoi des long access tokens (genre refresh token) sont utilisés pour des short lived dans OAuth 2.0.
- Refresh token simplifient la revocation : vu que seul le auth serveur a à verifier la révocation et les clients vérifient l’expiration et la validité de la signature.
- Refresh token ne sont envoyés qu’entre endpoints alors que les access tokens se baladent pas mal : les frontières de confiance ne sont pas traversées.
- Refresh token rarement utilisé, et donc peut être protegé dans une enclave.
- Les changements de grants sont plus simple tout en restant distribuables.
- Histoire des access refresh token et access token permet de mieux tracer les abus / attaques.
- Les inconvénients : c’est plus compliqué en flow, le auth serveur est un SPOF mais mitigeable.
Java Advent est de retour : https://www.javaadvent.com/calendar
- Backstage.
- Java integrity par défaut (et ses conséquences sur l’écosystème).
- Timefold (solver).
- Les extensions JUnit 5.
- OpenTelemetry via Java Agent vs Micrometer.
- Analyse statique de code.
- CQRS et les fonctionnalités modernes de Java.
- Java simple (sans compilation, sans objet).
- Fullstack dev with Quarkus as backend.
José Paumard introduit et explique les Gatherers dans Java 24 dans cette vidéo : https://inside.java/2024/11/26/jepcafe23/
Librairies
Micronaut 4.7, avec l’intégration de LangChain4j : https://micronaut.io/2024/11/14/micronaut-framework-4-7-0-released/
Combiner le framework de test Spock et Cucumber : https://www.sfeir.dev/back/spock-framework-revolutionnez-vos-tests-unitaires-avec-la-puissance-du-bdd-et-de-cucumber/
- Les experts peuvent écrire leurs tests au format Gherkin (de Cucumber) et les développeurs peuvent implémenter les assertions correspondantes avec l’intégration dans Spock, pour des tests très lisibles.
Spring 6.2 : https://spring.io/blog/2024/11/14/spring-framework-6-2-0-available-now
- Beans
@Fallback
. - Améliorations sur SpELet sur le support de tests.
- Support de l’échappement des property placeholders.
- Une nouvelle initialisation des beans en tâche de fond.
- Et pleins d’autres choses encore.
Comment créer une application Java LLM tournant 100% en Java avec Jlama : https://quarkus.io/blog/quarkus-jlama/
- Blog de Mario Fusco, Mr API et Java et Drools.
- Utilise Jlama + Quarkus + LangChain.
- Explique les avantages de l’approche pure Java comme le cycle de vie unique, tester les modèles rapidement, sécurité (tout est in process), monolithe ahahah, observabilité simplifiée, distribution simplifiée (genre appli embarquée)…
Vert.x 5 en seconde incubation : https://vertx.io/blog/eclipse-vert-x-5-candidate-2-released/
- Support des Java modules (mais beaucoup des modules Vert.x eux-mêmes ne le supportent pas).
- Support io_uring dans Vert.x core.
- Le load balancing côté client.
- Le modèle des callbacks n’est plus supporté, vive les Futur !
- Beaucoup d’améliorations autour de gRPC.
- Et d’autres choses.
Un article sur Spring AI et la multi-modalité audio : https://spring.io/blog/2024/12/05/spring-ai-audio-modality
- Permet de voir les evolutions des APIs de Spring AI.
- S’appuie sur les derniers modèles d’Open AI.
- Des examples, comme un chatbot voix et donc comment enregistrer la voix et la passer à OpenAI.
Comment activer le support experimental HTTP/3 dans Spring Boot : https://spring.io/blog/2024/11/26/http3-in-reactor-2024
- C’est Netty qui fait le boulot.
- Puis Spring Netty.
- L’article décrit les étapes pour l’utiliser dans vos applis Spring Boot ou Spring Cloud Gateway.
- L’article explique aussi le côté client (app cliente) ce qui est sympa.
Infrastructure
Un survol des offres d’observabilité : http://blog.ippon.fr/2024/11/18/observabilite-informatique-comprendre-les-bases-2eme-partie/
- Un survol des principales offres d’observabilité.
- Open source ou SaaS.
- Et certains outsiders.
- Pas mal pour commencer à défricher ce qui vous conviendrait.
- Blog de ippon.
Web
Sortie de Angular 19 : https://blog.ninja-squad.com/2024/11/19/what-is-new-angular-19.0/
- Stabilité des Signal APIs.
- Migration automatique vers Signal APIs.
- Composants standalone par défaut.
- Nouvelles APIs
linkedSignal
etresource
. - De grosses améliorations de SSR et HMR.
Angular 19 : https://www.sfeir.dev/front/angular-19-tout-ce-quil-faut-savoir-sur-les-innovations-majeures-du-framework/
- Composant standalone par default (limiter les problèmes de dépendances), peut le mettre en strict pour le l’imposer (ou planter).
- Signalement des imports inutilisés.
@let
pour les variables locales dans les templates.linkedSignal
(experimental) pour lier des signaux entre eux (cascade de changement suite à un événement).- Hydratation incrémentale (contenu progressivement interactif avec le chargement sur les parties de la page visibles ou nécessaires).
- Et event replay, routing et modes de rendu hybride, Hot module replacement…
The State of Frontend — dernière compilation des préférences des développeurs en termes de front : https://tsh.io/state-of-frontend/
- React en tête, suivi de Vue et Svelte. Angular seulement 4ème.
- Côté rendering framework, Next.js a la majorité absolue, ensuite viennent Nuxt et Astro.
- Zod est la solution de validation préférée.
- Pour la gestion de date, date-fns est en tête, suivi par moment.js.
- Côté state management, React Context API en première place, mais les suivants sont tous aussi pour React !
- Grosse utilisation de Lodash pour plein d’utilités.
- Pour fetcher des resources distantes, l’API native Fetch et Axios sont les deux vainqueurs.
- Pour le déploiement, Vercel est premier.
- Côté CI/CD, beaucoup de Github Actions, suivi par Gitlab CI.
- Package management, malgré de bonnes alternatives, NPM se taille toujours la part du lion.
- Écrasante utilisation de Node.js comme runtime JavaScript pour faire du développement front.
- Pour ce qui est du typing, beaucoup utilisent TypeScript, et un peu de JSdoc, et la majorité des répondants pensent que TypeScript a dépassé JavaScript en usage.
- Dans les API natives du navigateur, Fetch, Storage et WebSockets sont les APIs les plus utilisées.
- La popularité des PWA devrait suivre son petit bonhomme de chemin.
- En termes de design system, shadcn/ui en tête, suivi par Material, puis Bootstrap.
- Pour la gestion des styles, un bon mix de plain old CSS, de Tailwind, et de Sass/CSS.
- Jest est premier comme framework de tests.
- Les 3/4 des développeurs front utilisent Visual Studio Code, quant au quart suivant, c’est JetBrains qui raffle les miettes.
- Pour le build, Vite récolte les 4/5 des voix.
- ESLint et Prettier sont les deux favoris pour vérifier le code.
Parfois, on aimerait pouvoir tester une librairie ou un framework JavaScript, sans pour autant devoir mettre en place tout un projet, avec outil de build et autre. Julia Evans explore les différents cas de figure, suivant la façon dont ces librairies sont bundlées. https://jvns.ca/blog/2024/11/18/how-to-import-a-javascript-library/
- Certaines librairies permettent de ne faire qu’un simple import dans une balise script
- Certaines frameworks sont distribués sous forme d’Universal Module Definition, sous CommonJS, d’ESmodule.
- Franchement, en tant que noob, c’est compliqué quand même !
Data et Intelligence Artificielle
L’impact de l’IA en entreprise et des accès aux documents un peu laxistes : https://archive.ph/uPyhX
- L’indexing choppe tout ce qu’il peut.
- Et l’IA est très puissante pour diriger des requêtes et extraire les données qui auraient dû être plus restreintes.
Différentes manières de faire de l’extraction de données et de forcer la main à un LLM pour qu’il génère du JSON : https://glaforge.dev/posts/2024/11/18/data-extraction-the-many-ways-to-get-llms-to-spit-json-content/
- L’approche “je demande gentiment” au LLM, en faisant du prompt engineering.
- En utilisant du function calling pour les modèles supportant la fonctionnalité, en particulier avant les approches de type “JSON mode” ou “JSON schema”.
- Ou effectivement si le modèle le supporte aussi, toujours avec un peu de prompting, mais en utilisant le “JSON mode” qui force le LLM a généré du JSON valide.
- Encore mieux avec la possibilité de spécifier un schema JSON (type OpenAPI) pour que le JSON en sortie soit “compliant” avec le schéma proposé.
Comment masquer les données confidentielles avec ses échanges avec les LLMs : https://glaforge.dev/posts/2024/11/25/redacting-sensitive-information-when-using-generative-ai-models/
- Utilisation de l’API Data Loss Prevention de Google Cloud qui permet d’identifier puis de censurer / masquer (“redacted” en anglais) des informations personnelles identifiables (“PII”, comme un nom, un compte bancaire, un numéro de passeport, etc).
- Pour des raisons de sécurité, de privacy, pour éviter les brèches de données comme on en entend trop souvent parler dans les nouvelles.
On peut utiliser certains modèles d’embedding pour faire de la recherche de code : https://glaforge.dev/posts/2024/12/02/semantic-code-search-for-programming-idioms-with-langchain4j-and-vertex-ai-embedding-models/
- Guillaume recherche des bouts de code, en entrant une requête en langue naturel.
- Certains embedding models supportent différents types de tâches, comme question/réponse, question en langue naturelle / retour sous forme de code, ou d’autres tâches comme le fact checking…
- Dans cet article, utilisation du modèle de Google Cloud Vertex AI, en Java, avec LangChain4j.
Google sort la version 2 de Gemini Flash : https://blog.google/technology/google-deepmind/google-gemini-ai-update-december-2024/
- La nouvelle version Gemini 2.0 Flash dépasse même Gemini 1.5 Pro dans les benchmarks.
- Tout en étant 2 fois plus rapide que Gemini 1.5 Pro, et bien que le prix ne soit pas encore annoncé, on imagine également plus abordable.
- Google présente Gemini 2 comme le LLM idéal pour les “agents”.
- Gemini propose une vraie multimodalité en sortie (premier LLM sur le marché à le proposer) : Gemini 2 peut entrelacer du texte, des images, de l’audio.
- Gemini 2 supporte plus de 100 langues.
- Huit voix de haute qualité, assez naturelles, pour la partie audio.
- Un nouveau mode speech-to-speech en live, où on peut même interrompre le LLM, c’est d’ailleurs ce qui est utilisé dans Project Astra, l’application mobile montrée à Google I/O qui devient un vrai assistant vocal en live sur votre téléphone.
- Google annonce aussi une nouvelle expérimentation autour des assistants de programmation, avec Project Jules, avec lequel on peut discuter en live aussi, partager son code, comme un vrai pair programmeur.
- Google a présenté Project Mariner qui est un agent qui est sous forme d’extension Chrome, qui va permettre de commander votre navigateur comme votre assistant de recherche personnel, qui va être capable de faire des recherches sur le web, de naviguer dans les sites web, pour trouver les infos que vous recherchez.
- Cet autre article montre différentes vidéos de démos de ces fonctionnalités https://developers.googleblog.com/en/the-next-chapter-of-the-gemini-era-for-developers/.
- Un nouveau projet appelé Deep Research, qui permet de faire des rapports dans Gemini Advanced : on donne un sujet et l’agent va proposer un plan pour un rapport sur ce sujet (qu’on peut valider, retoucher) et ensuite, Deep Research va effectuer des recherches sur le web pour vous, et faire la synthèse de ses recherches dans un rapport final https://blog.google/products/gemini/google-gemini-deep-research/.
- Enfin, Google AI Studio, en plus de vous permettre d’expérimenter avec Gemini 2, vous pourrez aussi utiliser des “starter apps” qui montrent comment faire de la reconnaissance d’objet dans des images, comment faire des recherches avec un agent connecté à Google Maps…
- Google AI Studio permet également de partager votre écran avec lui, en mobile ou en desktop, de façon à l’utiliser comme un assistant qui peut voir ce que vous faites, ce que vous codez et peut répondre à vos questions.
Méthodologies
Un article de GitHub sur l’impact de la surutilisation des CPU sur la perf de l’appli : https://github.blog/engineering/architecture-optimization/breaking-down-cpu-speed-how-utilization-impacts-performance/
- C’est surprenant qu’ils aient des effets dès 30 % de perf.
- C’est dû à la non limit thermique, au boost de fréquence qui en suit.
- Ils ont donc cherché le golden ratio.
- Pour eux autour de 60 %.
- Ils prennent des morceaux de cluster kube pour faire tourner les workloads.
- Et ajoutent des workload CPU artificiels (genre math).
Sécurité
Attaque de la chaîne d’approvisionnement via javac
:
https://xdev.software/en/news/detail/discovering-the-perfect-java-supply-chain-attack-vector-and-how-it-got-fixed
- S’appuie sur l’annotation processeur.
- Des dépendances sont chargées et exécutées au moment du build du projet.
- Et cherche les annotations processor dans le user classpath (via le pattern
ServiceLoader
). - Et donc si la dépendance est attaquée et un annotation processor est ajouté ou modifié, on a un vecteur d’attaque au moment de la compilation du projet ciblé.
- Des qu’on démarre l’IDE en gros.
- Workaround, activer
-proc:none
et activer les annotation processors explicitement dans votre outil de build. - Certaines améliorations dans le JDK : le compilateur note qu’il exécute un annotation processor.
- Dans Java 23+, les annotation processors sont désactivés par défaut.
Conférences
La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 19 décembre 2024 : Normandie.ai 2024 - Rouen (France)
- 20 janvier 2025 : Elastic{ON} - Paris (France)
- 22-25 janvier 2025 : SnowCamp 2025 - Grenoble (France)
- 24-25 janvier 2025 : Agile Games Île-de-France 2025 - Paris (France)
- 30 janvier 2025 : DevOps D-Day #9 - Marseille (France)
- 6-7 février 2025 : Touraine Tech - Tours (France)
- 21 février 2025 : LyonJS 100 - Lyon (France)
- 28 février 2025 : Paris TS La Conf - Paris (France)
- 20 mars 2025 : PGDay Paris - Paris (France)
- 20-21 mars 2025 : Agile Niort - Niort (France)
- 25 mars 2025 : ParisTestConf - Paris (France)
- 26-29 mars 2025 : JChateau Unconference 2025 - Cour-Cheverny (France)
- 28 mars 2025 : DataDays - Lille (France)
- 28-29 mars 2025 : Agile Games France 2025 - Lille (France)
- 3 avril 2025 : DotJS - Paris (France)
- 10-11 avril 2025 : Android Makers - Montrouge (France)
- 10-12 avril 2025 : Devoxx Greece - Athens (Greece)
- 16-18 avril 2025 : Devoxx France - Paris (France)
- 29-30 avril 2025 : MixIT - Lyon (France)
- 7-9 mai 2025 : Devoxx UK - London (UK)
- 16 mai 2025 : AFUP Day 2025 Lille - Lille (France)
- 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France)
- 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France)
- 24 mai 2025 : Polycloud - Montpellier (France)
- 5-6 juin 2025 : AlpesCraft - Grenoble (France)
- 11-13 juin 2025 : Devoxx Poland - Krakow (Poland)
- 12-13 juin 2025 : Agile Tour Toulouse - Toulouse (France)
- 12-13 juin 2025 : DevLille - Lille (France)
- 24 juin 2025 : WAX 2025 - Aix-en-Provence (France)
- 26-27 juin 2025 : Sunny Tech - Montpellier (France)
- 1-4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France)
- 18-19 septembre 2025 : API Platform Conference - Lille (France) & Online
- 2-3 octobre 2025 : Volcamp - Clermont-Ferrand (France)
- 6-10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium)
- 16-17 octobre 2025 : DevFest Nantes - Nantes (France)
- 6 novembre 2025 : dotAI 2025 - Paris (France)
- 12-14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco)
- 23-25 avril 2026 : Devoxx Greece - Athens (Greece)
- 17 juin 2026 : Devoxx Poland - Krakow (Poland)
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via twitter https://twitter.com/lescastcodeurs
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 318 - La faille sous la faille sous la faille
Posté le 08/11/2024Cet épisode est relativement pauvre en IA, ouaissssssss ! Mais il nous reste plein de Spring, plein de failles, plein d’OpenTelemetry, un peu de versionnage sémantique, une astuce Git et bien d’autres choses encore.
Enregistré le 8 novembre 2024
Téléchargement de l’épisode LesCastCodeurs-Episode-318.mp3
News
Langages
Le créateur de FernFlower, un décompilateur qui a relancé l’outillage autour de Java 8, est mort, un hommage d’IntelliJ IDEA : https://blog.jetbrains.com/idea/2024/11/in-memory-of-stiver/
- Les décompilateurs s’appuyaient sur des patterns reconnus et étaient fragiles et incomplets.
- Surtout quand Java 8 a changé le pattern try catch et ajouté des concepts comme les annotations.
- Le champ était moribond quand Stiver s’est lancé.
- Dommage l’article n’explique pas comment le control-flow graph est généré à partir du bytecode pour améliorer la décompilation.
Librairies
On peut maintenant utiliser Jakarta Data Repository dans Quarkus : https://in.relation.to/2024/11/04/data-in-quarkus/
- Petit article avec un projet example.
- Aussi un lien sur la presentation de Jakarta Data par Gavin à Devoxx Belgique.
Quarkus 3.16 : https://quarkus.io/guides/opentelemetry-logging
- Logs distribués avec OpenTelemetry (preview).
- Désérialisation Jackson sans reflection.
- Des améliorations dans la stack de sécurité.
- TLS registry a rajouté GraphQL client et Keycloak admin client.
- Les logs des container devservices et des access HTTP sont visibles dans la DevUI.
- Les extensions peuvent maintenant écrire leur doc en markdown (c’était juste AsciiDoc avant).
Un article sur comment débuter en Spring Batch : https://www.sfeir.dev/back/planifier-des-taches-avec-spring-batch/
Le support OAuth2 pour RestClient arrive dans Security 6.4 / Boot 3.4. Plus de hack de WebClient dans vos applications Spring-Web ! https://spring.io/blog/2024/10/28/restclient-support-for-oauth2-in-spring-security-6-4
RestClient
a été ajouté dans Spring Framework 6.1.- API Fluide.
- Spring Security 6.4 simplifie la configuration OAuth2 avec le nouveau client HTTP synchrone
RestClient
. RestClient
permet des requêtes de ressources sans dépendances réactives, alignant la configuration entre applications servlet et réactives.- La mise à jour facilite la migration depuis
RestTemplate
et ouvre la voie à des scénarios avancés.
Marre des microservices ? Revenez au monoliths avec Spring Modulith 1.3RC1, 1.2.5 et 1.1.10 : https://spring.io/blog/2024/10/28/spring-modulith-1-3-rc1-1-2-5-and-1-1-10-released
- Spring Modulith 1.3 RC1, 1.2.5, and 1.1.10 sont disponibles.
- La version 1.3 RC1 inclut des nouvelles fonctionnalités :
- archiving event publication completion mode,
- compatibilité avec MariaDB et Oracle avec JDBC-based event publication registry,
- possibilité d’externaliser des événements dans des MessageChannels de Spring,
- expressions SpEL dans
@Externalized
, - validation d’architecture technique jMolecules.
- Les versions 1.2.5 et 1.1.10 apportent des correctifs et mises à jour de dépendances.
Spring gRPC 0.1 est sorti : https://github.com/spring-projects-experimental/spring-grpc
- C’est tout nouveau et explorationel.
- Si c’est un problème qui vous gratte, ça vaut le coup de jeter un coup d’œil de participer.
- Spring Boot 3.3.
Intégrer Spring avec Open Telemetry (protocole OTLP) : https://spring.io/blog/2024/10/28/lets-use-opentelemetry-with-spring
- Rappel de la valeur de ce standard Open Telemetry.
- Comment l’utiliser dans vos projets Spring.
Comment utiliser Ollama avec Spring AI : https://spring.io/blog/2024/10/22/leverage-the-power-of-45k-free-hugging-face-models-with-spring-ai-and-ollama
- Permet d’accéder aux 45k modèles de Hugging faces qui supportent le déploiement sur Ollama.
- Il y a un Spring Boot starter.
- C’est vraiment bien pour débuter.
Cloud
Google Cloud Frankfort a subit 12h d’interruption : https://t.co/VueiQjhCA3
- Google Cloud a subi une panne de 12 heures dans la région
europe-west3
(Francfort) le 24 octobre 2024. - La panne, causée par une défaillance d’alimentation et de refroidissement, a affecté plusieurs services, y compris Compute Engine et Kubernetes Engine.
- Les utilisateurs ont rencontré des problèmes de création de VM, des échecs d’opérations et des retards de traitement.
- Google a conseillé de migrer les charges de travail vers d’autres zones.
- Il y a eu une autre zone Européenne pas mal affectée l’année dernière.
- Et des clients ont perdu des données :sweat:.
Web
La fin de la World Wild Web Foundation : https://www.theregister.com/2024/09/30/world_wide_web_foundation_closes/
- La Fondation World Wide Web ferme ses portes.
- Les cofondateurs estiment que les problèmes auxquels est confronté le Web ont changé et que d’autres groupes de défense peuvent désormais prendre le relais.
- Ils estiment également que la priorité absolue doit être donnée à la passion de Tim Berners-Lee pour redonner aux individus le pouvoir et le contrôle de leurs données et pour construire activement des systèmes de collaboration puissants (Solid Protocol : https://solidproject.org/).
Release de PatternFly 6 : https://www.patternfly.org/
- Framework open source pour faire de l’UI, sponsorisé par Red Hat.
- Intéressant à regarder.
Data et Intelligence Artificielle
TSMC a suspendu ses livraisons à Sophgo après la découverte d’une puce sur le processeur AI de Huawei https://www.reuters.com/technology/tsmc-suspended-shipments-china-firm-after-chip-found-huawei-processor-sources-2024-10-26/
- Taiwan Semiconductor Manufacturing Company (TSMC) a suspendu ses livraisons à Sophgo, un concepteur de puces chinois, après la découverte d’une puce fabriquée par TSMC dans un processeur AI de Huawei (Ascend 910B). Cette découverte soulève des préoccupations concernant des violations potentielles des contrôles d’exportation des États-Unis, qui restreignent Huawei depuis 2020.
- Sophgo, lié à Bitmain, a nié toute connexion avec Huawei et affirme se conformer aux lois applicables. Toutefois, l’incident a conduit à une enquête approfondie de TSMC et des autorités américaines et taïwanaises.
Open AI et Microsoft, de l’amour à la guerre : https://www.computerworld.com/article/3593206/microsoft-and-openai-good-by-bromance-hello-open-warfare.html
- On a bien suivi les chants d’amour entre Sam Altman et Satya Nadella.
- Ça s’est tendu ces derniers temps.
- Déjà avec le coup chez OpenAI où MS avait sifflé la fin de la récré.
- “on a le code, les données, l’IP et la capacité, on peut tout recrée”.
- OpenAI a un compétiteur de Copilot et essaie de courtiser ses clients.
- Les appétits d’investissements d’OpenAI et une dispute sur la valeur de la part de MS qui a donné des crédits cloud semble être au cœur de la dispute du moment.
Debezium 3 est sorti : https://debezium.io/blog/2024/10/02/debezium-3-0-final-released/
- Java 17 minimum pour les connecteurs et 21 pour le serveur, l’extension Quarkus outbox et l’opérateur,
- Nettoyage des dépréciations,
- Métriques par table maintenant,
- Support for mysql 9 y compris vector data type,
- Oracle, default mining strategy changée,
- Ehcache off-heap ajouté,
- amélioration diverses Oracle (offline RAC node flush, max string size for Extended),
- PostgreSQL PGVector,
- etc (Spanner, Vitess, …).
NotebookLlama, une version Open Source de NotebookLM : https://github.com/meta-llama/llama-recipes/tree/main/recipes/quickstart/NotebookLlama
- Si vous avez été impressionné par les démos de Gemini Notebook, en créant des podcasts à partir de différentes resources, testez la version Llama.
- Tutoriel étape par étape pour transformer un PDF en podcast.
Outillage
Vous aimez Maven ? Bien évidemment ! Vous aimez Asciidoctor ? Absolument ! Alors la version 3.1.0 du plugin Asciidoctor pour Maven est pour vous !! https://github.com/asciidoctor/asciidoctor-maven-plugin
- Le plugin permet soit de convertir des documents asciidoc de manière autonome, soit de les gérer via le site maven.
GitHub Universe : de l’IA, de l’IA et encore de l’IA https://github.blog/news-insights/product-news/universe-2024-previews-releases/
- GitHub Universe 2024 présente les nouveautés de l’année, notamment la possibilité de choisir parmi plusieurs modèles d’IA pour GitHub Copilot (Claude 3.5, Gemini 1.5 Pro, OpenAI o1).
- Nouvelles fonctionnalités : GitHub Spark pour créer des micro-applications, révisions de code assistées par Copilot, sécurité renforcée avec Copilot Autofix.
- Simplification des workflows avec les extensions GitHub Copilot.
- Facilitation de la création d’applications IA génératives avec GitHub Models.
Méthodologies
Les blogs de développeurs experts Java recommandés par IntelliJ : https://blog.jetbrains.com/idea/2024/11/top-java-blogs-for-experienced-programmers/
- Pas forcément d’accord avec toute la liste.
- Mais elle donne de bonnes options si vous voulez lire plus de blogs Java.
Keycloak revient au semantic versioning après avoir suivi le versionnage à la Google Chrome : https://www.keycloak.org/2024/10/release-updates
- Ne pas savoir si une mise à jour était rétrocompatible était problématique pour les utilisateurs.
- Aussi les librairies clientes seront délivrées séparément et supporteront toutes les versions serveur de keycloak supportés.
Sécurité
Un exemple d’attaque de secure supply chain théorique identifiée dans le Quarkiverse et les détails de la résolution : https://quarkus.io/blog/quarkiverse-and-smallrye-new-release-process/
- Dans le Quarkiverse, les choses sont automatisées pour simplifier la vie des contributeurs d’extension occasionnels.
- Mais il y avait un défaut, les secrets de signature et d’accès à maven central étaient des secrets d’organisation.
- Ce qui veut dire qu’un éditeur d’extension malicieux pouvait écrire un plugin ou un test qui lisait ces secrets et pouvait livrer de faux artifacts.
- La solution est de séparer la construction des artifacts de l’étape de signature et de release sur maven central.
- Comme cela les clés ne sont plus accessible.
Avec Okta pus besoin de mot de passe quand tu as un identifiant long :face_with_hand_over_mouth: : https://trust.okta.com/security-advisories/okta-ad-ldap-delegated-authentication-username/
- LOL !
- Une vulnérabilité a été découverte dans la génération de la clé de cache pour l’authentification déléguée AD/LDAP.
- Les conditions :
- MFA non utilisé,
- Nom d’utilisateur de 52 caractères ou plus,
- Utilisateur authentifié précédemment, créant un cache d’authentification,
- Le cache a été utilisé en premier, ce qui peut se produire si l’agent AD/LDAP était hors service ou inaccessible, par exemple en raison d’un trafic réseau élevé,
- L’authentification s’est produite entre le 23 juillet 2024 et le 30 octobre 2024.
- Fixé le 30 octobre 2024.
La revanche des imprimantes !! Linux ne les aime pas, et elles lui rendent bien. https://www.theregister.com/2024/09/26/cups_linux_rce_disclosed/
- Après quelques heures / jours de rumeurs sur une faille 9.9/10 CVSS, il s’avère que cela concerne que les systèmes avec le système d’impression CUPS et cups-browsed.
- Désactivez et/ou supprimez le service cups-browsed.
- Mettez à jour votre installation CUPS pour appliquer les mises à jour de sécurité lorsqu’elles sont disponibles.
- Envisagez de bloquer l’accès au port UDP 631 et également de désactiver le DNS-SD.
- Cela concerne la plupart des distributions Linux, certaines BSD, possiblement Google ChromeOS, Solaris d’Oracle et potentiellement d’autres systèmes, car CUPS est intégré à diverses distributions pour fournir la fonctionnalité d’impression.
- Pour exploiter cette vulnérabilité via internet ou le réseau local (LAN), un attaquant doit pouvoir accéder à votre service CUPS sur le port UDP 631. Idéalement, aucun de vous ne devrait exposer ce port sur l’internet public. L’attaquant doit également attendre que vous lanciez une tâche d’impression.
- Si le port 631 n’est pas directement accessible, un attaquant pourrait être en mesure de falsifier des annonces zeroconf, mDNS ou DNS-SD pour exploiter cette vulnérabilité sur un LAN.
Loi, société et organisation
La version 1.0 de la définition de l’IA l’Open Source est sortie : https://siliconangle.com/2024/10/28/osi-clarifies-makes-ai-systems-open-source-open-models-fall-short/
- L’Open Source Initiative (OSI) a clarifié les critères pour qu’un modèle d’IA soit considéré comme open-source : accès complet aux données de formation, au code source et aux paramètres d’entraînement.
- La plupart des modèles dits “open” comme ceux de Meta (Llama) et Stability AI (Stable Diffusion) ne respectent pas ces critères, car ils imposent des restrictions sur l’utilisation commerciale et ne rendent pas publiques les données de formation.
- c’est au details de données de formation (donc pas forcement les données elle même : “In particular, this must include: (1) the complete description of all data used for training, including (if used) of unshareable data, disclosing the provenance of the data, its scope and characteristics, how the data was obtained and selected, the labeling procedures, and data processing and filtering methodologies; (2) a listing of all publicly available training data and where to obtain it; and (3) a listing of all training data obtainable from third parties and where to obtain it, including for fee.”).
- C’est en echo à la version d’open source AI de la Linux Fondation.
En parlant de cela un article sur l’open source washing dans les modèles https://www.theregister.com/2024/10/25/opinion_open_washing/
- L’open washing désigne la pratique où des entreprises prétendent que leurs produits ou modèles sont open-source, bien qu’ils ne respectent pas les critères réels d’ouverture (transparence, accessibilité, partage des connaissances).
- De grandes entreprises comme Meta, Google et Microsoft sont souvent accusées d’utiliser cette stratégie, ce qui soulève des préoccupations concernant la clarté des définitions légales et commerciales de l’open source, surtout avec l’essor de l’IA.
Rubrique débutant
Un petit article fondamental sur REST : https://www.sfeir.dev/rest-definition/
- Thèse de Roy Fielding.
- En reaction aux protocoles lourds comme SOAP.
- 5 verbes (GET PUT, POST. DELETE, PATCH).
- JSON, mais pas que (XML et autre).
- Pas d’état inter-requêtes.
Ask Me Anything
Morgan de Montréal : Comment faire cohabiter plusieurs dépôts Git ?
Je m’explique : dans mon entreprise, nous utilisons notre dépôt Git (Bitbucket) configuré pour notre dépôt d’entreprise. Lorsque je souhaite contribuer à un projet open source, je suis obligé de modifier ma configuration globale Git (nom d’utilisateur, email) pour correspondre à mon compte GitHub. Il arrive souvent que, lorsque je reviens pour effectuer un commit sur le dépôt d’entreprise, j’oublie que je suis en mode “open source”, ce qui entraîne l’enregistrement de mes configurations “open source” dans l’historique de Bitbucket… Comment gérez-vous ce genre de situation ?
Comment gérer différents profils git : https://medium.com/@mrjink/using-includeif-to-manage-your-git-identities-bcc99447b04b.
Conférences
La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 8 novembre 2024 : BDX I/O - Bordeaux (France)
- 13-14 novembre 2024 : Agile Tour Rennes 2024 - Rennes (France)
- 16-17 novembre 2024 : Capitole Du Libre - Toulouse (France)
- 20-22 novembre 2024 : Agile Grenoble 2024 - Grenoble (France)
- 21 novembre 2024 : DevFest Strasbourg - Strasbourg (France)
- 21 novembre 2024 : Codeurs en Seine - Rouen (France)
- 21 novembre 2024 : Agile Game Toulouse - Toulouse (France)
- 27-28 novembre 2024 : Cloud Expo Europe - Paris (France)
- 28 novembre 2024 : OVHcloud Summit - Paris (France)
- 28 novembre 2024 : Who Run The Tech ? - Rennes (France)
- 2-3 décembre 2024 : Tech Rocks Summit - Paris (France)
- 3 décembre 2024 : Generation AI - Paris (France)
- 3-5 décembre 2024 : APIdays Paris - Paris (France)
- 4-5 décembre 2024 : DevOpsRex - Paris (France)
- 4-5 décembre 2024 : Open Source Experience - Paris (France)
- 5 décembre 2024 : GraphQL Day Europe - Paris (France)
- 6 décembre 2024 : DevFest Dijon - Dijon (France)
- 19 décembre 2024 : Normandie.ai 2024 - Rouen (France)
- 22-25 janvier 2025 : SnowCamp 2025 - Grenoble (France)
- 30 janvier 2025 : DevOps D-Day #9 - Marseille (France)
- 6-7 février 2025 : Touraine Tech - Tours (France)
- 28 février 2025 : Paris TS La Conf - Paris (France)
- 20 mars 2025 : PGDay Paris - Paris (France)
- 25 mars 2025 : ParisTestConf - Paris (France)
- 3 avril 2025 : DotJS - Paris (France)
- 10-12 avril 2025 : Devoxx Greece - Athens (Greece)
- 16-18 avril 2025 : Devoxx France - Paris (France)
- 7-9 mai 2025 : Devoxx UK - London (UK)
- 16 mai 2025 : AFUP Day 2025 Lille - Lille (France)
- 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France)
- 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France)
- 11-13 juin 2025 : Devoxx Poland - Krakow (Poland)
- 12-13 juin 2025 : DevLille - Lille (France)
- 24 juin 2025 : WAX 2025 - Aix-en-Provence (France)
- 26-27 juin 2025 : Sunny Tech - Montpellier (France)
- 1-4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France)
- 18-19 septembre 2025 : API Platform Conference - Lille (France) & Online
- 6-10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium)
- 9-10 octobre 2025 : Volcamp - Clermont-Ferrand (France)
- 16-17 octobre 2025 : DevFest Nantes - Nantes (France)
- 23-25 avril 2026 : Devoxx Greece - Athens (Greece)
- 17 juin 2026 : Devoxx Poland - Krakow (Poland)
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via twitter https://twitter.com/lescastcodeurs
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 317 - les nouvelles paramétriques
Posté le 21/10/2024De Java 23 à WebAssembly, en passant par l’IA et les design patterns, on a tout passé au crible #java #swift #webassembly #wordpress #webcomponents #llm #mongodb #keycloak #fairsource
Enregistré le 18 octobre 2024
Téléchargement de l’épisode LesCastCodeurs-Episode-317.mp3
News
Langages
Java 23 est sorti ! InfoQ liste toutes les JEPs intégrées à la nouvelle version : https://www.infoq.com/news/2024/09/java23-released/
- JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview),
- JEP 466: Class-File API (Second Preview),
- JEP 467: Markdown Documentation Comments,
- JEP 469: Vector API (Eighth Incubator),
- JEP 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal,
- JEP 473: Stream Gatherers (Second Preview),
- JEP 474: ZGC: Generational Mode by Default,
- JEP 476: Module Import Declarations (Preview),
- JEP 477: Implicitly Declared Classes and Instance Main Methods (Third Preview),
- JEP 480: Structured Concurrency (Third Preview),
- JEP 481: Scoped Values (Third Preview),
- JEP 482: Flexible Constructor Bodies (Second Preview),
StringTemplate
s’en va.
Et FooJay plonge dans le détail : https://foojay.io/today/java-23-has-arrived-and-it-brings-a-truckload-of-changes/
Un article sur l’API ClassFile qui sera un standard dans le JDK pour manipuler des classes (ala ASM) : https://www.unlogged.io/post/class-file-api-not-your-everyday-java-api
- Article long, mais qui revient sur les raisons.
- Notamment parce que ASM est dans le JDK et qu’ils sont un problème de poule et d’œuf.
- Et sur la forme de l’API.
- A des exemples d’usage.
- Tout cela reste en preview dans le JDK.
- Des optimisations comme le lazy parsing et le constant pool sharing (en gros faire de la reference sur ce qui n’a pas changé).
Tip and Tail is back, cette fois une JEP : https://openjdk.org/jeps/14
- Plus qu’une keynote provocative au language summit.
- Maintenant une JEP dite informative.
- Le langage est un peu flou sur l’objectif.
- Entre regarder tip and tail pour vos librairies c’est bien.
- Et adoptons tous le meme tip du JDK jusqu’aux stack applicatives.
Apple annonce la sortie de son langage Swift en version 6 : https://www.swift.org/blog/announcing-swift-6/
- Nouvelles plateformes : Swift 6 s’étend à de nouvelles plateformes (tous les grands OS déjà supportés), y compris les systèmes embarqués (sous ARM et Risc V).
- Swift Testing : Swift 6 introduit Swift Testing, une nouvelle bibliothèque de tests conçue pour Swift.
- Concurrence : Détection de data race en tant qu’erreur de compilation.
Apple annonce travailler sur l’interopérabilité Swift / Java : https://github.com/swiftlang/swift-java
- Comme
jextract
mais dans l’autre sens.
The news Java : https://www.infoq.com/news/2024/10/java-news-roundup-oct07-2024/
- JDK 24 : Un calendrier pour la sortie de JDK 24 a été proposé. La première phase de réduction des fonctionnalités commencera le 5 décembre 2024. La version finale sera disponible le 18 mars 2025.
- JDK 24 introduira des mises à jour avec deux nouvelles API. La Vector API (JEP 489) facilitera les opérations sur des vecteurs, tandis que la Class-File API (JEP 484) permettra une manipulation plus efficace des fichiers de classes Java.
- Un changement de sécurité important est proposé avec JEP 486. Il prévoit de désactiver définitivement le Security Manager, qui a été déprécié. Cette décision signifie que cette fonctionnalité ne sera plus disponible dans les futures versions, car elle est considérée comme obsolète.
- Apache Tomcat et Cassandra : Les nouvelles versions de Tomcat (11.0.0) et de Cassandra (5.0.0) sont sorties. Elles incluent des améliorations et des corrections de bogues.
- Spring Framework : Des mises à jour pour Spring Framework (versions 3.4.0-M2, 3.3.3 et 3.2.8) ont été publiées. Elles intègrent le support d’une nouvelle API qui aide à la gestion de la mémoire.
- Quarkus : Red Hat a sorti la version 3.15 de Quarkus, qui apporte des corrections et des améliorations. Une nouvelle version, la 3.16, est prévue pour la fin octobre.
- Commonhaus Foundation : Une nouvelle organisation, la Commonhaus Foundation, a été créée pour aider les projets open source à être durables. Quarkus a rejoint cette fondation.
- Cassandra, Camel, LangChain, Micronaut, OpenLiberty, JHipster, Ktor etc.
Design patterns revisited : https://www.youtube.com/watch?v=kE5M6bwruhw
- Design and design patterns.
- Optional: patterns and anti-patterns.
- Iterator pattern.
- Lightweight Strategy.
- Factory Method using default methods.
- Laziness using Lambda Expressions.
- Decorator using Lambda Expressions.
- Creating Fluent interfaces.
- Execute Around Method Pattern.
- Creating a Closed Hierarchy with sealed classes.
Popularité des langages de programmation : https://www.techspot.com/news/105157-python-most-popular-coding-language-but-challengers-gaining.html
- Python reste le langage de programmation le plus populaire, surtout dans des domaines comme la science des données et le développement web.
- Il est apprécié pour sa simplicité et le grand nombre de bibliothèques disponibles, ce qui le rend facile à apprendre et à utiliser.
- De nombreuses entreprises, y compris des startups, utilisent Python pour diverses applications.
- Malgré sa dominance, d’autres langages comme JavaScript, Java et Go gagnent en popularité et pourraient défier la position de leader de Python. (Java est monté du poste 4 au 3, en 1 an)
- Les développeurs qui codent occasionnellement préfèrent Python, montrant ainsi son attrait au-delà des programmeurs professionnels.
- L’émergence d’outils comme ChatGPT facilite l’accès à la programmation, ce qui pourrait influencer les tendances futures en matière de langages de programmation.
Librairies
Paramétrer ses tests JUnit 5 avec @CsvSource
:
https://mikemybytes.com/2021/10/19/parameterize-like-a-pro-with-junit-5-csvsource/
- L’annotation permet d’avoir ses données de test au plus près de la méthode.
- On écrit les données de test sous forme de CSV (éventuellement avec des délimiteurs de son choix pour plus de lisibilité, pour bien séparer les valeurs).
- Par exemple
->
oumaps to
. - Les valeurs peuvent être les paramètres de la méthode, mais aussi les valeurs de description du test.
Infrastructure
Turbocharged Development: The Speed and Efficiency of WebAssembly par Danielle Lancashire : https://devsummit.infoq.com/presentation/munich2024/turbocharged-development-speed-and-efficiency-webassembly
- L’utilisation de WebAssembly avec Serverless. Faire tourner des applications plus facilement dans le cloud. WebAssembly est rapide et sûr pour exécuter du code. Cela aide à déployer les applications plus rapidement et à utiliser moins de ressources.
- De nombreuses entreprises utilisent WebAssembly pour des tâches comme le traitement d’images et de données. Des plateformes comme Cloudflare Workers et AWS Lambda.
- La communauté autour de WebAssembly grandit. De nouveaux outils et bibliothèques sont créés.
- Cependant, il y a encore des défis à relever, comme la compatibilité et les performances. Malgré cela, l’avenir de WebAssembly est prometteur.
Web
C’est la guerre chez Wordpress : https://techcrunch.com/2024/09/26/wordpress-vs-wp-engine-drama-explained/
- Une boite nommée WP Engine fait du hosting de WordPress mais ne contribue pas.
- Automatic, les gens derrière WordPress leur ont demandé de résoudre ce problème, soit en payant des droits de trademark soit en contribuant de l’engineering upstream à auteur de 8% de leurs revenus.
- WP Engine dit non.
- Automatic coupe l’accès aux mises à jour de thèmes et de plugins à WP Engine mettant des sites à risque (sécurité).
- WP Engine dit que c’est un abus de position du CEO d’Automatic sur les accès WordPress.org.
- Bref c’est le drame.
- Le CEO d’Automatic propose à ses employés six mois de salaire s’ils ne sont pas d’accord avec la stratégie (https://www.cio.com/article/3550331/one-twelfth-of-automattic-staff-leave-over-wordpress-wp-engine-spat.html).
- 8% ont pris l’offre.
Les WebComposants ne sont pas le futur : https://dev.to/ryansolid/web-components-are-not-the-future-48bh
- Un article d’un auteur proéminent de framework JavaScript.
- Discute les avantages et les inconvénients de la standardisation.
- Qui permet d’élever le débat, mais aussi bloque des avenues d’optimisations.
- Beaucoup d’exemples d’innovations en frameworks JS qui auraient été bloqués.
- Les commentaires apres l’article sont intéressants aussi (en contre perspective).
- Mais tout le monde n’est pas d’accord avec cet article : https://www.abeautifulsite.net/posts/web-components-are-not-the-future-they-re-the-present/.
Data et Intelligence Artificielle
Conseils et bonnes pratiques lors de l’intégration de LLM dans une application : https://glaforge.dev/posts/2024/09/23/some-good-practices-when-integrating-an-llm-in-your-application/
- Management de prompt effectif.
- Versionnage et externalisation des prompts.
- Fixer la version des modèles.
- Optimisation et caching.
- Mettre en place des rails de sécurité.
- Évaluer et monitorer le comportement et la performance.
- Prioriser la sécurité des données privées.
Encore une nouvelle version de LangChain4j, avec la version 0.35 ! Guillaume couvre les nouveautés côté Gemini et Google Cloud : https://glaforge.dev/posts/2024/09/29/lots-of-new-cool-gemini-stuff-in-langchain4j/
- Support des toutes nouvelles versions de Gemini 1.5 (version 002).
- Un “document loader” pour charger des documents à partir de Google Cloud Storage.
- Un “scoring model” qui permet de faire du “reranking” de résultat, pour trouver les résultats les plus pertinents pour une requête donnée.
- Support de nouveaux paramètres des embedding models (choix de la dimensionalité des vecteurs, du troncage des textes en entrée).
- Ajout d’un “embedding model” pour le module Google AI Gemini.
- Un estimateur de token pour Google AI Gemini.
- Support des chat listeners.
- Support des enums pour la sortie structurée JSON.
- Et plein de mise à jour de la documentation pour refléter tous ces changements et additions.
Self Correction Algo LLM : https://www.infoq.com/news/2024/10/google-deepmind-score/
- Google DeepMind a récemment publié SCoRe, une nouvelle méthode d’auto-correction pour les modèles de langage (LLM). Elle améliore la capacité des LLM à corriger leurs erreurs lorsqu’ils résolvent des problèmes de mathématiques ou de programmation.
- Contrairement aux méthodes antérieures, SCoRe utilise des données générées par le modèle lui-même pour créer des dialogues d’auto-correction. Cela permet au modèle de s’améliorer via un processus d’apprentissage par renforcement (RL) en deux étapes.
- Les modèles ajustés avec cette technique ont montré des améliorations significatives, surpassant les performances des modèles de base.
- Cette méthode pourrait ouvrir de nouvelles pistes pour rendre les LLM plus précis et robustes dans leurs réponses.
MongoDB 8 est sorti : https://www.mongodb.com/products/updates/version-release
- La version 8.0 est plus rapide, avec des lectures plus rapides, une meilleure gestion des mises à jour et des agrégations de séries temporelles jusqu’à 60 % plus rapides.
- De nouvelles fonctionnalités incluent le support des Query pour les données chiffrées, rendant le traitement des données sensibles plus facile.
- Beaucoup d’améliorations pour la performance et scalabilité.
Guillaume explore les techniques avancées de Retrieval Augmented Generation pour améliorer la qualité des résultats de recherche dans ses propres documents, avec les LLMs : https://glaforge.dev/talks/2024/10/14/advanced-rag-techniques/
- Présentations et vidéos données lors de la conférence Devoxx Belgique.
- Code des exemples disponibles sur GitHub.
- Techniques de chunking : sliding window, hypothetical questions, semantic chunking, context retrieval chunking.
- Techniques de retrieval : hypothetical document embedding, query compression, metadata filtering.
Outillage
Article sur les cache alias en Infinispan : https://infinispan.org/blog/2024/10/07/cache-aliases-redis-databases
- Explique comment on peut utiliser Infinispan pour remplacer Redis.
- Explique la différence entre les database de Redis et les caches d’Infinispan.
- Explique l’utilité des alias en général.
- Explique comment on peut avoir un mapping des databases de Redis vers des caches d’Infinispan.
Sécurité
Keycloak 26 est sorti : https://www.keycloak.org/2024/10/keycloak-2600-released
- Organizations feature : permet aux administrateurs de créer et gérer des structures organisationnelles, facilitant la gestion des rôles et des permissions.
- Persistent user sessions : les sessions des utilisateurs sont maintenant stockées par défault dans la base de donnée ce qui améliore la cohérence, surtout avec plusieurs instances.
- Login Theme : offre un design plus propre et une option de mode sombre qui s’adapte aux préférences des utilisateurs.
- L’amélioration du déploiement multi-sites renforce la fiabilité et réduit le temps d’arrêt lors des demandes des utilisateurs.
- Admin recovery : une méthode simple pour récupérer l’accès administrateur si tous les comptes sont bloqués, en créant un compte temporaire via des variables d’environnement.
- Pour les utilisateurs qui migrent vers cette version, il est important de prêter attention aux changements liés à la gestion des caches et aux sessions persistantes.
Loi, société et organisation
Introduction des licences fair source : https://techcrunch.com/2024/09/22/some-startups-are-going-fair-source-to-avoid-the-pitfalls-of-open-source-licensing/
- Certaines startups utilisent des licences “fair source” pour partager leur code tout en protégeant leurs intérêts commerciaux.
- Les licences FSL (Functional Source License) et BUSL (Business Source License) permettent d’ouvrir le code après 2 ou 4 ans.
- Ces licences empêchent les concurrents de vendre des produits similaires tout de suite, offrant une protection temporaire.
- Certains critiques pensent que ces licences sont compliquées et pourraient limiter l’innovation, car elles ne sont pas totalement ouvertes.
- Le “fair source” est encore un nouveau concept, mais il pourrait devenir un bon compromis entre open source et logiciel privé.
- Définition de fair source : code lisible publique, peut être utilisé et modifié avec des “restrictions minimales” pour protéger le business model du producteur ; et devient open source de manière déferrée.
- “any purpose other than a Competing Use. A Competing Use means use of the Software in or for a commercial product or service that competes with the Software or any other product or service we offer using the Software as of the date we make the Software available”.
Outils de l’épisode
Un petit outil sympa pour les utilisateurs de Macs avec un écran “wide”, pour partager un écran virtuel : https://github.com/Stengo/DeskPad
- Les écrans larges sont partagés entièrement et cela fait un rendu 16:9 pour les gens qui le voient.
- Cet écran acte comme un écran, mais il est virtuel et on peut mettre les applications que l’on veut dedans.
- On ne l’a pas testé.
Conférences
La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 17-18 octobre 2024 : DevFest Nantes - Nantes (France)
- 17-18 octobre 2024 : DotAI - Paris (France)
- 30-31 octobre 2024 : Agile Tour Nantais 2024 - Nantes (France)
- 30-31 octobre 2024 : Agile Tour Bordeaux 2024 - Bordeaux (France)
- 31 octobre 2024-3 novembre 2024 : PyCon.FR - Strasbourg (France)
- 6 novembre 2024 : Master Dev De France - Paris (France)
- 7 novembre 2024 : DevFest Toulouse - Toulouse (France)
- 8 novembre 2024 : BDX I/O - Bordeaux (France)
- 13-14 novembre 2024 : Agile Tour Rennes 2024 - Rennes (France)
- 16-17 novembre 2024 : Capitole Du Libre - Toulouse (France)
- 20-22 novembre 2024 : Agile Grenoble 2024 - Grenoble (France)
- 21 novembre 2024 : DevFest Strasbourg - Strasbourg (France)
- 21 novembre 2024 : Codeurs en Seine - Rouen (France)
- 27-28 novembre 2024 : Cloud Expo Europe - Paris (France)
- 28 novembre 2024 : Who Run The Tech ? - Rennes (France)
- 2-3 décembre 2024 : Tech Rocks Summit - Paris (France)
- 3 décembre 2024 : Generation AI - Paris (France)
- 3-5 décembre 2024 : APIdays Paris - Paris (France)
- 4-5 décembre 2024 : DevOpsRex - Paris (France)
- 4-5 décembre 2024 : Open Source Experience - Paris (France)
- 5 décembre 2024 : GraphQL Day Europe - Paris (France)
- 6 décembre 2024 : DevFest Dijon - Dijon (France)
- 22-25 janvier 2025 : SnowCamp 2025 - Grenoble (France)
- 30 janvier 2025 : DevOps D-Day #9 - Marseille (France)
- 6-7 février 2025 : Touraine Tech - Tours (France)
- 25 mars 2025 : ParisTestConf - Paris (France)
- 3 avril 2025 : DotJS - Paris (France)
- 10-12 avril 2025 : Devoxx Greece - Athens (Greece)
- 16-18 avril 2025 : Devoxx France - Paris (France)
- 7-9 mai 2025 : Devoxx UK - London (UK)
- 12-13 juin 2025 : DevLille - Lille (France)
- 24 juin 2025 : WAX 2025 - Aix-en-Provence (France)
- 18-19 septembre 2025 : API Platform Conference - Lille (France) & Online
- 9-10 octobre 2025 : Volcamp - Clermont-Ferrand (France)
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via twitter https://twitter.com/lescastcodeurs
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
LCC 316 - Devoxx Belgique 2024 - On rase gratis
Posté le 13/10/2024Cet épisode est une série de mini-interviews et de mini-moments capturés tout au long de Devoxx Belgique 2024.
Enregistré le 11 octobre 2024
Téléchargement de l’épisode LesCastCodeurs-Episode-316.mp3
Interview
Livre LangChain4j par Antonio aussi disponible sur Amazon.
Toutes les présentations LangChain4j
Keynote Brian Goetz sur la complexité et les fonctionnalités de Java
Keynote sur les plateformes
Presentation sur Jakarta Data and Jakarta Persistence par Gavin King
Presentation sur Gradle 9 par Louis Jacomet
Presentation sur 1BRC (one billion rows challenge
Deep dive sur 1BRC
Presentation code review
Presentation sur Developer Productivity Engineering
Presentation sur Developer Productivity Engineering de Trisha
Presentation IntelliJ en tant que moteur de jeu
Presentation Intelligent GitHub bots
Presentation Quarkus et LangChain4j
Presentation Guillaume sur RAG
Deep Dive sur LangChain4j et sur Quarkus + LangChain4j
Presentation Agentic application avec LangChain4j et Quarkus
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via twitter https://twitter.com/lescastcodeurs
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/