Retour

Explorez tous les épisodes du podcast Les Cast Codeurs Podcast

Plongez dans la liste complète des épisodes de Les Cast Codeurs Podcast. Chaque épisode est catalogué accompagné de descriptions détaillées, ce qui facilite la recherche et l'exploration de sujets spécifiques. Suivez tous les épisodes de votre podcast préféré et ne manquez aucun contenu pertinent.

Rows per page:

1–50 of 340

TitreDateDurée
LCC 332 - Groquik revient, Emmanuel s'en va18 Nov 202501: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.

News

Emmanuel quitte Red Hat après 20 ans https://emmanuelbernard.com/blog/2025/11/13/leaving-redhat/

Langages

Support 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
Librairies

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

Infrastructure

Infinispan 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)
Web

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.
Data et Intelligence Artificielle

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.
Outillage

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.
Architecture

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.
Sécurité

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/

Loi, société et organisation

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é
Rubrique débutant

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
Conférences

La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

Nous contacter

Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs

Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

LCC 331 - Le retour des jackson 506 Nov 202501: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 Langages

GraalVM 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+.
Librairies

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
Cloud

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.
Web

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 Artificielle

UUIDv4 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.
Outillage

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éthodologies

Les 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.
Loi, société et organisation

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

https://www.linkedin.com/pulse/my-first-caf%25C3%25A9-ia-paris-room-full-curiosity-an[…]o-goncalves-r9ble/?trackingId=%2FPHKdAimR4ah6Ep0Qbg94w%3D%3D

Conférences

La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

Nous contacter

Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs

Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

LCC 322 - Maaaaveeeeen 4 !09 Feb 202501: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 Langages

Les 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.
Librairies

Un article sur les fetch size du JDBC et les impacts sur vos applications https://in.relation.to/2025/01/24/jdbc-fetch-size/

  • qui 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
Infrastructure

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é
Data et Intelligence Artificielle

10 techniques de prompt engineering https://medium.com/google-cloud/10-prompt-engineering-techniques-every-beginner-should-know-bf6c195916c7

  • Si vous voulez aller plus loin, l'article référence un très bon livre blanc sur le prompt engineering https://www.kaggle.com/whitepaper-prompt-engineering
  • Les techniques évoquées :
    1. 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.
    1. 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.
    1. 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.
    1. 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.
    1. 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.
    1. 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.
    1. 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.
    1. 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.
    1. 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.
    1. 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.
Outillage

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é.
  • 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.
  • 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.
Architecture

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
Sécurité

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é
Loi, société et organisation

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)
Ask Me Anything

Julien de Provin: J'aime beaucoup le mode "continuous testing" de Quarkus, et je me demandais s'il existait une alternative en dehors de Quarkus, ou à défaut, des ressources sur son fonctionnement ? J'aimerais beaucoup avoir un outil agnostique utilisable sur les projets non-Quarkus sur lesquels j'intervient, quitte à y metttre un peu d'huile de coude (ou de phalange pour le coup).

Conférences

La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

Nous contacter

Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs

Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

LCC 232 - Versions version Sloubi18 May 202001: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 Langages

Projet Leyden: images statiques pour Java mais pas GraalVM native image

Améliorer les performance de G1 "out of the box"

Librairies

Lucene a 20 ans

Quarkus 1.4 est sorti

Comment utiliser Mockito avec Quarkus

Micrometer sort la 1.5 une LTS

Spring rattrape son retard sur OpenJDK dans le schéma de version

Micronaut 2.0 M3

Infrastructure

Les bonnes pratiques pour écrire un fichier Dockerfile pour les développeurs

ICANN rejette la vente de .org a une boite privée

Cloud

Les release notes de Google Cloud sur une seule page

Web

Cloudflare implement le draft d'HTTP/3 et compare

Node.js v14

Data

Les choses que j'aurai aimé que plus de développeurs connaissent sur les bases de données

Redis 6 est sorti

Outillage

Test Containers 1.14

GitHub 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

Spock 2.0 vs JUnit 5.0

Controler Kubernetes de Google Spreadsheet

Gradle 6.4

Architecture

Les microservices, trop fort pour toi - opinion

Méthodologies

COVID vs l'open space

Sécurité Loi, société et organisation

Apple et Google offrent un framework de notification d'exposition (au COVID–19)

Stop-Covid

Conférences

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

Nous contacter

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 Lafourcade04 May 202001: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 œuvre

GitHub 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

Page wikipedia de Vim

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 Vim

Vim 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 base

Un 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 ancestrale

et aussi débile que toutes les guerres ancestrales.

Les variantes de Vim

Neovim 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.
Le concept de verbe / opérateur + movement + destination

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 range

Vim 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'édition

J'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 colorschemes

La 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 IDEs

Peut-ê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 terminal

Le nerf de la guerre d'un Vim qui fonctionne tmux?

Vim écosystème La gestion des plugins

Si 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 fichiers

Un 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 orthographique

La 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 Paramètres custom par fichier via modeline

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 git

Fugitive, 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 macros

Une macro est une séquence de commande. On peut enregistrer une macro dans le registre q :

qq 02wciwfoo q

et la rejouer sur plusieurs lignes, par exemple :

:23,45normal! @q

Mais avec un peu de pratique on peut complètement zapper la phase « enregistrement » :

:23,45normal! 02wciwfoo

Les 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ères

La 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/g

Voir :help :s et le site Vim Regular Expressions 101 car Vim utilise un dialecte spécial.

Mode vi dans le shell

Readline, 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 vi

Personnellement, 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.

Vimdiff

On 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 Ressources Meetups Communauté En vrac Nous contacter

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éconfiture16 Apr 202001: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

News

Je 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 :

Kotlin 1.4 M1

Librairies

Spring Framework 5.2.5
Spring Boot 2.3.0.M4

Support du liveness et Readiness Probes de Kubernetes dans Spring Boot

Eclipse Vert.x 3.9.0

Micronaut 2.0 M1
Un benchmark de Micronaut comparant SpringBoot et Quarkus - mais un peu controversé

Quarkus 1.3 est sorti

Quarkus 1.3 et Eclipse MicroProfile 3.3

Infrastructure

DockerAwesome 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]

Cloud

Tutoriel Spring Boot : Création De Microservices Déployés Sur Google Cloud

Web

NPM racheté par GitHub

Deno 1.0

Angular 9.1
Angular CLI 9.1

Les 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

GitLab 12.8

  • (18 fonctionnalités GitLab passent open source)[https://about.gitlab.com/blog/2020/03/30/new-features-to-core/]

Zoom annonce un gel des fonctionnalités pendant 90 jours pour résoudre les problèmes de confidentialité et de sécurité

Nouvelle UX pour Slack

Méthodologies

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 :

Outils de l'épisode

DevHints.io
Screen.io
Krisp.ai

Rubrique débutant

Processing de texte dans le shell

Conférences

GitHub 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 contacter

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 229 - Interview sur la sobriété numérique avec Richard Hanna01 Apr 202001: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 oeuvre

Richard Hanna, développeur et coopérateur Fairness et co-animateur du podcast Techologie.

Le Shift Project Numerique & Transition

Les publications numérique et transition

Lean ICT

Lean ICT : Pour une sobriété numérique

Climat : l'insoutenable usage de la vidéo en ligne

Climat : 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 guide

Le guide pour réduire le poids des vidéos en 5 minutes

Carbonalyser

Carbonalyser : l'extension de navigateur qui rend visible l'invisible impact environnemental du net

Déployer la sobriété numérique

Déployer la sobriété numérique

Conclusion

Contribuer au Shift Project

« Reset, quel numérique voulons-nous ? »

Nicolas Meilhan: "Devenons les champions du monde de la voiture à 500 kg", l'article de Damien Detcherry pour Atterrissage

Nous contacter

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 228 - Conseils sur le télétravail20 Mar 202001: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 travail

L'organisation
La pièce
Le matériel
Le bureau assis debout (version électrique Ikea et version manivelle)
Les enfants et le conjoint

Le travail en équipe à distance

La communication
Le flicage
La disponibilité instantanée L'écrit, la messagerie instantanée et l'oral

La gestion du temps / journées

Le sur ou sous travail
Le burn out (épisode des cast codeurs dédié)
Les pauses
Les horaires
Interview sur la productivité personnelle

Le lien social

Comment compenser la réduction d'interaction sociale

Nous contacter

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'autre17 Mar 202001: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 virus

Les actions des grosses boites

  • pas de meeting
  • conf annulées
  • limite du travail au bureau
Langages

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

InfoQ meta sondage

  • 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

Sondage sur Scala

Scala.js 1.0.0

  • 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$
Librairies

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
Middleware

ElasticSearch en prod, les choses a savoir

Infrastructure

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
Cloud

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
Outillage

IntelliJ Big Data Tools

  • un IDE pour le big data!
  • deja integration avec Zeppelin S3
  • nouveau Spark, HDFS, Paquet
Architecture

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
Méthodologies

Les trains de merge

  • 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

Retour sur le modèle GitFlow

  • 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 organisation

Amicus 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
Rubrique débutant

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
Conférences

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

Nous contacter

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 Desmier09 Mar 202001: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 oeuvre

Franç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.

D'assureur à éditeur open source

Le GitHub
La philosophie

Le jeu de carte

Le jeu de carte

Sous le capot Otoroshi

Produit
Philosophie
Doc

Daikoku

Produit
Doc

Izanami

Produit
Philosophie
Doc

Niõ

Produit
Doc

Melusine

Produit
Doc

Le futur Conclusion

Des talks pour aller plus loin :

Nous contacter

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 225 - L'épisode du futur25 Feb 202001:25:27

Dans cet épisode en tête à tête, Emmanuel et Audrey discutent des prévisions pour cette nouvelle année, font la part belle au langage avec l'arrivée du JDK 14 mais parlent aussi middleware, web, outillage, et bien sûr loi, société et organisation.

Enregistré le 19 février 2020

Téléchargement de l'épisode LesCastCodeurs-Episode–225.mp3

News

Les prévisions d'Adam Bien pour 2020

Langages

JDK 14 First Release Candidate

Est ce que le projet Loom menace les Java Futures ?
Visualisation de la gestion de la mémoire dans la JVM (Java, Kotlin, Scala, Groovy, Clojure)

Une demi heure pour apprendre Rust

Librairies

Jukebox : une lib pour créer des builders pour les records
JUnit 5.6

Middleware

Créer des images Docker avec Spring Boot 2.3.0 M1
Quarkus 1.2.0.Final

Micronaut 1.3 et Micronaut Data 1.0 GA

Infrastructure

Kubernetes Bug Bounty

Cloud

Formation gratuite Google Cloud en ligne
Elastic Cloud sur Kubernetes (ECK) 1.0 en GA

Web

Angular 9 est maintenant disponible, et le projet Ivy aussi

Introducing Firefox and Edge Support in Cypress 4.0
Le nouveau Microsoft Edge est disponible

Ionic 5

Outillage

Maven est de retour, et il est pas content !

Gradle 6.2
IntelliJ IDEA 2020.1
* JetBrains Mono

Loi, société et organisation

L'Union Européenne envisage une interdiction temporaire de la reconnaissance faciale

La CNIL publie ses recommandations très attendues sur le ciblage publicitaire

La conservation généralisée et indifférenciée des métadonnées épinglée à la CJUE, avec nuance

Coup d'état sur la loi haine

Outils de l'épisode

JQ - un commmand line processor pour JSON
Comment voir (et supprimer) les données envoyées à Facebook par des sites tiers

Rubrique débutant

Java-guide : un guide pour apprendre le Java moderne
Phishing : comment font les hackers, comment vous protéger

Conférences

DevFest du Bout du Monde le 28 février
Breizhcamp du 25 au 27 mars 2020
Devoxx France du 15 au 17 avril 2020
Serverless Days Paris le 24 avril
MiXiT du 29 au 30 avril 2020
GitHub Satellite les 6 et 7 mai
RivieraDev du 13 au 15 mai 2020
Devoxx UK du 13 au 15 mai 2020
NewCrafts les 28 et 29 mai 2020 - Le CfP est ouvert jusqu'au 1 mars
Best of Web les 4 et 5 juin 2020 - Le CfP est ouvert
DevFest Lille le 12 juin 2020 - Le CfP est ouvert jusqu'au 29 février
Sunny Tech les 2 et 3 juillet 2020 - Le CfP est ouvert jusqu'au 28 février
DevFest Toulouse les 5 et 6 novembre 2020 - Le CfP est ouvert

Et encore plus sur Developers Conferences Agenda/List ….

Unconferences

JChateau du 11 au 15 mars 2020

Nous contacter

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 224 - Interview sur le burn out avec Géraldine Karila06 Feb 202001:20:52

Une personne sur 5 fera un burn out au travail pendant sa carrière. Géraldine nous raconte son burn out, comment cela s'est passé, son chemin pour s'en sortir et les recherches qu'elle a fait sur le sujet.

Enregistré le 16 décembre 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–224.mp3

Interview Ta vie, ton oeuvre

Géraldine Karila

Le burn out Les phases Comment récupérer Comment aider une personne en burn out Liens

Test: avez vous des slgnes de burn out
Témoignage sur le burn out dans l'IT ops
Gérer le burn out
Géré son équilibre et sa réslience au travail
Le syndrome de l'épuisement au travail (français)
Les causes de burn out
La confiance

Podcasts

Carl Newport sur le burn out dans nos vies numériques
Travail comme identité, burn out comme style de vie

Nous contacter

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 223 - On peut anonymiser mille fois une personne mais on ne peut pas anonymiser une fois mille personne27 Jan 202001:54:11

Premier épisode de l'année 2020 pour les cast codeurs avec Guillaume, Arnaud et Audrey autour du micro pour parler du JDK 14 bien sûr mais aussi de Quarkus, de WebAssembly, de Kubernetes mais aussi de l'actualité sociétale liée à la tech.

Enregistré le 13 janvier 2020

Téléchargement de l'épisode LesCastCodeurs-Episode–223.mp3

News Langages

JDK 14

Comparaison des GC

Kotlin 1.4 et au-delà, lors de la conférence KotlinConf

Librairies

JHipster 6.6.0
R2DBC 0.8.0 en GA
DropWizard 2.0 released
Spock 2.0 milestone 1 sortie o

Middleware

VMware Rachète Pivotal et Carbon Black
Calendrier de l'Avent d'Elastic
Client RUST pour Elastic Search
Apple open source ServiceTalk à base de Netty

Quarkus 1.1.0

GraalWasm — un moteur WebAssembly dans GraalVM

Infrastructure

kubectl tree
Guide visuel de débug des deploiements Kubernetes
Injecter des Secrets Vault dans des Pods Kubernetes via un Sidecar
Hexa, un CLI sous stéroïdes pour les devs Azure

Web

WebAssembly devient une recommandation du W3C
/e/ une alternative à Android qui prend soin de votre vie privée
Bazel 2.0

Outillage

La Maif continue son mouvement OpenSource avec Daikoku
Améliorer les performances de votre CI en optimisant vos builds Maven ou Gradle - Webinar
Gradle capabilities appliqué au conflit de logging
GitLab 12.6 released with Security Scorecard and Release Evidence * Token-Hunter

Méthodologies

CalVer, le versionning avec des dates

Sécurité

Configurez vos parsers XML en Java pour éviter les XML eXternal Entity (XXE)

Loi, société et organisation

Larry Page and Sergey Brin quittent Google
Plus il y a d'égalité des sexes dans un pays, moins il y a de femmes en STEM
Est ce que le fait qu'Oracle copie l'API S3 d'Amazon était une violation de copyright?
La Russie réussit son test et se coupe de l'Internet mondial avec succès

Spécial France WTF

Les décisions de justice vont enfin être toutes accessibles en ligne gratuitement
Twitter va tester de nouvelles options pour limiter les réponses à un tweet

Outils de l'épisode

Encryptez et envoyez vos fichiers avec https://send.firefox.com/

Rubrique débutant

Comment quitter Vi, version fun

Conférences

Snowcamp du 22 au 25 janvier 2020
Touraine Tech le 31 janvier
FOSDEM les 1 et 2 février
dotSwift le 3 février - Le CfP est ouvert
DevFest Paris le 14 février 2020
DevFest du Bout du Monde le 28 février dotPy le 2 mars - Le CfP est ouvert Breizhcamp du 25 au 27 mars 2020 - Le CfP est ouvert
dotGo le 30 mars - Le CfP est ouvert Devoxx France du 15 au 17 avril 2020
Android Makers Paris les 20 et 21 avril 2020 - Le CfP est ouvert jusqu'au 19 janvier Serverless Days Paris le 24 avril - Le CfP est ouvert jusqu'au 31 janvier
MiXiT du 29 au 30 avril 2020 - Le CfP est ouvert jusqu'au 15 janvier
GitHub Satellite les 6 et 7 mai - Le CfP est ouvert jusqu'au 14 janvier
RivieraDev du 13 au 15 mai 2020 - Le CfP est ouvert jusqu'au 15 février
NewCrafts les 28 et 29 mai 2020 - Le CfP est ouvert jusqu'au 1 mars
Best of Web les 4 et 5 juin 2020 - Le CfP est ouvertDevFest Lille le 12 juin 2020 - Le CfP est ouvert jusqu'au 29 février
Sunny Tech les 2 et 3 juillet 2020 - Le CfP est ouvert jusqu'au 28 février

Et encore plus sur Developers Conferences Agenda/List ….

Unconferences

JChateau

Nous contacter

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 321 - Les évènements écran large21 Jan 202501:13:53

Arnaud et Emmanuel discutent des versions Java, font un résumé de l'ecosystème WebAssembly, discutent du nouveau Model Context Protocol, parlent d'observabilité avec notamment les Wide Events et de pleins d'autres choses encore.

Enregistré le 17 janvier 2025

Téléchargement de l'épisode LesCastCodeurs-Episode–321.mp3 ou en vidéo sur YouTube.

News Langages

java trend par InfoQ https://www.infoq.com/articles/java-trends-report–2024/

  • Java 17 finalement depasse 11 et 8 ~30/33%
  • Java 21 est à 1.4%
  • commonhaus apparait
  • GraalVM en early majority
  • Spring AI et langchain4j en innovateurs
  • SB 3 voit son adoption augmenter

Un bon résumé sur WebAssembly, les différentes specs comme WASM GC, WASI, WIT, etc https://2ality.com/2025/01/webassembly-language-ecosystem.html

  • WebAssembly (Wasm) est un format d'instructions binaires pour une machine virtuelle basée sur une pile, permettant la portabilité et l'efficacité du code.
  • Wasm a évolué à partir d'asm.js, un sous-ensemble de JavaScript qui pouvait fonctionner à des vitesses proches de celles natives.
  • WASI (WebAssembly System Interface) permet à Wasm de fonctionner en dehors des navigateurs Web, fournissant des API pour le système de fichiers, CLI, HTTP, etc.
  • Le modèle de composant WebAssembly permet l'interopérabilité entre les langages Wasm à l'aide de WIT (Wasm Interface Type) et d'ABI canonique.
  • Les composants Wasm se composent d'un module central et d'interfaces WIT pour les importations/exportations, facilitant l'interaction indépendante du langage.
  • Les interfaces WIT décrivent les types et les fonctions, tandis que les mondes WIT définissent les capacités et les besoins d'un composant (importations/exportations).
  • La gestion des packages Wasm est assurée par Warg, un protocole pour les registres de packages Wasm.
  • Une enquête a montré que Rust est le langage Wasm le plus utilisé, suivi de Kotlin et de C++; de nombreux autres langages sont également en train d'émerger.

Un algorithme de comptage a taille limitée ne mémoire a été inventé https://www.quantamagazine.org/computer-scientists-invent-an-efficient-new-way-to-count–20240516/

  • élimine un mot de manière aléatoire mais avec une probabilité connue quand il y a besoin de récupérer de l'espace
  • cela se fait par round et on augmente la probabilité de suppression à chaque round
  • donc au final, ne nombre de mots / la probabilité d'avoir été éliminé donne une mesure approximative mais plutot précise
Librairies

Les contributions Spring passent du CLA au DCO https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring

  • d'abord manuel amis meme automatisé le CLA est une document legal complexe
  • qui peut limiter les contribuitions
  • le DCO vient le Linux je crois et est super simple
  • accord que la licence de la conmtrib est celle du projet
  • accord que le code est public et distribué en perpetuité
  • s'appuie sur les -s de git pour le sign off

Ecrire un serveur MCP en Quarkus https://quarkus.io/blog/mcp-server/ MCP est un protocol proposé paor Antropic pour integrer des outils orchestrables par les LLMs

  • MCP est frais et va plus loin que les outils
  • offre la notion de resource (file), de functions (tools), et de proimpts pre-built pour appeler l'outil de la meilleure façon
  • On en reparlera a pres avec les agent dans un article suivant
  • il y a une extension Quarkus pour simplifier le codage
  • un article plus detaillé sur l'integration Quarkus https://quarkus.io/blog/quarkus-langchain4j-mcp/

GreenMail un mini mail server en java https://greenmail-mail-test.github.io/greenmail/#features-api

  • Utile pour les tests d'integration
  • Supporte SMTP, POP3 et IMAP avec TLS/SSL
  • Propose des integrations JUnit, Spring
  • Une mini UI et des APIs REST permettent d'interagir avec le serveur si par exemple vous le partagé dans un container (il n'y a pas d'integration TestContainer existante mais elle n'est pas compliquée à écrire)
