Les Cast Codeurs Podcast – Details, episodes & analysis
Podcast details
Technical and general information from the podcast's RSS feed.

Les Cast Codeurs Podcast
Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Aud
Frequency: 1 episode/18d. Total Eps: 340

Recent rankings
Latest chart positions across Apple Podcasts and Spotify rankings.
Apple Podcasts
No recent rankings available
Spotify
No recent rankings available
Shared links between episodes and podcasts
Links found in episode descriptions and other podcasts that share them.
See all- http://gmail.com/
3298 shares
- https://notebooklm.google.com/
2373 shares
- https://lescastcodeurs.com/
1128 shares
- https://twitter.com
1825 shares
- http://twitter.com/#
1325 shares
- https://twitter.com/lescastcodeurs
846 shares
RSS feed quality and score
Technical evaluation of the podcast's RSS feed quality and structure.
See allScore global : 48%
Publication history
Monthly episode publishing history over the past years.
LCC 332 - Groquik revient, Emmanuel s'en va
mardi 18 novembre 2025 • Duration 01:32:07
Dans cet épisode, Emmanuel, Katia et Guillaume discutent de Spring 7, Quarkus, d'Infinispan et Keycloak. On discute aussi de projets sympas comme Javelit, de comment démarre une JVM, du besoin d'argent de NTP. Et puis on discute du changement de carrière d'Emmanuel.
Enregistré le 14 novembre 2025
Téléchargement de l'épisode LesCastCodeurs-Episode-332.mp3 ou en vidéo sur YouTube.
NewsEmmanuel quitte Red Hat après 20 ans https://emmanuelbernard.com/blog/2025/11/13/leaving-redhat/
LangagesSupport HTTP/3 dans le HttpClient de JDK 26 - https://inside.java/2025/10/22/http3-support/
- JDK 26 introduit le support de HTTP/3 dans l'API HttpClient existante depuis Java 11
- HTTP/3 utilise le protocole QUIC sur UDP au lieu de TCP utilisé par HTTP/2
- Par défaut HttpClient préfère HTTP/2, il faut explicitement configurer HTTP/3 avec Version.HTTP_3
- Le client effectue automatiquement un downgrade vers HTTP/2 puis HTTP/1.1 si le serveur ne supporte pas HTTP/3
- On peut forcer l'utilisation exclusive de HTTP/3 avec l'option H3_DISCOVERY en mode HTTP_3_URI_ONLY
- HttpClient apprend qu'un serveur supporte HTTP/3 via le header alt-svc (RFC 7838) et utilise cette info pour les requêtes suivantes
- La première requête peut utiliser HTTP/2 même avec HTTP/3 préféré, mais la seconde utilisera HTTP/3 si le serveur l'annonce
- L'équipe OpenJDK encourage les tests et retours d'expérience sur les builds early access de JDK 26
Eclispe Jetty et CometD changent leurs stratégie de support https://webtide.com/end-of-life-changes-to-eclipse-jetty-and-cometd/
- À partir du 1er janvier 2026, Webtide ne publiera plus Jetty 9/10/11 et CometD 5/6/7 sur Maven Central
- Pendant 20 ans, Webtide a financé les projets Jetty et CometD via services et support, publiant gratuitement les mises à jour EOL
- Le comportement des entreprises a changé : beaucoup cherchent juste du gratuit plutôt que du véritable support
- Des sociétés utilisent des versions de plus de 10 ans sans migrer tant que les correctifs CVE sont gratuits
- Cette politique gratuite a involontairement encouragé la complaisance et retardé les migrations vers versions récentes
- MITRE développe des changements au système CVE pour mieux gérer les concepts d'EOL
- Webtide lance un programme de partenariat avec TuxCare et HeroDevs pour distribuer les résolutions CVE des versions EOL
- Les binaires EOL seront désormais distribués uniquement aux clients commerciaux et via le réseau de partenaires
- Webtide continue le support standard open-source : quand Jetty 13 sortira, Jetty 12.1 recevra des mises à jour pendant 6 mois à un an
- Ce changement vise à clarifier la politique EOL avec une terminologie industrielle établie
Améliorations cloud du SDK A2A Java https://quarkus.io/blog/quarkus-a2a-cloud-enhancements/
- Version 0.3.0.Final du SDK A2A Java apporte des améliorations pour les environnements cloud et distribués
- Composants en mémoire remplacés par des implémentations persistantes et répliquées pour environnements multi-instances
- JpaDatabaseTaskStore et JpaDatabasePushNotificationConfigStore permettent la persistance des tâches et configurations en base PostgreSQL
- ReplicatedQueueManager assure la réplication des événements entre instances A2A Agent via Kafka et MicroProfile Reactive Messaging
- Exemple complet de déploiement Kubernetes avec Kind incluant PostgreSQL, Kafka via Strimzi, et load balancing entre pods
- Démonstration pratique montrant que les messages peuvent être traités par différents pods tout en maintenant la cohérence des tâches
- Architecture inspirée du SDK Python A2A, permettant la gestion de tâches asynchrones longues durée en environnement distribué
Quarkus 3.29 sort avec des backends de cache multiples et support du débogueur Qute https://quarkus.io/blog/quarkus-3-29-released/
- Possibilité d'utiliser plusieurs backends de cache simultanément dans une même application
- Chaque cache peut être associé à un backend spécifique (par exemple Caffeine et Redis ou Infinispan)
- Support du Debug Adapter Protocol (DAP) pour déboguer les templates Qute directement dans l'IDE
- et dans la version 3.28
- Configuration programmatique de la protection CSRF via une API fluent
- Possibilité de restreindre les filtres OIDC à des flux d'authentification spécifiques avec annotations
- Support des dashboards Grafana personnalisés via fichiers JSON dans META-INF/grafana/
- Extension Liquibase MongoDB supporte désormais plusieurs clients simultanés
- Amélioration significative des performances de build avec réduction des allocations mémoire
- Parallélisation de tâches comme la génération de proxies Hibernate ORM et la construction des Jar
Et l'utilisation des fichiers .proto est plus simple dans Quarkus avbec Quarkus gRPC Zero https://quarkus.io/blog/grpc-zero/
- c'est toujours galere des fichiers .proto car les generateurs demandent des executables natifs
- maintenant ils sont bundlés dans la JVM et vous n'avez rien a configurer
- cela utilise Caffeine pour faire tourner cela en WASM dans la JVM
Spring AI 1.1 est presque là https://spring.io/blog/2025/11/08/spring-ai-1-1-0-RC1-available-now
- support des MCP tool caching pour les callback qui reduit les iooerations redondantes
- Access au contenu de raisonnement OpenAI
- Un modele de Chat MongoDB
- Support du modele de penser Ollama
- Reessaye sur les echec de reseau
- OpenAI speech to text
Spring gRPC Les prochaines étapes pour la 1.0.0 https://spring.io/blog/2025/11/05/spring-grpc-next-steps
- Spring gRPC 1.0 arrive prochainement avec support de Spring Boot 4
- L'intégration dans Spring Boot 4.0 est reportée, prévue pour Spring Boot 4.1
- Les coordonnées Maven restent sous org.springframework.grpc pour la version 1.0
- Le jar spring-grpc-test est renommé en spring-grpc-test-spring-boot-autoconfigure
- Les packages d'autoconfiguration changent de nom nécessitant de modifier les imports
- Les dépendances d'autoconfiguration seront immédiatement dépréciées après la release 1.0
- Migration minimale attendue pour les projets utilisant déjà la version 0.x
- La version 1.0.0-RC1 sera publiée dès que possible avant la version finale
Spring arrete le support reactif d'Apache Pulsar https://spring.io/blog/2025/10/29/spring-pulsar-reactive-discontinued
- logique d'évaluer le temps passé vs le nombre d'utilisateurs
- c'est cependant une tendance qu'on a vu s'accélerer
Spring 7 est sorti https://spring.io/blog/2025/11/13/spring-framework-7-0-general-availability
InfrastructureInfinispan 16.0 https://infinispan.org/blog/2025/11/10/infinispan-16-0
- Ajout majeur : migration en ligne sans interruption pour les nœuds d'un cluster (rolling upgrades) (infinispan.org)
- Messages de clustering refaits avec Protocol Buffers + ProtoStream : meilleure compatibilité, schéma évolutif garanti (infinispan.org)
- Console Web améliorée
- API dédiée de gestion des schémas (SchemasAdmin) pour gérer les schémas ProtoStream à distance (infinispan.org)
- Module de requête (query) optimisé :
- support complet des agrégations (sum, avg …) dans les requêtes indexées en cluster grâce à l'intégration de Hibernate Search 8.1 (infinispan.org)
- Serveur :
- image conteneur minimalisée pour réduire la surface d'attaque (infinispan.org)
- démarrage plus rapide grâce à séparation du démarrage cache/serveur (infinispan.org)
- caches pour connecteurs (Memcached, RESP) créés à la demande (on-demand) et non à l'initiaton automatique (infinispan.org)
- moteur Lua 5.1 mis à jour avec corrections de vulnérabilités et opérations dangereuses désactivées (infinispan.org)
- Support JDK :
- version minimale toujours JDK 17 (infinispan.org)
- prise en charge des threads virtuels (virtual threads) et des fonctionnalités AOT (Ahead-of-Time) de JDK plus récentes (infinispan.org)
Javelit, une nouvelle librairie Java inspirée de Streamlit pour faire facilement et rapidement des petites interfaces web https://glaforge.dev/posts/2025/10/24/javelit-to-create-quick-interactive-app-frontends-in-java/
- Site web du projet : https://javelit.io/
- Javelit : outil pour créer rapidement des applications de données (mais pas que) en Java.
- Simplifie le développement : élimine les tracas du frontend et de la gestion des événements.
- Transforme une classe Java en application web en quelques minutes.
- Inspiré par la simplicité de Streamlit de l'écosystème Python (ou Gradio et Mesop), mais pour Java.
- Développement axé sur la logique : pas de code standard répétitif (boilerplate), rechargement à chaud.
- Interactions faciles : les widgets retournent directement leur valeur, sans besoin de HTML/CSS/JS ou gestion d'événements.
- Déploiement flexible : applications autonomes ou intégrables dans des frameworks Java (Spring, Quarkus, etc.).
- L'article de Guillaume montre comment créer une petite interface pour créer et modifier des images avec le modèle génératif Nano Banana
- Un deuxième article montre comment utiliser Javelit pour créer une interface de chat avec LangChain4j https://glaforge.dev/posts/2025/10/25/creating-a-javelit-chat-interface-for-langchain4j/
Améliorer l'accessibilité avec les applis JetPack Compose https://blog.ippon.fr/2025/10/29/rendre-son-application-accessible-avec-jetpack-compose/
- TalkBack est le lecteur d'écran Android qui vocalise les éléments sélectionnés pour les personnes malvoyantes
- Accessibility Scanner et les outils Android Studio détectent automatiquement les problèmes d'accessibilité statiques
- Les images fonctionnelles doivent avoir un contentDescription, les images décoratives contentDescription null
- Le contraste minimum requis est de 4.5:1 pour le texte normal et 3:1 pour le texte large ou les icônes
- Les zones cliquables doivent mesurer au minimum 48dp x 48dp pour faciliter l'interaction
- Les formulaires nécessitent des labels visibles permanents et non de simples placeholders qui disparaissent
- Modifier.semantics permet de définir l'arbre sémantique lu par les lecteurs d'écran
- Les propriétés mergeDescendants et traversalIndex contrôlent l'ordre et le regroupement de la lecture
Diriger le navigateur Chrome avec le modèle Gemini Computer Use https://glaforge.dev/posts/2025/11/03/driving-a-web-browser-with-gemini-computer-use-model-in-java/
- Objectif : Automatiser la navigation web en Java avec le modèle "Computer Use" de Gemini 2.5 Pro.
- Modèle "Computer Use" : Gemini analyse des captures d'écran et génère des actions d'interface (clic, saisie, etc.).
- Outils : Gemini API, Java, Playwright (pour l'interaction navigateur).
- Fonctionnement : Boucle agent où Gemini reçoit une capture, propose une action, Playwright l'exécute, puis une nouvelle capture est envoyée à Gemini.
- Implémentation clé : Toujours envoyer une capture d'écran à Gemini après chaque action pour qu'il comprenne l'état actuel.
- Défis : Lenteur, gestion des CAPTCHA et pop-ups (gérables).
- Potentiel : Automatisation des tâches web répétitives, création d'agents autonomes.
Apicurio ajoute le support de nouveaux schema sans reconstruire Apicurio https://www.apicur.io/blog/2025/10/27/custom-artifact-types
- Apicurio Registry 3.1.0 permet d'ajouter des types d'artefacts personnalisés au moment du déploiement sans recompiler le projet
- Supporte nativement OpenAPI, AsyncAPI, Avro, JSON Schema, Protobuf, GraphQL, WSDL et XSD
- Trois approches d'implémentation disponibles : classes Java pour la performance maximale, JavaScript/TypeScript pour la facilité de développement, ou webhooks pour une flexibilité totale
- Configuration via un simple fichier JSON pointant vers les implémentations des composants personnalisés
- Les scripts JavaScript sont exécutés via QuickJS dans un environnement sandboxé sécurisé
- Un package npm TypeScript fournit l'autocomplétion et la sécurité de type pour le développement
- Six composants optionnels configurables : détection automatique de type, validation, vérification de compatibilité, canonicalisation, déréférencement et recherche de références
- Cas d'usage typiques : formats propriétaires internes, support RAML, formats legacy comme WADL, schémas spécifiques à un domaine métier
- Déploiement simple via Docker en montant les fichiers de configuration et scripts comme volumes
- Les performances varient selon l'approche : Java offre les meilleures performances, JavaScript un bon équilibre, webhooks la flexibilité maximale
- Le truc interessant c'est que c'est Quarkus based et donc demandait le rebuilt
- donc pour eviter cela, ils ont ajouter QuickJS via Chicorey un moteur WebAssembly
GPT 5.1 pour les développeurs est sorti. https://openai.com/index/gpt-5-1-for-developers/
- C'est le meilleur puisque c'est le dernier :slightly_smiling_face:
- Raisonnement Adaptatif et Efficace : GPT-5.1 ajuste dynamiquement son temps de réflexion en fonction de la complexité de la tâche, le rendant nettement plus rapide et plus économique en jetons pour les tâches simples, tout en maintenant des performances de pointe sur les tâches difficiles.
- Nouveau Mode « Sans Raisonnement » : Un mode (reasoning_effort='none') a été introduit pour les cas d'utilisation sensibles à la latence, permettant une réponse plus rapide avec une intelligence élevée et une meilleure exécution des outils.
- Cache de Prompt Étendu : La mise en cache des invites est étendue jusqu'à 24 heures (contre quelques minutes auparavant), ce qui réduit la latence et le coût pour les interactions de longue durée (chats multi-tours, sessions de codage). Les jetons mis en cache sont 90 % moins chers.
- Améliorations en Codage : Le modèle offre une meilleure personnalité de codage, une qualité de code améliorée et de meilleures performances sur les tâches d'agenticité de code, atteignant 76,3 % sur SWE-bench Verified.
- Nouveaux Outils pour les Développeurs : Deux nouveaux outils sont introduits ( https://cookbook.openai.com/examples/build_a_coding_agent_with_gpt-5.1 ) :
- L'outil apply_patch pour des modifications de code plus fiables via des diffs structurés.
- L'outil shell qui permet au modèle de proposer et d'exécuter des commandes shell sur une machine locale, facilitant les boucles d'inspection et d'exécution.
- Disponibilité : GPT-5.1 (ainsi que les modèles gpt-5.1-codex) est disponible pour les développeurs sur toutes les plateformes API payantes, avec les mêmes tarifs et limites de débit que GPT-5.
Comparaison de similarité d'articles et de documents avec les embedding models https://glaforge.dev/posts/2025/11/12/finding-related-articles-with-vector-embedding-models/
- Principe : Convertir les articles en vecteurs numériques ; la similarité sémantique est mesurée par la proximité de ces vecteurs.
- Démarche :
- Résumé des articles via Gemini-2.5-flash.
- Conversion des résumés en vecteurs (embeddings) par Gemini-embedding-001.
- Calcul de la similarité entre vecteurs par similarité cosinus.
- Affichage des 3 articles les plus pertinents (>0.75) dans le frontmatter Hugo.
- Bilan : Approche "résumé et embedding" efficace, pragmatique et améliorant l'engagement des lecteurs.
Composer : Nouveau modèle d'agent rapide pour l'ingénierie logicielle - https://cursor.com/blog/composer
- Composer est un modèle d'agent conçu pour l'ingénierie logicielle qui génère du code quatre fois plus rapidement que les modèles similaires
- Le modèle est entraîné sur de vrais défis d'ingénierie logicielle dans de grandes bases de code avec accès à des outils de recherche et d'édition
- Il s'agit d'un modèle de type mixture-of-experts optimisé pour des réponses interactives et rapides afin de maintenir le flux de développement
- L'entraînement utilise l'apprentissage par renforcement dans divers environnements de développement avec des outils comme la lecture de fichiers, l'édition, les commandes terminal et la recherche sémantique
- Cursor Bench est un benchmark d'évaluation basé sur de vraies demandes d'ingénieurs qui mesure la correction et le respect des abstractions du code existant
- Le modèle apprend automatiquement des comportements utiles comme effectuer des recherches complexes, corriger les erreurs de linter et écrire des tests unitaires
- L'infrastructure d'entraînement utilise PyTorch et Ray avec des kernels MXFP8 pour entraîner sur des milliers de GPUs NVIDIA
- Le système exécute des centaines de milliers d'environnements de codage sandboxés concurrents dans le cloud pour l'entraînement
- Composer est déjà utilisé quotidiennement par les développeurs de Cursor pour leur propre travail
- Le modèle se positionne juste derrière GPT-5 et Sonnet 4.5 en termes de performance sur les benchmarks internes
Rex sur l'utilisation de l'IA pour les développeurs, un gain de productivité réel et des contextes adaptés https://mcorbin.fr/posts/2025-10-17-genai-dev/
- Un développeur avec 18 ans d'expérience partage son retour sur l'IA générative après avoir changé d'avis
- Utilise exclusivement Claude Code dans le terminal pour coder en langage naturel
- Le "vibe coding" permet de générer des scripts et interfaces sans regarder le code généré
- Génération rapide de scripts Python pour traiter des CSV, JSON ou créer des interfaces HTML
- Le mode chirurgien résout des bugs complexes en one-shot, exemple avec un plugin Grafana fixé en une minute
- Pour le code de production, l'IA génère les couches repository, service et API de manière itérative, mais le dev controle le modele de données
- Le développeur relit toujours le code et ajuste manuellement ou via l'IA selon le besoin
- L'IA ne remplacera pas les développeurs car la réflexion, conception et expertise technique restent essentielles
- La construction de produits robustes, scalables et maintenables nécessite une expérience humaine
- L'IA libère du temps sur les tâches répétitives et permet de se concentrer sur les aspects complexes
- ce que je trouve interessant c'est la partie sur le code de prod
- effectivement, je corrige aussi beaucoup les propositions de l'IA en lui demandant de faire mieux dans tel ou tel domaine
- Sans guide, tout cela serait perdu
- Affaire a suivre
- un article en parallele sur le métier de designer https://blog.ippon.fr/2025/11/03/lia-ne-remplace-pas-un-designer-elle-amplifie-la-difference-entre-faire-et-bien-faire/
Plus besoin de se rappeler les racourcis dans IntelliJ idea avec l'universal entry point https://blog.jetbrains.com/idea/2025/11/universal-entry-point-a-single-entry-point-for-context-aware-coding-assistance/
- IntelliJ IDEA introduit Command Completion, une nouvelle façon d'accéder aux actions de l'IDE directement depuis l'éditeur
- Fonctionne comme la complétion de code : tapez point (.) pour voir les actions contextuelles disponibles
- Tapez double point (..) pour filtrer et n'afficher que les actions disponibles
- Propose des corrections, refactorings, génération de code et navigation selon le contexte
- Complète les fonctionnalités existantes sans les remplacer : raccourcis, Alt+Enter, Search Everywhere
- Facilite la découverte des fonctionnalités de l'IDE sans interrompre le flux de développement
- En Beta dans la version 2025.2, sera activé par défaut dans 2025.3
- Support actuel pour Java et Kotlin, avec actions spécifiques aux frameworks comme Spring et Hibernate
Homebrew, package manage pour macOS et Linux passe en version 5 https://brew.sh/2025/11/12/homebrew-5.0.0/
- Téléchargements Parallèles par Défaut : Le paramètre HOMEBREW_DOWNLOAD_CONCURRENCY=auto est activé par défaut, permettant des téléchargements concurrents pour tous les utilisateurs, avec un rapport de progression.
- Support Linux ARM64/AArch64 en Tier 1 : Le support pour Linux ARM64/AArch64 a été promu au niveau "Tier 1" (support officiel de premier plan).
- Feuille de Route pour les Dépréciations macOS :
- Septembre 2026 (ou plus tard) : Homebrew ne fonctionnera plus sur macOS Catalina (10.15) et versions antérieures. macOS Intel (x86_64) passera en "Tier 3" (fin du support CI et des binaires précompilés/bottles).
- Septembre 2027 (ou plus tard) : Homebrew ne fonctionnera plus sur macOS Big Sur (11) sur Apple Silicon ni du tout sur Intel (x86_64).
- Sécurité et Casks :
- Dépréciation des Casks sans signature de code.
- Désactivation des Casks échouant aux vérifications Gatekeeper en septembre 2026.
- Les options --no-quarantine et --quarantine sont dépréciés pour ne plus faciliter le contournement des fonctionnalités de sécurité de macOS.
- Nouvelles Fonctionnalités & Améliorations :
- Support officiel pour macOS 26 (Tahoe).
- brew bundle supporte désormais l'installation de packages Go via un Brewfile.
- Ajout de la commande brew info --sizes pour afficher la taille des formulae et casks.
- La commande brew search --alpine permet de chercher des packages Alpine Linux.
Selon l'analyste RedMonk, Java reste très pertinent dans l'aire de l'IA et des agents https://redmonk.com/jgovernor/java-relevance-in-the-ai-era-agent-frameworks-emerge/
- Java reste pertinent à l'ère de l'IA, pas besoin d'apprendre une pile technique entièrement nouvelle.
- Capacité d'adaptation de Java ("anticorps") aux innovations (Big Data, cloud, IA), le rendant idéal pour les contextes d'entreprise.
- L'écosystème JVM offre des avantages sur Python pour la logique métier et les applications sophistiquées, notamment en termes de sécurité et d'évolutivité.
- Embabel (par Rod Johnson, créateur de Spring) : un framework d'agents fortement typé pour JVM, visant le déterminisme des projets avant la génération de code par LLM.
- LangChain4J : facilite l'accès aux capacités d'IA pour les développeurs Java, s'aligne sur les modèles d'entreprise établis et permet aux LLM d'appeler des méthodes Java.
- Koog (Jetbrains) : framework d'agents basé sur Kotlin, typé et spécifique aux développeurs JVM/Kotlin.
- Akka : a pivoté pour se concentrer sur les flux de travail d'agents IA, abordant la complexité, la confiance et les coûts des agents dans les systèmes distribués.
- Le Model Context Protocol (MCP) est jugé insuffisant, manquant d'explicabilité, de découvrabilité, de capacité à mélanger les modèles, de garde-fous, de gestion de flux, de composabilité et d'intégration sécurisée.
- Les développeurs Java sont bien placés pour construire des applications compatibles IA et intégrer des agents.
- Des acteurs majeurs comme IBM, Red Hat et Oracle continuent d'investir massivement dans Java et son intégration avec l'IA.
AI Deepfake, Hiring … A danger réel https://www.eu-startups.com/2025/10/european-startups-get-serious-about-deepfakes-as-ai-fraud-losses-surpass-e1-3-billion/
- Pertes liées aux deepfakes en Europe : > 1,3 milliard € (860 M € rien qu'en 2025).
- Création de deepfakes désormais possible pour quelques euros.
- Fraudes : faux entretiens vidéo, usurpations d'identité, arnaques diverses.
- Startups actives : Acoru, IdentifAI, Trustfull, Innerworks, Keyless (détection et prévention).
- Réglementation : AI Act et Digital Services Act imposent transparence et contrôle.
- Recommandations : vérifier identités, former employés, adopter authentification multi-facteurs.
- En lien :
- https://www.techmonitor.ai/technology/cybersecurity/remote-hiring-cybersecurity
- 1 Candidat sur 4 sera Fake en 2028 selon Gartner research https://www.gartner.com/en/newsroom/press-releases/2025-07-31-gartner-survey-shows-j[…]-percent-of-job-applicants-trust-ai-will-fairly-evaluate-them
Amazon - prévoit supprimer 30.000 postes https://www.20minutes.fr/economie/4181936-20251028-amazon-prevoit-supprimer-30-000-emplois-bureau-selon-plusieurs-medias
- Postes supprimés : 30 000 bureaux
- Part des effectifs : ~10 % des employés corporatifs
- Tranche confirmée : 14 000 postes
- Divisions touchées : RH, Opérations, Devices & Services, Cloud
- Motifs : sur-recrutement, bureaucratie, automatisation/IA
- Accompagnement : 90 jours pour poste interne + aides
- Non concernés : entrepôts/logistique
- Objectif : concentrer sur priorités stratégiques
NTP a besoin d'argent https://www.ntp.org/
- Il n'est que le protocole qui synchronise toutes les machines du monde
- La fondation https://www.nwtime.org/ recherche 11000$ pour maintenir son activité
Une plongée approfondie dans le démarrage de la JVM https://inside.java/2025/01/28/jvm-start-up
- La JVM effectue une initialisation complexe avant d'exécuter le code : validation des arguments, détection des ressources système et sélection du garbage collector approprié
- Le chargement de classes suit une stratégie lazy où chaque classe charge d'abord ses dépendances dans l'ordre de déclaration, créant une chaîne d'environ 450 classes même pour un simple Hello World
- La liaison de classes comprend trois sous-processus : vérification de la structure, préparation avec initialisation des champs statiques à leurs valeurs par défaut, et résolution des références symboliques du Constant Pool
- Le CDS améliore les performances au démarrage en fournissant des classes pré-vérifiées, réduisant le travail de la JVM
- L'initialisation de classe exécute les initialiseurs statiques via la méthode spéciale clinit générée automatiquement par javac
- Le Project Leyden introduit la compilation AOT dans JDK 24 pour réduire le temps de démarrage en effectuant le chargement et la liaison de classes en avance de phase
- Pas si débutant finalement
La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 12-14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco)
- 15-16 novembre 2025 : Capitole du Libre - Toulouse (France)
- 19 novembre 2025 : SREday Paris 2025 Q4 - Paris (France)
- 19-21 novembre 2025 : Agile Grenoble - Grenoble (France)
- 20 novembre 2025 : OVHcloud Summit - Paris (France)
- 21 novembre 2025 : DevFest Paris 2025 - Paris (France)
- 24 novembre 2025 : Forward Data & AI Conference - Paris (France)
- 27 novembre 2025 : DevFest Strasbourg 2025 - Strasbourg (France)
- 28 novembre 2025 : DevFest Lyon - Lyon (France)
- 1-2 décembre 2025 : Tech Rocks Summit 2025 - Paris (France)
- 4-5 décembre 2025 : Agile Tour Rennes - Rennes (France)
- 5 décembre 2025 : DevFest Dijon 2025 - Dijon (France)
- 9-11 décembre 2025 : APIdays Paris - Paris (France)
- 9-11 décembre 2025 : Green IO Paris - Paris (France)
- 10-11 décembre 2025 : Devops REX - Paris (France)
- 10-11 décembre 2025 : Open Source Experience - Paris (France)
- 11 décembre 2025 : Normandie.ai 2025 - Rouen (France)
- 14-17 janvier 2026 : SnowCamp 2026 - Grenoble (France)
- 22 janvier 2026 : DevCon #26 : sécurité / post-quantique / hacking - Paris (France)
- 29-31 janvier 2026 : Epitech Summit 2026 - Paris - Paris (France)
- 2-5 février 2026 : Epitech Summit 2026 - Moulins - Moulins (France)
- 2-6 février 2026 : Web Days Convention - Aix-en-Provence (France)
- 3 février 2026 : Cloud Native Days France 2026 - Paris (France)
- 3-4 février 2026 : Epitech Summit 2026 - Lille - Lille (France)
- 3-4 février 2026 : Epitech Summit 2026 - Mulhouse - Mulhouse (France)
- 3-4 février 2026 : Epitech Summit 2026 - Nancy - Nancy (France)
- 3-4 février 2026 : Epitech Summit 2026 - Nantes - Nantes (France)
- 3-4 février 2026 : Epitech Summit 2026 - Marseille - Marseille (France)
- 3-4 février 2026 : Epitech Summit 2026 - Rennes - Rennes (France)
- 3-4 février 2026 : Epitech Summit 2026 - Montpellier - Montpellier (France)
- 3-4 février 2026 : Epitech Summit 2026 - Strasbourg - Strasbourg (France)
- 3-4 février 2026 : Epitech Summit 2026 - Toulouse - Toulouse (France)
- 4-5 février 2026 : Epitech Summit 2026 - Bordeaux - Bordeaux (France)
- 4-5 février 2026 : Epitech Summit 2026 - Lyon - Lyon (France)
- 4-6 février 2026 : Epitech Summit 2026 - Nice - Nice (France)
- 12-13 février 2026 : Touraine Tech #26 - Tours (France)
- 26-27 mars 2026 : SymfonyLive Paris 2026 - Paris (France)
- 27-29 mars 2026 : Shift - Nantes (France)
- 31 mars 2026 : ParisTestConf - Paris (France)
- 16-17 avril 2026 : MiXiT 2026 - Lyon (France)
- 22-24 avril 2026 : Devoxx France 2026 - Paris (France)
- 23-25 avril 2026 : Devoxx Greece - Athens (Greece)
- 6-7 mai 2026 : Devoxx UK 2026 - London (UK)
- 22 mai 2026 : AFUP Day 2026 Lille - Lille (France)
- 22 mai 2026 : AFUP Day 2026 Paris - Paris (France)
- 22 mai 2026 : AFUP Day 2026 Bordeaux - Bordeaux (France)
- 22 mai 2026 : AFUP Day 2026 Lyon - Lyon (France)
- 17 juin 2026 : Devoxx Poland - Krakow (Poland)
- 11-12 juillet 2026 : DevLille 2026 - Lille (France)
- 4 septembre 2026 : JUG Summer Camp 2026 - La Rochelle (France)
- 17-18 septembre 2026 : API Platform Conference 2026 - Lille (France)
- 5-9 octobre 2026 : Devoxx Belgium - Antwerp (Belgium)
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 331 - Le retour des jackson 5
jeudi 6 novembre 2025 • Duration 01:13:01
Dans cet épisode, Arnaud et Guillaume discutent des dernières évolutions dans le monde de la programmation, notamment les nouveautés de Java 25, JUnit 6, et Jackson 3. Ils abordent également les récents développements en IA, les problèmes rencontrés dans le cloud, et l'état actuel de React et du web. Dans cette conversation, les intervenants abordent divers sujets liés à la technologie, notamment les spécifications de Wasteme, l'utilisation des UUID dans les bases de données, l'approche RAG en intelligence artificielle, les outils MCP, et la création d'images avec Nano Banana. Ils discutent également des complexités du format YAML, des récents dramas dans la communauté Ruby, de l'importance d'une bonne documentation, des politiques de retour au bureau, et des avancées de Cloud Code. Enfin, ils évoquent l'initiative de cafés IA pour démystifier l'intelligence artificielle.
Enregistré le 24 octobre 2025
Téléchargement de l'épisode LesCastCodeurs-Episode-331.mp3 ou en vidéo sur YouTube.
News LangagesGraalVM se détache du release train de Java https://blogs.oracle.com/java/post/detaching-graalvm-from-the-java-ecosystem-train
Un article de Loic Mathieu sur Java 25 et ses nouvelles fonctionalités https://www.loicmathieu.fr/wordpress/informatique/java-25-whats-new/
Sortie de Groovy 5.0 ! https://groovy-lang.org/releasenotes/groovy-5.0.html
- Groovy 5: Évolution des versions précédentes, nouvelles fonctionnalités et simplification du code.
- Compatibilité JDK étendue: Full support JDK 11-25, fonctionnalités JDK 17-25 disponibles sur les JDK plus anciens.
- Extension majeure des méthodes: Plus de 350 méthodes améliorées, opérations sur tableaux jusqu'à 10x plus rapides, itérateurs paresseux.
- Améliorations des transformations AST: Nouveau @OperatorRename, génération automatique de @NamedParam pour @MapConstructor et copyWith.
- REPL (groovysh) modernisé: Basé sur JLine 3, support multi-plateforme, coloration syntaxique, historique et complétion.
- Meilleure interopérabilité Java: Pattern Matching pour instanceof, support JEP-512 (fichiers source compacts et méthodes main d'instance).
- Standards web modernes: Support Jakarta EE (par défaut) et Javax EE (héritage) pour la création de contenu web.
- Vérification de type améliorée: Contrôle des chaînes de format plus robuste que Java.
- Additions au langage: Génération d'itérateurs infinis, variables d'index dans les boucles, opérateur d'implication logique ==>.
- Améliorations diverses: Import automatique de java.time.**, var avec multi-assignation, groupes de capture nommés pour regex (=~), méthodes utilitaires de graphiques à barres ASCII.
- Changements impactants: Plusieurs modifications peuvent nécessiter une adaptation du code existant (visibilité, gestion des imports, comportement de certaines méthodes).
- **Exigences JDK*: Construction avec JDK17+, exécution avec JDK11+.
Intégration de LangChain4j dans ADK pour Java, permettant aux développeurs d'utiliser n'importe quel LLM avec leurs agents ADK https://developers.googleblog.com/en/adk-for-java-opening-up-to-third-party-language-models-via-langchain4j-integration/
- ADK pour Java 0.2.0 : Nouvelle version du kit de développement d'agents de Google.
- Intégration LangChain4j : Ouvre ADK à des modèles de langage tiers.
- Plus de choix de LLM : En plus de Gemini et Claude, accès aux modèles d'OpenAI, Anthropic, Mistral, etc.
- Modèles locaux supportés : Utilisation possible de modèles via Ollama ou Docker Model Runner.
- Améliorations des outils : Création d'outils à partir d'instances d'objets, meilleur support asynchrone et contrôle des boucles d'exécution.
- Logique et mémoire avancées : Ajout de callbacks en chaîne et de nouvelles options pour la gestion de la mémoire et le RAG (Retrieval-Augmented Generation).
- Build simplifié : Introduction d'un POM parent et du Maven Wrapper pour un processus de construction cohérent.
JUnit 6 est sorti https://docs.junit.org/6.0.0/release-notes/
- :sparkles: Java 17 and Kotlin 2.2 baseline
- :sunrise_over_mountains: JSpecify nullability annotations
- :airplane_departure: Integrated JFR support
- :suspension_railway: Kotlin suspend function support
- :octagonal_sign: Support for cancelling test execution
- :broom: Removal of deprecated APIs
JGraphlet, une librairie Java sans dépendances pour créer des graphes de tâches à exécuter https://shaaf.dev/post/2025-08-25-think-in-graphs-not-just-chains-jgraphlet-for-taskpipelines/
- JGraphlet: Bibliothèque Java légère (zéro-dépendance) pour construire des pipelines de tâches.
- Principes clés: Simplicité, basée sur un modèle d'exécution de graphe.
- Tâches: Chaque tâche a une entrée/sortie, peut être asynchrone (Task) ou synchrone (SyncTask).
- Pipeline: Un TaskPipeline construit et exécute le graphe, gère les I/O.
- Modèle Graph-First: Le flux de travail est un Graphe Orienté Acyclique (DAG).
- Définition des tâches comme des nœuds, des connexions comme des arêtes.
- Support naturel des motifs fan-out et fan-in.
- API simple: addTask("id", task), connect("fromId", "toId").
- Fan-in: Une tâche recevant plusieurs entrées reçoit une Map (clés = IDs des tâches parentes).
- Exécution: pipeline.run(input) retourne un CompletableFuture (peut être bloquant via .join() ou asynchrone).
- Cycle de vie: TaskPipeline est AutoCloseable, garantissant la libération des ressources (try-with-resources).
- Contexte: PipelineContext pour partager des données/métadonnées thread-safe entre les tâches au sein d'une exécution.
- Mise en cache: Option de mise en cache pour les tâches afin d'éviter les re-calculs.
Au tour de Microsoft de lancer son (Microsoft) Agent Framework, qui semble être une fusion / réécriture de AutoGen et de Semnatic Kernel https://x.com/pyautogen/status/1974148055701028930
- Plus de détails dans le blog post : https://devblogs.microsoft.com/foundry/introducing-microsoft-agent-framework-the-open-source-engine-for-agentic-ai-apps/
- SDK & runtime open-source pour systèmes multi-agents sophistiqués. Unifie Semantic Kernel et AutoGen.
- Piliers :
- Standards ouverts (MCP, A2A, OpenAPI) et interopérabilité.
- Passerelle recherche-production (patterns AutoGen pour l'entreprise).
- Extensible, modulaire, open-source, connecteurs intégrés.
- Prêt pour la production (observabilité, sécurité, durabilité, "human in the loop").
- Relation SK/AutoGen : S'appuie sur eux, ne les remplace pas, simplifie la migration.
- Intégrations futures : Alignement avec Microsoft 365 Agents SDK et Azure AI Foundry Agent Service.
Sortie de Jackson 3.0 (bientôt les Jackson Five !!!) https://cowtowncoder.medium.com/jackson-3-0-0-ga-released-1f669cda529a
- Jackson 3.0.0 a été publié le 3 octobre 2025.
- Objectif : base propre pour le développement à long terme, suppression de la dette technique, architecture simplifiée, amélioration de l'ergonomie.
- Principaux changements :
- Baseline Java 17 requise (vs Java 8 pour 2.x).
- Group ID Maven et package Java renommés en tools.jackson pour la coexistence avec Jackson 2.x. (Exception: jackson-annotations ne change pas).
- Suppression de toutes les fonctionnalités @Deprecated de Jackson 2.x et renommage de plusieurs entités/méthodes clés.
- Modification des paramètres de configuration par défaut (ex: FAIL_ON_UNKNOWN_PROPERTIES désactivé).
- ObjectMapper et TokenStreamFactory sont désormais immutables, la configuration se fait via des builders.
- Passage à des exceptions de base non vérifiées (JacksonException) pour plus de commodité.
- Intégration des "modules Java 8" (pour les noms de paramètres, Optional, java.time) directement dans l'ObjectMapper par défaut.
- Amélioration du modèle d'arbre JsonNode (plus de configurabilité, meilleure gestion des erreurs).
Testcontainers Java 2.0 est sorti https://github.com/testcontainers/testcontainers-java/releases/tag/2.0.0
- Removed JUnit 4 support -> ups
Grails 7.0 est sortie, avec son arrivée à la fondation Apache https://grails.apache.org/blog/2025-10-18-introducing-grails-7.html
- Sortie d'Apache Grails 7.0.0 annoncée le 18 octobre 2025.
- Grails est devenu un projet de premier niveau (TLP) de l'Apache Software Foundation (ASF), graduant d'incubation.
- Mise à jour des dépendances vers Groovy 4.0.28, Spring Boot 3.5.6, Jakarta EE.
Tout pour bien démarrer et développer des agents IA avec ADK pour Java https://glaforge.dev/talks/2025/10/22/building-ai-agents-with-adk-for-java/
- Guillaume a partagé plein de resources sur le développement d'agents IA avec ADK pour Java
- Un article avec tous les pointeurs
- Un slide deck et l'enregistrement vidéo de la présentation faite lors de Devoxx Belgique
- Un codelab avec des instructions pour démarrer et créer ses premiers agents
- Plein d'autres samples pour s'inspirer et voir les possibilités offertes par le framework
- Et aussi un template de projet sur GitHub, avec un build Maven et un premier agent d'exemple
Internet cassé, du moins la partie hébergée par AWS #hugops https://www.theregister.com/2025/10/20/aws_outage_amazon_brain_drain_corey_quinn/
- Panne majeure d'AWS (région US-EAST-1) : problème DNS affectant DynamoDB, service fondamental, causant des défaillances en cascade de nombreux services internet.
- Réponse lente : 75 minutes pour identifier la cause profonde; la page de statut affichait initialement "tout va bien".
- Cause sous-jacente principale : "fuite des cerveaux" (départ d'ingénieurs AWS seniors).
- Perte de connaissances institutionnelles : des décennies d'expertise critique sur les systèmes AWS et les modes de défaillance historiques parties avec ces départs.
- Prédictions confirmées : un ancien d'AWS avait anticipé une augmentation des pannes majeures en 2024.
- Preuves de la perte de talents :
- Plus de 27 000 licenciements chez Amazon (2022-2025).
- Taux élevé de "départs regrettés" (69-81%).
- Mécontentement lié à la politique de "Return to Office" et au manque de reconnaissance de l'expertise.
- Conséquences : les nouvelles équipes, plus réduites, manquent de l'expérience nécessaire pour prévenir les pannes ou réduire les temps de récupération.
- Perspective : Le marché pourrait pardonner cette fois, mais le problème persistera, rendant les futurs incidents plus probables.
React a gagné "par défaut" https://www.lorenstew.art/blog/react-won-by-default/
- React domine par défaut, non par mérite technique, étouffant ainsi l'innovation front-end.
- Choix par réflexe ("tout le monde connaît React"), freinant l'évaluation d'alternatives potentiellement supérieures.
- Fondations techniques de React (V-DOM, complexité des Hooks, Server Components) vues comme des contraintes actuelles.
- Des frameworks innovants (Svelte pour la compilation, Solid pour la réactivité fine, Qwik pour la "resumability") offrent des modèles plus performants mais sont sous-adoptés.
- La monoculture de React génère une dette technique (runtime, réconciliation) et centre les compétences sur le framework plutôt que sur les fondamentaux web.
- L'API React est complexe, augmentant la charge cognitive et les risques de bugs, contrairement aux alternatives plus simples.
- L'effet de réseau crée une "prison": offres d'emploi spécifiques, inertie institutionnelle, leaders choisissant l'option "sûre".
- Nécessité de choisir les frameworks selon les contraintes du projet et le mérite technique, non par inertie.
- Les arguments courants (maturité de l'écosystème, recrutement, bibliothèques, stabilité) sont remis en question; une dépendance excessive peut devenir un fardeau.
- La monoculture ralentit l'évolution du web et détourne les talents, nuisant à la diversité essentielle pour un écosystème sain et innovant.
- Promouvoir la diversité des frameworks pour un écosystème plus résilient et innovant.
WebAssembly 3 est sortie https://webassembly.org/news/2025-09-17-wasm-3.0/
Data et Intelligence ArtificielleUUIDv4 ou UUIDv7 pour vos clés primaires ? Ça dépend… surtout pour les bases de données super distribuées ! https://medium.com/google-cloud/understanding-uuidv7-and-its-impact-on-cloud-spanner-b8d1a776b9f7
- UUIDv4 : identifiants entièrement aléatoires.
- Cause des problèmes de performance dans les bases de données relationnelles (ex: PostgreSQL, MySQL, SQL Server) utilisant des index B-Tree.
- Inserts aléatoires réduisent l'efficacité du cache, entraînent des divisions de pages et la fragmentation.
- UUIDv7 : nouveau standard conçu pour résoudre ces problèmes.
- Intègre un horodatage (48 bits) en préfixe de l'identifiant, le rendant ordonné temporellement et "k-sortable".
- Améliore la performance dans les bases B-Tree en favorisant les inserts séquentiels, la localité du cache et réduisant la fragmentation.
- Problème de UUIDv7 pour certaines bases de données distribuées et scalables horizontalement comme Spanner :
- La nature séquentielle d'UUIDv7 (via l'horodatage) crée des "hotspots d'écriture" (points chauds) dans Spanner.
- Spanner distribue les données en "splits" (partitions) basées sur les plages de clés. Les clés séquentielles concentrent les écritures sur un seul "split".
- Ceci empêche Spanner de distribuer la charge et de scaler les écritures, créant un goulot d'étranglement ("anti-pattern").
- Quand ce n'est PAS un problème pour Spanner :
- Si le taux d'écriture total est inférieur à environ 3 500 écritures/seconde pour un seul "split".
- Le hotspot est "bénin" à cette échelle et n'entraîne pas de dégradation de performance.
- Solutions pour Spanner :
- Principe clé : S'assurer que la première partie de la clé primaire est NON séquentielle pour distribuer les écritures. UUIDv7 peut être utilisé, mais pas comme préfixe.
- Nouvelle conception ("greenfield") :
- ▪︎ Utiliser une clé primaire non-séquentielle (ex: UUIDv4 simple).
- Pour les requêtes basées sur le temps, créer un index secondaire sur la colonne d'horodatage, mais le SHARDER (ex: shardId) pour éviter les hotspots sur l'index lui-même.
- Migration (garder UUIDv7) :
- ▪︎ Ajouter un préfixe de sharding : Introduire une colonne `shard` calculée (ex: `MOD(ABS(FARM_FINGERPRINT(order_id_v7)), N)`) et l'utiliser comme PREMIER élément d'une clé primaire composite (`PRIMARY KEY (shard, order_id_v7)`).
- Réordonner les colonnes (si clé primaire composite existante) : Si la clé primaire est déjà composite (ex: (order_id_v7, tenant_id)), réordonner en (tenant_id, order_id_v7). Cela aide si tenant_id a une cardinalité élevée et distribue bien. (Un tenant_id très actif pourrait toujours nécessiter un préfixe de sharding supplémentaire).
RAG en prod, comment améliorer la pertinence des résultats https://blog.abdellatif.io/production-rag-processing-5m-documents
- Démarrage rapide avec Langchain + Llamaindex: prototype fonctionnel, mais résultats de production jugés "subpar" par les utilisateurs.
- Ce qui a amélioré la performance (par ROI):
- Génération de requêtes: LLM crée des requêtes sémantiques et mots-clés multiples basées sur le fil de discussion pour une meilleure couverture.
- Reranking: La technique la plus efficace, modifie grandement le classement des fragments (chunks).
- Stratégie de découpage (Chunking): Nécessite beaucoup d'efforts, compréhension des données, création de fragments logiques sans coupures.
- Métadonnées à l'LLM: L'injection de métadonnées (titre, auteur) améliore le contexte et les réponses.
- Routage de requêtes: Détecte et traite les questions non-RAG (ex: résumer, qui a écrit) via API/LLM distinct.
Créer un serveur MCP (mode HTTP Streamable) avec Micronaut et quelques éléments de comparaison avec Quarkus https://glaforge.dev/posts/2025/09/16/creating-a-streamable-http-mcp-server-with-micronaut/
- Micronaut propose désormais un support officiel pour le protocole MCP.
- Exemple : un serveur MCP pour les phases lunaires (similaire à une version Quarkus pour la comparaison).
- Définition des outils MCP via les annotations @Tool et @ToolArg.
- Point fort : Micronaut gère automatiquement la validation des entrées (ex: @NotBlank, @Pattern), éliminant la gestion manuelle des erreurs.
- Génération automatique de schémas JSON détaillés pour les structures d'entrée/sortie grâce à @JsonSchema.
- Nécessite une configuration pour exposer les schémas JSON générés comme ressources statiques.
- Dépendances clés : micronaut-mcp-server-java-sdk et les modules json-schema.
- Testé avec l'inspecteur MCP et intégration avec l'outil Gemini CLI.
- Micronaut offre une gestion élégante des entrées/sorties structurées grâce à son support JSON Schema riche.
Un agent IA créatif : comment utiliser le modèle Nano Banana pour générer et éditer des images (en Java, avec ADK) https://glaforge.dev/posts/2025/09/22/creative-ai-agents-with-adk-and-nano-banana/
- Modèles de langage (LLM) deviennent multimodaux : traitent diverses entrées (texte, images, vidéo, audio).
- Nano Banana (gemini-2.5-flash-image-preview) : modèle Gemini, génère et édite des images, pas seulement du texte.
- ADK (Agent Development Kit pour Java) : pour configurer des agents IA créatifs utilisant ce type de modèle.
- Application : Base pour des workflows créatifs complexes (ex: agent de marketing, enchaînement d'agents pour génération d'assets).
Un vieil article (6 mois) qui illustre les problèmes du format de fichier YAML https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell
- YAML est extrêmement complexe malgré son objectif de convivialité humaine.
- Spécification volumineuse et versionnée (YAML 1.1, 1.2 diffèrent significativement).
- Comportements imprévisibles et "pièges" (footguns) courants :
- Nombres sexagésimaux (ex: 22:22 parsé comme 1342 en YAML 1.1).
- Tags (!.git) pouvant mener à des erreurs ou à l'exécution de code arbitraire.
- "Problème de la Norvège" : no interprété comme false en YAML 1.1.
- Clés non-chaînes de caractères (on peut devenir une clé booléenne True).
- Nombres accidentels si non-guillemets (ex: 10.23 comme flottant).
- La coloration syntaxique n'est pas fiable pour détecter ces subtilités.
- Le templating de documents YAML est une mauvaise idée, source d'erreurs et complexe à gérer.
- Alternatives suggérées :
- TOML : Similaire à YAML mais plus sûr (chaînes toujours entre guillemets), permet les commentaires.
- JSON avec commentaires (utilisé par VS Code), mais moins répandu.
- Utiliser un sous-ensemble simple de YAML (difficile à faire respecter).
- Générer du JSON à partir de langages de programmation plus puissants :
- ▪︎ Nix : Excellent pour l'abstraction et la réutilisation de configuration.
- Python : Facilite la création de JSON avec commentaires et logique.
Gros binz dans la communauté Ruby, avec l'influence de grosses boîtes, et des pratiques un peu douteuses https://joel.drapper.me/p/rubygems-takeover/
MéthodologiesLes qualités d'une bonne documentation https://leerob.com/docs
- Rapidité
- Chargement très rapide des pages (préférer statique).
- Optimisation des images, polices et scripts.
- Recherche ultra-rapide (chargement et affichage des résultats).
- Lisibilité
- Concise, éviter le jargon technique.
- Optimisée pour le survol (gras, italique, listes, titres, images).
- Expérience utilisateur simple au départ, complexité progressive.
- Multiples exemples de code (copier/coller).
- Utilité
- Documenter les solutions de contournement (workarounds).
- Faciliter le feedback des lecteurs.
- Vérification automatisée des liens morts.
- Matériel d'apprentissage avec un curriculum structuré.
- Guides de migration pour les changements majeurs.
- Compatible IA
- Trafic majoritairement via les crawlers IA.
- Préférer cURL aux "clics", les prompts aux tutoriels.
- Barre latérale "Demander à l'IA" référençant la documentation.
- Prêt pour les agents
- Faciliter le copier/coller de contenu en Markdown pour les chatbots.
- Possibilité de visualiser les pages en Markdown (ex: via l'URL).
- Fichier llms.txt comme répertoire de fichiers Markdown.
- Finition soignée
- Zones de clic généreuses (boutons, barres latérales).
- Barres latérales conservant leur position de défilement et état déplié.
- Bons états actifs/survol.
- Images OG dynamiques.
- Titres/sections lienables avec ancres stables.
- Références et liens croisés entre guides, API, exemples.
- Balises méta/canoniques pour un affichage propre dans les moteurs de recherche.
- Localisée
- Pas de /en par défaut dans l'URL.
- Routage côté serveur pour la langue.
- Localisation des chaînes statiques et du contenu.
- Responsive
- Excellents menus mobiles / support Safari iOS.
- Info-bulles sur desktop, popovers sur mobile.
- Accessible
- Lien "ignorer la navigation" vers le contenu principal.
- Toutes les images avec des balises alt.
- Respect des paramètres système de mouvement réduit.
- Universelle
- Livrer la documentation "en tant que code" (JSDoc, package).
- Livrer via des plateformes comme Context7, ou dans node_modules.
- Fichiers de règles (ex: AGENTS.md) avec le produit.
- Évaluations et modèles spécifiques recommandés pour le produit.
Microsoft va imposer une politique de Return To Office https://www.businessinsider.com/microsoft-execs-explain-rto-mandate-in-internal-meeting-2025-9
- Microsoft impose 3 jours de présence au bureau par semaine à partir de février 2026, débutant par la région de Seattle
- Le CEO Satya Nadella explique que le télétravail a affaibli les liens sociaux nécessaires à l'innovation
- Les dirigeants citent des données internes montrant que les employés présents au bureau "prospèrent" davantage
- L'équipe IA de Microsoft doit être présente 4 jours par semaine, règles plus strictes pour cette division stratégique
- Les employés peuvent demander des exceptions jusqu'au 19 septembre 2025 pour trajets complexes ou absence d'équipe locale
- Amy Coleman (RH) affirme que la collaboration en personne améliore l'énergie et les résultats, surtout à l'ère de l'IA
- La politique s'appliquera progressivement aux 228 000 employés dans le monde après les États-Unis
- Les réactions sont mitigées, certains employés critiquent la perte d'autonomie et les bureaux inadéquats
- Microsoft rattrape ses concurrents tech qui ont déjà imposé des retours au bureau plus stricts
- Cette décision intervient après 15 000 licenciements en 2025, créant des tensions avec les employés
Comment Claude Code est né ? (l'histoire de sa création) https://newsletter.pragmaticengineer.com/p/how-claude-code-is-built
- Claude Code : outil de développement "AI-first" créé par Boris Cherny, Sid Bidasaria et Cat Wu.
- Performance impressionnante : 500M$ de revenus annuels, utilisation multipliée par 10 en 3 mois.
- Adoption interne massive : Plus de 80% des ingénieurs d'Anthropic l'utilisent quotidiennement, y compris les data scientists.
- Augmentation de productivité : 67% d'augmentation des Pull Requests (PR) par ingénieur malgré le doublement de l'équipe.
- Origine : Commande CLI simple évoluant vers un outil accédant au système de fichiers, exploitant le "product overhang" du modèle Claude.
- Raison du lancement public : Apprendre sur la sécurité et les capacités des modèles d'IA.
- Pile technologique "on distribution" : TypeScript, React (avec Ink), Yoga, Bun. Choisie car le modèle Claude est déjà très performant avec ces technologies.
- "Claude Code écrit 90% de son propre code" : Le modèle prend en charge la majeure partie du développement.
- Architecture légère : Simple "shell" autour du modèle Claude, minimisant la logique métier et le code (suppression constante de code superflu).
- Exécution locale : Privilégiée pour sa simplicité, sans virtualisation.
- Sécurité : Système de permissions granulaire demandant confirmation avant chaque action potentiellement dangereuse (ex: suppression de fichiers).
- Développement rapide :
- Jusqu'à 100 releases internes/jour, 1 release externe/jour.
- 5 Pull Requests/ingénieur/jour.
- Prototypage ultra-rapide (ex: 20+ prototypes d'une fonctionnalité en quelques heures) grâce aux agents IA.
- Innovation UI/UX : Redéfinit l'expérience du terminal grâce à l'interaction LLM, avec des fonctionnalités comme les sous-agents, les styles de sortie configurables, et un mode "Learning".
Le 1er Café IA publique a Paris
ConférencesLa liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :
- 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)
- 5-6 novembre 2025 : Tech Show Paris - Paris (France)
- 5-6 novembre 2025 : Red Hat Summit: Connect Paris 2025 - Paris (France)
- 6 novembre 2025 : dotAI 2025 - Paris (France)
- 6 novembre 2025 : Agile Tour Aix-Marseille 2025 - Gardanne (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)
- 19 novembre 2025 : SREday Paris 2025 Q4 - Paris (France)
- 19-21 novembre 2025 : Agile Grenoble - Grenoble (France)
- 20 novembre 2025 : OVHcloud Summit - Paris (France)
- 21 novembre 2025 : DevFest Paris 2025 - Paris (France)
- 24 novembre 2025 : Forward Data & AI Conference - Paris (France)
- 27 novembre 2025 : DevFest Strasbourg 2025 - Strasbourg (France)
- 28 novembre 2025 : DevFest Lyon - Lyon (France)
- 1-2 décembre 2025 : Tech Rocks Summit 2025 - Paris (France)
- 4-5 décembre 2025 : Agile Tour Rennes - Rennes (France)
- 5 décembre 2025 : DevFest Dijon 2025 - Dijon (France)
- 9-11 décembre 2025 : APIdays Paris - Paris (France)
- 9-11 décembre 2025 : Green IO Paris - Paris (France)
- 10-11 décembre 2025 : Devops REX - Paris (France)
- 10-11 décembre 2025 : Open Source Experience - Paris (France)
- 11 décembre 2025 : Normandie.ai 2025 - Rouen (France)
- 14-17 janvier 2026 : SnowCamp 2026 - Grenoble (France)
- 29-31 janvier 2026 : Epitech Summit 2026 - Paris - Paris (France)
- 2-5 février 2026 : Epitech Summit 2026 - Moulins - Moulins (France)
- 2-6 février 2026 : Web Days Convention - Aix-en-Provence (France)
- 3 février 2026 : Cloud Native Days France 2026 - Paris (France)
- 3-4 février 2026 : Epitech Summit 2026 - Lille - Lille (France)
- 3-4 février 2026 : Epitech Summit 2026 - Mulhouse - Mulhouse (France)
- 3-4 février 2026 : Epitech Summit 2026 - Nancy - Nancy (France)
- 3-4 février 2026 : Epitech Summit 2026 - Nantes - Nantes (France)
- 3-4 février 2026 : Epitech Summit 2026 - Marseille - Marseille (France)
- 3-4 février 2026 : Epitech Summit 2026 - Rennes - Rennes (France)
- 3-4 février 2026 : Epitech Summit 2026 - Montpellier - Montpellier (France)
- 3-4 février 2026 : Epitech Summit 2026 - Strasbourg - Strasbourg (France)
- 3-4 février 2026 : Epitech Summit 2026 - Toulouse - Toulouse (France)
- 4-5 février 2026 : Epitech Summit 2026 - Bordeaux - Bordeaux (France)
- 4-5 février 2026 : Epitech Summit 2026 - Lyon - Lyon (France)
- 4-6 février 2026 : Epitech Summit 2026 - Nice - Nice (France)
- 12-13 février 2026 : Touraine Tech #26 - Tours (France)
- 26-27 mars 2026 : SymfonyLive Paris 2026 - Paris (France)
- 31 mars 2026 : ParisTestConf - Paris (France)
- 16-17 avril 2026 : MiXiT 2026 - Lyon (France)
- 22-24 avril 2026 : Devoxx France 2026 - Paris (France)
- 23-25 avril 2026 : Devoxx Greece - Athens (Greece)
- 6-7 mai 2026 : Devoxx UK 2026 - London (UK)
- 22 mai 2026 : AFUP Day 2026 Lille - Lille (France)
- 22 mai 2026 : AFUP Day 2026 Paris - Paris (France)
- 22 mai 2026 : AFUP Day 2026 Bordeaux - Bordeaux (France)
- 22 mai 2026 : AFUP Day 2026 Lyon - Lyon (France)
- 17 juin 2026 : Devoxx Poland - Krakow (Poland)
- 4 septembre 2026 : JUG Summer Camp 2026 - La Rochelle (France)
- 17-18 septembre 2026 : API Platform Conference 2026 - Lille (France)
- 5-9 octobre 2026 : Devoxx Belgium - Antwerp (Belgium)
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 !
dimanche 9 février 2025 • Duration 01:17:13
Arnaud et Emmanuel discutent des nouvelles de ce mois. On y parle intégrité de JVM, fetch size de JDBC, MCP, de prompt engineering, de DeepSeek bien sûr mais aussi de Maven 4 et des proxy de répository 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 LangagesLes evolutions 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 editeurs de frameworks et les utilisateurs s'arrachent les cheveux et vont continuer
- garantir l'integrite du code et des données en enlevant des APIs existantes historiquemnt
- agents dynamiques, setAccessible, Unsafe, JNI
- Article expliques les risques percus par les mainteneurs de la JVM
- Franchement c'est un peu leg sur les causes l'article, 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.
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 connait la valeur fetch size par default de son driver?
- en fonction de vos use cases, ca peut etre devastateur
- exemple d'une appli qui retourne 12 lignes et un fetch size de oracle a 10, 2 a/r pour rien
- et si c'est 50 lignres retournées
- la base de donnée est le facteur limitant, pas Java
- donc monter sont fetch size est avantageux, on utilise la memoire de Java pour eviter la latence
Quarkus annouce les MCP servers project pour collecter les servier MCP en Java https://quarkus.io/blog/introducing-mcp-servers/
- MCP d'Anthropic
- introspecteur de bases JDBC
- lecteur de filke system
- Dessine en Java FX
- demarrables facilement avec jbang
- et testes avec claude desktop, goose et mcp-cli
- permet d'utliser le pouvoir des librarires 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
Apache Flink sur Kibernetes https://www.decodable.co/blog/get-running-with-apache-flink-on-kubernetes-2
- un article tres complet ejn deux parties sur l'installation de Flink sur Kubernetes
- installation, setup
- mais aussi le checkpointing, la HA, l'observablité
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/
- tres introductif et pre RAG
- le direct prompt qui est un appel direct au LLM: limitations de connaissance et de controle de l'experience
- eval: evaluer la sortie d'un LLM avec plusieurs techniques mais fondamentalement une fonction qui prend la demande, la reponse et donc un score numerique
- evaluation via un LLM (le meme ou un autre), ou evaluation humaine
- tourner les evaluations a partir de la chaine de build amis aussi en live vu que les LLMs puvent evoluer.
- Decrit les embedding notament d'image amis 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 cahllengert sur ses marges
- 90% de marge quand meme parce que les plus gros GPU et CUDA qui est proprio
- mais des approches ardware 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 intermediares alternatifs par Apple, Google OpenAI etc
- L'article parle de DeepSkeek qui est venu mettre une baffe dans le monde des LLMs
- Ils ont construit un competiteur a gpt4o et o1 avec 5M de dollars et des capacites de raisonnements impressionnant
- la cles c'etait beaucoup de trick d'optimisation mais le plus gros est d'avoir des poids de neurores sur 8 bits vs 32 pour les autres.
- et donc de quatizer au fil de l'eau et au moment de l'entrainement
- beaucoup de reinforcemnt learning innovatifs aussi
- et des Mixture of Expert
- donc ~50x moins chers que OpenAI
- Donc plus besoin de GPU qui on des tonnes de vRAM
- ah et DeepSeek est open source
- un article de semianalytics change un peu le narratif
- le papier de DeepSkeek en dit long via ses omissions
- par ensemple les 6M c'est juste l'inference en GPU, pas les couts de recherches et divers trials et erreurs
- en comparaison Claude Sonnet a coute 10M en infererence
- DeepSeek a beaucoup de CPU pre ban et ceratins post bans evalués a 5 Milliards en investissement.
- leurs avancées et leur ouverture reste extremement interessante
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 diversite de données et de volume
- entrent les lakehouse
- Et particulierement Apache Iceberg issue de Netflix
- gestion de schema mais flexible
- notion de copy en write vs merge on read en fonction de besoins
- garantie atomicite, coherence, isoliation et durabilite
- notion de time travel et rollback
- partitions cachées (qui abstraient la partition et ses transfos) et evolution de partitions
- compatbile avec les moteurs de calcul comme spark, trino, flink etc
- explique la structure des metadonné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 Agent IA autonomes qui gèrent leur propre planning hallucinent un peu trop et n'établissent pas un plan correctement, ou ne le suive 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.
Vulnérabilité des proxy Maven https://github.blog/security/vulnerability-research/attacks-on-maven-proxy-repositories/
- Quelque 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é a 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 nomage avec les encodings.
- Bref, rien n'est simple ni niveau. Tout système rajoute de la compléxité 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 remplace (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 :
- 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 que mvn clean install.
- 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.
- 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.
- 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.
- Java 17 requis pour exécuter Maven
Un article sur les feature flags avec Unleash https://feeds.feedblitz.com//911939960/0/baeldungImplement-Feature-Flags-in-Java-With-Unleash
- Pour A/B testing et des cycles de développements 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
Keycloak 26.1 https://www.keycloak.org/2025/01/keycloak-2610-released.html
- detection des noeuds via la proble base de donnée aulieu echange reseau
- virtual threads pour infinispan et jgroups
- opentelemetry tracing supporté
- et plein de fonctionalités de sécurité
Les grands morceaux du coût et 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% loc du lieu
- 29% traiteur et café
- 12% standiste
- 5% frais speaker (donc pas tous)
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'intervient, quitte à y metttre un peu d'huile de coude (ou de phalange pour le coup).
ConférencesLa 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)
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 232 - Versions version Sloubi
lundi 18 mai 2020 • Duration 01:16:29
Dans cet épisode, Audrey et Emmanuel se retrouvent en tête à tête pour discuter du nouveau drama à venir dans l'écosystème Java (Leyden), de l'actualité des librairies, des annonces de GitHub, de bonnes pratiques en matière d'outils et d'architecture et bien évidemment de la prochaine appli tendance : Stop Covid.
Enregistré le 7 mai 2020
Téléchargement de l'épisode LesCastCodeurs-Episode–232.mp3
News LangagesProjet Leyden: images statiques pour Java mais pas GraalVM native image
Améliorer les performance de G1 "out of the box"
LibrairiesComment utiliser Mockito avec Quarkus
Micrometer sort la 1.5 une LTS
Spring rattrape son retard sur OpenJDK dans le schéma de version
InfrastructureLes bonnes pratiques pour écrire un fichier Dockerfile pour les développeurs
ICANN rejette la vente de .org a une boite privée
CloudLes release notes de Google Cloud sur une seule page
WebCloudflare implement le draft d'HTTP/3 et compare
DataLes choses que j'aurai aimé que plus de développeurs connaissent sur les bases de données
OutillageGitHub est gratuit pour les équipes
- si on downgrade sur le gratuit, on perd quoi https://help.github.com/en/github/getting-started-with-github/faq-about-changes-to-githubs-plans#if-i-downgrade-from-github-team-or-a-legacy-plan-to-github-free-what-features-will-i-lose
Récap des annonces GitHub Satellite 2020
Controler Kubernetes de Google Spreadsheet
ArchitectureLes microservices, trop fort pour toi - opinion
Méthodologies Sécurité Loi, société et organisationApple et Google offrent un framework de notification d'exposition (au COVID–19)
Stop-Covid
- La France se met dans une impasse face à Apple avec StopCovid
- StopCovid ou encore ?
- StopCovid : anonymat et autorités
Devoxx UK du 24 au 26 Août 2020
AlpesCraft reportée à l'automne
DevOps D-Day le 9 octobre 2020 - Le CfP est ouvert jusqu'au 15 juin
DevFest Nantes les 15 et 16 octobre 2020 - Le CfP est ouvert jusqu'au 31 mai
FrontSide le 15 octobre 2020
Volcamp.io les 15 et 16 octobre 2020
DevFest Toulouse les 5 et 6 novembre 2020
FlowCon les 9 et 10 novembre 2020
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
LCC 231 - Interview sur Vim avec Romain Lafourcade
lundi 4 mai 2020 • Duration 01:45:55
Romain Lafourcade échange avec Guillaume et Emmanuel sur Vim: comment il y est venu, ce qu'il a d'unique, comment l'appréhender, et bien d'autres choses encore.
Enregistré le 16 avril 2020
Téléchargement de l'épisode LesCastCodeurs-Episode–231.mp3
Interview Ta vie, ton œuvreGitHub de Romain
Je m'appelle Romain Lafourcade. Je suis Graphiste de formation et j'ai chopé le virus du développement en montant mon premier site en 1999. Je suis Développeur pour de vrai depuis 2007. J'ai beaucoup fait de JS, bien sûr, ainsi que du Flash et du Silverlight. Ça fait quelques années que je me concentre sur React et Vue.js.
Aujourd'hui je suis chez Publicis Sapient France, une "agence digitale" de premier plan où je m'amusais déjà très bien jusqu'à l'arrivée des ex-Xebians. Et maintenant c'est encore mieux. Je participe actuellement à la préparation d'une conférence "front" pointue pour la fin de l'année : FrontSide.
Mes intérêts personnels gravitent autour de la programmation fonctionnelle : Haskell, Elixir.
Et Vim, bien sûr.
Vim intro Qu'est-ce que Vim en 2 phrases ?Vim est un éditeur de texte orienté programmation, puissant et non-conformiste.
Que peut on dire de la différence entre un IDE et un éditeur ?Dans son expression la plus simple, un éditeur de texte est un outil permettant l'édition de fichiers de texte brut. Certains sont "standalone", comme Vim, Nano ou Gedit, se concentrant pour la majeure partie sur des questions liées à l'édition de texte et déléguant les autres tâches liée au développement logiciel à d'autres outils "standalone". C'est la vision UNIX traditionnelle :
"Écrivez des programmes qui effectuent une seule chose et qui le font bien."
D'autres sont "intégrés" avec d'autres outils pour offrir une expérience plus "clé en main", les IDEs.
L'histoire de VimVim est né au début des années 90 sur Amiga, pour la même raison que tous les autres clones de vi : l'impossibilité légale d'utiliser vi sur tel ou tel système. De tous les clones, c'est celui qui s'est le plus démarqué de l'original et c'est le seul qui est encore développé activement en 2020.
Les archéologues en herbe trouveront quelques liens sur le sujet en bas de page.
Disponibilité de Vim sur les distros de baseUn des arguments les plus souvent mis en avant pour convaincre les mécréants de l'utilité d'apprendre Vim est "Vim est partout".
Mais l'ubiquité légendaire de Vim est un mythe. Ce qui est disponible dans tous les dérivés d'UNIX, c'est la commande vi. Le programme qui assure le boulot peut être Vim comme il peut être Elvis, Nvi, Busybox vi ou même le vi original. Et même quand c'est Vim, c'est souvent un build limité. Du coup, connaître Vim n'est peut-être pas aussi utile que connaître vi.
Et c'est sans compter sur le fait que le système d'exploitation le plus largement utilisé, n'a pas de commande vi ou vim du tout.
Vim vs emacs: la guerre ancestraleet aussi débile que toutes les guerres ancestrales.
Les variantes de VimNeovim est un fork récent promettant une modernisation des processus de développement et du code.
Vim au quotidien Pas de curseur?????On a bien un curseur, mais les dispositifs de pointage sont rarement activés par défaut. Même si c'est tout à fait possible d'utiliser la souris ou le trackpad (:help 'mouse'), on est clairement dans un monde centré autour du clavier.
Les modes (normal, insert, visual, etc.)L'édition modale, un concept initié par vi, ne fait pas l'unanimité. L'idée, c'est qu'on est toujours dans un mode réservé à une certaine catégorie d'activités. Un des effets positifs, et aussi un des repoussoirs de ce mécanisme est que ça permet d'avoir un vocabulaire plus varié et expressif que dans un éditeur classique. Le déplacement du curseur, par exemple, se fait traditionnellement avec une combinaison de 4 touches de directions et 1 modificateurs, donc 8 déplacements possibles : 1 caractère vers la droite ou la gauche, 1 mot vers la droite ou la gauche, 1 ligne vers le haut ou le bas, 1 paragraphe vers le haut ou le bas. C'est très pauvre, même en ajoutant Home, End, Page Up et Page Down. Dans vim, on a tout ça, bien sûr, plus "début du mot", "fin du mot", "prochaine/précédente occurrence de ", "prochaine/précédente occurrence de ", "ligne numéro X", "n lignes vers le haut ou le bas", "haut/bas/milieu de la fenêtre", "marqueur X", etc. Rien jjque ça c'est dingue. Et comme on est dans un éditeur modal, tous ces mouvement peuvent être utilisés avec des opérateurs et là c'est la folie.
Les modes les plus couramment utilisés sont :
- le mode normal, le mode par défaut quand on fait $ vim foo.txt, qui est utilisé pour naviguer, chercher, copier, coller, etc.
- le mode d'insertion, qui permet… d'insérer du texte dans le document,
- les modes visuels, qui permettent de sélectionner une portion de texte,
- le mode ligne de commande, qui permet d'utiliser les commandes héritées d'Ex : :write, :s, :g, etc.
C'est pour moi LA killer feature de Vim, surtout visible dans les modes normal et visuels. En gros, le modèle d'interaction est basé sur la notion de langage. Il y a :
- des "opérateurs", des verbes conjugués à l'impératif comme "efface", "copie", "remplace",
- des compléments d'objet directs comme "la ligne 78", "ce texte entre parenthèses", "d'ici à la fin du paragraphe",
- des compléments d'objet indirects comme "en dessous de la ligne 27" ou "au début du buffer",
- et des compléments circonstanciels comme "10 fois".
Avec tout ça, on donne des commandes à la machine selon une syntaxe proche de celle d'un langage parlé et elle obéit : "colle le texte contenu dans le presse papier 50 fois", "copie (d'ici) jusqu'à la prochaine parenthèse ouvrante", etc. Dans un éditeur de texte classique, la première se dit "ctrl+v ctrl+v … ctrl+v", ce qui n'a presque rien à voir avec la tâche telle qu'imaginée : "colle truc 50 fois" est devenu "colle colle … colle", ce qui est très peu expressif. Notre pensée abstraite de haut niveau doit être transformée en une série d'action concrètes de bas niveau qui n'ont que très peu de sens et souvent rien à voir avec la pensée haut niveau. Dans Vim, la première commande se dit "50p", ce qui est très proche de la tâche telle qu'imaginée.
La syntaxe est peut-être un peu sèche et les éléments sont peut-être ordonnés différemment qu'en français, mais ça reste tout à fait abordable et très proche de ce qu'on a dans la tête. L'étape suivante est exactement la même que lorsqu'on apprend une langue étrangère : penser dans la langue.
Apprendre Vim, c'est apprendre une grammaire simple et un vocabulaire expressif qui s'enrichit au fur et à mesure où on avance.
La notion de rangeVim hérite plein de trucs de vi, qui hérite lui-même plein de trucs de ex. Dans vim, toutes les commandes qui commencent par un "deux points" sont des "commandes Ex", qui agissent sur des lignes car ex était un éditeur de ligne. Comme dans ex, ces commandes prennent des adresses (une seule ligne) et des ranges (de telle ligne à telle autre). Une ligne peut être indiquée par son numéro, par un offset, par une recherche, par un marqueur, etc. C'est un outil extrêmement puissant.
Par exemple, la commande suivante copie les lignes 10 à 24 en fin de document :
:10,24t$Celle-ci rassemble toutes les lignes contenant const dans la fonction courante vers le haut du corps de la fonction :
:?func?,/^}/g/const/m?func?C'est d'une élégance insoutenable.
D'autres concepts de base (window, tab, buffer, split, etc.)On a toujours au moins un "buffer", une "fenêtre" et une "tab page". Un buffer peut être affiché dans une ou plusieurs "fenêtres", une "tab page" est un rassemblement de "fenêtres". Contrairement à la plupart des éditeurs de texte il ne peut pas y avoir de relation 1-à–1 entre un buffer et une fenêtre ou entre un buffer et une tab page. C'est un piège dans lequel tous les nouveaux tombent.
Tu l'utilises pour quels genre d'éditionJ'utilise Vim de deux façons différentes : de longues sessions de programmation et des éditions rapides (config, git commit, etc.), pratiquement tout le temps dans un terminal.
Les colorschemesLa dernière fois que j'ai checké il y en avait littéralement des milliers, du simple qui marche partout, utilisé par quelques barbus ronchons, à l'usine à gaz buggée à mort, utilisée par la dernière génération de boutonneux. J'en ai réalisé quelques uns, même, comme Apprentice, ainsi qu'un modèle simple à utiliser. Maintenant qu'on peut utiliser toutes les valeurs hexadécimales, même dans le terminal, c'est la fête.
Pour trouver des colorschemes, je recommande VimColors.
Les binding Vim dans les IDEsPeut-être utile pour accompagner l'apprentissage de Vim mais passé un certain niveau c'est l'uncanny valley. C'est un des problèmes causés par des années de Vim, d'ailleurs : ça rend exigeant.
Le terminalLe nerf de la guerre d'un Vim qui fonctionne tmux?
Vim écosystème La gestion des pluginsSi on a beaucoup de plugins ça peut devenir compliqué sans plugin manager. Le plus populaire est vim-plug.
Les plugins les plus utilisés
- fugitive, un client Git bien intégré à Vim
- surround, permet de jouer avec les paires de caractères : (), {}, etc. Souvent considéré comme un indispensable.
- ALE, beaucoup plus qu'un linter,
- YouCompleteMe, beaucoup plus que de l'autocompletion.
Vim et les plugins VSCode (via LSP)
Les spécifications de pas mal de fonctionnalités de Visual Studio Code sont actuellement publiées, ce qui permet à d'autres outils de développement de bénéficier de l'étendue de son ecosystème. Il y a LSP, par exemple, qui permet d'implémenter des serveurs pour n'importe quel langage et des clients pour n'importe quel éditeur. Les clients à suivre pour Vim son lsc et CoC. Peut-être aurons-nous une intégration native un jour ? Il y a aussi DAP qui est utilisé par Vimspector pour fournir une interface de débogage avancée.
La navigation entre fichiersUn faux problème, souvent résolu en mode "brute force" par manque de volonté d'apprendre à se servir des fonctionnalités de base. Du coup on a des dizaines de plugins fantaisistes et des générations de vimmers superficiels. C'est triste. En vrai, :edit, :find et :buffer sont rapides et versatiles. Il suffit de prendre le temps d'apprendre à s'en servir.
Il existe un nombre hallucinant de plugins pour naviguer les fichiers alors que c'est si simple et rapide avec les outils natifs.
La vérification orthographiqueLa fonctionnalité est incluse de base. Il faut néanmoins l'activer avec :help 'spell' et, si on veut de l'aide pour autre chose que de l'anglais, installer des dictionnaires. Ça sonne plus compliqué que ça ne l'est vraiment.
Des tips Indentation- Tout savoir sur l'indentation dans Vim
- gg=G pour réparer l'indentation d'un buffer en entier
- :help 'equalprg' pour indiquer à Vim quel programme externe utiliser
Voir :help modeline pour des exemples. Je ne suis pas hyper fan en général que je trouve ça un peu sale de mélanger data et metada mais ça peut être bien en bas d'un fichier Markdown dont on sait qu'il va être édité dans Vim :
[//]: # ( Vim: set spell spelllang=en: )En pratique, je suggère plutôt editorconfig pour les réglages d'indentation et compagnie.
Vim et gitFugitive, mentionné plus haut, est très populaire. Pour ma part, je préfère garder mon éditeur de texte pour éditer du texte et utiliser d'autres outils spécialisés pour d'autres tâches spécialisées. J'aime beaucoup tig, que j'utilise au jour le jour depuis des années, et j'ai découvert git-jump récemment, qui a fait une entrée fracassante dans mon workflow.
Sinon, pour les commandes basiques, un simple :!git fait largement le taf.
Les macrosUne macro est une séquence de commande. On peut enregistrer une macro dans le registre q :
qq 02wciwfoo qet la rejouer sur plusieurs lignes, par exemple :
:23,45normal! @qMais avec un peu de pratique on peut complètement zapper la phase « enregistrement » :
:23,45normal! 02wciwfooLes macros sont un outil d'automatisation extraordinaire qui épate facilement le spectateur. Voir :help complex-repeat.
Copier dans le buffer de l'OS (ctrl+c ctrl+v)Pour ça, l'idéal est d'avoir un Vim compilé avec la fonctionnalité "clipboard". Si c'est pas possible on peut bricoler des trucs avec xclip/pbcopy/etc. ou utiliser les fonctionnalités de copier/coller du terminal.
Le clipboard système est représenté par le registre + dans vim. Donc copier dans le clipboard: "+y, et ensuite coller, "+p. Note que " est la sélection de registre.
Remplacer via des expressions régulièresLa substitution, basée sur les expressions régulières ou pas, est une pratique courante dans Vim. Par exemple, pour remplacer toutes les occurrences de java par kotlin dans le buffer courant :
:%s/java/kotlin/gVoir :help :s et le site Vim Regular Expressions 101 car Vim utilise un dialecte spécial.
Mode vi dans le shellReadline, la bibliothèque utilisée par bash pour gérer l'invite de commande, utilise des raccourcis inspirés par Emacs par défaut. On peut changer ça en ajoutant la ligne suivante dans ~/.inputrc:
set editing-mode viPersonnellement, je préfère garder les raccourcis par défaut et éditer mes commandes directement dans Vim, avec Ctrl-x Ctrl-e. Si vous ave mis le mode vi, alors pour éditer la commande dans vim, tapez ESC v.
VimdiffOn peut utiliser Vim pour afficher des diffs côte à côte et même pour gérer les merge conflicts dans Git.
Voir :help diff pour les détails sanglants.
Aller plus loin Livres Histoire de vim- The History Of Vim
- Where Vim Came From
- Bram Moolenaar Discusses Developing the Popular Text Editor, How He Uses It, and Version 8
- 10 Questions with Vim's creator, Bram Moolenaar
- Vim Galore
- Idiomatic Vimrc
- Seven habits of effective text editing
- :help user-manual
- Vimways
- #vim sur Freenode
- #vim-fr sur freenode
- r/vim sur reddit
- le tag Vim sur Stack Overflow
- le site Stack Exchange dédié à Vim
- Vim 9 ?
- Comment quitter Vim de manière… créative
- Vim cheatsheet
- Bonne explication d'un beau vimrc en détails
- Tmux et Vim ensemble avec les bons plugins
- Been using Vim for two years because I didn't figure how to quit it!
- Vim primer and tutorial
- Resources Vim
- Des stickers pour clavier Mac pour se rappeler des raccourcis
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
LCC 230 - Du confinement à la déconfiture
jeudi 16 avril 2020 • Duration 01:39:36
Encore un épisode très long, mais cette fois il a une bonne excuse : on a censuré aucune blague ! Cet épisode nous a fait beaucoup de bien à enregistrer c'est pourquoi nous avons tout gardé, même ce qui serait normalement passé en off, en espérant qu'il vous fera autant de bien à l'écouter ! Et ce n'est pas pour autant qu'Audrey, Emmanuel et Guillaume ne disent que des bêtises : on parle bien évidemment de tout ce qui fait l'actu tech (Java, Kotlin, Micronaut, Quarkus, Vert.x, Docker et autres) mais aussi de surveillance en cette période très particulière.
Enregistré le 10 avril 2020
Téléchargement de l'épisode LesCastCodeurs-Episode–230.mp3
NewsJe m'appelle Audrey et je travaille pour… Rest In Peace Carl Quinn
Langages Le JDK 14 en GA
Un état de l'art de Java, tendances et données
D'ici 6 mois, Eclipse nécessitera le JDK 11 pour s'exécuter
José Paumard publie 50h de cours sur Youtube
JEP proposées pour le JDK 15 :
Spring Framework 5.2.5
Spring Boot 2.3.0.M4
Support du liveness et Readiness Probes de Kubernetes dans Spring Boot
Micronaut 2.0 M1
Un benchmark de Micronaut comparant SpringBoot et Quarkus - mais un peu controversé
Quarkus 1.3 et Eclipse MicroProfile 3.3
InfrastructureDockerAwesome Compose
Docker GitHub Action
Docker annonce la Compose Specification
Kubernetes 1.18
Fleet: un outil de management de cluster Kubernetes
Kit de survie Kubernetes pour les développeurs [avec K3S]
Tutoriel Spring Boot : Création De Microservices Déployés Sur Google Cloud
WebLes développeurs de Wikipédia choisissent Vue, plutôt que React
Outillage GitHub mobile
On peut maintener repasser une PR ouverte en Draft sur GitHub
- (18 fonctionnalités GitLab passent open source)[https://about.gitlab.com/blog/2020/03/30/new-features-to-core/]
Building Secure and Reliable Systems - Le SRE pour les nuls
Loi, société et organisation Bill Gates quitte le conseil d'administration de Microsoft
Contre la censure en ligne, RSF bâtit une immense « Bibliothèque libre » dans « Minecraft »
Première victoire en justice contre la reconnaissance faciale !
Surveillance publicitaire : la CNIL se défile de nouveau sur le consentement aux cookies
Pandémie et surveillance :
- La crise sanitaire ne justifie pas d'imposer les technologies de surveillance
- Coronavirus : le risque est d'entrer dans « une nouvelle ère de surveillance numérique invasive »
- Covid–19 et la surveillance
DevHints.io
Screen.io
Krisp.ai
Processing de texte dans le shell
ConférencesGitHub Satellite en virtuel les 6 et 7 mai
DevFest Lille le 12 juin 2020 - Le CfP est ouvert jusqu'au 15 avril
Voxxed Days Luxembourg du 17 au 19 juin 2020
Devoxx France du 1 au 3 juillet 2020
Sunny Tech les 2 et 3 juillet 2020
Devoxx UK du 24 au 26 Août 2020
AlpesCraft reportée à l'automne
DevOps D-Day le 9 octobre 2020 - Le CfP est ouvert jusqu'au 15 juin
DevFest Nantes les 15 et 16 octobre 2020 - Le CfP est ouvert jusqu'au 31 mai
Volcamp.io les 15 et 16 octobre 2020
DevFest Toulouse les 5 et 6 novembre 2020
FlowCon les 9 et 10 novembre 2020
Et encore plus sur Developers Conferences Agenda/List.
Nous contacterSoutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
LCC 229 - Interview sur la sobriété numérique avec Richard Hanna
mercredi 1 avril 2020 • Duration 01:38:22
Dans cet épisode Arnaud et Audrey interviewent Richard, contributeur du Shift Project, un think thank qui œuvre en faveur d'une économie libérée de la contrainte carbone et qui a publié plusieurs rapports en faveur d'une sobriété numérique.
Enregistré le 25 février 2020
Téléchargement de l'épisode LesCastCodeurs-Episode–229.mp3
Interview Ta vie, ton oeuvreRichard Hanna, développeur et coopérateur Fairness et co-animateur du podcast Techologie.
Le Shift Project Numerique & TransitionLes publications numérique et transition
Lean ICTLean ICT : Pour une sobriété numérique
Climat : l'insoutenable usage de la vidéo en ligneClimat : l'insoutenable usage de la vidéo en ligne
Les outils La vidéo pédagogique« Cette vidéo réchauffe le climat :merci de la regarder »
Le guideLe guide pour réduire le poids des vidéos en 5 minutes
CarbonalyserCarbonalyser : l'extension de navigateur qui rend visible l'invisible impact environnemental du net
Déployer la sobriété numériqueDéployer la sobriété numérique
Conclusion« Reset, quel numérique voulons-nous ? »
Nous contacterSoutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
LCC 228 - Conseils sur le télétravail
vendredi 20 mars 2020 • Duration 01:02:56
En cette période de confinement et de Coronavirus, les cast codeurs partagent et échangent leurs points de vue et conseil pour faire du télétravail. En espérant que cela vous aide un petit peu.
Enregistré le 20 mars 2020
Téléchargement de l'épisode LesCastCodeurs-Episode–228.mp3
Interview L'environnement de travailL'organisation
La pièce
Le matériel
Le bureau assis debout (version électrique Ikea et version manivelle)
Les enfants et le conjoint
…
La communication
Le flicage
La disponibilité instantanée L'écrit, la messagerie instantanée et l'oral
…
Le sur ou sous travail
Le burn out (épisode des cast codeurs dédié)
Les pauses
Les horaires
Interview sur la productivité personnelle
Comment compenser la réduction d'interaction sociale
…
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
LCC 227 - Télétravailler une corona dans une main et un gamin dans l'autre
mardi 17 mars 2020 • Duration 01:27:18
Cet épisode parle du coronavirus, des conférences annulées, de la popularité des langages, de GraphQL, de Ghostcat et pleins d'autres choses encore. L'intro date un peu: les infos sur le coronavirus étant encore plus fréquentes que les nouveaux framework JavaScript.
Enregistré le 13 mars 2020
Téléchargement de l'épisode LesCastCodeurs-Episode–227.mp3
News Corona virusLes actions des grosses boites
- pas de meeting
- conf annulées
- limite du travail au bureau
RedMonk ranking - Le langage au top est…
- JavaScript Python Java
- Typescript dans le top 10
- R monte
- Rust stable comme Go (+1)
- Kotlin 19, Scala 13
- Java 8 le plus déployé en prod, 25% Java 11 et non LTS derrière
- Spring 60–80%
- IntelliJ 60–80%, Eclipse 20–25%
- mavenjvs Gradle 66–33 ou 50–50
- 7 ans de dev
- not binary compatible with 0.6 nor 1.0RCx
- Ecrire en scala des applications front
- interop avec les libraries JavaScript
GraalVM se dote d'un advisory board
- Gluon, Red Hat, Amazon, Microdoc, Shopify, Twitter, OCI, Neo4J, Pivotal, ARM et Oracle bien sûr
Gros round d'investissement dans Azul
- investissement / achat: 340 M$
Eclipse MicroProfile GraphQL 1.0
- GraphQL: spec pour generaliser les endpoints en leur donnat lflexibilite en terme de requetage et graph retourné
- make GraphSQL schema available
- execute GraphQL requests
- code first approach
Apache Camel 3.1 et 3.0 déprécié
Le guide de migration de Camel
- amélioration de mémoire
Lightbend recoit 25M d'investissement
- de Dell capital
- pour la partie reactive
- spécifiquement pour le "serverless"
- pas de mention de Scala
OPTIONNEL LightBend - Article sur pourquoi une architecture reactive est importante pour le cloud native
- bonne piqure de rappel
- data localisée par microservice
- les avantages des systèmes event based
ElasticSearch en prod, les choses a savoir
- les concepts de base (Clusters, Nodes, Indices and Shards)
- Quorum
- comment des noeuds rejoingnent le cluster
- segments et le merge
- gestion de la memoire (compressed pointers /!\ inversé, 30GB, 2x memoire sur la machine par rapport au heap) voir https://stackoverflow.com/questions/25120546/trick-behind-jvms-compressed-oops#25120926
- options par workload (write heavy vs read heavy
- topology
- monitoring
La M&A de have i been p0wned: l'histoire de l'abandon
- societe KPMG
- due diligence
- des milliards de questions
- les doutes
- exclusivité
- le risque du changement de stratégie
Les gens ralent car les clusters GKE vont avoir un cout de management de 10c/heure, ce qui change la relation du cluster au développeur (nombre de clusters en parallèle)
Une comparaison des prix des clusters en fonction de leur taille et de leur host provider
Amazon annonce Bottlerocket
- Mise a jour par image recrée plutôt que par package mis a jour
- plus immuable et donc facile en rollback
- par contre chaque host goes down et up
- si orchestrateur c'est ok
- un IDE pour le big data!
- deja integration avec Zeppelin S3
- nouveau Spark, HDFS, Paquet
Les systèmes simples ont moins de downtime
- facile à comprendre, facile à corriger
- plus rapide de monter en competence
- trouver la cause est plus rapide
- solutions simples, plus d'alternatives disponibles
- regles: les fonctionalités de justifient pas la complexité, les idées complexes amènent des implémentations complexes, modifier avant d'ajouter
- challenge de l'automation pour faire avec moins de gens?
OPTIONNEL 11 raisons pour lesquelles vous allez rater vos microservices
- voir les titres de section
OPTIONNEL Retour d'experience sur l'usage incorrect d'un outil bloom filters
- probleme idéal pour bloom filters
- mais suspicieusement plus long que prévu
- profilers
- random access memory >> sequential reading (trop grand pour L3)
- alternative plus simple qui reduit le nombre le chargement memoire, pas la conso memoire
- rebasing, la course au collègue
- garder master green pour la CD
- impossible de faire trops de merge en parallele ou doit faire pleins de rebase
- merge train sequentialise et batch les merges
- pas intuitif (merge bidirectionels dans le temps entre develop, feature branch, release branch, hotfix et master) et cout cognitif haut
- risque grandi de merge conflit
- peut pas rebaser
- continuous delivery != trop de barrières
- en cas de repos multiples ou mono repos, impossible a gérer (microservices)
- ok pour des cycles de release par trimestre avec des equipes sur des releases en parallele
Mesure de la complexité de code: une meilleure mesure
- cyclomatic complexité est un mauvais oracle de la complexité de code
- les logiques conditionnelles emboîtées utilisent notre mémoire de travail (~indentation)
- les fonctions avec des dos d'anes d'indentation multiples sont les pires
- refactorer pour externaliser chaque
Dans Sonarqube cela s'appelle Cognitive Complexity. Voici un exemple sur du code XWiki ou l'on voit très bien visuelement ce que cela veut dire: https://sonarcloud.io/project/issues?id=org.xwiki.commons%3Axwiki-commons&issues=AWzY6RXo8pMOHxUYvkyE&open=AWzY6RXo8pMOHxUYvkyE
SécuritéGhostcat: la faille dans Tomcat de 6 à 9
- dans le protocole Apache JServ (implicitement trusté par Tomcat (cs une requête)
- peut lire le contenu des web apps
- si la webapp peut uploader => activer un remote execution
- upgrader Tomcat 7, 8, 9, si 6, vous êtes dans la merde
- attention Tomcat est embarqué dans pleins d'outils comme Wildfly, Spring Boot etc
Letencrypt révoque 3 millions de certs a multiples domaines
Loi, société et organisationAmicus brief sur le copyright d'API par IBM et Red Hat
- computer interfaces ne sont pas copyrightable
- moteur de l'economie du logiciel
- va etre entendu au printemps
Amicus brief de chercheurs attaqué par Oracle
- payés par Google
OPTIONNEL Les hackers de Equifax contamnés pour crime
- DOJ charcge 4 militaires Chinois
- Struts CVE
La tonte de Yak appliquée à Donarld Knuth
- écrire un livre
- écrire un programme pour ecrire un livre
- invente un langage de programmation pour écrire le programme
- invente un mode de pagination
- design une police de caractère
- écrit un outil pour construire les polices de caractère
- invente un système de version pour son programme
- implémente un langage d'abstraction maison pour les documents imprimés
ANNULÉ - Breizhcamp du 25 au 27 mars 2020
ANNULÉ - MiXiT du 29 au 30 avril 2020
VIRTUEL - GitHub Satellite les 6 et 7 mai
ANNULÉ - RivieraDev du 13 au 15 mai 2020
Devoxx UK du 13 au 15 mai 2020
NewCrafts les 28 et 29 mai 2020
AlpesCraft les 4 et 5 juin 2020
ANNULÉ - Best of Web les 4 et 5 juin 2020
DevFest Lille le 12 juin 2020 - (Le CFP est ouvert)
Voxxed Days Luxembourg du 17 au 19 juin 2020
ANNULÉ - Serverless Days Paris le 1 juillet 2020
NOUVELLE DATE - Devoxx France du 1 au 3 juillet 2020
Sunny Tech les 2 et 3 juillet 2020
Et encore plus sur Developers Conferences Agenda/List ….
Liste d'Aurélie
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/
LCC 226 - Interview sur l'Open Source à la MAIF avec Mathieu Ancelin et François Desmier
lundi 9 mars 2020 • Duration 01:08:46
Dans cet épisode, Mathieu Ancelin et François Desmier sont venus nous parler des produits open source de la MAIF. On parle management d'API, reverse proxy, A/B Testing, feature flipping mais aussi plus généralement de comment on passe d'assureur à éditeur de produits open source.
Enregistré le 13 février 2020
Téléchargement de l'épisode LesCastCodeurs-Episode–226.mp3
Interview Ta vie, ton oeuvreFrançois Desmier Cyber-guru, crypto-saïyan, team ambiancer 2.4 alpha, bytes master et surtout architecte solution à la MAIF, engagé sur #OSSbyMAIF
Mathieu Ancelin Développeur fullstack chez SERLI, je fais du web, des streams, de la data, du cloud majoritairement sur la JVM et j'ai un petit faible pour Scala et la programmation fonctionnelle. Je suis également lead développeur de quelques projets open-source comme Otoroshi, Daikoku, etc. et l'un des organisateurs des Human Talks Poitiers.
Des talks pour aller plus loin :
- Simplifiez vous les microservices avec Otoroshi
- Du mutualisme à l'Open Source
- Opun devenir une plateforme de service
- Vos applications sous stéroïdes avec Otoroshi et Izanami
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Faire un crowdcast ou une crowdquestion
Contactez-nous via twitter https://twitter.com/lescastcodeurs
sur le groupe Google https://groups.google.com/group/lescastcodeurs
ou sur le site web https://lescastcodeurs.com/