Infrastructure

Docker Bake in a visual way https://dev.to/aurelievache/understanding-docker-part–47-docker-bake–4p05

  • docker back propose d'utiliser des fichiers de configuration (format HCL) pour lancer ses builds d'images et docker compose
  • en gros voyez ce DSL comme un Makefile très simplifié pour les commandes docker qui souvent peuvent avoir un peu trop de paramètres

Datadog continue de s'etendre avec l'acquisition de Quickwit https://www.datadoghq.com/blog/datadog-acquires-quickwit/

  • Solution open-source de recherche des logs qui peut être déployée on-premise et dans le cloud https://quickwit.io/
  • Les logs ne quittent plus votre environment ce qui permet de répondre à des besoins de sécurité, privacy et réglementaire
Web

33 concepts en javascript https://github.com/leonardomso/33-js-concepts

Data et Intelligence Artificielle

Phi 4 et les small language models https://techcommunity.microsoft.com/blog/aiplatformblog/introducing-phi–4-microsoft%e2%80%99s-newest-small-language-model-specializing-in-comple/4357090

  • Phi 4 un SML pour les usages locaux notamment
  • 14B de parametres
  • belle progression de ~20 points sur un score aggregé et qui le rapproche de Llama 3.3 et ses 70B de parametres
  • bon en math (data set synthétique)

Comment utiliser Gemini 2.0 Flash Thinking (le modèle de Google qui fait du raisonnement à la sauce chain of thought) en Java avec LangChain4j https://glaforge.dev/posts/2024/12/20/lets-think-with-gemini–2-thinking-mode-and-langchain4j/

  • Google a sorti Gemini 2.0 Flash, un petit modèle de la famille Gemini
  • the "thinking mode" simule les cheminements de pensée (Chain of thoughts etc)
  • décompose beaucoup plus les taches coplexes en plusiewurs taches
  • un exemple est montré sur le modele se battant avec le probleme

Les recommendations d'Antropic sur les systèmes d'agents https://www.anthropic.com/research/building-effective-agents

  • défini les agents et les workflow
  • Ne recommence pas les frameworks (LangChain, Amazon Bedrock AI Agent etc) le fameux débat sur l'abstraction
  • Beaucoup de patterns implementable avec quelques lignes sans frameworks
  • Plusieurs blocks de complexité croissante
  • Augmented LLM (RAG, memory etc): Anthropic dit que les LLMs savent coordonner cela via MCP apr exemple
  • Second: workflow prompt chaining : avec des gates et appelle les LLMs savent coordonner successivement ; favorise la precision vs la latence vu que les taches sont décomposées en plusieurs calls LLMs
  • Workflow routing: classifie une entree et choisie la route a meilleure: separation de responsabilité
  • Workflow : parallelisation: LLM travaillent en paralllele sur une tache et un aggregateur fait la synthèse. Paralleisaiton avec saucissonage de la tache ou voter sur le meilleur réponse
  • Workflow : orchestrator workers: quand les taches ne sont pas bounded ou connues (genre le nombre de fichiers de code à changer) - les sous taches ne sont pas prédéfinies
  • Workflow: evaluator optimizer: nun LLM propose une réponse, un LLM l'évalue et demande une meilleure réponse au besoin
  • Agents: commande ou interaction avec l;humain puis autonome meme si il peut revenir demander des precisions à l'humain. Agents sont souvent des LLM utilisât des outil pour modifier l'environnement et réagir a feedback en boucle
  • Ideal pour les problèmes ouverts et ou le nombre d'étapes n'est pas connu
  • Recommende d'y aller avec une complexité progressive

L'IA c'est pas donné https://techcrunch.com/2025/01/05/openai-is-losing-money-on-its-pricey-chatgpt-pro-plan-ceo-sam-altman-says/

  • OpenAI annonce que même avec des licenses à 200$/mois ils ne couvrent pas leurs couts associés…
  • A quand l'explosion de la bulle IA ?
Outillage

Ghostty, un nouveau terminal pour Linux et macOS : https://ghostty.org/

  • Initié par Mitchell Hashimoto (hashicorp)
  • Ghostty est un émulateur de terminal natif pour macOS et Linux.
  • Il est écrit en Swift et utilise AppKit et SwiftUI sur macOS, et en Zig et utilise l'API GTK4 C sur Linux.
  • Il utilise des composants d'interface utilisateur native et des raccourcis clavier et souris standard.
  • Il prend en charge Quick Look, Force Touch et d'autres fonctionnalités spécifiques à macOS.
  • Ghostty essaie de fournir un ensemble riche de fonctionnalités utiles pour un usage quotidien.

Comment Pinterest utilise Honeycomb pour améliorer sa CI https://medium.com/pinterest-engineering/how-pinterest-leverages-honeycomb-to-enhance-ci-observability-and-improve-ci-build-stability–15eede563d75

  • Pinterest utilise Honeycomb pour améliorer l'observabilité de l'intégration continue (CI).
  • Honeycomb permet à Pinterest de visualiser les métriques de build, d'analyser les tendances et de prendre des décisions basées sur les données.
  • Honeycomb aide également Pinterest à identifier les causes potentielles des échecs de build et à rationaliser les tâches d'astreinte.
  • Honeycomb peut également être utilisé pour suivre les métriques de build locales iOS aux côtés des détails de la machine, ce qui aide Pinterest à prioriser les mises à niveau des ordinateurs portables pour les développeurs.
Méthodologies

Suite à notre épisode sur les différents types de documentation, cet article parle des bonnes pratiques à suivre pour les tutoriels https://refactoringenglish.com/chapters/rules-for-software-tutorials/

  • Écrivez des tutoriels pour les débutants, en évitant le jargon et la terminologie complexe.
  • Promettez un résultat clair dans le titre et expliquez l'objectif dans l'introduction.
  • Montrez le résultat final tôt pour réduire les ambiguïtés.
  • Rendez les extraits de code copiables et collables, en évitant les invites de shell et les commandes interactives.
  • Utilisez les versions longues des indicateurs de ligne de commande pour plus de clarté.
  • Séparez les valeurs définies par l'utilisateur de la logique réutilisable à l'aide de variables d'environnement ou de constantes nommées.
  • Épargnez au lecteur les tâches inutiles en utilisant des scripts.
  • Laissez les ordinateurs évaluer la logique conditionnelle, pas le lecteur.
  • Maintenez le code en état de fonctionnement tout au long du tutoriel.
  • Enseignez une chose par tutoriel et minimisez les dépendances.

Les Wide events, un "nouveau" concept en observabilité https://jeremymorrell.dev/blog/a-practitioners-guide-to-wide-events/

  • un autre article https://isburmistrov.substack.com/p/all-you-need-is-wide-events-not-metrics
  • L'idée est de logger des evenements (genre JSON log) avec le plus d'infos possible
  • de la machine, la ram, la versiond e l'appli, l'utilisateur, le numero de build qui a produit l'appli, la derniere PR etc etc
  • ca permet de filtrer et grouper by et de voir des correlations visuelles tres rapidement et de zoomer
  • tiens les ventes baisses de 20%
  • tiens en fait ca vient de l'appli andriod
  • tiens aps correle a la version de l'appli
  • mais la version de l'os si!
  • le deuxieme article est facile a lire
  • le premier est un guide d'usage exhaustif du concept

Entre argumenter et se donner 5 minutes https://signalvnoise.com/posts/3124-give-it-five-minutes

  • on veut souvent argumenter aka poser des questions en ayant déjà la reponse en soi emotionnellement
  • mais ca amene beaucoup de verbiage
  • donner 5 minutes à l'idée le temps d'y penser avant d'argumenter
Loi, société et organisation

Des juges fédéraux arrêtent le principe de la neutralité du net https://www.lemonde.fr/pixels/article/2025/01/03/les-etats-unis-reviennent-en-arriere-sur-le-principe-de-la-neutralite-du-net_6479575_4408996.html?lmd_medium=al&lmd_campaign=envoye-par-appli&lmd_creation=ios&lmd_source=default

  • la neutralité du net c'est l'interdiction de traiter un paquet différemment en fonction de son émetteur
  • Par exemple un paquet Netflix qui serait ralenti vs un paquet Amazon
  • Donald trump est contre cette neutralité.
  • À voir les impacts concrets dans un marché moins régulé.
Rubrique débutant

Un petit article sur les float vs les double en Java https://www.baeldung.com/java-float-vs-double

  • 4 vs 8 bytes
  • precision max de 7 vs 15
  • echele 10^38 vs 10^308 (ordre de grandeur)
  • perf a peu pret similaire
  • sauf peut etre pour des modeles d'IA qui vont privilegier une taille plus petite parfois
  • attention overflow et les accumulation d'erreurs d'approximation BigDecimal
Conférences

La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

Nous contacter

Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs

Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

LCC 222 - Interview sur Android avec Pierre-Yves Ricau et Romain Guy - l'intégrale24 Dec 201902:21:28

Dans cet épisode, Emamnuel s'assoie autour de la table avec Romain Guy et Pierre-Yves Ricau pour discuter Android. Cela fait longtemps que la partie 1 est sortie. Désolé de ce retard. Du coup cet épisode reprend l'entièreté de l'interview. Pour ceux qui se rappellent bien de la partie 1, vous pouvez sauter à la minute 62 environ.

Enregistré le 18 septembre 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–222.mp3

Interview Ta vie, ton oeuvre

Romain Guy
Pierre-Yves Ricau
Square

Intro

Android
Andoid sources

Android 10

JetPack

JetPack
Supporter des versions differentes d'Android
JetPack Compose
Toolkit UI reactif

Jetifier

Java 8

D8
R8

Compilation et autre JIT Kotlin

Kotlin langage

optimisations

Coeurs
Batterie

Dark theme et reduction de consommation de batterie

Injection de dépendance

Dagger 1
Dagger 2
Koin

Fuite Mémoire

LeakCanary

Data structure et boxing
Access mémoire, algorithmique et structure de données

Log-structured merge-tree

Les attaques et les protections

Chiffrage
Isolation
Fuite d'info par effet de bord

Microservices

De l'intéret pour le mobile ?
Innovation vs standardisation
Monorepo
Gradle
Bazel

Podcast et resources Android

Android Leaks en Français
Android Developers Backstage
Android Dialogs

Android Weekly
Flutter

Nous contacter

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 221 - Massacre à la tronçonneuse13 Dec 201901:40:36

Guillaume, Arnaud et Emmanuel descendent dans les profondeurs des garbage collectors, Java 14, GraalVM 19.3 (Java is back!) et bien sûr pleins d'autres choses !

Enregistré le 5 décembre 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–221.mp3

News Langages

GraalVM 19.3 with JDK 11 Support.
GraalVM se met aussi à WebAssembly

Microsoft ready to contribute to OpenJDK

Trois JEPs prévus pour être intégrés à Java 14 :

Stephen Colebourne râle sur le nouveau switch

Tricher le GC de Go avec du poids mort

  • le GC se declence tous les 2x de heap
  • si pas d'alloc, ca veut dire qu'il vide jusqu'à 1x amis declenche des GC super fréquement
  • donc en allouant (virtuellement) in tableau de 10Go, on reduit de temps entre GC
  • le cout d'un concurrent mark sweep c'est de marquer les objets vivants (les morts ont peut de cout)
  • et les co-routines pendant une phase de mark-sweep doivent faire un travaille de mark ce qui les ralenties
  • donc moins de GC veut dire plus rapide
  • c'est le cout a payer pour un GC avec 1 ou peu de parametres.

Shenandoah: eliminer les mote de pointeurs en avant

  • Shenandoah bouge les objets sans mettre a jour ses pointeurs
    • juste garde une copie dans l'objet meme de ses references
    • puis mets a jour les references de maniere concurrente en parallele de l'appli
    • et enfin peut virer les objets.
  • par default Shenandoah demande un word supplémentaire par objet
    • si le word == l'objet, on est normal, sinon il pointe vers la nouvelle copie de l'objet
    • 5 à 10% de mémoire suppl´mentaire en pratique
  • peut reutiliser le mark word mais comparaison chere surtout a faire a chaque read-barrier
    • uniquement pendnt un GC et sur les objkets dans des colelctions set => peu frequents
    • dans les tests le code de décoding supplémentaire est pas visible dans les benchmarks
  • mais ils ont eliminé les read barrier en load-reference-barrier qui sont moins frequentes en nombre d'objet
  • meilleure densité mémoire, moins de pression sur le CPU cache, plus de throughput
Librairies

Micronaut en Trial dans le tech radar de ThoughtWorks et Quarkus en assess

Middleware

Le Camel a trois bosses

  • un ensemble de projets (Camel, Camel K, Camel extensions pour Quarkus)
  • nouveau site web
  • Java 11 support et abandon de Java 8 durant 2020
  • Camel core modularisé et moins de classes à démarrer, reduire la reflection
  • support de GraalVM via Quarkus
  • DSL typesafe de definition de endpoint
  • Coeur reactif
  • Integration avec microprofile
  • nouveaux composants ( - graphql - 4 more AWS components - Debezium components)
Infrastructure

Sonatype racheté
Annonce par Sonatype du rachat

  • par une boite de private equity…
  • il est temps de backuper central

Docker à la découpe. Docker Enterprise racheté par Mirantis
Les fondateurs de Google tournent la page

Cloud

AppEngine Java 11 Runtime FAQ.
Pas bien les Fat JAR dans les images de conteneur
Helm 3 est sorti

Web

.org est vendu, sauvons les .org ( Ils ont réussit à fâcher Kohsuke ).

Data

R2DBC 0.8
Exposer les entités persistées dans vos API ou pas

  • Plus simple, une seul objet
  • plus compliquer des details d'implementations (nouveau champ d'un cote ou de l'autre)
  • accumulation d'annotations pour abstraire ses mod¡eles (JSON, JPA)
  • associations géré en proxy dans JPA et en id ou null dans API
  • V2 de l'API
  • aggregation des données dans l'API
Outillage

La matrice arrive dans Jenkins Pipelines.
Jenkins Health Advisor par CloudBees.
L'experience zsh de Julien Ponge

Cédric explose le mythe du scripting vs déclaratif dans Gradle
Comment éviter l'enfer des dépendances avec Gradle 6

Méthodologies

L'humain est résiliant aux chocs de la vie mais pas tant que cela `au chomage de longue durée

  • etude
  • Plus on est dans un pays développé, plus on est heureux
  • on est plus heureux maintenant qu'il y a quelques années (croissance)
  • plus on est riche, plus on est heureux
Loi, société et organisation

Save your code on Software Heritage Archive.

Conférences Nous contacter

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 220 - Interview sur le métier de CTO avec Dimitri Baeli03 Dec 201901:26:38

Dans cet épisode, Dimitri Baeli est venu discuter avec Audrey et Emmanuel du métier de CTO et de Tech Rocks, la conf qui leur est dédiée (prochaine édition le 4 décembre 2019 à Paris).

Enregistré le 4 octobre 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–220.mp3

Interview Ta vie ton oeuvre C'est quoi TechRocks ?

Tech.Rocks c'est avant tout la volonté de construire un réseau de leaders tech qui échangent sur leur problématiques. Activités :

  • Une conférence annuelle: 4 Dec
  • Des Meetups mensuels à Paris (et j'espère en province en 2020)
  • Un Slack avec 500 CTOs
  • Un groupe dit « Core » à vocation de Think Tank pour explorer les questions difficiles des grosses équipes. Un groupe restreint pour vraiment bien se connaître en croissance maîtrisée.
  • Un podcast et quelques publications (salaires des CTOs)
Les 6 aspects du metier Vision et decision Tech

Quels sont les "nice to have" dans une expérience professionnelle pour devenir CTO ?

Est ce qu'un CTO doit maîtriser toute la stack ?

Orga equipes (agilite, usine logicielle)

Responsabilité dans le choix de l'organisation des équipes

Posture du CTO (Orga perso, négociateur, exemplaire, CoDir, …)

C'est quoi la journée type d'un CTO ?

Est ce que l'on peut être CTO et avoir une vie perso ?

Quelles sont les différentes facettes du rôle de CTO ?

Management & Leadership

Quel est le rôle du CTO en terme de management ?

Et si tu dois te faire accepter par une équipe déjà constituée ?

Board : Quand tu rentres dans une boite, comment tu vérifies que tu as carte blanche.

Le recrutement

Comment monter ton équipe au tout départ ? Tu prends plutot quelques personnes chacunes spécialisées dans son truc ou tu prends des profils plus généralistes ?

Comment identifier les profils dont tu as besoin quand l'équipe grossit ?

Product Management (implication)

La feature pour le client X vs travail plus générique et réutilisable par tous les clients

Vente et client Conclusion Nous contacter

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 219 - En direct de Devoxx Belgium 201913 Nov 201900:59:35

Episode en direct de Devoxx Belgique où nous vous donnons nos talks préférés.

Enregistré le 8 novembre 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–219.mp3

Direct de Devoxx

Tous les talks sont disponible sur YouTube. Utilisez la fonction recherche ensuite. Si vous trouvez un talk, ouvrez une pull request sur Le GitHub des cast codeurs pour améliorer ses shownotes et mentionnez @emmanuelbernard. Merci :)

Keynotes

Audrey Vidéo
Venkat Vidéo
Security Vidéo

Trends

Beaucoup de core java: cadence 6 mois, loom
GraalVM / Micronaut / Quarkus / Spring Boot

Event driven / Kafka
AI / ML
Microservices
K8s et cloud patterns
Kotlin
Security appliquée (web, microservices)
Serverless
Ops CI / CD
Reactive (co-routines, reactive tx)

Peu d'infos sur

Peu de front
Pas/peu d'android

Microprofile (connu)

Conferences UI micro frontend

Micro FrontEnd new Relic
Nerdlet nerdpack

Looks like modules in Java
Shared dependencies
Several artifacts like view, app, overlay, extension points

Consistent error and logging
Layout management

SDK for url state sharing, config et components UI partages

Unified GraphQL server between front ends and Microservices backend

Sacrificed freedom of teams for better parallel work

Feedback :

  • Communication is still key
  • Find the right balance
Docker build systems

BuildKit
API for the docker file directives
But needs golang

Jib
Uses maven envrionment
No need for docker daemon, creates the right tarball and push it

negative:

  • maven only
  • does not cache maven dependencies
  • not very extensible

Buildpacks.io

CNCF sandbox
Can create different packs
Needs a CLI

Diabolical developer These Songs Would Make Some Great Code Comments

Vidéo

Comment réussir ton talk de Chet

Aussi l'initiative Young blood du ParisJUG

Dev oops JUnit 5 Kotlin

Bootiful Kotlin

Visitor pattern avec les lambdas

De José Paumard

Victor sur refactoring pendant trois heures Introversion

Cédric Champeau sur sa vie d'introverti

Nous contacter

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 218 - Le cloud souverain est mort, vive le cloud souverain !23 Oct 201901:52:02

Dans cet épisode, Arnaud déclare forfait et laisse Guillaume et Audrey discuter en tête à tête des nouveautés de Spring, Quarkus, JHipster, Kubernetes ou encore v8 mais aussi Cloud Souverain, reconnaissance faciale, élections présidentielles américaines et GAFAM.

Enregistré le 15 octobre 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–218.mp3

News Langages

Le JDK 13 en General Availability

  • Dynamic CDS Archives
  • ZGC: Uncommit Unused Memory
  • Reimplement the Legacy Socket API
  • Switch Expressions (Preview)
  • Text Blocks (Preview)

Nicolai Parlog couvre la liste des nouveautés de Java 9 à 13 dans une présentation détaillée.

Le site Baeldung publie le résultat de son sondage sur l'écosystème Java, très orienté Spring.

Librairies

Les drivers JDBC Oracle dispo sur Maven Central

JHipster v6.4.0

Quarkus 0.23.2

Spring 5.2 en GA

Spring Boot 2.1.9

Middleware

Crowdcast de Fabien Baligand sur les voting-only nodes dans Elastic

Recette magique pour la mise en place d'un plug-in dans l'agent Java Elastic APM

Cloud

Kubernetes 1.16

Testcontainersjava 1.12.2

Web

SameSite cookie pour des cookies plus sûr… va ça va péter pour le SSO

V8 release v7.8

Inside look at modern web browser (part 1)

Microsoft pourrait apporter son navigateur Edge à Linux

Techniques pour faire charger les web app plus rapidement, mais sur un "feature-phone"

Data

PostgreSQL 12

Outillage

DevEditor pour éditer ses posts pour DEV (en wysiwyg et exporter en markdown)

Commentaires multi ligne dans GitHub

Sécurité

Faille de sécurité critique dans iTerm2

Loi, société et organisation

Meetup change ses conditions tarifaires, et ça fait mal
* Framasoft offre une alternative open source : Mobilizon

L'affaire Epstein pousse Richard Stallman à démissionner du MIT et de la FSF

Reconnaissance faciale et démocratie, ça pars mal.

A peine annoncé, Libra est déjà en difficulté

Cloud souverain, épisode 2, le retour.

Elections présidentielles américaines de 2020, réseaux sociaux et désinformation, on prends les mêmes et on recommence.

Facebook et Google dans le viseur de la justice, et plus seulement européenne.

Outils de l'épisode

Un jeu de carte pour sensibiliser vos équipes aux biais cognitifs

Conférences

KOTLIN/EverywhereParis le 19 octobre 2019.
DevFest Nantes les 21 et 22 octobre 2019.
Voxxed Microservices 21 au 23 octobre 2019.
ScalaIO du 29 au 31 octobre a Lyon. Thème programmation fonctionnelle.
Devoxx Belgique du 4 au 8 novembre 2019.
Bdx.io le 15 novembre 2019.
DevOps D-Day les 13 et 14 novembre 2019.
Codeurs en Seine le 21 novembre 2019.
Snowcamp du 22 au 25 janvier 2020 - Le CfP est ouvert.
DevFest Paris le 14 février 2020 - Le CfP est ouvert.

Nous contacter

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 217 - Interview sur Android partie 1 avec Pierre-Yves Ricau et Romain Guy01 Oct 201901:03:45

Dans cet épisode, Emamnuel s'assoie autour de la table avec Romain Guy et Pierre-Yves Ricau pour discuter Android. Interview longue donc découpée en deux.

Enregistré le 18 septembre 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–217.mp3

Interview Ta vie, ton oeuvre

Romain Guy
Pierre-Yves Ricau
Square

Intro

Android
Andoid sources

Android 10

JetPack

JetPack
Supporter des versions differentes d'Android
JetPack Compose
Toolkit UI reactif

Jetifier

Java 8

D8
R8

Compilation et autre JIT Kotlin

Kotlin langage

optimisations

Coeurs
Batterie

Dark theme et reduction de consommation de batterie

Injection de dépendance

Dagger 1
Dagger 2
Koin

Nous contacter

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 216 - L'épisode où on a perdu le compte16 Sep 201901:26:46

Dans cet épisode (qui est bien le 216 et pas le 217 !) Antonio, Audrey et Emmanuel reviennent sur les nouveautés du JDK 13 et discutent sécurisation d'API, authentification OAuth 2, Kubernetes, Android 10 mais aussi télétravail et vie privée.

Enregistré le 11 septembre 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–216.mp3

News Langages

Java 13 sort incessamment sous peu
Crowdcast de José Paumard sur les JEP sorties ce dernier mois

Go 1.13 est sorti
Fin de support pour Python 2
Langage de validation de configuration

Librairies

Spring 5.2 RC2 est dispo
Vert.x 4 milestone 2

Middleware

Sécuriser une API REST
Un autre article sur OAuth 2 et OIDC

Elastic Stack 7.3.0
Elastic attaque en justice Search Guard pour violation de droit d'auteur et voilà pourquoi

Infrastructure

Avoir son serveur mail est dur… ou pas

Comment monter son serveur email securisé en 2h

Cloud

Pourquoi développer sur Kubernetes pue

Web

Firefox va bloquer les cookies tiers et cryptomineurs par défaut

Angular 8.2

Mobile

Android 10

Data

SQL Server Change Data Capture et Debezium
Regression polynomique comme approximation et alternative à des réseaux neuronaux

Outillage

Interview Julien Dubois sur JHipsterConf via InfoQ France
Maven 3.6.2
Git 2.23.0

Méthodologies

Les bonnes pratiques du télétravail

Sécurité

La mort annoncée des langages memory unsafe

Loi, société et organisation

Tech Against Terrorism met en garde contre la décentralisation du Web et l'open-source, qui seraient profitables au terrorisme et l'extémisme.
Une base de donnée Facebook contenant des numéros de téléphones d'utilisateurs se retrouve en ligne
« Portabilité des données » : sous pression, Facebook riposte

Conférences

DevFest Toulouse le 3 octobre 2019.
Neo4j Online Developer Expo and Summit (NODES) le 10 octobre 2019.
KOTLIN/EverywhereParis le 19 octobre 2019.
DevFest Nantes les 21 et 22 octobre 2019.
Voxxed Microservices 21 au 23 octobre 2019.
ScalaIOdu 29 au 31 octobre a Lyon. Thème programmation fonctionnelle.
Devoxx Belgique du 4 au 8 novembre 2019.
Bdx.io le 15 novembre 2019.
DevOps D-Day les 13 et 14 novembre 2019.
Codeurs en Seine le 21 novembre 2019. Snowcamp du 22 au 25 janvier 2020 - Le CfP est ouvert.

Nous contacter

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 215 - Nous avons des frustrations parce que nous combattons le changement des choses05 Aug 201901:26:50

Arnaud et Emmanuel bravent les chaleurs pour discuter des tendances Java, des collections immuables (d'où le titre de l'épisode, une citation d'Alan Watts), de sondage de la population de développeurs, d'event storming, de lois et de data structures.

Enregistré le 31 juillet 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–215.mp3

News Langages

Rapport sur les tendances Java par InfoQ
Collections immuables en Java : ni maintenant, ni jamais
Yaegi : un nouveau compilateur pour Go
Zulu 8 inclut maintenant le support de TLS 1.3, permettant aux applications Java 8 (serveurs, clients, peu importe) de négocier automatiquement TLS 1.3 sans modification du code. Ajoutez simplement -XX:+UseOpenJSSE

Sondage

L'état des développeurs: sondage JetBrains2019

  • Langage
    • Java le langage principal pour 34% (JavaScript 40%) mais leseul langage pour 44% de ceux ci
    • OS de dev: Windows un peu en tête mais sinon égal
    • polyglot
  • Apps
    • Backend 60% / front 46%)
    • Mobile 23%
    • data analysis (13%) / ML (7%)
    • ne developpe pas (13%)
    • polyapp
  • OpenSource
    • 56% contribuent à l'open source dont 37% plusieurs fois par an ou plus
  • Tests
    • aucun (16%)
  • Mobile
    • 83% font de l'Android et 59% iOS
    • Frameworks cross-platforms 42: react native, 30 flutter, 29: cordova, 28 Ionic
  • Outils
    • 9% IDE cloud
    • 10% code review
    • 44% issue tracker (Excel sinon?)
    • moi j'ai besoin gestion soirce, issue tracker, ide au minimum)
    • 83% dark theme
  • Fun
    • 33% de chiens, 26% cats, 23% les deux, 17% sans ; 1% autre (alligator?)
    • Code le week end 87%
    • AI replace devs 6% oui completement, 57% partiellement

Demographique du sondage

  • 70% employee temps plein, 6% employeir, 6% freelance, 1% retraite
  • La societe 10% opensource 61% produit 47% dev interne
  • taille de l'equipe 2–7: 51% 8–12 21%
  • methodo agile 40% scrum, 11% kanban, 3% XP, 32% programming mother fucker (none)

Ecosystème Java

  • Version: 11: 22%, 10 et 9: 13–14%, 8: 83%,
  • Quel app serveur: 66% tomcat, 21% jetty, 5%: WL, WS, Wildfly, JBoss EAP, Glassfish, 23% aucun
  • si aucun, quoi? SB 61%, netty 12% Spark Java 6%, vert.x 4%, undertow 3%
  • embedded 62% , war: 53%
  • Web framework: Spring Boot 56% (ca fait peur, comme Google == internet), Spring MVC 43%
  • build system Maven 70%, gradle 53%, ant 13%
  • latest Java EE 39%

Scala

  • versions 2.13: 20% 2.12: 68%, 2/11: 36%
  • sinon 73% utilisent Java 8, 28% java 11
  • unit test Scalatest 77%, JUnit 26%
  • 10% whitebox macros, 60% n'utilisent pas les macros
  • web framework akka-http: 39% Play 38% Spring 17%
  • libraries Akka 55% Spark 40%
  • build system 71% sbt 39% maven 18% gradle

Kotlin

  • target: Android: 66% JVM 57% native 8%
  • JDK 11: 25% 10–9: 11–14% 8: 80%
  • Android: 74% Pie 9 79% 8 Oreo, sous 50% à la 4 KitKat
  • type of app: mobile: 62%, web abckend 41%, libraries 29%
  • 71% pour travail, 69% maison
  • autres langages 86% Java

Databases

  • usage MySQL 60%, PostgreSQL 32%, MongoDB 30%, Rediis 27% Oracle dB 16% ???
Frameworks

Quarkus 0.19 avec acces MongoDB, Neo4j, AWS DynamoDB et Apache Tika

Middleware

Elastic Cloud on Kubernetes (ECK) 0.9.0 Alpha 2

Cloud

Kubernetes est maintenant disponible sur CloudFoundry

Data

Micronaut Predator est sorti et renommé

Outillage

Importer les rapports Jacoco au format XML dans SonarQube
Netbeans 11.1, la première release ASF en tant que toplevel project

Méthodologies

Event Storming, une description

Sécurité

Jouez avec les adresses IPs
Zoom Zero Day
NoLimitSecu - Hors Série – Episode 1 – Histoire du droit du numérique

Loi, société et organisation

Le code source de l'ordinateur de guidage de module lunaire et du module de commande d'Apollon 11 open sourcé sur GitHub
Quand GitHub applique la legislation US et bloque brutalement les utilisateurs d'Iran et autres pays sous sanction (Et avec moins d'affectif). Des projets comme Nuxt.js impactés
L'Assemblée nationale adopte la loi sur la cyberhaine
Facebook écope d'une amende historique de 5 milliards de dollars et repense son fonctionnement
Taxe française sur les géants du net : 9 questions pour tout comprendre
La France a adopté la "loi Huawei" au grand dam des opérateurs télécoms
Handicap : les grandes entreprises vont devoir rendre accessibles leurs sites et applis
Qu'est ce qui se passerait si tous vos canaux Slack fuitaient ?
Travail en remote : ce qu'il faut savoir avant de se lancer !
En vrac par Tristan Nitot

Outils de l'épisode

Twitter : cette extension Chrome et Firefox permet de revenir à l'ancienne version

Rubrique débutant

Les data structures, les objects et un un peu d'énervement sur les ORMs

  • An Object is a set of functions that operate upon implied data elements.
  • A Data Structure is a set of data elements operated upon by implied functions
Conférences

JugSummerCamp le 13 septembre 2019.
DevFest Toulouse le 3 octobre 2019.
Neo4j Online Developer Expo and Summit (NODES) le 10 octobre 2019.
KOTLIN/EverywhereParis le 19 octobre 2019.
DevFest Nantes les 21 et 22 octobre 2019.
Voxxed Microservices 21 au 23 octobre 2019.
ScalaIO du 29 au 31 octobre a Lyon. Thème programmation fonctionelle.
Devoxx Belgique du 4 au 8 novembre 2019
Bdx.io le 15 novembre 2019.
DevOps D-Day les 13 et 14 novembre 2019 - Le CfP est ouvert.
Codeurs en Seine le 21 novembre 2019

Nous contacter

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 214 - L'édition Barbecue09 Jul 201901:39:42

Les Cast Codeurs se réunissent pour leur déjeuner annuel de tous les 18 mois à deux ans pour enregistrer cet épisode news. On y discute contribution OpenJDK, JIT, sérialisation, Quarkus, CloudEvent, AWS lambda, React, daltonisme, event sourcing, uml, loi extra territoriale et bien d'autres choses encore. Le mot Barbecue vient de l'embrochement du gibier "de la barbe au cul" avant de le faire chauffer dans les cheminées de cuisine.

Enregistré le 5 juillet 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–214.mp3

News Langages

JDK 13 is now in Rampdown Phase One
Le flow des commits OpenJDK vers leurs distributions
Warm up d'applications sur la JVM avec Azuul

  • prend des metriques au premier run et les redonne en info aux seconds runs
  • cache la compilation et ses paramètres d'entrée pour garantir la sémantique de la spécification Java

Améliorer l'intégration entre JavaFX et les toolkits natifs
Une nouvelle sérialisation en Java en chantier

Scala 2.13.0

Librairies

Quarkus 0.18.0

  • GraalVM 19
  • Support for writting Kubernetes operator
  • Meilleur support Gradle
  • Kafka Streams
  • (0.17.0) plus d'extensions Camel
  • (0.17.0) Support Drools et jBPM

Configurer une application Quarkus

Middleware

CloudEvent s'approche de la 1.0
javax -> jakartaee renommage: le big bang préféré

Infrastructure

RPMs expliqués
Raspberry Pi 4 pour $35

  • vous l'utilisez pour quoi?

Running Custom Containers Under Chrome OS

HAProxy 2.0 and Beyond

Cloud

Retour d'expérience sur AWS lambda

  • contrôle de la stack (cf discussion avec Quentin)
  • long running connections genre web socket pas forcément adaptées
  • corrélation directe entre le CPU et la RAM
    • donc peu de RAM, veut dire CPU lent et donc tourner beaucoup plus longtemps
    • la lambda se facture par incrément de 100ms donc n'optimisez pas en dessous
  • latence: cloudfront - API Gateway - lamba est au moins 50ms
  • trace et cloudwatch: c'est cher et verbeux et la UI est merdique
  • les fonctions lambda doivent être idempotentes car peuvent être rejouées sur la même requête de temps en temps
  • chainer les lambda est lent (latence cumulée) 100ms par sous appel
  • debuger une lambda qui time out c'est la merde
  • cold starts de 3s
  • quand est-ce que les lambda sont utilses (pas user facing)

Clever Cloud lance Clever Grid

Web

Améliorer le temps de chargement de React

  • résumé au début

What's new in Angular 8.0?

Au delà des couleurs, des interfaces adaptées au daltonisme
Building the most inaccessible site possible with a perfect Lighthouse score
HTML can do that?

Firefox Now Available with Enhanced Tracking Protection by Default Plus Updates to Facebook Container, Firefox Monitor and Lockwise
Google Just Gave 2 Billion Chrome Users A Reason To Switch To Firefox
Google's new reCAPTCHA has a dark side

Data

Retour sur les erreurs en embrassant l'event sourcing

  • dans la meme base les projections et les changements
  • Event driven != event source
  • Utiliser l'event store en tant que bus d'évènement (entrainer melange des event business et techniques)
  • Séduit par la consistance au bout du compte
  • options
    • passés du modèle relationel à des blobs JSON pour les vues
    • ils utilisaient l'archi hexagonal donc les changements ont été doux
Outillage

Mark files as viewed

Architecture

Les diagrammes UML sous controle de source via PlantUML article 1 article 2 et real world plantuml

Méthodologies

Pourquoi les anciennes sociétés ont un IT pas aussi glamour que la silicon valley

  • longue histoire de centralisation, décentralisation et rachat
  • changements de cap et donc céder du pouvoir / du contrôle de la donnée est un risque pour le future moyen
  • externalisation des non "coeur de compétence" vers des fournisseurs non interessé à la modernisation
  • problème de confiance, les autres acteurs internes et externes de mauvaise foi
    • moins de problème de confiance dans une start up de 50 personnes vu que tu connais tout le monde
    • être agile veut-il dire se faire confiance?
Sécurité

Et voici Elastic SIEM

Loi, société et organisation

Rapport sur les loi extra-territoriales Américaines

  • parle des amandes (beaucoup de banques)
  • grande portée même en dehors de la sphère américaine
  • sanctions disproportionnées
  • procureurs américains demandant la discovery
  • poursuite engagées semblent etre motivées à but économique et cibles choisies
  • les lois extra territoriales ont permis des réduction de contrats avec corruption

Boeing's 737 Max Software Outsourced to $9-an-Hour Engineers

Libra : tout ce qu'il faut savoir sur la future cryptomonnaie propulsée par Facebook, Iliad, PayPal, Uber…

Délai trop court, absence du juge, définition floue : la loi contre la haine sur Internet alarme

La CNIL prête à céder au lobby des médias sur le RGPD

Outils de l'épisode

Durgod Taurus k320 clavier mécanique cherry bleu
The Definitive Guide to SonarQube 7.9 LTS

Conférences

JugSummerCamp le 13 septembre 2019.
DevFest Toulouse le 3 octobre 2019.
DevFest Nantes les 21 et 22 octobre 2019.
Voxxed Microservices 21 au 23 octobre 2019.
ScalaIO du 29 au 31 octobre a Lyon. Thème programmation fonctionelle.
Devoxx Belgique du 4 au 8 novembre 2019
Bdx.io le 15 novembre 2019.
DevOps D-Day les 13 et 14 novembre 2019 - Le CfP est ouvert.
Codeurs en Seine le 21 novembre 2019

Nous contacter

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 213 - les re-10 ans des cast codeurs au RivieraDEV19 Jun 201900:42:26

Cet épisode en direct de RivieraDEV continue la séance Ask Me Anything débutée à Devoxx France.

Enregistré le 17 mai 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–213.mp3

Le plus sympa pour vous sera quand même de voir l'épisode sur YouTube.

Session Ask Me Anything

RivieraDEV

Nous contacter

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 320 - Diataxis, la méthode de documentation21 Dec 202400:55:31

Emmanuel, Guillaume et Arnaud se rejoignent pour discuter de Diátaxis une approche pour structurer sa documentation. Ils offrent leur perspective sur leur usage et leur compréhension. Le sujet s'ouvre ensuite pour discuter des plateformes de documentation et comment l'IA impacte la documentation. Cet épisode est aussi sorti en vidéo, n'hésitez pas nous dire ce que vous en pensez des retours et souscrivez au channel YouTube 🤗.

Enregistré le 19 décembre 2024

Téléchargement de l'épisode LesCastCodeurs-Episode-320.mp3 ou en vidéo sur YouTube.

Interview

Diátaxis

The Good Docs Project

Le retour d'expérience d'Emmanuel sur Diataxis

Nous contacter

Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs

Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

LCC 212 - Echange gateaux contre jetons07 Jun 201901:14:36

Guillaume, Vincent et Emmanuel discutent des nouvelles autour de Java 12, Jakarta EE, Spring, Quarkus, la mairie de Paris et son data center. Mais aussi de web, de Huawei, du design des fichiers Dockerfile et bien d'autres choses encore.

Enregistré le 4 juin 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–212.mp3

News Langages

JVM Ecosystem Survey 2019
Java 12 switch expressions
Images officielles AdoptOpenJDK sur Docker Hub
Don't fear the Java

Librairies

Jakarta EE and the great naming debate
Spring Boot 2.2 M3 available now
Utiliser les co-routines Kotlin pour utiliser Spring Reactive

  • structured concurrency
  • trade off entre approche visuellement imperative et l'approache reactive

GraalVM 19.0
Eclipse Vert.x 3.7.1
The JHipster Quarkus demo app

Quarkus 0.16.0

  • emails blocking et non blocking
  • Configuration profiles
  • CORS
  • Camel AWS SQS
  • Reactive PostgreSQL client

Introduction à JSON Web Tokens
Autre article sur JWT

Infrastructure

Fusion OpenTracing / OpenCensus -> OpenTelemetry: quid de Jaeger
On devrait éviter les Dockerfiles d'exemple qu'on voit un peu partout
DigitalOcean ferme l'infra d'une boite via un script de verification

  • les risques évoluent de gérer sa stack physique à gérer un prestataire et ses consequences de l'automatisation
  • pas de backup hors du prestataire…
Cloud

gVisor, un an après

Web

Flutter 1.5
Build your Angular application with Bazel
Build your own WebAssembly Compiler
W3C / WHATWG fusionnent
HTTP HEADERS du developpeur responsable

  • HSTS
  • Content-Security-Policy (upgrade insecure requests etc)
  • cache control, accept encoding (compression)
  • Accept and Accept CH
    • ramener un webp quand in .jpg est demandé
    • CH: tailles etc

Gluon reutilise GraalVM pour faire des applis mobiles native

Data

Elastic rend des fonctionnalités de sécurité gratuites mais pas open source
Changer le schéma de base de données automatiquement à SendGrid et à Square

Outillage

FreeCodeCamp quitte Medium

  • Medium pousse pour un paywall
  • les gens redecouvrent que les blogs sont distribués par nature
  • RSS FTW
Architecture

Pourquoi les microservices devraient vous faire plus peur

Méthodologies

GitHub sort GitHub Sponsors

  • sponsoriser un developer open source

Product placement sur Wikipedia

Loi, société et organisation

Google révoque la licence Android de Huawei : 5 questions pour comprendre ce que cela implique

Les développeurs chinois ont peur de perdre GitHub
La mairie de Paris vs créer son propre data center

  • Beaucoup de gens outrés qu'ils ne prennent pas OVH (securité, c'est un métier, etc)
  • Pourquoi c'est pas si con
    • durée de vie des données sur plus d'une vie humaine
    • marché public de ~ 5 ans max: bouger données tous les 5 ans bonjour
Conférences

BestOfWeb les 6 et 7 juin 2019
DevFest Lille le 14 juin 2019
Hack Commit Push 15 juin pour contribuer à de l'open source

  • presentation des projets au ParisJUG le 13 juin

Voxxed Days Luxembourg les 20 et 21 juin 2019
Sunny Tech les 27 & 28 juin 2019
JugSummerCamp le 13 septembre 2019 - Le CfP est ouvert.
DevFest Toulouse le 3 octobre 2019 - Le CfP est ouvert.
DevFest Nantes les 21 et 22 octobre 2019 - Le CfP est ouvert.
Voxxed Microservices 21 au 23 octobre 2019 et le CfP est ouvert.
ScalaIO du 29 au 31 octibre a Lyon. CFP ouvert jusqu'à fin juin. Thème programmation fonctionelle.
Devoxx Belgique du 4 au 8 novembre 2019
Bdx.io le 15 novembre 2019 - Le CfP est ouvert.
DevOps D-Day les 13 et 14 novembre 2019 - Le CfP est ouvert.
Codeurs en Seine le 21 novembre 2019

Nous contacter

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/wdquestion](https://lescastcodeurs.com/crowdcasting/)
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 211 - Interview sur la virtualisation avec Quentin Adam27 May 201901:31:22

Quentin Adam (CEO de Clever Cloud) et Emmanuel discutent la stack de bas en haut, du physique au software sous l'angle de la virtualisation. Et bien sûr, une petite dérive de la conversation de temps en temps, parce qu'on le vaut bien.

Enregistré le 27 mars 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–211.mp3

Interview Ta vie, ton oeuvre

@waxzce
Clever Cloud

Pourquoi virtualise-t-on ?

Para-virtualisation
Xen

Le processeur physique

CPU, registres, caches, bus mémoire
GPU

ASIC
CPU
FPGA

Protection ring

Le microcode

Un petit détour sur spectre et meltdown

Un OS et la virtualisation

Abstraction au hardware
Separation du temps CPU, memoire
Address virtuelle

QEMU
VirtIO
Spectre and Metldown

Container ("Isolateur")

Container vs zones vs jails vs VMs

Noyau en espace utilisateur

gVisor
ReiserFS
Kata Containers
WebAssembly

Et par rapport à Kata Containers par exemple ? ou KVM ?
Quels sont les avantages / inconvénients ?
(mémoire, sécurité/sandboxing, rapidité de démarrage…)

Modèle économique, recompilation pour le matériel physique et conclusion

Exherbo

Nous contacter

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 210 - Javax is coming11 May 201901:42:47

Dans cet épisode, Guillaume, Arnaud et Audrey reviennent sur les derniers rebondissements des drama de la tech : le futur de Jakarta EE, Amazon vs l'Open Source … Et bien sûr on discute aussi technique avec les actualités de Elastic, JHipster, Micronaut, et plein d'autres.

Enregistré le 6 mai 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–210.mp3

News

Apache Software Foundation joins GitHub open source community

Langages

La passation de support sur OpenJDK 8 et 11 d'Oracle à Red Hat (bug fixes et security ne viendront plus d'Oracle, comme prévu)
Support Docker dans Java 8
Baeldung propose plein d'articles sur Groovy avec des tutoriels sur des aspects variés des APIs proposées par le langage

Oracle ne veut plus qu'on utilise javax.

Librairies

Un nouveau framework de log… par Google
Introducing Spring Cloud Circuit Breaker
JHipster 6 est sorti

Middleware

Micronaut 1.1 released
Elastic Stack 7.0.0 released

Cloud

Essayer Java 11 sur Google App Engine et Java 8 sur Google Cloud Functions

GraalVM et Quarkus dispo sur Clever Cloud:

Azure tombe pour quelques heures

Web

Sortie de Node.js 12
Svelte3
Native image lazy-loading for the web!
Update Regarding Add-ons in Firefox

A Conspiracy To Kill IE6

Outillage

Développement remote avec VSCode

Architecture

You Are Not Google

Méthodologies

Les projets ont besoin de héros

  • 80% des commits fait par 20% de gens: ce sont les projets majoritaires sur GitHub
Sécurité

DockerHub hack et le risque sur les images

Loi, société et organisation

Rectificatif sur la bataille Elastic - AWS de l'épisode 208 avec l'aide de Fabien Baligand

AWS : il regarde si tu as du succès et pouf il te bouffe

La license anti abus du droit du travail en Chine

RGPD : la CNIL prévient qu'elle sera désormais moins conciliante

Defining a Distinguished Engineer

Trou noir : l'ingénieure Katie Bouman qui a contribué à la photo est victime de cyberharcèlement

Manifeste écologique des professionnel·le·s de l'informatique

Outils de l'épisode

Crowdcast Eclipse Che par Manuel Payet

Rubrique débutant

How to use the JavaScript console: going beyond console.log()

Conférences

Crowdcast Hack Commit Push à Paris le samedi 15 juin par Florent Biville

Dégaine - un compte à rebours à deux faces

Riviera Dev du 15 au 17 mai 2019
NCrafts les 16 et 17 mai 2019
Mix-it les 23 et 24 mai 2019
BestOfWeb les 6 et 7 juin 2019
DevFest Lille le 14 juin 2019
Voxxed Days Luxembourg les 20 et 21 juin 2019
Sunny Tech les 27 & 28 juin 2019 à Montpellier
JugSummerCamp le 13 septembre 2019 - Le CfP est ouvert.
DevFestNantes les 21 et 22 octobre 2019 - Le CfP est ouvert.
Codeurs en Seine le 21 novembre 2019

Nous contacter

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/wdquestion](https://lescastcodeurs.com/crowdcasting/)
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 209 - Les 10 ans des cast codeurs à Devoxx France27 Apr 201900:45:52

Cet épisode en direct de Devoxx France est l'occasion pour la fine équipe de repondre aux questions que vous nous avez posé.

Enregistré le 19 avril 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–209.mp3

Le plus sympa pour vous sera quand même de voir l'épisode sur YouTube.

Session Ask Me Anything

Devoxx France

Merci à JFrog pour la bière et la Nintendo Switch !
Le tirage au sort echo $[RANDOM%400]

Posez nous toutes vos questions pour l'épisode live des Cast Codeurs à Devoxx

Nous contacter

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 208 - Si après 10 ans d'open source, t'as pas ta fondation, t'as raté ta vie08 Apr 201901:37:53

Dans cet épisode en tête à tête Arnaud et Audrey discutent des nouveautés de Java 12, des dernières versions de Vert.x, Kubernetes ou Traefik mais aussi open source et fondations, et bien d'autres choses encore.

Enregistré le 4 avril 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–208.mp3

News

Posez nous toutes vos questions pour l'épisode live des Cast Codeurs à Devoxx
L'ASF a 20 ans

Langages

The arrival of Java 12!

JEP draft: Add detailed message to NullPointerException describing what is null

Frameworks

Spring Boot 2.2 M1
Utiliser JUnit 5 avec Spring-Boot

Librairies

Flight of the Flux 1 - Assembly vs Subscription

Middleware

Eclipse Vert.x 3.7.0 released!

Infrastructure

Testcontainers-java 1.11.0

Introducing Kraken, an Open Source Peer-to-Peer Docker Registry

Kubernetes 1.14: Production-level support for Windows Nodes, Kubectl Updates, Persistent Local Volumes GA

Pimp My Kubernetes Shell

Back to Traefik 2.0

Web

Mozilla lance WASI: WebAssembly System Interface

Preact X is here

Le TC39 a maintenant son repository GitHub

Introducing the OpenJS Foundation: The Next Phase of JavaScript Ecosystem Growth

Cache-Control for Civilians

Outillage

Nouvelle Continuous Delivery Foundation

Gradle Entreprise pour accélerer votre build maven

Creating a commit on behalf of an organization

Architecture

Nouvelle GraphQL Foundation

Loi, société et organisation

La guerre de l'open source continue :

Le parlement européen a voté pour la directive sur le droit d'auteur:

Après avoir viré les travailleurs en remote, IBM vire les vieux

Les effets des interruptions au travail

Turing Award Won by 3 Pioneers in Artificial Intelligence

Qui est Cédric O, nouveau secrétaire d'État au numérique et remplaçant de Mounir Mahjoubi ?

Outils de l'épisode

Peacock v1 Released

Conférences

Devoxx France du 17 au 19 avril 2019 - sold out
VoxxedCERN le 1er mai 2019
Riviera Dev du 15 au 17 mai 2019
NCrafts les 16 et 17 mai 2019
Mix-it les 23 et 24 mai 2019
BestOfWeb les 6 et 7 juin 2019
DevFest Lille le 14 juin 2019
Voxxed Days Luxembourg les 20 et 21 juin 2019
Sunny Tech les 27 & 28 juin 2019
JugSummerCamp le 13 septembre 2019 - Le CfP ouvre bientôt.
Codeurs en Seine le 21 novembre 2019

Nous contacter

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 207 - Interview sur Quarkus avec Emmanuel Bernard26 Mar 201901:36:08

Dans cet épisode, Arnaud et Antonio discutent de Quarkus avec Emmanuel Bernard.

Enregistré le 13 mars 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–207.mp3

Interview Ta vie, ton œuvre

@emmanuelbernard
Site web d'Emmanuel Bernard

  • D'où viens-tu ? Ta vie avant Red Hat.
  • Hibernate, Bean validation, Quarkus, mais tu fais quoi en fait chez Red Hat (IBM pardon) ?
Quarkus, pourquoi ?

Quarkus
GraalVM
Eclipse Reactive Messaging

  • C'est quoi ce nom ?

A Kubernetes Native Java stack tailored for GraalVM & OpenJDK HotSpot, crafted from the best of breed Java libraries and standards

  • Container first philosophy
    • Démarrage rapide
    • Emprunte mémoire (et disque) réduite
  • Que peut-on faire avec ?
    • Antonio peut faire des EJBs ? Hibernate peut-être ?
    • Quels sont les case d'usages ? Micro-Services, FAAS, Serverless, …
  • Comment le comparer avec Spring-Boot ? Micronaut ?
  • 100% open-source ?
    • Mais uniquement Red Hat ?
    • Pourquoi l'avoir caché ?
Quarkus, comment ?
  • La stack technique
    • Graal/SubstrateVM
    • OpenJDK
    • Kubernetes
    • Quoi d'autre ?
  • Java ou Kotlin ?
  • Programmation Reactive ou Imperative ?
  • Le développement: Live coding & Hot Reload
  • L'eco-systeme: CDI, JAX-RS, RestEasy, Eclipse MicroProfile, Vert.x, JTA, JPA, Apache Camel, …
    • Arnaud ne peut donc pas coder avec Spring(-Boot) and Spring-Data ?
Nous contacter

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 206 - Les petits secrets du boss12 Mar 201901:28:19

Un épisode avec des news on ne peut plus fraîches puisqu'Antonio, Audrey et Vincent y parlent de Quarkus, mais aussi d'Elastic, de web et de sécu, mais aussi quelques réflexions sur le métier de développeur.

Enregistré le 8 mars 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–206.mp3

News Langages

JDK12 First Release Candidate Java is Still Free 2.0.0

Quarkus

Frameworks

Spring Boot 2.1.3 available now

Middleware

Lancement de la Suite Elastic 6.6.0
Apache Kafka leaves the zoo

Infrastructure

Secret Design Docs: Multi-Tenant Orchestrator

Web

A plan for version 8.0 and Ivy
Funding ESLint's Future
Announcing the Ionic React Beta
Authentication in SPA (ReactJS and VueJS) the right way

Méthodologies

Arnaud Lemaire - Entre industrialisation et artisanat, le métier de développeur
Journée de travail, ou journée au travail ?

Sécurité

Top ten most popular docker images each contain at least 30 vulnerabilities
CVE–2019–3778: Spring Security OAuth 2.3.5, 2.2.4, 2.1.4, 2.0.17 Released
Kubernetes Security Announcement - v1.11.8, 1.12.6, 1.13.4 released to address medium severity CVE–2019–1002100
Runc and CVE–2019–5736

Loi, société et organisation

Ligue du LOL, contenus haineux en ligne, anonymat et pseudonymat

Directive droit d'auteur : les articles 11 et 13 ont été finalisés et c'est peut-être le moment de paniquer

Facebook ordered to stop combining WhatsApp and Instagram data without consent in Germany

Outils de l'épisode

Welcome to the universe of HyperText
Clance Impostor Phenomenon Test

Rubrique débutant

Every Linux networking tool I know

Conférences

Breizh Camp du 20 au 22 mars 2019
Greach (Madrid) du 28 au 30 Mars 2019
Devoxx France du 17 au 19 avril 2019 - sold out
VoxxedCERN le 1er mai 2019
Riviera Dev du 15 au 17 mai 2019
NCrafts les 16 et 17 mai 2019
Mix-it les 23 et 24 mai 2019
BestOfWeb les 6 et 7 juin 2019
DevFest Lille le 14 juin 2019 - Le CfP est ouvert.
Voxxed Days Luxembourg les 20 et 21 juin 2019
Sunny Tech les 27 & 28 juin 2019 à Montpellier

Nous contacter

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 205 - Interview analyse de l'industrie avec Sacha Labourey21 Feb 201901:05:32

Emmanuel et Sacha discutent de l'état de l'industrie informatique aujourd'hui. Leur analyse pertinente n'engage que ceux qui y croient.

Enregistré le 19 février 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–205.mp3

Interview Ta vie, ton œuvre

Sacha à CloudBees

IBM et Red Hat

L'acquisition de Red Hat et les discussions d'achat avec Microsoft, Google et Amazon

Les petits poissons dans un univers de méga plateformes a la AWS Les nouveaux standards : Jakarta EE, microprofiles Le JDK -> Les JDKs

Les JDK et autre, c'est moins mon dada

Kubernetes vs… y a-t-il autre chose ;) Les licences Common Clauses etc (MongoDB, Redis, Confluent, etc)

OSI

La prochaine consolidation, les développeurs qui reviennent sur le devant de la scène Conclusion

Les commerciaux ça ose tout, c'est à ça qu'on les reconnait !

Nous contacter

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 204 - Silicon Valley, ton univers impitoyable10 Feb 201901:38:14

Dans cet épisode, les voisins d'Arnaud ont essayé de le réduire au silence tandis qu'Antonio tentait de faire taire Audrey. Les voisins d'Arnaud ont gagné grâce à la perceuse, mais Antonio, lui, a perdu. Résultat : un épisode news où deux cast codeurs et demi discutent de l'actualité de vos languages et frameworks préférés, mais aussi de l'actualité des géants de la tech, et ça, c'est pas toujours joli.

Enregistré le 8 février 2019

Téléchargement de l'épisode LesCastCodeurs-Episode–204.mp3

News Langages

JDK 11.0.2 General-Availability Release + JDK 12 RC
GraalVM 1.0-RC11
* GraalVM with Groovy and Grape - creating native image of a standalone script
Go 1.11.5 and Go 1.10.8 are released
* Un livre blanc pour démarrer en GO

Frameworks

Spring Framework 5.1.4, 5.0.12 and 4.3.22 available now

Netflix OSS and Spring Boot — Coming Full Circle

Middleware

JHipster release v5.8.0
Micronaut 1.0.4

Infrastructure

The future of Kubernetes is Virtual Machines

Web

Node v11.8.0
Angular 7.2.0

Vue 2.6 released
Lightning-fast templates & Web Components: lit-html & LitElement
React v16.8: The One With Hooks
Google Play Store now open for Progressive Web Apps
Browser diversity starts with us.
Le bloqueur de pubs de Chrome va être déployé globalement

Data

Infinispan 10.0.0 Alpha3 and 9.4.6 final

Outillage

Spring Framework's Migration from Jira to GitHub Issues
Spring Boot in Visual Studio Code
Travis CI joins the Idera family
Jenkins crée et rejoint la Continuous Delivery Foundation au sein de la Linux Foundation
GitLab 11.7
Gradle 5.2

Sécurité

Google DNS Service (8.8.8.8) Now Supports DNS-over-TLS Security

Loi, société et organisation

Oracle v. Google and the future of software development

AWS vs l'Open Source, la suite

Première amende pour non conformité au RGPD, de 50 millions d'euros à l'encontre de Google

Facebook continue à se distinguer …

Article 13 is back on – and it got worse, not better

Conférences

DevFest Du Bout du Monde le 22 février 2019
ConFoo Montreal 2019 du 13 au 15 Mars 2019
Breizh Camp du 20 au 22 mars 2019
Greach (Madrid) du 28 au 30 Mars 2019
Devoxx France du 17 au 19 avril 2019 - sold out
VoxxedCERN le 1er mai 2019
Riviera Dev du 15 au 17 mai 2019
NCrafts les 16 et 17 mai 2019
Mix-it les 23 et 24 mai 2019
BestOfWeb les 6 et 7 juin 2019
DevFest Lille le 14 juin 2019 - Le CfP est ouvert.
Voxxed Days Luxembourg les 20 et 21 juin 2019 - le CfP est ouvert.
Sunny Tech les 27 & 28 juin 2019 à Montpellier - Le CfP est ouvert.

Nous contacter

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 203 - Panel sur l'Open Source au YAJUG24 Jan 201901:41:20

Audrey, Arnaud, Vincent et Emmanuel participent à un panel sur l’Open Source à l’occasion d’une session du YaJUG.

Enregistré le 18 décembre 2018

Téléchargement de l’épisode LesCastCodeurs-Episode–203.mp3

Interview

Les Cast Codeurs au YAJUG

Apache

Eclipse

CNCF

Confluent change de licence

Open source et sa crise de la quarantaine

Sustainable and free open source communities

OpenJDK

Code de conduite et comportement dans les communautés

Nous contacter

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 319 - le ramasse-miettes-charognes16 Dec 202401:10:05

Dans cet épisde en audio et en vidéo (youtube.com/lescastcodeurs), Guillaume et Emmanuel discutent des 15 ans de Go, d'une nouvelle approche de garbage collecting, de LLMs dans les applications Java, dobservabilité, d'une attaque de chaine d'approvisionnement via javac et d'autres choses.

Enregistré le 13 décembre 2024

Téléchargement de l'épisode LesCastCodeurs-Episode-319.mp3

News Langages

Go fête son 15ème anniversaire ! https://go.dev/blog/15years

  • discute les 15 ans
  • la corrections de gotchas dans les for loops (notamment les variables étaient loop scoped)
  • le fait que la compile echoue si on attend une version de go superieure seulement depuis go 1.21 en parallele de la gestion de la chaine d'outil (c'est en 2023 seulement!)
  • opt-in telemetrie aussi recent

Construire OpenJDK à partir des sources sur macOS https://www.morling.dev/blog/building-openjdk-from-source-on-macos/

  • de maniere surprenante ce n'est pas tres compliqué

Papier sur l'aproche Mark-scavenge pour un ramasse miette https://inside.java/2024/11/22/mark-scavenge-gc/

  • papier de recherche
  • utiliser l'accessibilité pour preuve de vie n'est pas idéal: un objet peut etre atteignable mais ne sera jamais accedé par le programme
  • les regions les plus pauvres en objets vivant voient leurs objets bouger dans uen autre region et la regio libéré, c'est le comportement classique des GC
  • deux methodes: mark evaguate qui le fait en deux temps et la liveness peut evoluer ; et scavenge qui bouge l'objet vivant des sa decouverte
  • ont fait tourner via ZGC des experience pour voir les objects consideres vivants et bougés inutilement.
  • resultats montrent un gros taux d'objets bougés de maniere inutile
  • proposent un algo different
  • ils marquent les objets vivants mais ne les bougent pas avant le prochain GC pour leur donner une change de devenir unreachable
  • elimine beaucoup de deplacement inutiles vu que les objets deviennent non accessible en un cycle de GC
  • jusquà 91% de reduction ! Particulierement notable dans les machines chargées en CPU.

Les tokens d'accès court ou longs https://grayduck.mn/2023/04/17/refresh-vs-long-lived-access-tokens/

  • pourquoi des long access tokens (gnre refresh token) sont utilises pour des short lived dans oauth 2.0
  • refresh token simplifient la revocation: vu que seul le auth serveur a a verifier la révocation et les clients vérifient l'expiration et la validité de la signature
  • refresh token ne sont envoyés que entre endpoints alors que les access tokens se baladent pas mal: les frontières de confiance ne sont pas traversées
  • refresh token comme utilise infréquement, et donc peut etre protegee dans une enclave
  • les changements de grants sont plus simple tout en restant distribuable
  • histoire des access refresh token et access token permet de mieux tracer les abus / attaques
  • les inconvenients: c'est plus compliqué en flow, the auth serveur est un SPOF amis mitigeable

Java Advent est de retour https://www.javaadvent.com/calendar

  • backstage
  • Java integrite par defaut (et ses consequences sur l'ecosysteme)
  • timefold (sovler)
  • Les extensions JUNit 5
  • OpenTelemetry via Java Agent vs Micrometer
  • analyse statique de code
  • CQRS et les fonctionalités modernes de Java
  • java simple (sans compilatrion, sans objet
  • fullstack dev with quarkus as backend

José Paumard introduit et explique les Gatherers dans Java 24 dans cette vidéo https://inside.java/2024/11/26/jepcafe23/

Librairies

Micronaut 4.7, avec l'intégration de LangChain4j https://micronaut.io/2024/11/14/micronaut-framework-4-7-0-released/

Combiner le framework de test Spock et Cucumber https://www.sfeir.dev/back/spock-framework-revolutionnez-vos-tests-unitaires-avec-la-puissance-du-bdd-et-de-cucumber/

  • les experts peuvent écrire leurs tests au format Gherkin (de Cucumber) et les développeurs peuvent implémenter les assertions correspondantes avec l'intégration dans Spock, pour des tests très lisibles

Spring 6.2 https://spring.io/blog/2024/11/14/spring-framework-6-2-0-available-now

  • beans @Fallback
  • améliorations sur SpELet sur le support de tests
  • support de l'echape des property placeholders
  • une initioalisation des beans en tache de fond nouvelle
  • et pleins d'autres choses encore

Comment créer une application Java LLM tournant 100% en Java avec Jlama https://quarkus.io/blog/quarkus-jlama/

  • blog de Mario Fusco, Mr API et Java et Drools
  • utilise jlama + quarkus + langchain
  • Explique les avantage de l'approche pure Java comme le cycle de vie unique, tester les modeles rapidement, securite (tout est in process), monolithe ahahah, observabilité simplifiée, distribution simplifiée (genre appli embarquée) etc

Vert.x 5 en seconde incubation https://vertx.io/blog/eclipse-vert-x-5-candidate-2-released/

  • Support des Java modules (mais beacoup des modules vert.x eux-même ne le supportent pas
  • support io_uring dans vert.x core
  • le load balancing côté client
  • le modele des callbacks n'est plus supporté, vive les Futur
  • beaucoup d'améliorations autour de gRPC
  • et d'autres choses

Un article sur Spring AI et la multi modalite audio https://spring.io/blog/2024/12/05/spring-ai-audio-modality

  • permet de voir les evolutions des APIs de Spring AI
  • s'appluie sur les derniers modeles d'open ai
  • des examples comme par exemple un chatbot voix et donc comment enregistrer la voix et la passer a OpenAI

Comment activer le support experimental HTTP/3 dans Spring Boot https://spring.io/blog/2024/11/26/http3-in-reactor-2024

  • c'ets Netty qui fait le boulot
  • puis Spring Netty
  • l'article décrit les etapes pour l'utiliser dans vos applis Spring Boot ou Spring Cloud Gateway
  • l'article explique aussi le cote client (app cliente) ce qui est sympa
Infrastructure

Un survol des offres d'observabilité http://blog.ippon.fr/2024/11/18/observabilite-informatique-comprendre-les-bases-2eme-partie/

  • un survol des principales offres d'observabilité
  • Open source ou SaaS
  • et certains outsiders
  • Pas mal pour commencer à défricher ce qui vous conviendrait
  • blog de ippon
Web

Sortie de Angular 19 https://blog.ninja-squad.com/2024/11/19/what-is-new-angular-19.0/

Angluar 19 https://www.sfeir.dev/front/angular-19-tout-ce-quil-faut-savoir-sur-les-innovations-majeures-du-framework/

  • composant standalone par default (limiter les problemes de dependances), peut le mettre en strict pour le l'imposer (ou planter)
  • signalement des imports inutilisés
  • @let pour les variables locales dans les templates
  • linkedSignal (experimental) pour lier des signaux entre eux (cascade de changement suite a un evenement
  • hydratation incrementale (contenu progressivement interactif avec le chargement - sur les parties de la page visible ou necessaires
  • et event replay, routing et modes de rendu en rendy hybride, Hot module replacement etc

The State of Frontend — dernière compilation des préférences des développeurs en terme de front https://tsh.io/state-of-frontend/

  • React en tête, suivi de Vue et Svelte. Angular seulement 4ème
  • Côté rendering framework, Next.js a la majorité absolue, ensuite viennent Nuxt et Astro
  • Zod est la solution de validation préférée
  • Pour la gestion de date, date-fns est en tête, suivi par moment.js
  • Côté state management, React Context API en première place, mais les suivants sont tous aussi pour React !
  • Grosse utilisation de lodash pour plein d'utilités
  • Pour fetcher des resources distantes, l'API native Fetch et Axios sont les 2 vaincoeurs
  • Pour le déploiement, Vercel est premier
  • Côté CI/CD, beaucoup de Github Actions, suivi par Gitlab CI
  • Package management, malgré de bonnes alternatives, NPM se taille toujours la part du lion
  • Ecrasante utilisation de Node.js comme runtime JavaScript pour faire du développement front
  • Pour ce qui est du typing, beaucoup utilisent TypeScript, et un peu de JSdoc, et la majorité des répondants pensent que TypeScript a dépassé JavaScript en usage
  • Dans les API natives du navigateur, Fetch, Storage et WebSockets sont les APIs les plus utilisées
  • La popularité des PWA devrait suivre son petit bonhomme de chemin
  • En terme de design system, shadcn.ui en tête, suivi par Material, puis Bootstram
  • Pour la gestion des styles, un bon mix de plain old CSS, de Tailwind, et de Sass/CSS
  • Jest est premier comme framework de tests
  • Les 3/4 des développeurs front utilisent Visual Studio Code, quant au quart suivant, c'est JetBrains qui raffle les miettes
  • Pour le build, Vite récolte les 4/5 des voix
  • ESLint et Prettier sont les 2 favoris pour vérifier le code
  •  

Parfois, on aimerait pouvoir tester une librairie ou un framework JavaScript, sans pour autant devoir mettre en place tout un projet, avec outil de build et autre. Julia Evans explore les différents cas de figure, suivant la façon dont ces librairies sont bundlées https://jvns.ca/blog/2024/11/18/how-to-import-a-javascript-library/

  • Certaines librairies permette de ne faire qu'un simple import dans une balise script
  • Certaines frameworks sont distribués sous forme d'Universal Module Definition, sous CommonJS, d'ESmodule
  • franchemet en tant que noob c'est compliqué quand même
Data et Intelligence Artificielle

L'impact de l'IA en entreprise et des accès aux documents un peu laxistes https://archive.ph/uPyhX

  • l'indexing choppe tout ce qu'il peut
  • et l'IA est tres puissante pour diriger des requetes et extraires les données qui auraient du etre plus restreintes

Différentes manières de faire de l'extraction de données et de forcer la main à un LLM pour qu'il génère du JSON https://glaforge.dev/posts/2024/11/18/data-extraction-the-many-ways-to-get-llms-to-spit-json-content/

  • l'approche "je demande gentiment" au LLM, en faisant du prompt engineering
  • en utilisant du function calling pour les modèles supportant la fonctionnalité, en particulier avant les approches de type "JSON mode" ou "JSON schema"
  • ou effectivement si le modèle le supporte aussi, toujours avec un peu de prompting, mais en utilisant le "JSON mode" qui force le LLM a générer du JSON valide
  • encore mieux avec la possibilité de spécifier un schema JSON (type OpenAPI) pour que le JSON en sortie soit "compliant" avec le schéma proposé

Comment masquer les données confidentielles avec ses échanges avec les LLMs https://glaforge.dev/posts/2024/11/25/redacting-sensitive-information-when-using-generative-ai-models/

  • utilisation de l'API Data Loss Prevention de Google Cloud qui permet d'identifier puis de censurer / masquer ("redacted" en anglais) des informations personnelles identifiables ("PII", comme un nom, un compte bancaire, un numéro de passeport, etc)
  • pour des raison de sécurité, de privacy, pour éviter les brèche de données comme on en entend trop souvent parler dans les nouvelles

On peut utiliser certains modèles d'embedding pour faire de la recherche de code https://glaforge.dev/posts/2024/12/02/semantic-code-search-for-programming-idioms-with-langchain4j-and-vertex-ai-embedding-models/

  • Guillaume recherche des bouts de code, en entrant une requête en langue naturel
  • Certains embedding models supportent différents types de tâches, comme question/réponse, question en langue naturelle / retour sous forme de code, ou d'autres tâches comme le fact checking, etc
  • Dans cet article, utilisation du modèle de Google Cloud Vertex AI, en Java, avec LangChain4j

Google sort la version 2 de Gemini Flash https://blog.google/technology/google-deepmind/google-gemini-ai-update-december-2024/

  • La nouvelle version Gemini 2.0 Flash dépasse même Gemini 1.5 Pro dans les benchmarks
  • Tout en étant 2 fois plus rapide que Gemini 1.5 Pro, et bien que le prix ne soit pas encore annoncé, on imagine également plus abordable
  • Google présente Gemini 2 comme le LLM idéal pour les "agents"
  • Gemini propose une vraie multimodalité en sortie (premier LLM sur le marché à le proposer) : Gemini 2 peut entrelacer du texte, des images, de l'audio
  • Gemini 2 supporte plus de 100 langues
  • 8 voix de haute qualité, assez naturelles, pour la partie audio
  • Un nouveau mode speech-to-speech en live, où on peut même interrompre le LLM, c'est d'ailleurs ce qui est utilisé dans Project Astra, l'application mobile montrée à Google I/O qui devient un vrai assistant vocale en live sur votre téléphone
  • Google annonce aussi une nouvelle expérimentation autour des assistants de programmation, avec Project Jules, avec lequel on peut discuter en live aussi, partager son code, comme un vrai pair programmeur
  • Google a présenté Project Mariner qui est un agent qui est sous forme d'extension Chrome, qui va permettre de commander votre navigateur comme votre assistant de recherche personnel, qui va être capable de faire des recherches sur le web, de naviguer dans les sites web, pour trouver les infos que vous recherchez
  • Cet autre article montre différentes vidéos de démos de ces fonctionnalités https://developers.googleblog.com/en/the-next-chapter-of-the-gemini-era-for-developers/
  • Un nouveau projet appelé Deep Research, qui permet de faire des rapports dans Gemini Advanced : on donne un sujet et l'agent va proposer un plan pour un rapport sur ce sujet (qu'on peut valider, retoucher) et ensuite, Deep Research va effectuer des recherches sur le web pour vous, et faire la synthèse de ses recherches dans un rapport final https://blog.google/products/gemini/google-gemini-deep-research/
  • Enfin, Google AI Studio, en plus de vous permettre d'expérimenter avec Gemini 2, vous pourrez aussi utiliser des "starter apps" qui montrent comment faire de la reconnaissance d'objet dans des images, comment faire des recherches avec un agent connecté à Google Maps, etc.
  • Google AI Studio permet également de partager votre écran avec lui, en mobile ou en desktop, de façon à l'utiliser comme un assistant qui peut voir ce que vous faites, ce que vous coder et peut répondre à vos questions
Méthodologies

Un article de GitHub sur l'impact de la surutilisation des CPU sur la perf de l'appli https://github.blog/engineering/architecture-optimization/breaking-down-cpu-speed-how-utilization-impacts-performance/

  • c'est surprenant qu'ils ont des effets des 30% de perf
  • c'est du a la non limit thermique, au boost de frequece qui en suit
  • ils ont donc cherché le golden ratio
  • pour eux autour de 60%
  • ils prennent des morceaux de cluster kube poru faire tourner les workloads
  • et ajoutent des wqorkload CPU artificiels (genre math)
Sécurité

Attaque de la chaîne d'approvisionnement via javac https://xdev.software/en/news/detail/discovering-the-perfect-java-supply-chain-attack-vector-and-how-it-got-fixed

  • s'appuie sur l'annotation processeur
  • l'annotation processors des dependances est chargé et executé au moment du build du projet
  • et cherche les annotations processor dans le user classpath (via le pattern serviceloader)
  • et donc si la dependance est attaquée et un annotation processor est ajouté ou modifié on a un vecteur d'attaque au moment de la compilation du projet ciblé
  • des qu'on deparre l'IDE en gros
  • workaround, activer -proc:none et activer les annotation processors explicitly dans votre outil de build
  • certaines améliorations dans le JDK: le compilateur note qu'il execute un annotation processor
  • dans java 23+ les annotation processors sont deactivés par defaut
Conférences

La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

Nous contacter

Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs

Contactez-nous via twitter https://twitter.com/lescastcodeurs
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

LCC 202 - Marmotte, lutins et JDK14 Jan 201901:35:41

Dans cet épisode Guillaume, Audrey et Emmanuel reviennent sur les actualités de la fin d’année 2018 mais aussi des prédictions pour 2019. On discute JDK, management, open source mais aussi marmotte, licornes et lutins.

Enregistré le 9 janvier 2018

Téléchargement de l’épisode LesCastCodeurs-Episode–202.mp3

News

L’informatique devient une discipline avec son CAPES d’informatique et plus tard son agrégation d’informatique

La marmote est de retour

Langages

Java in 2019 - Some Predictions

Groovy 2.5.5 et 3.0-alpha–4

Red Hat support OpenJDK sous Windows

Garbage Collector Shenandoah dans JDK 12

Frameworks

Hystrix en maintenance

Micronaut ajoute le support du modele de programmation Spring Boot

Web

Edge rebase sur Chromium, WTF!

Outillage

Tactiques de déboguage

Gradle 5.1


  • Avec un teaser du support de Maven dans la version Enterprise

Docker Commands — The Ultimate Cheat Sheet

GitLab Security Release

New year, new GitHub!

AsciidoctorJ 1.6.0


  • ca va péter!

Deptective


  • casse le build si des packages dépendent de packages non autorisés

Architecture

L’art du diagramme d’architecture

Migrer de MongoDB vers Postgres: le proces du Guardian

Méthodologies

Le pendule manager/ingénieur
Et la suite Monter l’échelle our faire le pendule

Monorepos, please don’t

Sécurité

In January, the EU starts running Bug Bounties on Free and Open Source Software

Loi, société et organisation

Confluent change de licence

Open source confronts its midlife crisis

Sustainable Free and Open Source communities

Le deep fake, nouvelle menace de désinformation mais pas seulement

Pour une éthique des algorithmes

Outils de l’épisode

Scratch 3

Rubrique débutant

The mother of all demos

Conférences

Snowcamp du 23 au 26 Janvier 2019

Touraine Tech le 1er Février 2019

DevFest Paris le 8 Février 2019

DevFest Du Bout du Monde le 22 février 2019

ConFoo Montreal 2019 du 13 au 15 Mars 2019

Breizh Camp du 20 au 22 mars 2019 - Le CfP est ouvert jusqu’au 20 janvier.

CfP Greach (Madrid) du 28 au 30 Mars 2019

Devoxx France du 17 au 19 avril 2019 - sold out mais il y a une liste d’attente

Riviera Dev du 15 au 17 mai 2019

NCrafts les 16 et 17 mai 2019

Mix-it les 23 et 24 mai 2019 - Le CfP est ouvert jusqu’au 20 janvier.

BestOfWeb les 6 et 7 juin 2019

DevFest Lille le 15 juin 2019 - Le CfP est ouvert.

Sunny Tech les 27 & 28 juin 2019 à Montpellier - Le CfP est ouvert.

Nous contacter

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 201 - Interview Kotlin avec Cédric Beust et Sébastien Deleuze22 Dec 201801:35:21

Dans cet épisode, Audrey et Emamnuel discutent de Kotlin avec Cédric Beust et Sébastien Deleuze. On y parle du langage de sa communauté et de son écosystème.

Enregistré le 12 octobre 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–201.mp3

Interview Ta vie, ton oeuvre

Twitter Cédric
Twitter Sébastien

Kotlin en deux phrases

Kotlin is awesome
Try Kotlin!
Kotlin blog
Kotlin reference documentation
Kotlin Slack
Kotlinconf 2018 with videos
Talking Kotlin podcast
Kotlin + Spring Boot tutorial
My call for Kotlin as a major frontend language

Le langage

Quelles sont les fonctionnalités clés du langage
Null safety, extensions, data class, sealed class
Co-routines c'est quoi (zoom)
DSL

Quelles sont les inspirations de ce langage ?
Pourquoi JetBrains ont ils décidé de créer ce langage ? Avait on besoin d'un énième langage ?

Quel différenciateur vs reste
Early adopteurs, par rapport à la "concurrence" qu'est-ce qui vous a fait l'utiliser ?

Par rapport aux autres langages candidats modernes, votre point de vue

Le mix Object Oriented et fonctionnel, c'est le nouveau OO ?
Java 8, 9+ a atténué l'attrait?

Je peux mixer Kotlin et Java dans une même base de code ?
En particulier, tu peux même avoir des dépendances circulaires, genre une interface Java, une classe implémentée en Kotlin, et tu ré-étends cette classe en Java ? (et vice versa)
Est-ce que l'intégration Java / Kotlin est vraiment transparente, ou bien c'est plus compliqué que ça ?

Que quelles étapes parle-t-on pour rentre une API ou un framework "native" Kotlin ?

Sous le capot

Un langage de plus haut niveau: plus lent, plus gourmand en mémoire ?
Quid du boxing et type primitifs ?

Les utilisateurs type

Android
Gradle
Quels sont les utilisateurs type

L'écosystème

Build
Framework applicatif
Accès aux données
Tests : mock vs Mockito
Arrow

Y a-t-il une tendance "Kotlin native" (i.e. écrit en Kotlin)

L'influence sur les frameworks et les plateformes

Ecrire des APIs et des frameworks pour Kotlin, quel retour d'experience.

Communauté et futur Nous contacter

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 200 - Edition doublage05 Dec 201801:21:46

Guillaume, Vincent, Emmanuel et Arnaud passent en revue les 100 premiers épisodes des cast codeurs pour parler les nouvelles et des interviews les plus marquantes.

Enregistré le 4 decembre 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–200.mp3

Top des nouvelles les plus marquantes
  • Episode –200 2000: EJB 1 et JSP 0.97
  • Episode 1 2009: IBM rachète Sun (ou pas) http://tech.yahoo.com/news/nm/20090318/tc_nm/us_sunmicro_takeover_ibm
  • Episode 1 2009: Project coin (JDK) http://openjdk.java.net/projects/coin/
  • Episode 1 2009: Java EE 6
  • Episode 3 2009: Oracle rachète Sun
  • Episode 20 2010: Gosling quitte Oracle, Kohsuke quitte Sun
  • Episode 18 2010: JDuchess France
  • Episode 22: Lettre de Steve Jobs sur Flash
  • Episode 30: IBM rejoins OpenJDK ** Du rififi au JCP (personnes démissionnent)
  • Episode 35 2011: Jenkins!
  • Episode 39 2011: Amazon EC2 tombe ** Hyper concentration
  • Episode 43–44–47: Ceylon et puis Kotlin et puis Dart ** https://flutter.io
  • Episode 79 2013: Java 8 retardé, Java EE 7 validé
  • Episode 86 2013: Spring Boot
Top des pires news
  • Episode 3 2009: Spring Roo
  • Episode 5 2009: Google Wave
  • Episode 69 2012: APIs et copyright
Top des interviews les plus marquantes
  • Episode 8 2009: Interview de Romain Guy sur Google Android
  • Episode 17 2010: Play Framework
  • Episodes 19–21 2010: Indépendants
  • Episode 23 2010: Git (David Gageot)
  • Episode 29 2010: LA forge logicielle (DeLoof, Arnaud et Vincent)
  • Episode 36 2011: OpenSource (par les cast codeurs)
  • Episode 45 2011: Méthodes agiles
  • Episode 63 2012: W3C (Alexandre Bertails)
  • Episode 80–82 2013: Rémi Forax sur la JVM les langages et le middleware
  • Episode 89 2013: Infrastructure as code Patrick Debois
  • Episode 98 2014: CQRS et EventSourcing (Jeremie Chassaing) (Guillaume)
  • Episode 100 2014: Interview Tariq Krim sur le rapport au gouvernement
Top des outils de l'épisode
  • Episode 3 2009: Mindmap
  • Episode 3 2009: Mercurial supérieur à Git
  • Episode 18 2010: Mitaines
  • Episode 30 2010: La bite et le couteau
  • Episode 55 2012: Byteman
  • Episode 86 2013: Tig
  • Episode 93 2013: Size Up
Premières mentions:
  • Episode 5 2009: Jigsaw
  • Episode 7 2009: G1
  • Episode 9 2009: Devoxx (vs Javapolis)
  • Episode 16 2010: premier meetup NoSQL en France
  • Episode 18 2010: HTML5
  • Episode 53 2012: SOPA PIPA ACTA
  • Episode 50 2011: Devoxx France
  • Episode 59 2012: vert.x
  • Episode 68 2012: Lambda
  • Episode 72 2013: Interview closure avec José et David G
  • Episode 69 2012: Burnout
  • Episode 93 2013: Code of Conduct
  • Episode 96 2014: Docker (Par Deloof)
  • Episode 99 2014: microservices
Autre
  • Episode 5 2009: première du normandie jug
  • Episode 9 2009: les programmeurs et la trentaine
  • Episode 26 2010: JUG Summer Camp
  • Episode 2011: Programming Motherfucker manifesto
  • Episode 48: Scala est-il dur (période)
  • Episodes ~70: Java et la sécurité
Nous contacter

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 199 - Devoxx Belgique 201820 Nov 201801:02:05

Audrey, Guillaume et Emmanuel discutent des tendances et des présentations marquantes de Devoxx Belgique et de Voxxed Microservices.

Enregistré le 16 novembre 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–199.mp3

News Voxxed Microservices

Voxxed Microservices

Keynote diversité

Keynote sur YouTube

Devoxx Les keynotes

Amazon Corretto
Keynote Venkat
La version du ParisJUG - part 1
La version du ParisJUG - part 2
Keynote Mark Reinhold

Patreon

Soutenir les cast codeurs
Porte jaretelle chaussette et chemises

Tendances

Kotlin
GraalVM
Reactive
Kubernetes (istio, tools…)
Microservices
Event driven / sources + Kafka
Micronaut Les handicaps

Des présentations spécifiques

Event Sourcing - You are doing it wrong
Next Generation Web Application End-to-End Testing (Cypress.io)
Introducing to Micronaut: Lightweight Microservices with Ahead of Time Compilation
Spring Boot with Kotlin, functional configuration and GraalVM - Sébastien Deleuze JaFu, KoFu
Flight of the Flux: a look at Reactor's execution model - Simon Baslé (Pivotal)
Ways of improv-ing work and life #DifferentKindOfTalk - Alexandros Zotos
Sitting Considered Deadly - Marek Stój
Less Process, more Guidance with a Team Playbook - Sven Peters
Why you're failing your remote workers - Vincent Kok (Atlassian)

Ignite : le code en chantant

Agile is a Dirty Word- James Birnie

Nous contacter

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 198 - le mauvais open sourceur, il voit un code, et il opensource09 Nov 201801:27:35

Vincent, Guillaume et Arnaud enfilent leur slip des cast codeurs par dessus leur pantalons pour vous parler d'AdoptOpenJDK, de Spring Boot, de Micronaut, de Kubernetes, de Google App Engine, des vieux pôts de l'écosystème java dans lesquels ont fait les meilleures soupes, de piscem vorat maior minorem et d'un long outil de l'épisode sur TestContainers.

Enregistré le 6 novembre 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–198.mp3

News Langages

The AdoptOpenJDK Java 11 builds
Présentations Java de Oracle Code One listées par Sharat Chandler
Running Java code from the source, un article d'Andres Almiray montrant comment on peut lancer du code Java directement sans pré-compilation

Focus sur les closures en JavaScript par Wassim Chegham qui continue sa série sur les bases de JavaScript

Librairies

Spring Boot 2.1.0 est sorti

Micronaut 1.0 est sorti

Infrastructure

Kubernetes 1.12 (What's new by Rancher)
Comment dockeriser facilement des applis Java avec Jib (outil que nous avions couvert avec David Gageot)

Cloud

Github Actions: c'est un peu le IFTTT de Github pour le CI/CD, pour automatiser le workflow de développement

Secrets in Serverless par Seth Vargo qui couvre différentes approches pour cacher des secrets (mots de passe, etc) quand on utilise des solutions Serverless .
Node 10 sur Google App Engine sorti en beta en même temps que la release de Node 10
Go 1.11 sur Google App Engine également disponible en beta

Data

Redis modules forked pre-common clause. GoodFORM va-t'il (sur)vivre?
MongoDB change sa licence pour tirer parti de la manne des installations cloud de MongoDB
Le problème des licences avec Copyleft

Outillage

JVM Ecosystem Report 2018 - Quel est le plus gros concurrent à JenkinsCI ?
Apache Maven 3.6.0 plus CI Friendly avec un usecase pour les releases incrémentales chez Jenkins

Sécurité

50 millions de comptes compromis chez Facebook
CERTFR–2018-ALE–011 - Vulnérabilité dans le client Git + Nombreux avis de sécurité sur CERT-FR

Loi, société et organisation

Publicis va acquérir Xébia France
IBM va acquérir Red Hat
VMware / Pivotal vont acquérir Heptio

Outils de l'épisode

TestContainers

Rubrique débutant

Apprendre Apache Maven, l'outil de gestion et d'automatisation de production des projets logiciels sur developpez.com (ou sur GitHub)

Conférences

DevFest Toulouse le 8 novembre 2018 - sold out.
Bdx.io le 9 novembre 2018 - sold out.
Devoxx Belgique du 12 au 16 novembre 2018 - sold out.

DEVOPS D-DAY 2018 le 15 Novembre à Marseille.
Codeurs en Seine le 22 novembre 2018.

Snowcamp du 23 au 26 Janvier 2019.

CfP DevFest Paris le 8 Février 2019
CfP ConFoo Montreal 2019 du 13 au 15 Mars 2019
CfP Greach (Madrid) du 28 au 30 Mars 2019

Le site du Paris JUG
Le CFP de la soirée Young Blood VI

Nous contacter

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 197 - Interview SpringOne Platform avec Sébastien Deleuze et Brian Clozel13 Oct 201800:56:39
LCC 196 - CORS Lille debout T01 Oct 201801:14:53

Dans cet épisode, Emmanuel et Guillaume vous parlent de JDK 11, 12, 9, de GraalVM, de Kotlin, de Java et Jakarta EE, de serverless, de multi cloud, de consistance de données, de Linux, de l'Europe, de Bercy. Mais pas que !

Enregistré le 25 septembre 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–196.mp3

News Langages

Comprendre Java 9 et plus, on recommence:

Java 11 sort aujourd'hui
Exemple d'utilisation de HttpClient de Java 11 (avec GSON pour marshalling JSON)
JShell en profondeur sur InfoQ
Concise method bodies

Le podcast sur la circoncision

Java reflection, but much faster, from OptaPlanner
The Graal Frenzy par Julien Ponge
Les co-routines en Kotlin et structured concurrency
Voir aussi Java project Loom

Runtimes

Mettez à jour vos Jackson à la version 2.9.7

La suite de test de Java EE est open source
La roadmap d'Eclipse Glassfish

Oracle annonce Helidon

Infrastructure

LogDevice de Facebook, un homologue de Apache Kafka
LogDevice vs Kafka

Cloud

Séries sur Spring Cloud sur GCP par Josh Long
Serverless best practices
Multi cloud is a trap

NewSQL échouent dans leurs garanties et j'accuse Spanner

Web

Axa supprime son appli mobile: voilà pourquoi ?
CORS un article explicatif

Outillage

Qui a la plus grande sur GitHub en Open Source

Méthodologies

Le désenchantement dans le développement logiciel

Sécurité

Protéger l'identité contre silhouette
Faille de sécurité dans la distribution alpine utilisée dans les images docker

Loi, société et organisation

Linux se dote d'un code de conduite

L'union Européenne adopte la directive sur le droit d'auteur:

Ouverture des « sources » du simulateur économique de Bercy

Outils de l'épisode

Pouvoir faire un checkout de la pull request GitHub

git config --global --add remote.origin.fetch "+refs/pull/*/head:refs/remotes/origin/pr/*" git fetch origin # And then git checkout pr/123 Rubrique débutant

Les changements d'états dans Git

Conférences

Paris Web les 4, 5 et 6 octobre 2018.
DevFest Nantes les 18 et 19 octobre 2018 - sold out.
Jenkins World Europe du 22 au 25 octobre 2018 à Nice - (utilisez le code JWAHERITIER pour obtenir 20% de réduction).
VoxxedDays Microservices du 29 au 31 octobre 2018.
DevFest Toulouse le 8 novembre 2018.
Devoxx Belgique du 12 au 16 novembre 2018 - sold out.
Bdx.io le 9 novembre 2018 - sold out.
Codeurs en Seine le 22 novembre 2018. Snowcamp du 23 au 26 janvier 2019.

Nous contacter

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 195 - Interview panorama de l'écosystème Kubernetes avec David Gageot15 Sep 201800:40:30

Guillaume s'assoie avec David Gageot pour discuter une partie de l'écosystème Kubernetes. C'est probablement le premier épisode d'une série sur Kubernetes.

Enregistré le 11 septembre 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–195.mp3

Interview

Merci aux premiers auditeurs qui ont sauté le pas en nous soutiennent sur Patreon https://www.patreon.com/LesCastCodeurs.

Ta vie, ton œuvre

David Gageot

Kubernetes

Orchestrateur open source de containeurs, avec déploiement, scaling et management automatisé.
Kubernetes

Istio

Un "service mesh" open source pour connecter, sécuriser, contrôler, monitorer vos applications sur Kubernetes.
Istio
Run El Capitan, macOS Sierra, High Sierra and Mojave on QEMU/KVM

Knative

Des blocs de construction de base, open source, pour créer des plateformes serverless sur Kubernetes, développé par Google, Pivotal, Red Hat, IBM, SAP et d'autres.
Knative

Skaffold

Outil open source en ligne de commande pour faciliter le développement continu sur d'applications sur Kubernetes.
Skaffold

Jib

Outil open source pour containeuriser des applications Java, avec plugins Maven et Gradle associés, pour builder rapidement, de manière reproductible, sans avoir recours au démon Docker.
Jib

Distroless

Images Docker légères ne contenant que le système d'exploitation, les dépendances, et l'application elle-même, supportant Java, Go, .Net, Python ou Go.
Distroless

Kaniko

Outil open source pour builder des images à partir d'un Dockerfile, dans un conteneur ou dans un cluster Kubernetes, sans avoir besoin du démon Docker.
Kaniko

Gvisor

Un noyau en user-space écrit en Go, pour créer des conteneurs sandboxés.
gvisor

Nous contacter

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 194 - C'est qui le patron?06 Sep 201801:31:23

Dans cet épisode Audrey et Arnaud font le point sur les actualités de cet fin d'été 2018 avec pas mal de nouveautés pour préparer la rentrée comme la version 1.0 d'Istio, TLS 1.3, l'arrivée imminente de Java 11, et sans oublier la "minute" web d'Audrey.
Il est aussi question d'outillage avec Gradle, Docker, GitHub et de sujets plus sérieux comme Redis et la Commons Clause.
Emmanuel, quant à lui sort de son hamac pour vous présenter notre nouveau système de financement participatif du poscast.

Enregistré le 31 août 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–194.mp3

News Langages

JDK 11: First and last Release Candidate?
Java is still available at zero cost
Kotlin 1.3M2
Apache Releases Groovy 2.5 and Preview of Groovy 3.0

Middleware

10 Spring Boot Security Best Practices

Infrastructure

Istio 1.0
Run El Capitan, macOS Sierra, High Sierra and Mojave on QEMU/KVM

Web

Security Header Feature Policy
Experiences Using Micro Frontends at IKEA
Apps That Work Natively on the Web and Mobile
Babeljs 7 Released

Data

Redis et Commons Clause

Outillage

GitHub - Updates to protected branches
Docker 18.09 will support connecting to a remote daemon via SSH, without the TLS mess
Gradle 4.10

Méthodologies

SRE @Google - SLO before SLA

Sécurité

TLS 1.3

Crowdcast sur le financement participatif

Devenez un Patron des cast codeurs sur patreon.com/LesCastCodeurs

Loi, société et organisation

Even anonymous coders leave fingerprints
DefCon - Comment devenir administrateur des machines à voter aux USA
Le refactoring le plus difficile de ma carrière - Jérôme Petazzoni

Outils de l'épisode

Ora, une alternative à Jira pour gérer ses projets en s'appuyant sur les méthodes agiles

Conférences

Jug Summer Camp le 14 septembre 2018.
Paris Web les 4, 5 et 6 octobre 2018.
DevFest Nantes les 18 et 19 octobre 2018 - sold out.
Jenkins World Europe du 22 au 25 octobre 2018 à Nice - (utilisez le code JWAHERITIER pour obtenir 20% de réduction).
VoxxedDays Microservices du 29 au 31 octobre 2018.
DevFest Toulouse le 8 novembre 2018.
Devoxx Belgique du 12 au 16 novembre 2018 - sold out.
Bdx.io le 9 novembre 2018 - sold out.
Codeurs en Seine le 22 novembre 2018.

Nous contacter

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 193 - Interview Apache Kafka avec Florent Ramière30 Jul 201801:33:44

Florent Ramière vient discuter avec Emmanuel d'Apache Kafka, de ses usages, son fonctionnement, son écosystème. Et roule ma poule sur piste noire.

Enregistré le 19 juillet 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–193.mp3

Interview Ta vie, ton œuvre

Florent Ramière
@framiere
LinkedIn
Confluent

Kafka

Kafka en deux phrases
Apache Kafka
AMQP

Quels sont ses caractéristiques spécifiques Pourquoi pas A-MQ Discussion only-once delivery, at-least-once, exactly once

Les cas d'utilisations

Apache Spark Streaming
Apache flink

Partition

Discussion sur la dualité change event / table

Les blogs de Ben Stopford
Debezium - Change Data Capture

La compétition

L'utilisation

Comment Kafka s'utilise
Comment on l'installe

Definition des partitions

  • A quoi ça sert fonctionnellement le sharding
  • Comment choisir sa clé de sharding

Apache Zookeeper

Comment je publie un message ?
Je dois stocker l'index?

Protocol Kafka

Processing avec Kafka Streams
vs Spark Stream et Flink

Supervision
Démo de monitoring

Golden ratio

  • lag
  • partitions non répliquées
  • plusieurs leaders

Devoxx France Comment monitorer Kafka like a pro
Un tour de l'environnement Kafka

Sous la capot

Apache Zookeeper

Pourquoi ça scale ?
Réplication
Batching
Latence

Les top 5/10 problèmes que tu vois chez les clients

  • pas de monitoring
  • pas compris le système de partition: sous provisionner
  • gestion de l'ordre: lié à la production
  • codec: snappy

Producteurs
Présentation sur le producteur Kafka
Format des messages
Schema registry

Retention:

  • en temps
  • en byte

Compaction: avantages / inconvénients fonctionnels
Crypto-shredding

L'écosystème et la communauté

Kafka Connect
A Kafka Story

Kafka Stream
KSQL et son GitHub

Confluent Inc vs Apache Kafka

Apache Pulsar

Kafka Improvement Process

Ressources

Monitoring demo
A Kafka Story
Une démo complete kafka, broker, ksql, connect etc
Déployer la stack via ansible
KSQL
Microservices
Resources Kafka
Bouquin Kafka the definitive guide gratuit
Kafka Improvment process
Kafka protocol
Le blog de confluent
Apache Pulsar
Debezium

Nous contacter

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 318 - La faille sous la faille sous la faille08 Nov 202401:23:53

Cet épisode est relativement pauvre en IA, ouaissssssss ! Mais il nous reste plein de Spring, plein de failles, plein d'OpenTelemetry, un peu de versionnage sémantique, une astuce Git et bien d'autres choses encore.

Enregistré le 8 novembre 2024

Téléchargement de l'épisode LesCastCodeurs-Episode–318.mp3

News Langages

Le createur de Fernflower in decompilateur qui a relancé l'outillage autour de Java 8 est mort, un hommage d'IntelliJ IDEA https://blog.jetbrains.com/idea/2024/11/in-memory-of-stiver/

  • les decompilateurs s'appuyaient sur des patterns reconnus et étaient fragiles et incomplets
  • surtout quand Java 8 a changé le pattern try catch et ajouté des concepts comme les annotations
  • le champ était moribond quand Stiver s'est lancé
  • dommage l'article n'explique pas comment le control-flow graph est genere a partir du bytecode pour ameliorer la decompilation
Librairies

On peut maintenant utiliser Jakarta Data Repository dans Quarkus https://in.relation.to/2024/11/04/data-in-quarkus/

  • petit article avec un projet example
  • aussi un lien sur la presentation de Jakarta Data par Gavin à Devoxx Belgique

Quarkus 3.16 https://quarkus.io/guides/opentelemetry-logging

  • logs distribués avec OpenTelemetry (preview)
  • deserialiseurs Jackson sans reflection
  • des améliorations dans la stack de sécurité
  • TLS registry a ratjouté graphql client et keycloak admin client
  • LEs logs des container devservice et des access http sont visible dans la DevUI
  • Les extensions peuvent maintenant ecrire leur doc en markdown (c'etait juste asciidoc avant)

Un artcile sur comment débuter en Spring Batch https://www.sfeir.dev/back/planifier-des-taches-avec-spring-batch/

Le support OAuth2 pour RestClient arrive dans Security 6.4 / Boot 3.4. Plus de hack de WebClient dans vos applications Spring-Web ! https://spring.io/blog/2024/10/28/restclient-support-for-oauth2-in-spring-security–6–4

  • RestClient a été ajouté dans Spring Framework 6.1
  • API Fluide
  • Spring Security 6.4 simplifie la configuration OAuth2 avec le nouveau client HTTP synchrone RestClient.
  • RestClient permet des requêtes de ressources sans dépendances réactives, alignant la configuration entre applications servlet et réactives.
  • La mise à jour facilite la migration depuis RestTemplate et ouvre la voie à des scénarios avancés.

Marre des microservices ? Revenez au monoliths avec Spring Modulith 1.3RC1, 1.2.5 et 1.1.10 https://spring.io/blog/2024/10/28/spring-modulith–1–3-rc1–1–2–5-and–1–1–10-released

  • Spring Modulith 1.3 RC1, 1.2.5, and 1.1.10 sont disponibles.
  • La version 1.3 RC1 inclut des nouvelles fonctionnalités :
  • archiving event publication completion mode
  • compatibilité avec MariaDB et Oracle avec JDBC-based event publication registry
  • Possibilité d'externaliser des événements dans des MessageChannels de Spring.
  • Expressions SpEL dans @Externalized
  • validation d'architecture technique jMolecules.
  • Les versions 1.2.5 et 1.1.10 apportent des correctifs et mises à jour de dépendances.

Spring gRPC 0.1 est sorti https://github.com/spring-projects-experimental/spring-grpc

  • c'est tout nouveau et explorationel
  • si c'est un probleme qui vous gratte, ca vaut le coup de jeter un coup d'oeil et participer.
  • Spring Boot 3.3

Integrer Spring avec Open Telemetry (OTLP protocole) https://spring.io/blog/2024/10/28/lets-use-opentelemetry-with-spring

  • rappel de la valeur de ce standard Open Telemetry
  • comment l'utiliser dans vos projets Spring

Comment utiliser ollama avec Spring AI https://spring.io/blog/2024/10/22/leverage-the-power-of–45k-free-hugging-face-models-with-spring-ai-and-ollama

  • permet d'acceter aux 45k modeles de Hugging faces qui supportent le deploiement sur ollama
  • il y a un spring boot starter
  • c'est vraiment pour debuter
Cloud

Google Cloud Frankfort a subit 12h d'interruption https://t.co/VueiQjhCA3

  • Google Cloud a subi une panne de 12 heures dans la région europe-west3 (Francfort) le 24 octobre 2024.
  • La panne, causée par une défaillance d'alimentation et de refroidissement, a affecté plusieurs services, y compris Compute Engine et Kubernetes Engine.
  • Les utilisateurs ont rencontré des problèmes de création de VM, des échecs d'opérations et des retards de traitement.
  • Google a conseillé de migrer les charges de travail vers d'autres zones.
  • il y a eu une autre zone Europeenne pas mal affectée l'année dernière
  • et des clients ont perdu des données :sweat:
Web

La fin de la World Wild Web Foundation https://www.theregister.com/2024/09/30/world_wide_web_foundation_closes/

  • la Fondation World Wide Web ferme ses portes.
  • Les cofondateurs estiment que les problèmes auxquels est confronté le Web ont changé et que d'autres groupes de défense peuvent désormais prendre le relais.
  • Ils estiment également que la priorité absolue doit être donnée à la passion de Tim Berners-Lee pour redonner aux individus le pouvoir et le contrôle de leurs données et pour construire activement des systèmes de collaboration puissants (Solid Protocol - https://solidproject.org/).

Release du https://www.patternfly.org/ 6

  • Fw opensource pour faire de UI, sponsor RH
  • Interessant à regarder
Data et Intelligence Artificielle

TSMC arrête des ventes à un client chinois qui aurait revenu un processeur à Huawei et utilise dans sa puce IA https://www.reuters.com/technology/tsmc-suspended-shipments-china-firm-after-chip-found-huawei-processor-sources–2024–10–26/

  • Taiwan Semiconductor Manufacturing Company (TSMC) a suspendu ses livraisons à Sophgo, un concepteur de puces chinois, après la découverte d'une puce fabriquée par TSMC dans un processeur AI de Huawei (Ascend 910B). Cette découverte soulève des préoccupations concernant des violations potentielles des contrôles d'exportation des États-Unis, qui restreignent Huawei depuis 2020.
  • Sophgo, lié à Bitmain, a nié toute connexion avec Huawei et affirme se conformer aux lois applicables. Toutefois, l'incident a conduit à une enquête approfondie de TSMC et des autorités américaines et taïwanaises

Open AI et Microsoft, de l'amour à la guerre https://www.computerworld.com/article/3593206/microsoft-and-openai-good-by-bromance-hel[…]m_source=Adestra&huid=4349eeff–5b8b–493d–9e61–9abf8be5293b

  • on a bien suivi les chants d'amour entre Sam Altman et Satia Nadella
  • ca c'est tendu ces derniers temps
  • deja avec le coup chez openAI où MS avait sifflé la fin de la récré
  • "on a le code, les données, l'IP et la capacité, on peut tout recrée"
  • OpenAi a un competiteur de Copilot et essaie de courtises ses clients
  • les apétits d'investissements d'OpenAI et une dispute sur la valeur de la aprt de MS qui a donné des crédits cloud semble etre aui coeur de la dispute du moment

Debezium 3 est sorti https://debezium.io/blog/2024/10/02/debezium–3–0-final-released/

  • Java 17 minimum pour les connecteurs et 21 pour le serveur, l'extension quarkus outbox et pour l'operateur
  • nettoyage des depreciations
  • metriques par table maintenant
  • support for mysql 9 y compris vector data type
  • oracle, default mining strategie changée
  • ehcache off-heap ajouté
  • amelioarations diverses Oracle (offline RAC node flush, max string size for Extended
  • PostgreSQL PGVector
  • etc (Spanner, vitess, …)

NotebookLlama: une version Open Source de NotebookLM https://github.com/meta-llama/llama-recipes/tree/main/recipes/quickstart/NotebookLlama

  • Si vous avez été impressionné par les démo de Gemini Notebook, en créant des podcasts à partir de différentes resources, testez la version llama
  • Tutoriel étape par étape pour transformer un PDF en podcast.
Outillage

Vous aimez Maven? Bien évidemment! Vous aimez asciidoctor? Absolument! Alors la version 3.1.0 du plugin asciidoctor pour maven est pour vous !! https://github.com/asciidoctor/asciidoctor-maven-plugin

  • Le plugin permet soit de convertir des documents asciidoc de manière autonome, soit de les gérer via le site maven

GitHub Universe: de l'IA, de l'IA et encore de l'IA https://github.blog/news-insights/product-news/universe–2024-previews-releases/

  • GitHub Universe 2024 présente les nouveautés de l'année, notamment la possibilité de choisir parmi plusieurs modèles d'IA pour GitHub Copilot (Claude 3.5, Gemini 1.5 Pro, OpenAI o1).
  • Nouvelles fonctionnalités : GitHub Spark pour créer des micro-applications, révisions de code assistées par Copilot, sécurité renforcée avec Copilot Autofix.
  • Simplification des workflows avec les extensions GitHub Copilot
  • Facilitation de la création d'applications IA génératives avec GitHub Models
Méthodologies

Les blogs de developpeurs experts Java recommandés par IntelliJ https://blog.jetbrains.com/idea/2024/11/top-java-blogs-for-experienced-programmers/

  • pas forcement d'accord avec toute la liste
  • mais elle donne de bonnes options si vous voulez lire plus de blogs Java

Keycloak revient au semantic versioning après avoir suivi le versionage à la Google Chrome https://www.keycloak.org/2024/10/release-updates

  • ne pas savoir si une mise a jour était retrocompatible était problématique pour les utilisateurs
  • aussi les librairies clientes seront délivrées séparément et supporteront toutes les versions serveur de keycloak supportés
Sécurité

Un exemple d'attaque de secure supply chain théorique identifiée dans le quarkiverse et les détails de la résolution https://quarkus.io/blog/quarkiverse-and-smallrye-new-release-process/

  • dans le quarkiverse, les choses sont automatisées pour simplifier la vie des contributeurs d'extension occasionels
  • mais il y avait un défaut, les secrets de signature et d'accès à maven central étaient des secrets d'organisation
  • ce qui veut dire qu'un editeur d'extension malicieux pouvait ecrire un pluging ou un test qiu lisait ses secrets et pouvait livrer de faux artifacts
  • la solution est de séparer la construction des artifacts de l'etape de signature et de release sur maven central
  • comme cela les cles ne sont plus accessible

Avec Okta pus besoin de mot de passe quand tu as un identifiant long :face_with_hand_over_mouth: https://trust.okta.com/security-advisories/okta-ad-ldap-delegated-authentication-username/

  • LOL
  • Une vulnérabilité a été découverte dans la génération de la clé de cache pour l'authentification déléguée AD/LDAP.
  • Les conditions:
  • MFA non utilisé
  • Nom d'utilisateur de 52 caractères ou plus
  • Utilisateur authentifié précédemment, créant un cache d'authentification
  • Le cache a été utilisé en premier, ce qui peut se produire si l'agent AD/LDAP était hors service ou inaccessible, par exemple en raison d'un trafic réseau élevé
  • L'authentification s'est produite entre le 23 juillet 2024 et le 30 octobre 2024
  • Fixé le 30 octobre, 2024

La revanche des imprimantes !! Linux ne les aime pas, et elles lui rendent bien. https://www.theregister.com/2024/09/26/cups_linux_rce_disclosed/

  • Après quelques heures / jours de rumeurs sur une faille 9.9/10 CVSS il s'avère que cela concerne que les système avec le système d'impression CUPS et cups-browsed
  • Désactivez et/ou supprimez le service cups-browsed.
  • Mettez à jour votre installation CUPS pour appliquer les mises à jour de sécurité lorsqu'elles sont disponibles.
  • Envisagez de bloquer l'accès au port UDP 631 et également de désactiver le DNS-SD.
  • Cela concerne la plupart des distributions Linux, certaines BSD, possiblement Google ChromeOS, Solaris d'Oracle et potentiellement d'autres systèmes, car CUPS est intégré à diverses distributions pour fournir la fonctionnalité d'impression.
  • Pour exploiter cette vulnérabilité via internet ou le réseau local (LAN), un attaquant doit pouvoir accéder à votre service CUPS sur le port UDP 631. Idéalement, aucun de vous ne devrait exposer ce port sur l'internet public. L'attaquant doit également attendre que vous lanciez une tâche d'impression.
  • Si le port 631 n'est pas directement accessible, un attaquant pourrait être en mesure de falsifier des annonces zeroconf, mDNS ou DNS-SD pour exploiter cette vulnérabilité sur un LAN.
Loi, société et organisation

La version 1.0 de la definition de l'IA l'Open Source est sortie https://siliconangle.com/2024/10/28/osi-clarifies-makes-ai-systems-open-source-open-models-fall-short/

  • L'Open Source Initiative (OSI) a clarifié les critères pour qu'un modèle d'IA soit considéré comme open-source : accès complet aux données de formation, au code source et aux paramètres d'entraînement.
  • La plupart des modèles dits "open" comme ceux de Meta (Llama) et Stability AI (Stable Diffusion) ne respectent pas ces critères, car ils imposent des restrictions sur l'utilisation commerciale et ne rendent pas publiques les données de formation
  • c'est au details de données de formation (donc pas forcement les données elle meme. "In particular, this must include: (1) the complete description of all data used for training, including (if used) of unshareable data, disclosing the provenance of the data, its scope and characteristics, how the data was obtained and selected, the labeling procedures, and data processing and filtering methodologies; (2) a listing of all publicly available training data and where to obtain it; and (3) a listing of all training data obtainable from third parties and where to obtain it, including for fee."
  • C'est en echo a la version d'open source AI de la linux fondation

En parlant de cela un article sur l'open source washing dans les modèles https://www.theregister.com/2024/10/25/opinion_open_washing/

  • L'open washing désigne la pratique où des entreprises prétendent que leurs produits ou modèles sont open-source, bien qu'ils ne respectent pas les critères réels d'ouverture (transparence, accessibilité, partage des connaissances).
  • De grandes entreprises comme Meta, Google et Microsoft sont souvent accusées d'utiliser cette stratégie, ce qui soulève des préoccupations concernant la clarté des définitions légales et commerciales de l'open source, surtout avec l'essor de l'IA.
Rubrique débutant

Un petit article fondamental sur REST https://www.sfeir.dev/rest-definition/

  • there de Roy Fielding
  • en reaction aux protocoles lourds comme SOAP
  • 5 verbes (GET PUT, POST. DELETE, PATCH)
  • JSON mais pas que (XML et autre
  • pas d'etat inter requete
Ask Me Anything

Morgan de Montréal Comment faire cohabiter plusieurs dépôts Git ?

Je m'explique : dans mon entreprise, nous utilisons notre dépôt Git (Bitbucket) configuré pour notre dépôt d'entreprise. Lorsque je souhaite contribuer à un projet open source, je suis obligé de modifier ma configuration globale Git (nom d'utilisateur, email) pour correspondre à mon compte GitHub. Il arrive souvent que, lorsque je reviens pour effectuer un commit sur le dépôt d'entreprise, j'oublie que je suis en mode "open source", ce qui entraîne l'enregistrement de mes configurations "open source" dans l'historique de Bitbucket… Comment gérez-vous ce genre de situation ?

Comment gérer différents profiles git https://medium.com/@mrjink/using-includeif-to-manage-your-git-identities-bcc99447b04b

Conférences

La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

Nous contacter

Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs

Contactez-nous via twitter https://twitter.com/lescastcodeurs
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

LCC 192 - Les vétérans du podcast17 Jul 201801:13:51

Dans cet épisode, Emmanuel et Guillaume, les deux seuls casts codeurs encore présents discutent langages, architecture, nouveautés Kubernetes et font de l'archéologie du web et des gestionnaires de code source sous l'oeil attentif de Chouquette, le chat de Guillaume.

Enregistré le 13 juillet 2018.

Téléchargement de l'épisode LesCastCodeurs-Episode–192.mp3.

News Langages

JDK 11 is in Rampdown Phase One
.NET Core 2.0 EOL et 2.1 LTS
Apache Groovy 2.5 et 3.0 sur InfoQ
1ère RC de TypeScript 3
Comment lire les bronzes de fils (thread dumps)
Le prix du JDK Oracle dans le nouveau monde LTS / STS
Tests sur OpenJ9 pour l'IDE Eclipse
Java annotated monthly par Trisha Gee qui liste plein de news autour de l'écosystème Java

Librairies

Retour sur les bugs liés aux ORMs
Jonathan Giles sur le design d'API et les bonnes pratiques associées

Middleware

Micronaut milestone 2 avec support de Server-Sent-Events, metrics, OpenFaaS et plus
Micronaut: a Java framework for the future, now
Difference entre microprofile 1.4 et 2.0
JHipster 5.0.0
Crowdcast Camel par Bertrand Pinel

Infrastructure

Kubernetes 1.11
Guide de style pour bash par Google
Discussions sur Helm 3
Kubernetes sur Azure

Correction

Article sur Helm 3

Les templates GO seront toujours utilisables mais on pourra également se servir de Lua pour faire des scripts qui eux auront accès aux templates avant et après le rendering

Web

Les plus vieux noms de domaine

Data

Infinispan 9.3 est sorti
BlaBlaCar utilise CDC Debezium pour migrer leur monolith

Outillage

Introducing Git protocol version 2
CloudBees Raises $62 Million in Growth Funding as DevOps Market Soars

Pourquoi Atom ne peut pas remplacer Vim
Eclipse photon est sorti avec support for JDK 9 et 10
Stephen Colebourne content avec Photon et Java 9/10/11
Eclipse Che 6.6

Introduction à Google Jib — construire des images Docker Java (projet sur github)
First look at Jib, avec une comparaison de Jib et le plugin de Fabric8

Architecture

Migrer les utilisateurs de Facebook messenger
Les Golden Signaux du monitoring

Fun

Informatique quantique partie 1 et partie 2 sur InfoQ par Holly Cummins
Entanglion un jeu de plateau coopératif open source sur le thème quantique créé par des chercheurs de chez IBM Research

Loi, société et organisation

Directive Copyright : le Parlement européen dit non et reprend la main

Outils de l'épisode

Zulip

Rubrique débutant

Comment était la gestion de source avant Git

Conférences

Dev.tube permet de chercher les vidéos de plein de conférences pour se rattraper cet été sur la plage
Jug Summer Camp le 14 septembre 2018
Paris Web les 4, 5 et 6 octobre 2018
DevFest Nantes les 18 et 19 octobre 2018
Jenkins World Europe du 22 au 25 octobre 2018 à Nice - (utilisez le code JWAHERITIER pour obtenir 20% de réduction)
VoxxedDays Microservices du 29 au 31 octobre 2018
DevFest Toulouse le 8 novembre 2018
Devoxx Belgique du 12 au 16 novembre 2018
Bdx.io le 9 novembre 2018 la conférence est sold out mais le CfP est encore (https://cfp.bdx.io/) ouvert
Codeurs en Seine le 22 novembre 2018 - Le CfP est ouvert

 

LCC 191 - La quête du GraalVM16 Jun 201801:34:12

Dans cet épisode, Guillaume et Emmanuel discutent GraalVM, Java LTS, MS-DOS, gVisor, GitHub et microframeworks.

Enregistré le 14 juin 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–191.mp3

News Correction

Article de performance SpringBoot classique vs réactif

L'article "SpringBoot 2 performance — servlet stack vs WebFlux reactive stack" est à prendre avec de grosses pincettes. Le client HTTP utilisé pour la version servlet est celui par défaut Java à base d'URLConnection. Pas de reused de la connection…. A 2500 users sur un benchmark IO bound avec un tel ratio wait/processing, il ne devrait pas avoir une telle différence de throughput.

  • Nicolas Labro
Langages

GraalVM
Les limitations de SubstrateVM
Retour d'impression sur GraalVM
GraalVM avec Play Framework

Java 11 more than just features
Replacing reflection with invokedynamic

Librairies

The rise of Microframeworks
The state of Java/Kotlin Microframeworks in 2018

L'équipe de Grails a sorti un nouveau micro-framework, Micronaut, basé sur Netty et sans Spring, pour plus de légèreté
Un workshop sur Micronaut pour démarrer avec Micronaut

Est-ce qu'on a toujours besoin de Spock avec l'arrivée de JUnit 5 ? TL;DR : oui :-)

Middleware

JakartaEE is officially out
Barre de progression de la contribution Oracle à Jakarta EE
The state of Spring Java in 2018
Camel et Bean Validation

  • débat Camel est l'option « no code »
Infrastructure

MS-DOS expliqué !

gVisor
Product Manager de Google expliquant que gVisor est utilisé par App Engine et Cloud Functions

Lancement de Skaffold pour automatiser le développement sur Kubernetes
Skaffold sur Github
Skaffold and Kaniko: Bringing Kubernetes to Developers

Cloud

Node 8 sur App Engine

Web

Angular 6

Les regrets de Ryan Dahl sur Node.JS (et lancement de son nouveau framework Deno)
Article sur ses regrets

On peut faire mieux que console.log()

Outillage

GitHub se fait gobber par Microsoft
L'équipe Java Mission Control virée par Oracle
Gradle 4.8

Méthodologies

Hiérarchie et documentation
Comment un agent public peut contribuer à l'Open Source

Sécurité

Custom domains on GitHub Pages gain support for HTTPS
Vulnérabilité dans Git amenant à une exécution à distance

Outils de l'épisode

Byteman et injection de faute
GitIgnore.io

Outil de crowdcasting de Pierre Carion

Rubrique débutant

Crowdcast de Pierre Carion
Pour un débutant qu'est-ce:

  • les forces de Java ou de la JVM
  • qui rend Java encore attractif
  • bon choix pour commencer un projet en 2018
Conférences

EclipseCon les 13 et 14 juin 2018
JHipster Conf le 21 juin
DevFest Lille le 21 juin 2018
Voxxed Luxembourg le 22 juin 2018
Sunny Tech les 28 et 29 juin 2018
Jenkins User Conference le 28 juin 2018
Jug Summer Camp le 14 septembre 2018 - Le CfP est ouvert.
Paris Web les 4, 5 et 6 octobre 2018
DevFest Nantes les 18 et 19 octobre 2018 - Le CfP est ouvert.
Jenkins World Europe du 22 au 25 octobre 2018 à Nice - (utilisez le code JWAHERITIER pour obtenir 20% de réduction).
VoxxedDays Microservices du 29 au 31 octobre 2018
DevFest Toulouse le 8 novembre 2018
Codeurs en Seine le 22 novembre 2018

Nous contacter

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 190 - Interview revue de code Gerrit et l'outil Vet avec Julien Béti et Réda Housni-Alaoui30 May 201800:34:57

Julien et Reda viennet nous parler de Gerrit et de son système de revue de code ; puis de l'outil Vet qu'ils ont open sourcé. Et José Paumard nous fait

try ( José josé = new José(2018) ) { Audio crowdcast = Stream.of( josé.interview(), josé.interview(), josé.interview(), josé.interview() ) .map( Audio::normalize ) .filter( a -> ! a.tooNoisy() ) .collect( AudioCollectors.joining( " fade out <-> fade in " ) ); return crowdcast; }

Enregistré le 15 mai 2018

Téléchargement de l'épisode LesCastCodeurs-Episode–190.mp3

Interview Ta vie, ton œuvre

Cosium
Julien Béti, CTO
Réda Housni-Alaoui, Architecte

Gerrit

Le sujet: notre passage à Gerrit et le client associé que nous avons mis en place: Vet. Un article sur le sujet que Réda avait écrit sur le sujet: https://medium.com/@rdahousnialaoui/abandoning-bitbucket-server-in-favor-of-gerrit-ee6b60e01795

BitBucket

La page GitHub de Vet, en full Java 9, avec utilisation de JLink \o/
Un plugin IntelliJ est en cours de développement

Dans l'interview, nous n'avons pas eu le temps de parler: De Vet et des workflows associés (via les commandes documentées sur la page GitHub) qui permettent de verrouiller les push sur le git remote. De l'aspect extensible de Gerrit qui permet, par exemple, d'appliquer automatiquement une PR lorsque l'ensemble des conditions sont réunies (+2 d'un reviewer, pas de –1 d'un reviewer, +1 de Jenkins) et ce quelque soit l'ordre d'arrivée.

Concernant la problématique que tu as évoqué de "commit annexe", il est en fait possible dans Gerrit de créer une dépendance entre PR. Nous n'utilisons pas cette fonction, il est donc possible que quelques modifications sur Vet soient nécessaire pour en tirer profit. Plus d'infos ici: https://gerrit-review.googlesource.com/Documentation/concept-changes.html#related-changes

Le crowdcast de José Paumard

@JosePaumard

Nous contacter

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/
Flattr-ez nous (dons) sur https://lescastcodeurs.com/
En savoir plus sur le sponsoring? sponsors@lescastcodeurs.com

© My Podcast Data