Podcasts about testcontainers

  • 44PODCASTS
  • 64EPISODES
  • 54mAVG DURATION
  • 1MONTHLY NEW EPISODE
  • Jun 22, 2026LATEST

POPULARITY

20192020202120222023202420252026


Best podcasts about testcontainers

Latest podcast episodes about testcontainers

Les Cast Codeurs Podcast
LCC 341 - Endives ou Chicorée ?

Les Cast Codeurs Podcast

Play Episode Listen Later Jun 22, 2026 67:11


JDK 26 optimise la JVM dans ses moindres recoins, le SDK Java d'Agent2Agent passe en 1.0, Micronaut 5 est là. Côté terrain, un retour d'expérience après 40 jours à coder avec 100 % d'IA : génie ou junior, Alzheimer numérique et dette technique invisible. Pendant ce temps, GitLab restructure, Microsoft suspend ses licences Claude Code, et un développeur injecte un prompt destructeur dans sa lib JUnit. La révolution IA a un coût et les boites commencent à s'en rendre compte. Enregistré le 12 juin 2026 Téléchargement de l'épisode LesCastCodeurs-Episode-341.mp3 ou en vidéo sur YouTube. News Langages Les améliorations de performance dans le JDK 26 https://inside.java/2026/06/09/jdk-26-performance-improvements/ Côté bibliothèques, l'API LazyConstant (anciennement StableValue) fait son entrée en prévisualisation pour permettre une initialisation paresseuse, sécurisée pour les threads et optimisée par le mécanisme de constant-folding de la JVM. L'extraction de chaînes de caractères via MemorySegment::getString a été revue pour réduire considérablement les allocations intermédiaires et les copies en mémoire off-heap, accélérant fortement les traitements sur les chemins critiques (hot paths). La méthode générée automatiquement hashCode() pour les classes de type record a été optimisée par la JVM pour atteindre un niveau de performance équivalent à une implémentation écrite manuellement. Le ramasse-miettes G1 bénéficie du JEP 522 qui redessine sa table de cartes (card-table) afin de réduire les coûts de synchronisation des barrières d'écriture, offrant un gain de débit de 5 % à 15 % sur les applications manipulant énormément de références d'objets. Grâce au JEP 516 (Project Leyden), le cache d'objets Ahead-of-Time (AOT) adopte un format de flux agnostique, ce qui lui permet d'être compatible avec n'importe quel Garbage Collector, y compris le ramasse-miettes à très faible latence ZGC. Le démarrage de la JVM s'accélère par défaut lorsqu'aucune taille de tas n'est configurée, car HotSpot n'applique plus de pourcentage initial (InitialRAMPercentage) mais démarre directement avec la taille minimale (MinHeapSize) pour éviter d'allouer des métadonnées inutiles. Les threads virtuels gagnent en robustesse en étant désormais capables de céder la main (yield) pendant les phases d'initialisation des classes, éliminant ainsi le risque de famine des threads porteurs (carrier threads). Le compilateur C2 JIT améliore son modèle de coût pour la vectorisation des boucles (SIMD) et se montre maintenant capable de compiler et d'optimiser des méthodes dotées de listes de paramètres extrêmement longues. Librairies Release candidate du A2A Java SDK supportant versions 0.3 et 1.0 en même temps https://medium.com/google-cloud/a2a-java-sdk-1-0-0-cr1-released-f0c651ec9139 Dernière étape avant la GA : Toutes les fonctionnalités prévues pour la version 1.0 sont finalisées. Migration simplifiée depuis la Beta1. Compatibilité v0.3 : Ajout d'une couche de compatibilité permettant aux agents v1.0 de communiquer avec les systèmes v0.3 (via JSON-RPC, gRPC ou REST). Support natif pour Android (nouvel AndroidHttpClient). Uniformisation des clients HTTP pour garantir une cohérence entre les versions. Nouveau parseur SSE (Server-Sent Events) conforme aux spécifications. Ça y est, le SDK Java de l'Agent 2 Agent Protocol est sorti en version 1.0 finale ! (avec compatibilité v0.3 et v1.0) https://medium.com/google-cloud/a2a-java-sdk-1-0-0-final-released-10c05b6aee34 Lancement officiel : Sortie de A2A Java SDK 1.0.0.Final, la première version stable (GA) du protocole Agent2Agent. Objectif du protocole : Standard ouvert (Linux Foundation) permettant aux agents IA de communiquer, déléguer des tâches et collaborer, indépendamment du langage ou du framework. Interopérabilité : Introduction de l'Integration Test Kit (ITK) pour valider la compatibilité entre les SDK (Java, Python, TypeScript, etc.). Transports supportés : Support complet et équivalent pour JSON-RPC, gRPC et HTTP+JSON/REST. Alignement total avec la spécification A2A 1.0.0. Passage aux Java records pour l'immutabilité et moins de code répétitif. Architecture interne basée sur un MainEventBus pour garantir la persistance et éviter les conditions de concurrence. Intégration d'OpenTelemetry pour le suivi et la surveillance. Support d'Android et compatibilité descendante avec la version 0.3. Installation : Gestion des dépendances via Maven BOM (org.a2aproject.sdk). Sortie de Micronaut 5.0 https://micronaut.io/2026/05/20/micronaut-framework-5-0-0-released/ Lancement majeur : Disponibilité générale de Micronaut 5, incluant une refonte de plus de 70 modules et la plateforme BOM. Baselines techniques : Support de Java 25, Groovy 5, Kotlin 2.3 et GraalVM 25.0.3. Optimisations internes : Amélioration significative des performances au démarrage et réduction de la surcharge à l'exécution via une refonte du conteneur IoC et du traitement à la compilation. Architecture HTTP : Support stable de HTTP/3, nouvelle API de formulaires (multipart) et annotations de nullabilité (JSpecify) pour une meilleure interopérabilité Kotlin/IDE. Configuration : Nouveau système d'importation de configuration (remplaçant le Bootstrap Configuration) et validateur de schéma JSON intégré. Fiabilité : Nouvelles API programmatiques pour les politiques de retry et circuit breaker. Sécurité & Outils : Mise à jour majeure des dépendances (Jackson 3, Ktor 3), rafraîchissement du Panneau de contrôle et diagnostics AOT améliorés. Écosystème : Mises à jour complètes pour les bases de données (Data, SQL, R2DBC, MongoDB, Redis), le cloud (AWS, Azure, GCP, OCI) et les tests (JUnit 6, Testcontainers 2.0). Évolutions notables : Intégration HTMX dans Micronaut Views, retrait du support RxJava 2 et migration de divers processeurs d'annotations vers des modules dédiés. Comment rajouter un agent IA dans une app Android, avec le tout nouveau framework ADK pour Kotlin https://glaforge.dev/posts/2026/05/21/wiring-adk-kotlin-agents-in-an-android-application/ Guillaume a participé au développement et au lancement du nouveau runtime ADK pour Kotlin et Android https://developers.googleblog.com/adk-kotlin-android-building-ai-agents/ Tutoriel sur comment intégrer un agent ADK dans une app Dépendances : Ajout du noyau ADK (google-adk-kotlin-core) et du processeur KSP dans build.gradle.kts. Sécurité API : Utilisation de local.properties pour stocker la clé API Gemini et l'exposer via BuildConfig afin d'éviter le hardcoding. Définition de l'agent : Création d'un objet LlmAgent configuré avec le modèle Gemini, des instructions spécifiques et des outils (ex: GoogleSearchTool). Utilisation de InMemoryRunner pour gérer automatiquement le contexte et l'historique de la session. Implémentation de runAsync avec StreamingMode.SSE pour un retour en temps réel dans l'interface. Threading : Exécution des requêtes réseau sur Dispatchers.IO et mise à jour de l'état de l'interface utilisateur sur Dispatchers.Main. Comment développer et hoster des agents IA sur la plateforme d'agents managés de DeepMind https://glaforge.dev/posts/2026/05/21/managed-agents-with-the-gemini-interactions-java-sdk/ L'équipe DeepMind de Google a lancé une plateforme d'agents managés sur son API Gemini Interactions https://blog.google/innovation-and-ai/technology/developers-tools/managed-agents-gemini-api/ Guillaume a implémenté un SDK Java pour utiliser cette API Gemini Interactions, qui donne entre autre accès à tous les modèles mais aussi à cette plateforme managée d'agents IA Agents managés : Permet d'exécuter des agents autonomes qui raisonnent, planifient et exécutent du code dans des environnements isolés (sandboxes), sans gestion d'infrastructure par le développeur. Environnement distant : Utilise des espaces de travail Linux éphémères dans le cloud via le paramètre remote, permettant l'accès réseau et la persistance des fichiers sur plusieurs appels. Agents prédéfinis : Accès immédiat à des agents spécialisés comme deep-research-pro (recherche multi-étapes) ou antigravity (tâches de codage généralistes). Agents personnalisés : Possibilité de configurer ses propres agents avec des instructions système dédiées, des outils spécifiques (exécution de code, recherche Google) et des règles réseau (egress) personnalisées. Architecture basée sur les étapes (Steps) : Utilise une structure de données typée (Step, Content) pour suivre le raisonnement de l'agent, ses appels de fonctions et ses résultats en temps réel. Outils et Schémas : Inclut des utilitaires pour générer des schémas JSON complexes via une interface fluide (DSL), par réflexion Java ou par parsing JSON. Streaming réactif : Support natif des événements en temps réel (SSE) pour suivre la progression de l'agent et recevoir les deltas de contenu au fur et à mesure de la génération. Flexibilité : Fournit un gestionnaire de routage (InteractionsHandler) pour créer facilement des serveurs proxy ou des backends intermédiaires traitant les interactions Gemini. Spring Boot 4.1 https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.1-Release-Notes Support natif pour Spring gRPC permettant de créer et tester facilement des applications clientes et serveurs basées sur Netty ou des Servlets via HTTP/2 Introduction du lazy fetching pour les connexions JDBC via la propriété spring.datasource.connection-fetch=lazy afin de ne prendre une connexion du pool que lorsqu'un Statement est réellement exécuté Amélioration de l'auto-configuration de Jackson permettant de définir globalement les contraintes de lecture/écriture pour les formats JSON, XML et CBOR via des propriétés de configuration Sécurisation des clients HTTP bloquants et réactifs face aux attaques SSRF grâce à l'introduction d'un InetAddressFilter bloquant les requêtes sortantes vers des adresses spécifiques Améliorations majeures autour d'OpenTelemetry avec le support complet des variables d'environnement OTel, la possibilité de désactiver le SDK via une propriété globale et l'ajout du support SSL sur les exporters OTLP Ajout de l'auto-configuration pour l'utilisation de Spring Batch avec MongoDB incluant un nouveau starter dédié spring-boot-batch-data-mongo Auto-configuration des endpoints @RedisListener sans nécessiter la déclaration manuelle d'un RedisMessageListenerContainer Dépréciation du support de Apache Derby (projet arrêté), suppression définitive du mode layertools du JAR et réintroduction du support de Spock 2.4 (avec Groovy 5) Upgrade des dépendances majeures de l'écosystème avec notamment Spring Framework 7.0.8, Spring Security 7.1.0 et Micrometer 1.17.0 Outillage Vous êtes plutôt endive ou chicorée ? La librairie Chicory qui permet d'exécuter du code WASM à partir de son application Java est forkée et rejointe la Bytecode Alliance pour continuer son développement https://bytecodealliance.org/articles/endive-and-the-next-chapter-of-webassembly-on-the-jvm Annonce d'Endive : Nouveau projet hébergé par la Bytecode Alliance ; fork de Chicory (moteur WebAssembly pur Java, sans dépendance native). ​Objectif principal : Permettre aux développeurs Java d'intégrer, charger et déployer des modules Wasm nativement via les workflows Java habituels. ​Compilateur "Redline" : Intégration à venir de Redline (basé sur Cranelift) pour compiler le Wasm en code machine natif ; performances comparables à Rust/Wasmtime. ​Zéro dépendance (Java 25+) : Grâce à l'API standard Foreign Function & Memory (Project Panama), l'exécution à vitesse native se fait sans composants externes. ​Modèle de Composants (Component Model) : Support futur prévu pour consommer des composants (Rust, Go, JS, etc.) via des interfaces typées et sécurisées directement dans la JVM. ​Prochaines étapes : Fusion de Redline, conformité stricte aux specs Wasm (dont WasmGC) et amélioration du support WASI. Un visualisateur de sessions de travail avec Antigravity https://glaforge.dev/posts/2026/06/11/antigravity-brain-visualizer/ Un projet open source construit avec Micronaut, LangChain4j et GraalVM pour analyser les sessions de travail avec l'outil de développement agentique Antigravity (de Google) Analyse toutes les étapes, les requêtes utilisateur, les outils utilisés, les erreurs rencontrées, les réponses du modèle Gemini fait une analyse pour comprendre les moments clés de cette session de travail Outil buildé avec l'aide d'Antigravity lui-même SBX-Kits : des environnements de développement simplifiés pour les débutants (et les autres) https://k33g.org/20260501-sbx-kits.html Philippe Charrière (:whale: ) présente SBX-Kits (Sandbox Kits), une initiative personnelle visant à simplifier radicalement la mise en place d'environnements de développement pour les débutants, en éliminant la complexité d'installation des outils traditionnels. Chaque "kit" est une archive prête à l'emploi contenant un outil de développement spécifique (comme un langage, un framework ou une base de données) configuré pour s'exécuter de manière isolée et portable. La philosophie du projet repose sur le principe de "zéro configuration" et "zéro dépendance globale", permettant de tester une technologie ou de commencer à coder immédiatement sans polluer son système d'exploitation. L'approche technique s'appuie sur des scripts légers et des binaires portables pré-packagés, offrant une alternative plus simple et moins gourmande en ressources que les conteneurs Docker ou les configurations d'IDE complexes pour l'apprentissage. L'objectif à terme est de proposer un catalogue de kits couvrant les technologies courantes (JavaScript, Python, petites bases de données) pour faciliter les ateliers de programmation et le prototypage rapide. De nombreux kits sont disponibles sur https://github.com/docker/sbx-kits-contrib ghui: une interface utilisateur en ligne de commande (TUI) interactive pour GitHub https://github.com/kitlangton/ghui ghui est un outil en ligne de commande (TUI) écrit en Rust qui fournit une interface visuelle, interactive et rapide directement dans le terminal pour interagir avec GitHub. Il permet de gérer ses pull requests, ses issues et ses notifications sans avoir à ouvrir son navigateur web ou à taper de longues commandes avec la CLI officielle de GitHub. L'outil propose une navigation fluide au clavier, des raccourcis efficaces, et permet de réaliser des actions courantes comme valider une PR, ajouter des commentaires, attribuer des reviewers ou inspecter les logs des GitHub Actions. Conçu pour être extrêmement réactif, ghui s'intègre naturellement dans le flux de travail des développeurs adeptes du terminal et du mode "sans souris". Sortie de Homebrew 6.0.0 https://brew.sh/2026/06/11/homebrew-6.0.0/ Introduction du mécanisme de sécurité Tap Trust : comme les dépôts tiers (taps) peuvent exécuter du code Ruby arbitraire non sandboxé sur la machine, Homebrew demande désormais une confiance explicite de l'utilisateur avant d'évaluer ou d'exécuter leur code. L'API JSON interne devient le choix par défaut, offrant un système plus léger et beaucoup plus rapide pour les développeurs. Sécurisation renforcée de l'environnement avec l'implémentation du sandboxing sur Linux. Évolution des comportements par défaut basés sur un sondage utilisateur : le mode "ask" est activé par défaut pour les développeurs, affichant un résumé des dépendances et une demande de confirmation avant toute action de brew install ou brew upgrade. Améliorations notables des performances globales, notamment un boost de ~30 % sur la vitesse de la commande brew leaves et la parallélisation de la récupération des bottles (binaires) lors des mises à jour. Ajout du support initial pour la prochaine version d'Apple, macOS 27 (Golden Gate). Multiples optimisations pour brew bundle, incluant une gestion plus sécurisée des installations de paquets npm. Méthodologies Retour d'expérience très détaillé et 100% humain sur 40 jours avec une équipe 100% AI hormis le superviseur https://www.linkedin.com/pulse/jai-vir%C3%A9-mon-%C3%A9quipe-de-dev-pour-une-100-ia-pendant-40-luc-bonnin-jlgjf/ Voici le résumé en bullet points : Expérimentation de 40 jours : remplacer une équipe de dev par 100% IA agentique (Cursor) sur un vrai projet en production (playthatsheet.com, 200k lignes de code legacy) Chiffres bruts : 2,3 milliards de tokens consommés, 1 477 prompts, 260 564 lignes ajoutées (+145%), 59% du code final produit par l'IA ROI vertigineux à court terme : 9 mois de travail humain livrés en 40 jours, coût total 260$ d'abonnement + 15 jours de supervision, ROI x18 Profil psy de l'IA : Alzheimer (oublis de contexte), schizophrène (change de méthodo), ado de 12 ans (refait les mêmes erreurs), oscille entre génie et junior sans prévenir Effet iceberg : la dette technique ne disparaît pas, elle se camoufle et s'accélère ; hallucinations = bombes à retardement détectables uniquement par relecture humaine ligne par ligne Paradoxe du bateau de Thésée : perte de paternité et de maîtrise fine du code, baisse de l'autonomie du dev humain qui valide sans avoir construit Arnaque du "monkey money" : consommation de tokens opaque, non corrélée à la complexité (écart de 350% sur des prompts identiques), facturation imprévisible donc impossible à budgéter Syndrome du bazooka : les devs utilisent l'IA même pour changer une couleur CSS, atrophie progressive des compétences et coût écologique délirant Risque stratégique : dépendance irréversible aux vendeurs de tokens (Nvidia, Anthropic, OpenAI), business non rentable qui devra augmenter ses prix Conseil final : approche Pareto, garder 20% du temps en code "fait main", nommer un responsable stratégie IA, l'humain senior reste irremplaçable pour superviser Une libraries de test JUnit cache un prompt qui demande aux coding agents d'effacer les tests https://arstechnica.com/security/2026/05/fed-up-with-vibe-coders-dev-sneaks-data-nuking-prompt-injection-into-their-code/ Agacé par les « vibe coders », un développeur introduit une injection de prompt destructrice dans son code Le développeur de jqwik (un moteur de tests pour JUnit 5) a volontairement inséré une injection de prompt dans la version 1.10.0 de sa bibliothèque Java pour saboter le travail des agents d'IA. L'instruction injectée via la sortie standard (stdout) ordonne textuellement aux LLM d'ignorer les consignes précédentes et de supprimer l'intégralité du code et des tests jqwik du projet. Pour dissimuler cette action aux yeux des développeurs humains, le mainteneur a utilisé des séquences d'échappement ANSI qui effacent la ligne d'injection dans les émulateurs de terminaux interactifs. La modification a été découverte par un utilisateur qui a pointé du doigt les risques majeurs et disproportionnés pour les machines des utilisateurs, bien que certains outils comme Claude d'Anthropic aient détecté et bloqué la consigne malveillante. Face aux critiques de la communauté et aux accusations de comportement infantile ou potentiellement illégal, le développeur a mis à jour ses notes de version pour documenter explicitement son opposition à l'usage de son outil par des IA, avant de refuser tout commentaire supplémentaire sur conseil de son avocat. La réalité du rôle de Principal Engineer https://leaddev.com/career-development/reality-being-principal-engineer Le passage au rôle de Principal Engineer marque une transition majeure où les compétences techniques ne suffisent plus, l'impact se mesurant désormais à travers l'influence, la stratégie et la capacité à aligner la technique avec les objectifs business. Contrairement aux attentes, le quotidien est souvent marqué par une forme d'isolement, car le poste se situe à l'intersection de la direction (qui attend des solutions) et des équipes techniques (qui attendent des directives), sans appartenance directe à un groupe précis. Le rôle exige d'accepter une grande part d'ambiguïté et l'absence de retours immédiats, les projets et les décisions stratégiques mettant parfois des mois ou des années à porter leurs fruits. La gestion du temps devient un défi critique, nécessitant de savoir naviguer entre les sollicitations constantes, la présence en réunion et le besoin de préserver des moments de réflexion approfondie pour concevoir des visions à long terme. La réussite à ce niveau repose sur le développement de compétences humaines pointues (soft skills), notamment la négociation, la communication vulgarisée auprès des profils non techniques, et la capacité à faire grandir les autres ingénieurs par le mentorat. Sécurité Une attaque de la chaîne d'approvisionnement npm utilise binding.gyp pour compromettre des dizaines de paquets https://cybersecuritynews.com/binding-gyp-supply-chain-attack-compromises-dozens-of-npm-packages/ Une nouvelle variante du ver auto-propageable "Shai-Hulud", baptisée "Miasma", cible l'écosystème npm (et PyPI sous le nom de "Hades") en dissimulant son exécution dans le fichier binding.gyp au lieu des scripts classiques preinstall ou postinstall. La technique, surnommée "Phantom Gyp", exploite le fait que npm lance automatiquement node-gyp rebuild dès qu'un fichier binding.gyp est présent à la racine d'un paquet pour compiler des modules natifs C/C++, exécutant ainsi le code malveillant dès la commande npm install. L'attaque contourne la plupart des outils de sécurité traditionnels car l'injection s'appuie sur l'évaluation récursive de commandes (via la syntaxe ) ou directement sur la fonction eval() de Python sous-jacente à GYP, cachée sous n'importe quelle clé du fichier. Le script malveillant télécharge un runtime alternatif (Bun) pour échapper aux détections comportementales de Node.js, puis moissonne les identifiants et secrets des développeurs et des environnements CI/CD (npm, GitHub, AWS, GCP, Azure, Kubernetes, HashiCorp Vault). Plus de 57 paquets npm (dont le SDK serveur de Vapi ou des outils liés à l'IA) et des dizaines de paquets PyPI ont été infectés via des comptes de mainteneurs compromis, le ver republiant automatiquement de nouvelles versions vérolées en utilisant les jetons volés. Loi, société et organisation Restructuration chez Gitlab https://about.gitlab.com/blog/gitlab-act-2/ GitLab entame une restructuration majeure pour s'adapter à l'ère de l'intelligence artificielle agentique, incluant une réduction d'effectifs planifiée de manière transparente et ouverte. L'entreprise prévoit de réduire de 30 % le nombre de pays où elle maintient de petites équipes, d'aplatir sa hiérarchie en supprimant jusqu'à trois niveaux de gestion, et de réorganiser la R&D en une soixantaine d'équipes plus petites et autonomes. Les processus internes vont être revus en intégrant des agents d'IA pour automatiser les revues, les approbations et les passages de relais afin d'accélérer le rythme de travail. La stratégie repose sur la conviction que le logiciel sera bientôt écrit par des machines et dirigé par des humains, ce qui va multiplier la demande de logiciels et transformer le rôle des ingénieurs vers la résolution de problèmes complexes. Sur le plan technique, GitLab reconstruit son infrastructure sous-jacente (notamment Git) pour supporter la charge massive générée par les agents d'IA, tout en misant sur l'orchestration du cycle de vie, la centralisation du contexte des données et une gouvernance intégrée. Le modèle économique évolue vers un système hybride combinant les abonnements classiques et une tarification à la consommation pour le travail effectué par les agents d'IA. Un LLM local sur un mac pourrait coûter plus cher en électricité qu'un modèle hébergé sur OpenRouter dans le cloud https://www.williamangel.net/blog/2026/05/17/offline-llm-energy-use.html Conclusion : L'inférence locale sur Mac M5 Max est 3x plus chère et 2x plus lente que le cloud (OpenRouter). Électricité : Négligeable (~0,02 $/heure pour 50-100W). Matériel (Le vrai coût) : Achat du Mac à 4 299 $; l'amortissement sur 3 à 5 ans plombe la rentabilité horaire. Coût au million de tokens (Gemma 4 31b) : Mac M5 Max : 0,40 à4, 79 (pour 10-40 tokens/s). OpenRouter : 0,38 à0, 50 (pour 60-70 tokens/s). Verdict pro : Le temps humain perdu à cause de la lenteur locale coûte infiniment plus cher que les tokens cloud. Privilégier les API (Anthropic, OpenRouter). Ai didn't kill your junior pipeline https://andrewmurphy.io/blog/ai-didnt-kill-your-junior-pipeline-you-did L'IA n'a pas tué le recrutement des juniors, les entreprises l'ont fait elles-mêmes, par effet de mode. Sans juniors, pas de futurs seniors : on retire l'échelle qui nous a tous fait monter. Tout le monde pêche dans le même bassin de seniors sans le réapprovisionner, pénurie garantie dans 3-5 ans. Une équipe 100% senior + IA est fragile : un départ et tout le savoir tacite s'évapore. Les juniors posent les "pourquoi ?" qui révèlent les bugs et processus absurdes ; l'IA, elle, exécute sans questionner. Les seniors s'atrophient aussi en déléguant leur réflexion à l'IA, pince à double effet sur les compétences. Dépendre des outils IA, c'est sous-traiter sa stratégie talents à des fournisseurs dont les prix vont tripler. Solution : redéfinir le rôle junior (revue de code IA + mentorat), pas le supprimer. Les rapports internes de Microsoft révèlent la crise des coûts de l'IA : les agents coûtent plus cher que les employés humains https://fortune.com/2026/05/22/microsoft-ai-cost-problem-tokens-agents/ Des données et rapports internes chez Microsoft et d'autres géants de la tech ébranlent la promesse de rentabilité de l'IA, révélant que le déploiement d'agents autonomes à l'échelle de l'entreprise revient souvent plus cher que de payer des humains pour le même travail. Le modèle de tarification à l'usage (basé sur les tokens) se heurte à la nature même des architectures agentiques : contrairement à un simple chatbot, un agent boucle, enchaîne les appels d'outils, crée des sous-agents et auto-évalue son code, ce qui multiplie la consommation de tokens par un facteur de 5 à 30, voire jusqu'à 1 000 fois pour des tâches de programmation complexes. L'impact financier sur les budgets de calcul cloud est immédiat ; par exemple, Uber a entièrement épuisé l'intégralité de son budget annuel 2026 dédié au codage par IA en l'espace de seulement quatre mois. Face à cette explosion des coûts, des retours en arrière drastiques sont observés : Microsoft a ainsi commencé à suspendre une grande partie de ses licences internes Claude Code pour rediriger d'urgence ses milliers de développeurs vers sa propre solution moins onéreuse, GitHub Copilot CLI. Les directeurs techniques (CTO) et acheteurs de solutions logicielles qui ont signé des contrats pluriannuels basés sur des projections de réduction de masse salariale se retrouvent pris au piège, les gains réels de productivité ne parvenant pas à compenser les factures d'infrastructure exorbitantes. Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 11-12 juin 2026 : DevQuest Niort - Niort (France) 11-12 juin 2026 : DevLille 2026 - Lille (France) 12 juin 2026 : Tech F'Est 2026 - Nancy (France) 15 juin 2026 : Jupyter Workshops: Demystifying MyST Markdown in Education - Orsay (France) 16 juin 2026 : Mobilis In Mobile 2026 - Nantes (France) 17-19 juin 2026 : Devoxx Poland - Krakow (Poland) 17-20 juin 2026 : VivaTech - Paris (France) 18 juin 2026 : Tech'Work - Lyon (France) 22-26 juin 2026 : Galaxy Community Conference - Clermont-Ferrand (France) 23-24 juin 2026 : MWCP 2026 - Paris (France) 24-25 juin 2026 : Agi'Lille 2026 - Lille (France) 24-26 juin 2026 : BreizhCamp 2026 - Rennes (France) 26-27 juin 2026 : LeHACK - Paris (France) 27 juin 2026 : Asynconf - Paris (France) 2 juillet 2026 : Azur Tech Summer 2026 - Valbonne (France) 2 juillet 2026 : MCP Connect Travel Edition - Paris (France) 2-3 juillet 2026 : Sunny Tech - Montpellier (France) 3 juillet 2026 : Agile Lyon 2026 - Lyon (France) 6-8 juillet 2026 : Riviera Dev - Sophia Antipolis (France) 28-30 août 2026 : State of the Map - Champs-sur-Marne (France) 4 septembre 2026 : JUG Summer Camp 2026 - La Rochelle (France) 10-11 septembre 2026 : Nantes Craft - Nantes (France) 17 septembre 2026 : dotAI - Paris (France) 17-18 septembre 2026 : API Platform Conference 2026 - Lille (France) 18 septembre 2026 : WordCamp Bretagne - Rennes (France) 18 septembre 2026 : dotJS - Paris (France) 18 septembre 2026 : WordCamp Bretagne - Rennes (France) 22 septembre 2026 : Salon Data 2026 - Nantes (France) 22-23 septembre 2026 : Agile en Seine & IA 2026 - Paris (France) 24 septembre 2026 : OWASP AppSec Days France 2026 - Paris (France) 24 septembre 2026 : PlatformCon Paris - Paris (France) 24 septembre 2026 : React Native Connection 2026 - Paris (France) 24-26 septembre 2026 : Paris Web 2026 - Paris (France) 25 septembre 2026 : SAP Inside Track Paris 2026 - Paris (France) 28-29 septembre 2026 : 4th Tech Summit on AI & Robotics - Paris (France) & Online 1 octobre 2026 : WAX 2026 - Marseille (France) 1-2 octobre 2026 : Volcamp - Clermont-Ferrand (France) 2 octobre 2026 : DevFest Perros-Guirec 2026 - Perros-Guirec (France) 5-9 octobre 2026 : Devoxx Belgium - Antwerp (Belgium) 8-9 octobre 2026 : Forum PHP 2026 - Marne-la-Vallée (France) 12 octobre 2026 : Dev With AI - Paris (France) 22-23 octobre 2026 : Agile Tour Bordeaux 2026 - Bordeaux (France) 26 octobre 2026 : Agile Tour Montpellier - Montpellier (France) 27-29 octobre 2026 : Directions EMEA 2026 - Paris (France) 29-30 octobre 2026 : BDX I/O 2026 - Bordeaux (France) 29-30 octobre 2026 : Agile Tour Nantais 2026 - Nantes (France) 29 octobre 2026-1 novembre 2026 : Pycon FR - Biarritz (France) 30 octobre 2026 : Cloud Nord 2026 - Lille (France) 4-5 novembre 2026 : Devoxx Morocco - Casablanca (Morocco) 14-15 novembre 2026 : Capitole du Libre - Toulouse (France) 19 novembre 2026 : DevFest Toulouse 2026 - Toulouse (France) 19 novembre 2026 : Agile Laval 2026 - Laval (France) 19 novembre 2026 : OVHcloud Summit - Paris (France) 19 novembre 2026 : Codeurs en Seine - Rouen (France) 27 novembre 2026 : DevFest Paris 2026 - Paris (France) 1-3 décembre 2026 : Apidays Paris - Paris (France) 2-3 décembre 2026 : Cloud Native AI Summit Europe - Paris (France) 4 décembre 2026 : DevFest Lyon 2026 - Lyon (France) 4 décembre 2026 : DevFest Dijon 2026 - Dijon (France) 9-10 décembre 2026 : OpenSource Expérience - Paris (France) 9-10 décembre 2026 : DevOps REX - Paris (France) 10 décembre 2026 : KCD Provence - Aix-en-Provence (France) 7-9 avril 2027 : Devoxx France 2027 - Paris (France) 3 juin 2027 : Cloud Native Days France 2027 - Paris (France) 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/

Les Cast Codeurs Podcast
LCC 340 - Episode on l'voit on l'voit pas

Les Cast Codeurs Podcast

Play Episode Listen Later May 12, 2026 111:31


Java 26 est là, GraalVM cartonne chez Trivago (43 à 12 réplicas !), OpenJDK interdit le code généré par LLM, Spring et Quarkus enchaînent les releases. Côté IA : ADK 1.0, A2A, Lyria 3 chante (mal ?), Yann LeCun lance Ami Labs et ses World Models. Mythos d'Anthropic fait trembler la sécu, Claude Code a leaké son source, et les git worktrees envahissent vos terminaux. Bonus : la mort annoncée de l'IDE, vagues de licenciement chez Oracle et Block, et nos voix toutes clonées. Bon week-ends de mai ! Enregistré le 7 mai 2026 Téléchargement de l'épisode LesCastCodeurs-Episode-340.mp3 ou en vidéo sur YouTube. News Langages Retour d'expérience d'une migration vers graalVM chez Trivago https://medium.com/graalvm/inside-trivagos-graalvm-migration-native-image-for-graphql-at-scale-912bca9df841 La passerelle GraphQL de Trivago (point d'entrée de tout le trafic vers 48 microservices) souffrait de pics de timeout au démarrage JVM Résultats spectaculaires après migration vers GraalVM Native Image : réduction des réplicas de 43 à 12, CPU de 15 à 5 cœurs, images Docker plus légères Obstacles techniques : incompatibilité Log4j → migration vers Logback, remplacement de Mockk par Testcontainers, compilation CI/CD très gourmande Netflix DGS et d'autres librairies manquaient de support GraalVM → l'équipe a contribué des correctifs upstream en open source Approche recommandée : commencer par les services les moins complexes, investir massivement dans les tests automatisés À la 14e migration, le processus était si rodé qu'il allait plus vite que la toute première tentative OpenJDK Interim Policy on Generative AI - https://openjdk.org/legal/ai OpenJDK adopte une politique intérimaire interdisant toute contribution incluant du contenu généré par des LLMs, modèles de diffusion ou systèmes deep-learning Le périmètre est large : code source, texte, images dans les dépôts Git, pull requests GitHub, emails, pages wiki et issues JBS Les contributeurs peuvent utiliser les outils d'IA de manière privée pour comprendre, déboguer et relire le code OpenJDK, mais ne peuvent pas contribuer le contenu généré Trois risques justifient cette politique : surcharge des relecteurs face au code plausible mais incorrect, risques de sûreté/sécurité pour une plateforme critique, et risques de propriété intellectuelle (l'OCA exige que les contributeurs possèdent les droits IP de leurs contributions) Même éditer partiellement du code AI-généré ne le rend pas acceptable à la contribution Oracle, sponsor corporatif d'OpenJDK, travaille sur une politique complète à soumettre au Governing Board GraalVM Native Image et la Closed-World Assumption en Java https://pvs-studio.com/en/blog/posts/java/1357/ Un bon article de rappel du contexte de closed world en Java GraalVM Native Image compile les applications Java en exécutables natifs statiques, sans JVM au runtime. La JVM fonctionne en monde ouvert : les classes sont chargées à la demande, les appels sont des références symboliques résolues dynamiquement. Native Image impose la "closed-world assumption" : tous les chemins d'exécution doivent être connus à la compilation. Les fonctionnalités dynamiques Java (réflexion, proxies, chargement de classes) créent des chemins cachés invisibles à l'analyse statique. C'est pourquoi Native Image exige des fichiers de configuration explicites pour la réflexion, les proxies, les ressources et la FFM API. L'article illustre le problème avec la Foreign Function & Memory API pour appeler printf natif : fonctionne sur JVM, échoue en Native Image sans config. Inclure tout le bytecode accessible serait inutilisable : binaire géant, compilation très lente, et la réflexion nécessite des métadonnées précises. La configuration n'est pas un défaut de conception mais une conséquence logique du passage du dynamique au statique. Java 26 : les nouveautés https://foojay.io/today/java-26-whats-new/ Java est le langage de la JVM, publié tous les 6 mois depuis Java 9 ; Java 26 est une version non-LTS avec 10 JEPs. JEP 500 : protection des champs final modifiés par réflexion profonde, avec des avertissements configurables. JEP 504 : suppression définitive de l'API Applet, plus supportée par les navigateurs. JEP 516 : le cache AOT (Project Leyden) fonctionne désormais avec n'importe quel garbage collector. JEP 517 : support HTTP/3 dans le client HTTP, HTTP/2 reste le défaut mais HTTP/3 est accessible à la demande. JEP 522 : amélioration du débit du GC G1 en réduisant la synchronisation entre threads applicatifs et threads GC. Nouveau support des UUIDv7 via UUID.ofEpochMillis(), naturellement triables et adaptés aux identifiants de bases de données. Process devient AutoCloseable, utilisable dans un try-with-resources. Aucune fonctionnalité en preview n'est graduée en standard ; Structured Concurrency en est à sa 6e preview. Librairies Guillaume a créé une petite librairie Java sans dépendance pour extraire le JSON d'une réponse d'un LLM un peu verbeux https://glaforge.dev/posts/2026/03/22/extracting-json-from-llm-chatter-with-jsonspotter/ Les LLM génèrent souvent du JSON, mais il est parfois entouré de bla-bla et/ou contient des erreurs (ex: commentaires, virgules finales) qui bloquent les parseurs JSON standards. Guillaume a créé une petite librairie légère sans dépendance pour localiser et extraire la structure la plus longue ressemblant à du JSON (même malformé) On peut ensuite passé cette chaîne à un parseur "lénient" (plus tolérant) comme Jackson pour ensuite avoir de bons vieux objets Java fortement typés Librairie dispo sur Maven Central ADK Java sort sa version 1.0 (Agent Development Kit par Google) https://developers.googleblog.com/announcing-adk-for-java-100-building-the-future-of-ai-agents-in-java/ ADK est un framework open source de Google pour créer des agents IA, initialement en Python, maintenant multi-langages (Python, Java, Go, Typescript). Nouvelles fonctionnalités majeures : Outils puissants : GoogleMapsTool, UrlContextTool, ContainerCodeExecutor, VertexAiCodeExecutor, abstraction ComputerUseTool. Architecture de plugins centralisée : Nouveau conteneur App pour gérer les Plugins à l'échelle de l'application (ex: LoggingPlugin, GlobalInstructionPlugin). Context engineering amélioré : Compaction d'événements pour gérer la taille des fenêtres de contexte (résumé et rétention). Human-in-the-Loop (HITL) : Supporte les workflows ToolConfirmation pour approbation humaine des actions d'agent. Services de session et de mémoire : Contrats clairs pour la gestion de l'état (InMemory, VertexAI, Firestore) et la mémoire à long terme. Support Agent2Agent (A2A) : Collaboration native entre agents distants de différents frameworks via le protocole A2A. Dans cet autre article, Guillaume partage comment il a développé l'application Comic Trip montrée dans la vidéo YouTube et qui utilise ADK 1.0 https://glaforge.dev/posts/2026/03/30/building-my-comic-trip-agent-with-adk-java-1-0/ Nouvelle version du SDK Java pour Agent2Agent Protocol, avec le support de la version 1.0 de la spécification https://medium.com/google-cloud/a2a-java-sdk-1-0-0-beta1-released-e83c414b34cc Alignement avec la version 1.0 de la spécification Nouveau groupId org.a2aproject.sdk et package org.a2aproject.sdk Protocoles de transport : support complet et équivalent pour JSON-RPC, gRPC et HTTP+JSON/REST. Gestion des erreurs : introduction de codes d'erreur et détails structurés pour une meilleure observabilité. Optimisation HTTP : ajout d'en-têtes de cache pour les métadonnées des agents (Agent Card). Flexibilité du client HTTP : support par défaut du JDK HttpClient, avec option Vert.x pour les environnements Quarkus. Nouvelles fonctionnalités techniques : méthode DataPart.fromJson() pour la création simplifiée d'objets depuis du JSON brut. Prochaines étapes (v1.0.0.GA) : support simultané des versions 1.0.0 et 0.3.0 du protocole pour assurer l'interopérabilité. JPA 4.0 Milestone 2 : nouvelles fonctionnalités pour Jakarta Persistence https://in.relation.to/2026/04/23/JPA-4-M2/ Jakarta Persistence (JPA) est la spécification standard Java pour le mapping objet-relationnel (ORM), implémentée notamment par Hibernate. JPA 4.0 M2 est la deuxième milestone de la prochaine version majeure de la spécification, annoncée par Gavin King. Construction de requêtes Criteria à partir de chaînes JPQL, offrant plus de flexibilité dans la composition dynamique des requêtes. Nouveaux types d'expressions spécialisés (TextExpression, NumericExpression) pour simplifier l'écriture des requêtes Criteria. Nouvelle interface FetchOption pour contrôler explicitement la stratégie de chargement des associations, dont un BatchSize intégré. Nouvelle annotation @EntityListener qui découple les classes entités de leurs listeners, supprimant les dépendances à la compilation. Les listeners peuvent cibler plusieurs types de callbacks et s'appliquer globalement à toute l'unité de persistance. Introduction de FlushModeType.EXPLICIT et QueryFlushMode pour un contrôle plus fin de la synchronisation avec la base de données. La méta-annotation @Discoverable permet de placer des annotations comme @NamedQuery sur n'importe quelle classe ou interface. Améliorations du DDL via @Index amélioré et clarifications de la spécification via la javadoc. Quarkus 3.35 : tree-shaking, PGO et AOT Semeru https://quarkus.io/blog/quarkus-3-35-released/ Quarkus est un framework Java cloud-natif optimisé pour GraalVM et HotSpot, conçu pour les microservices et les environnements conteneurisés. Nouveau JAR tree-shaking expérimental : analyse des dépendances à la compilation pour supprimer les classes inutilisées. Sur le CLI Quarkus, cela supprime plus de 6 000 classes et économise environ 18 Mo (39,5 %). Support du Profile-Guided Optimization (PGO) pour les builds natifs via quarkus.native.pgo.enabled=true. Le PGO est une fonctionnalité Oracle GraalVM, non disponible dans la Community Edition. Support de l'AOT IBM Semeru : le démarrage passe de ~380 ms à ~190 ms dans les premiers tests. Nouvelle extension quarkus-reactive-transactions : support de @Transactional pour les méthodes Hibernate Reactive retournant Uni. Configuration CORS dédiée pour l'interface de management, indépendante de l'interface HTTP principale. Les tests n'utilisent plus les System Properties pour la propagation de configuration, facilitant la parallélisation future. Le serializer jackson sans reflection n'est pas le default du aux retours de cas limites, encore du travail This Week in Spring - 21 avril 2026 https://spring.io/blog/2026/04/21/this-week-in-spring-april-21-2026 Spring Framework 6.2.18 et 7.0.7 corrigent trois failles de sécurité : DoS via fichiers multipart WebFlux, empoisonnement de cache de ressources statiques, et DoS sur Windows. Le support open source de Spring Framework 5.3.x et 6.1.x est terminé, la migration est recommandée. Spring Data 2026.0.0-RC1 introduit l'upsert (MERGE/INSERT ON CONFLICT) dans l'API Template de Spring Data Relational. Spring Data ajoute un RedisMessageSendingTemplate pour la cohérence avec les listeners Redis, et une optimisation de réinitialisation de caches en un seul appel. Spring AI introduit une Session API (série Agentic Patterns, partie 7) : architecture event-sourcée pour la mémoire des agents IA. La Session API supporte la compaction turn-safe, l'isolation de sous-agents en parallèle, et la persistence JDBC (PostgreSQL, MySQL, MariaDB, H2). Elle vise Spring AI 2.1 (novembre 2026) et remplacera à terme l'API ChatMemory. Spring Vault 4.1.0-RC1 et 4.0.2 sont disponibles. Netflix a présenté son usage de Java, Spring Boot et Spring AI dans une vidéo. This Week in Spring - 28 avril 2026 https://spring.io/blog/2026/04/28/this-week-in-spring-april-28-2026 Cette série hebdomadaire de Josh Long compile les nouveautés de l'écosystème Spring : articles, outils, podcasts et annonces de la communauté. Spring Boot 4 introduit un package natif de résilience org.springframework.resilience avec une nouvelle API de retry qui remplace les approches fragiles via Spring Retry ou Resilience4j. L'API retry native de Spring Boot 4 a des noms d'attributs et sémantiques différents des anciennes bibliothèques, rendant les tutoriels pré-2025 obsolètes et sources de bugs silencieux. Le SDK Spring AI pour Amazon Bedrock AgentCore est disponible en GA : il intègre les capacités AgentCore dans Spring AI via annotations et auto-configuration. Le SDK AgentCore gère automatiquement le contrat runtime AgentCore : endpoint /invocations, health check /ping, SSE avec backpressure. Il offre mémoire court terme (sliding window) et long terme (sémantique, préférences, résumé, épisodique), ainsi que des outils pour navigateur et exécution de code en sandbox. Un plugin Maven (Nullability Maven Plugin) simplifie l'intégration de JSpecify et NullAway pour enforcer la null-safety à la compilation dans les projets Java. Le plugin génère automatiquement les fichiers package-info.java par package et configure le compilateur pour traiter les violations de nullabilité comme des erreurs. Josh Long et Dr. Venkat Subramaniam ont co-présenté à Voxxed Days Amsterdam sur "Intelligent Kotlin", avec un épisode de podcast associé. Cloud Amazon S3 Files https://aws.amazon.com/about-aws/whats-new/2026/04/amazon-s3-files/ Amazon S3 Files est un nouveau service donnant un accès système de fichiers direct aux données stockées dans les buckets S3 Basé sur la technologie Amazon EFS, il supprime la barrière entre stockage objet et interface système de fichiers sans dupliquer les données Débit en lecture pouvant atteindre plusieurs téraoctets par seconde ; des milliers de ressources de calcul peuvent y accéder simultanément Les données restent accessibles via les deux interfaces : S3 API classique et système de fichiers standard, sans migration nécessaire Cas d'usage : agents IA pour la persistance de mémoire entre pipelines, équipes ML sans staging, simplification des data lakes Disponible dans 34 régions AWS Data et Intelligence Artificielle Comment générer de la musique et des clips audio en Java avec le modèle Lyria 3 https://glaforge.dev/posts/2026/03/25/generating-music-with-lyria-3-and-the-gemini-interactions-java-sdk/ Génération musicale avec Lyria 3 (DeepMind) et le SDK Java Gemini Interactions. Lyria 3 : modèle d'IA générative pour créer musique avec paroles ou pistes instrumentales. Utilisation via le SDK Java de l'API Gemini, nécessite une clé API Gemini. Deux versions de modèle Lyria 3 : lyria-3-clip-preview : Clips courts (30s), extraits. lyria-3-pro-preview : Chansons complètes (jusqu'à 3 min), structurées. Personnalisation via les prompts : Fournir ses propres paroles ou les faire générer. Contrôler la structure de la chanson ([Intro], [Verse], [Chorus], [Outro]). Générer des morceaux instrumentaux uniquement. Utiliser des images comme source d'inspiration (modèle multimodal). Sortie : Audio (MP3) et texte (paroles/structure) directement, sans décodage complexe. Facilite l'intégration de la génération musicale dans les applications Java. Les world model, la prochaine étape pour les IA https://www.lepoint.fr/sciences-nature/comment-le-commando-de-yann-le-cun-se-prepare-a-ringardiser-les-geants-mondiaux-de-lia-depuis-paris-OZVUWTDYBNE25C6WF44265ZQKE/ Yann LeCun a quitté Meta FAIR pour créer AMI Labs (Advanced Machine Intelligence) basée à Paris Sa thèse : les LLMs ne mèneront pas à l'intelligence générale, la vraie IA doit partir de la compréhension du monde physique AMI Labs a levé 1,03 milliard de dollars en seed (le plus grand seed round de l'histoire européenne) à 3,5 milliards de valorisation Les world models apprennent à prédire et comprendre la réalité physique plutôt qu'à prédire le prochain token d'une séquence Slogan d'AMI : "Real intelligence does not start in language. It starts in the world." Paris comme base stratégique pour challenger la Silicon Valley dans la prochaine rupture de l'IA Debezium 2026 : résultats du sondage communautaire https://debezium.io/blog/2026/04/27/debezium-2026-survey-results/ Debezium est un outil de Change Data Capture (CDC) open source qui capture les modifications de bases de données en temps réel pour les diffuser vers des systèmes comme Kafka. 98,6% des répondants utilisent Debezium activement ou prévoient de le faire dans l'année, avec 91,3% déjà en production. 63,8% des déploiements tournent sur Kubernetes, 60,9% utilisent Kafka Connect auto-géré, et 17,4% restent sur des VMs ou bare metal. Helm charts est l'approche dominante pour la gestion de configuration, souvent combiné avec GitOps, CI/CD, Ansible ou Terraform. PostgreSQL domine les connecteurs utilisés à 69,6%, suivi de MySQL (33,3%), SQL Server (29%) et Oracle (27,5%). Les volumes de changements capturés vont de 1-25 modifications par minute jusqu'à 1-2 millions par minute selon les environnements. Infinispan rejoint l'écosystème OGX comme fournisseur de stockage vectoriel https://infinispan.org/blog/2026/04/17/infinispan-joins-ogx-ecosystem OGX (anciennement Llama Stack) est un serveur API agentique open source pour construire des applications d'IA complètes. OGX compose des fournisseurs d'inférence, des stores vectoriels, des backends de sécurité, des runtimes d'outils et du stockage de fichiers en un seul serveur déployable. OGX se positionne comme une alternative à l'API OpenAI, déployable sur diverses infrastructures et modèles. OGX cible les workflows RAG (Retrieval-Augmented Generation) et les applications agentiques. Infinispan s'y intègre comme fournisseur de vector IO, apportant recherche vectorielle, par mots-clés et hybride. Je n'ai pas entendu parlé de ce renommage, vous le voyez dans vos deploiements ? Outillage cmux un nouveau terminal basé sur Ghostty spécialisé pour les coding agents https://cmux.com/ Application macOS native construite sur le moteur de rendu Ghostty (libghostty), offrant une accélération GPU pour une fluidité maximale Conçu spécifiquement pour le multitâche et les workflows assistés par IA, avec des onglets verticaux affichant la branche Git, le répertoire et les ports actifs Intègre des notifications qui illuminent les panneaux lorsqu'un agent IA (Claude Code, Codex, etc.) nécessite l'attention de l'utilisateur Propose un navigateur web intégré et scriptable qui peut être affiché en écran scindé à côté du terminal via une API Alternative moderne à tmux, ne nécessitant pas de fichiers de configuration complexes ou de préfixes de touches pour la gestion des vitres et des sessions Supporte nativement tous les agents de codage en ligne de commande et permet l'automatisation via une API socket et une interface CLI dédiée Git Worktree comme un chef https://www.metal3d.org/blog/2026/git-worktree-comme-un-chef/ Article par Patrice Ferlet Git Worktree: Travailler sur plusieurs branches simultanément via des répertoires distincts. Évite git stash ou clones multiples pour le changement de contexte rapide. Méthode "bare" (recommandée): Cloner le dépôt en mode bare (ex: .bare). Lier le dossier racine au dépôt bare via un fichier .git. Configurer le remote tracking pour voir toutes les branches distantes. Ajouter des worktrees pour chaque branche (git worktree add ). Avantages: Économie d'espace, source de vérité unique (un git fetch met tout à jour), hooks/configs partagés, sécurité. Conseils: Ne jamais faire de git checkout à l'intérieur d'un worktree. git fetch --all depuis n'importe quel worktree pour tout mettre à jour. git worktree add --detach pour tester des merges temporaires sans créer de branche. Supprimer: git worktree remove puis git worktree prune. Un script wtree est fourni pour automatiser l'initialisation du setup "bare". Améliore considérablement le workflow. L'IDE meurt et vite https://x.com/jdegoes/status/2036931874057314390?s=46&t=C18cckWlfukmsB_Fx0FfxQ Des leaders techniques prédisent la fin rapide de l'IDE traditionnel, remplacé par des interfaces conversationnelles agentiques Le changement de paradigme : le développeur n'écrit plus des lignes de code mais exprime son intention et supervise des agents autonomes Des outils comme Claude Code, Copilot et Cursor transforment déjà radicalement les workflows de développement quotidiens L'IDE centré sur l'éditeur de code perd sa raison d'être quand l'agent lit, modifie et structure le code de manière autonome La transition est comparable au passage du desktop au mobile : les pratiques établies depuis 30 ans remises en question en quelques mois Le source de Claude Code a leaké via probablement le codemap et un site decrit sont fonctionnement https://ccunpacked.dev/ Le 31 mars 2026, Anthropic a accidentellement inclus les sourcemaps dans un package npm de Claude Code, exposant ~512 000 lignes de TypeScript La fuite n'était pas un piratage mais une erreur humaine : un "*.map" oublié dans .npmignore Le site ccunpacked.dev a été lancé pour analyser et visualiser le code source décompressé Le code révèle un agent background permanent nommé "KAIROS", un mode furtif pour cacher les contributions des employés Anthropic à l'open source, et 44 feature flags cachés Une fonctionnalité inédite "Buddy" (animal de compagnie électronique dans le terminal) et un mode "dream" pour l'idéation continue ont été découverts Anthropic a confirmé : "Aucune donnée client sensible n'était impliquée. Erreur humaine dans le packaging de la release." Gemini CLI passe aux agents https://x.com/srithreepo/status/2039794081925382307?s=46&t=GLj1NFxZoCFCjw2oYpiJpw Gemini CLI, l'agent IA open source de Google pour le terminal, introduit des hooks dans sa boucle agentique Les hooks permettent d'exécuter des scripts automatiquement (scanners de sécurité, vérifications de conformité, logging) à chaque étape de l'agent Lancement de Gemini CLI GitHub Actions : un agent autonome pour les repositories qui peut exécuter des tâches de codage de routine Support des MCP servers pour étendre les capacités et des "Agent Skills" pour des workflows spécialisés Mode agent disponible dans VS Code et IntelliJ avec accès aux outils du système de fichiers et terminal Wispr, le speech to text en local sur macOS http://wispr.stormacq.com/ Wispr est une application macOS de dictée vocale entièrement locale, propulsée par Whisper (OpenAI) sur appareil, sans cloud ni tracking Sébastien Stormacq a développé Wispr en un jour et demi sans écrire une seule ligne de code, grâce à Kiro CLI (agent IA Amazon) Disponible en open source sur GitHub et via Homebrew Détection automatique de la langue, insertion du texte au curseur dans n'importe quelle application via un raccourci global En un mois : 19 releases incluant mode mains-libres, suppression des mots de remplissage, auto-envoi pour les chats, et un outil CLI Exemple concret de développement vibe coding produisant un outil de qualité production sans expertise Swift préalable Comment, Gordon, l'assistant spécialisé en Docker est né https://n9o.xyz/posts/202603-building-gordon/ Nuno Coração (n9o.xyz) détaille comment Gordon, l'assistant spécialisé Docker, a été construit sur docker-agent, le runtime d'agents IA open source de Docker écrit en Go Les agents sont définis en YAML déclaratif et distribués comme des artefacts OCI, sans mise à jour binaire nécessaire L'architecture initiale en essaim de 9 agents spécialisés a été abandonnée au profit d'un agent racine unique avec un prompt soigneusement conçu Le modèle utilisé est Claude Haiku 4.5, suffisant après optimisation des prompts Principe clé "show, then do" : toute action de l'agent nécessite une approbation explicite de l'utilisateur La description des outils impacte fortement la précision du LLM : ajouter des outils peut paradoxalement dégrader les performances existantes Le prompt est une spécification détaillée (identité, patterns d'accès fichiers, règles de sécurité) plutôt qu'une simple instruction IBM Bob https://bob.ibm.com/blog/announcing-ibm-bob-launch IBM Bob assistant IA d'IBM pour coder sur de vraies codebases (lancé avril 2026) 5 modes : Ask, Plan, Code, Advanced (MCP), Orchestrator Détecte la complexité du code en temps réel et propose des refactos Fait des revues de code automatiques sur tes branches/issues GitHub Permet d'écrire en langage naturel directement dans l'éditeur Fonctionne aussi en terminal/CLI et dans les pipelines CI/CD Sécurité : approbation manuelle, .bobignore, checkpoints, pas de training sur tes prompts How I use Claude - 50 tips pratiques https://www.youtube.com/watch?v=mZzhfPle9QU Staff Engineer Meta partage 50 tips après 6 mois d'utilisation intensive de Claude Code Basé sur ~12h/jour d'usage perso et professionnel Couvre tout : bases, workflows avancés, parallélisation Objectif : partager ce qu'il aurait voulu savoir dès le départ Méthodologies Quelqu'un rale sur la non soutenabilité des bases de code écritent avec des agents https://mariozechner.at/posts/2026-03-25-thoughts-on-slowing-the-fuck-down/ Mario Zechner estime que les agents IA font les mêmes erreurs répétitivement sans apprendre, accumulant la complexité à grande vitesse faute de bottlenecks humains Sans vision globale, les agents créent du cargo-cult : les "best practices" de l'industrie appliquées localement sans cohérence architecturale La croissance de la base de code dégrade la capacité des agents à retrouver le code existant → duplication et incohérences croissantes Il cite des pannes AWS et des initiatives qualité Microsoft comme signes préoccupants liés au code généré par IA Solution : réserver les agents aux tâches délimitées et évaluables, garder l'architecture, les APIs et les systèmes critiques écrits à la main Maintenir une revue de code rigoureuse et traiter les humains comme les gardiens finaux de la qualité On m'oblige à utiliser l'IA https://n.survol.fr/n/on-moblige-a-utiliser-lia Éric D. défend l'adoption obligatoire de l'IA comme décision stratégique légitime, comparable au choix du full remote ou de la stack technique Il distingue la décision stratégique (adoption IA) de la méthode d'accompagnement (qui reste collaborative et bienveillante) La compétence IA devient un critère de recrutement : chercher des candidats déjà curieux et explorateurs de ces outils L'alignement culturel sur les pratiques et outils est un prérequis à la cohésion d'équipe Le refus d'adopter certains outils stratégiques peut justifier de ne pas recruter un candidat autrement compétent Encore une metodo SPDD https://martinfowler.com/articles/structured-prompt-driven/ Problème : l'IA accélère le dev individuel mais amplifie ambiguïtés et incohérences à l'échelle d'une équipe. martinfowler SPDD : traiter les prompts comme des artefacts versionnés, révisables et réutilisables plutôt que des échanges jetables. martinfowler Canvas REASONS : 7 dimensions (Requirements, Entities, Approach, Structure, Operations, Norms, Safeguards) pour guider le LLM de l'intention à l'exécution. martinfowler Workflow en 6 étapes : exigences → analyse → contexte → prompt structuré → code → tests unitaires, chaque étape s'appuyant sur la précédente. martinfowler 3 compétences clés : abstraction d'abord, alignement de l'intention, revue itérative. martinfowler Limites : fort ROI sur du code métier complexe, peu adapté aux hotfixes urgents, scripts jetables ou travail créatif/visuel. m Sécurité Le projet Glasswing pour sécuriser les logiciels https://www.anthropic.com/glasswing Anthropic lance Glasswing, une initiative de cybersécurité utilisant Claude Mythos Preview pour identifier des vulnérabilités zero-day 12 partenaires fondateurs dont AWS, Apple, Cisco, CrowdStrike, Google, JPMorganChase, Linux Foundation, Microsoft et NVIDIA Anthropic investit 100 millions de dollars en crédits de modèle et 4 millions en dons aux organisations de sécurité open source Le modèle opère avec une autonomie substantielle, identifiant des milliers de vulnérabilités dans les OS, navigateurs et infrastructures critiques Plus de 40 organisations supplémentaires ont accès pour scanner et sécuriser leurs systèmes Objectif : donner l'avantage aux défenseurs avant que les techniques de hacking assistées par IA ne se généralisent chez les attaquants LinkedIn vous espionne https://frenchbreaches.com/blog/linkedin-est-accuse-de-fouiller-dans-votre-ordinateur-illegalement Scandale "BrowserGate" : LinkedIn injecte du JavaScript qui tente de détecter les extensions Chrome installées sur votre navigateur Le script analysé contient une liste codée en dur de 6 222 extensions Chrome avec identifiants et chemins de fichiers internes Croissance alarmante de la liste ciblée : 38 extensions en 2017 → 461 en 2024 → ~1 000 en mai 2025 → 6 222 début 2026 Les données collectées incluent aussi CPU, RAM, résolution d'écran, timezone et état batterie pour du fingerprinting Certaines extensions ciblées sont liées à la neurodivergence, aux pratiques religieuses ou aux opinions politiques → violation grave du RGPD LinkedIn défend que le scan vise uniquement à détecter les extensions qui pratiquent le scraping de données Post mortem de la supply chain attack sur la librairie NPM axios https://github.com/axios/axios/issues/10636 Le 31 mars 2026, deux versions malveillantes d'axios (1.14.1 et 0.30.4) ont été publiées via un compte mainteneur compromis Vecteur d'attaque : RAT installé via ingénierie sociale ciblée sur la machine personnelle du mainteneur principal La 2FA ne protège pas si la machine de l'utilisateur est compromise : l'attaquant contrôle tout et peut agir comme l'utilisateur Les packages malveillants injectaient plain-crypto-js@4.2.1, un cheval de Troie multi-plateforme (macOS, Windows, Linux) Détection communautaire en ~3 heures, suppression par npm, mesures correctives : rotation complète des credentials Changements préventifs : publication via OIDC, releases immuables, amélioration des pratiques GitHub Actions Passbolt un gestionnaire de mots de passe open source https://lesjoiesducode.fr/passbolt-gestionnaire-de-mots-de-passe-gratuit-open-source-que-votre-equipe-merite-vraiment Gestionnaire de mots de passe open source conçu pour le partage d'identifiants en équipe, utilisé par plus de 50 000 organisations Chiffrement individuel par utilisateur et par version de credential, pas de coffre-fort partagé — architecture zero-knowledge "Forward secrecy" : quand un membre quitte l'équipe, ses copies chiffrées sont automatiquement révoquées sans reset manuel Supporte TOTP, clés SSH, tokens API et champs personnalisés avec piste d'audit complète de tous les accès Édition communautaire entièrement gratuite avec utilisateurs illimités, auto-hébergeable ou cloud Chiffrement OpenPGP nécessitant passphrase + clé privée, avec tokens visuels anti-phishing Loi, société et organisation Anthropic fait un don d'1,5 millions de dollars à la fondation Apache https://news.apache.org/foundation/entry/the-apache-software-foundation-announces-1-5m-donation-from-anthropic Anthropic donne 1,5 million de dollars à l'ASF pour soutenir l'infrastructure, la sécurité et la communauté open source Vitaly Gudanets (CISO d'Anthropic) : "Soutenir l'ASF est un investissement direct dans la résilience et l'intégrité des systèmes dont dépend l'IA moderne" Les fonds financeront les systèmes de build, les processus de sécurité et les services aux projets Apache Ce don est le déclencheur de l'initiative IA responsable à 10 millions de dollars de l'ASF L'infrastructure Apache est invisible mais critique : des systèmes financiers aux plateformes de santé, elle sous-tend l'écosystème logiciel mondial L'ASF lance l'initiative IA responsable https://news.apache.org/foundation/entry/the-apache-software-foundation-launches-10m-responsible-ai-initiative-with-initial-1-75m-donation L'ASF lance une initiative pour une IA responsable dotée d'un budget de 10 millions de dollars sur 3 ans minimum Anthropic est le premier donateur avec 1,5 million de dollars ; Alpha-Omega contribue 250 000 dollars L'initiative fournit aux projets Apache un accès à des modèles IA pour l'expérimentation et la sécurité Elle soutient l'ensemble de la chaîne IA/ML : pipelines de données, infrastructure, frameworks de deep learning Des tracks de conférences, hackathons et bourses de voyage sont prévus pour élargir la communauté Les principes directeurs incluent la supervision humaine, l'intégrité des licences et la sécurité open source Oracle vire 30000 personnes https://rollingout.com/2026/03/31/oracle-slashes-30000-jobs-with-a-cold-6/ Oracle licencie 20 000 à 30 000 employés, 18% de ses effectifs mondiaux. Les salariés ont appris leur licenciement par un simple email à 6h du matin, sans aucun préavis. L'accès à tous les systèmes (Slack, Zoom, badges) a été coupé immédiatement après. But : libérer 8 à 10 milliards de dollars pour construire des centres de données IA. Oracle a déjà contracté 50 milliards de dettes en 2026 pour financer ses projets IA. Paradoxe : l'entreprise affiche un bénéfice record de 6,13 milliards, mais ses liquidités sont dans le rouge. L'action Oracle a perdu plus de la moitié de sa valeur depuis septembre 2025. Et si l'IA n'était qu'un prétexte pour licencier https://eventuallycoding.com/p/ia-licenciements-et-si-l-intelligence-artificielle-n-etait-qu-une-excuse Hugo Lassiège (eventuallycoding) estime que les entreprises utilisent l'IA comme narratif commode pour masquer des erreurs de gestion passées (Block a triplé ses effectifs post-COVID sans croissance des revenus correspondante) Moins de 1% des licenciements technologiques seraient réellement dus à des gains de productivité IA selon les analyses citées Mesurer la productivité des développeurs reste un problème non résolu, mais les entreprises affirment des gains d'efficacité sans preuves Des pressions économiques réelles (inflation, guerres commerciales, coûts énergétiques) sont masquées derrière le discours IA Les restructurations nécessaires sont présentées comme des transformations AI-driven positives pour rassurer les investisseurs Il y voit une fenêtre d'opportunité pour l'Europe pendant que les géants américains se restructurent GitHub Copilot va utiliser les interacitons pour entrainer ses modèles sauf si vous vous délistez https://github.blog/news-insights/company-news/updates-to-github-copilot-interaction-data-usage-policy/ À partir du 24 avril 2026, GitHub utilise par défaut les interactions des utilisateurs Copilot Free, Pro et Pro+ pour entraîner ses modèles Les données collectées incluent le code accepté ou modifié, les snippets envoyés, les noms de fichiers et structures de dépôts, et les retours utilisateurs Les utilisateurs Copilot Business, Enterprise et les dépôts d'entreprise sont exclus de cette collecte de données d'entraînement Opt-out disponible dans les paramètres GitHub > "Privacy" ; les préférences de désactivation préalables sont conservées automatiquement Objectif déclaré : améliorer la précision des modèles sur les langages et cas d'usage du monde réel Grosse percée de Claude Code dans les commits sur GitHub https://aifoc.us/damn-claude-thats-a-lot-of-commits/ Explosion de Claude Code : En six mois, Claude Code est passé de 0,7 % à 4,5 % de tous les commits publics sur GitHub, surpassant tous les autres outils d'IA combinés. Adoption massive des agents IA : Environ 5 % des commits publics sur GitHub sont désormais générés par des agents IA, un chiffre en croissance rapide depuis fin 2025. Domination des bots sur GitHub : Au-delà des commits, les outils d'IA sont omniprésents dans la gestion des pull requests et des problèmes (Copilot et CodeRabbit notamment). Limites méthodologiques : Les données ne concernent que les dépôts publics (les entreprises utilisent massivement des dépôts privés, invisibles ici). Le comptage dépend fortement de la visibilité des signatures (certains outils comme Claude marquent systématiquement leurs commits, d'autres non) L'API de recherche GitHub présente une fiabilité variable à cette échelle. Changement de paradigme : Le développement logiciel vit une transition majeure, comparable au passage du desktop au mobile. L'intégration des agents IA dans le cycle de production n'est plus une expérimentation, mais une réalité opérationnelle à grande échelle. Dysmaths une application pour aider à apprendre les mathématiques et la géométrie lorsque l'on souffre de dyspraxie, dysgraphie https://dysmaths.com/ Application web pour aider les élèves de collège et lycée souffrant de dysgraphie et dyspraxie à faire des maths et de la géométrie Outils de dessin à main levée, géométrie précise (compas, rapporteur, règle) et opérations structurées (fractions, racines, puissances, symboles mathématiques) Export PDF et PNG avec conservation fidèle de l'échelle pour l'impression et la soumission des exercices Options d'accessibilité : police OpenDyslexic, personnalisations d'interface, import d'images et de PDFs Répond à un besoin réel : les outils standards ne sont pas adaptés aux difficultés de coordination et d'organisation spatiale en mathématiques IA ou réalité ? Par Amistory https://www.youtube.com/watch?v=PPYdAhBBF2I L'IA génère des contenus (images, voix, vidéos) de plus en plus indétectables Les arnaques au clonage de voix et deepfakes sont en forte hausse Les faux contenus viraux manipulent l'opinion à grande échelle Le faux n'est plus un accident, c'est devenu un système organisé La société entre dans une ère de doute généralisé sur le réel Comment s'informer quand le réel lui-même peut être simulé ? Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 6-7 mai 2026 : Devoxx UK 2026 - London (UK) 12 mai 2026 : Lead Innovation Day - Leadership Edition - Paris (France) 12-13 mai 2026 : Lyon Craft - Lyon (France) 19 mai 2026 : La Product Conf Paris 2026 - Paris (France) 19-20 mai 2026 : Green Code Challenge - Paris (France) 21-22 mai 2026 : Flupa UX Days 2026 - Paris (France) 22 mai 2026 : AFUP Day 2026 Lille - Lille (France) 22 mai 2026 : AFUP Day 2026 Paris - Paris (France) 22 mai 2026 : AFUP Day 2026 Bordeaux - Bordeaux (France) 22 mai 2026 : AFUP Day 2026 Lyon - Lyon (France) 27 mai 2026 : aMP Day Strasbourg 2026 - Strasbourg (France) 28 mai 2026 : DevCon 27 : I.A. & Vibe Coding - Paris (France) 28 mai 2026 : Cloud Toulouse 2026 - Toulouse (France) 29 mai 2026 : NG Baguette Conf 2026 - Paris (France) 29 mai 2026 : Agile Tour Strasbourg 2026 - Strasbourg (France) 2-3 juin 2026 : Agile Tour Rennes 2026 - Rennes (France) 2-3 juin 2026 : OW2Con - Paris-Châtillon (France) 3 juin 2026 : IA–NA - La Rochelle (France) 4 juin 2026 : Workplace Intelligence Days - 1ère édition - Lyon (France) 5 juin 2026 : TechReady - Nantes (France) 5 juin 2026 : Fork it! - Rouen - Rouen (France) 6 juin 2026 : Polycloud - Montpellier (France) 9 juin 2026 : JFTL - Montrouge (France) 9 juin 2026 : C: - Caen (France) 9 juin 2026 : France API 2026 - Paris (France) 11-12 juin 2026 : DevQuest Niort - Niort (France) 11-12 juin 2026 : DevLille 2026 - Lille (France) 12 juin 2026 : Tech F'Est 2026 - Nancy (France) 15 juin 2026 : Jupyter Workshops: Demystifying MyST Markdown in Education - Orsay (France) 16 juin 2026 : Mobilis In Mobile 2026 - Nantes (France) 17-19 juin 2026 : Devoxx Poland - Krakow (Poland) 17-20 juin 2026 : VivaTech - Paris (France) 18 juin 2026 : Tech'Work - Lyon (France) 22-26 juin 2026 : Galaxy Community Conference - Clermont-Ferrand (France) 23-24 juin 2026 : MWCP 2026 - Paris (France) 24-25 juin 2026 : Agi'Lille 2026 - Lille (France) 24-26 juin 2026 : BreizhCamp 2026 - Rennes (France) 25-26 juin 2026 : Agile Tour Toulouse 2026 - Toulouse (France) 27 juin 2026 : Asynconf - Paris (France) 2 juillet 2026 : Azur Tech Summer 2026 - Valbonne (France) 2-3 juillet 2026 : Sunny Tech - Montpellier (France) 3 juillet 2026 : Agile Lyon 2026 - Lyon (France) 6-8 juillet 2026 : Riviera Dev - Sophia Antipolis (France) 28-30 août 2026 : State of the Map - Champs-sur-Marne (France) 4 septembre 2026 : JUG Summer Camp 2026 - La Rochelle (France) 10-11 septembre 2026 : Nantes Craft - Nantes (France) 17 septembre 2026 : dotAI - Paris (France) 17-18 septembre 2026 : API Platform Conference 2026 - Lille (France) 18 septembre 2026 : dotJS - Paris (France) 18 septembre 2026 : WordCamp Bretagne - Rennes (France) 22 septembre 2026 : Salon Data 2026 - Nantes (France) 22-23 septembre 2026 : Agile en Seine & IA 2026 - Paris (France) 24 septembre 2026 : OWASP AppSec Days France 2026 - Paris (France) 24 septembre 2026 : PlatformCon Paris - Paris (France) 24 septembre 2026 : React Native Connection 2026 - Paris (France) 24-26 septembre 2026 : Paris Web 2026 - Paris (France) 28-29 septembre 2026 : 4th Tech Summit on AI & Robotics - Paris (France) & Online 1 octobre 2026 : WAX 2026 - Marseille (France) 1-2 octobre 2026 : Volcamp - Clermont-Ferrand (France) 2 octobre 2026 : DevFest Perros-Guirec 2026 - Perros-Guirec (France) 5-9 octobre 2026 : Devoxx Belgium - Antwerp (Belgium) 12 octobre 2026 : Dev With AI - Paris (France) 27-29 octobre 2026 : Directions EMEA 2026 - Paris (France) 29-30 octobre 2026 : BDX I/O 2026 - Bordeaux (France) 30 octobre 2026 : Cloud Nord 2026 - Lille (France) 4-5 novembre 2026 : Devoxx Morocco - Casablanca (Morocco) 14-15 novembre 2026 : Capitole du Libre - Toulouse (France) 19 novembre 2026 : DevFest Toulouse 2026 - Toulouse (France) 27 novembre 2026 : DevFest Paris 2026 - Paris (France) 1-3 décembre 2026 : Apidays Paris - Paris (France) 4 décembre 2026 : DevFest Lyon 2026 - Lyon (France) 4 décembre 2026 : DevFest Dijon 2026 - Dijon (France) 9-10 décembre 2026 : OpenSource Expérience - Paris (France) 9-10 décembre 2026 : DevOps REX - Paris (France) 10 décembre 2026 : KCD Provence - Aix-en-Provence (France) 7-9 avril 2027 : Devoxx France 2027 - Paris (France) 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/

covid-19 netflix ai google apple france state zoom spring microsoft plan code human silicon valley services forward os ga operations options app roi adoption dans structure construction windows context ip architecture oracle application obstacles enterprise ram ia buddy swift verse slack faire requirements explosion blue sky index api milestone rat conf cisco agile clips io chrome bon encore explicit python aws mythos nouvelle nouveau domination ml trois github java guillaume fork workflow int apis aur probl helm criteria limites llm chorus copilot moins javascript anthropic macos apache kafka nouvelles contr gestion grosse gpu cas norms wax changement cpu flexibilit nouveaux propose hotspot gc entities safeguards crowdstrike slogan vert kairos transactional certaines opt codex objectif docker principe loi git kubernetes utiliser m2 png plugins lancement deepmind croissance outils aucune chansons mcp enregistr approche erreur quelqu changements cursor ci cd json london uk cli avantages terraform paris france mysql typescript github copilot vms fonctionne graphql lier utilisation ssh vs code paradoxe maintenir npm capitole redis linux foundation orm postgresql mesurer librairie sql server supprimer sse prochaines alpha omega ansible jep jvm contrats vache oci lts alignement hibernate yann lecun troie ajouter trivago yaml ddl gestionnaire a2a grpc tech summit gitops mariadb devcon facilite compaction spring boot personnalisation josh long community edition lyon france intellij protocoles adk lyria openjdk rc1 inclure glasswing bordeaux france jpa spring framework cloner chiffrement testcontainers provence france jeps oidc strasbourg france toulouse france firestore lille france pgo kafka connect spring data dijon france amazon efs devoxx france
Ready for review
Rfr095 - Die Kleine 100

Ready for review

Play Episode Listen Later Mar 13, 2026 53:15 Transcription Available


Sandra und Daniel treffen sich wieder zum Kaffee und quatschen über Side-Projekte, Unconference und neue Updates.

Les Cast Codeurs Podcast
LCC 337 - Datacenters Carrier Class dans l'espace

Les Cast Codeurs Podcast

Play Episode Listen Later Feb 16, 2026 94:19


Emmanuel et Guillaume discutent de divers sujets liés à la programmation, notamment les systèmes de fichiers en Java, le Data Oriented Programming, les défis de JPA avec Kotlin, et les nouvelles fonctionnalités de Quarkus. Ils explorent également des sujets un peu fous comme la création de datacenters dans l'espace. Pas mal d'architecture aussi. Enregistré le 13 février 2026 Téléchargement de l'épisode LesCastCodeurs-Episode-337.mp3 ou en vidéo sur YouTube. News Langages Comment implémenter un file system en Java https://foojay.io/today/bootstrapping-a-java-file-system/ Créer un système de fichiers Java personnalisé avec NIO.2 pour des usages variés (VCS, archives, systèmes distants). Évolution Java: java.io.File (1.0) -> NIO (1.4) -> NIO.2 (1.7) pour personnalisation via FileSystem. Recommander conception préalable; API Java est orientée POSIX. Composants clés à considérer: Conception URI (scheme unique, chemin). Gestion de l'arborescence (BD, métadonnées, efficacité). Stockage binaire (emplacement, chiffrement, versions). Minimum pour démarrer (4 composants): Implémenter Path (représente fichier/répertoire). Étendre FileSystem (instance du système). Étendre FileSystemProvider (moteur, enregistré par scheme). Enregistrer FileSystemProvider via META-INF/services. Étapes suivantes: Couche BD (arborescence), opérations répertoire/fichier de base, stockage, tests. Processus long et exigeant, mais gratifiant.   Un article de brian goetz sur le futur du data oriented programming en Java https://openjdk.org/projects/amber/design-notes/beyond-records Le projet Amber de Java introduit les "carrier classes", une évolution des records qui permet plus de flexibilité tout en gardant les avantages du pattern matching et de la reconstruction Les records imposent des contraintes strictes (immutabilité, représentation exacte de l'état) qui limitent leur usage pour des classes avec état muable ou dérivé Les carrier classes permettent de déclarer une state description complète et canonique sans imposer que la représentation interne corresponde exactement à l'API publique Le modificateur "component" sur les champs permet au compilateur de dériver automatiquement les accesseurs pour les composants alignés avec la state description Les compact constructors sont généralisés aux carrier classes, générant automatiquement l'initialisation des component fields Les carrier classes supportent la déconstruction via pattern matching comme les records, rendant possible leur usage dans les instanceof et switch Les carrier interfaces permettent de définir une state description sur une interface, obligeant les implémentations à fournir les accesseurs correspondants L'extension entre carrier classes est possible, avec dérivation automatique des appels super() quand les composants parent sont subsumés par l'enfant Les records deviennent un cas particulier de carrier classes avec des contraintes supplémentaires (final, extends Record, component fields privés et finaux obligatoires) L'évolution compatible des records est améliorée en permettant l'ajout de composants en fin de liste et la déconstruction partielle par préfixe Comment éviter les pièges courants avec JPA et Kotlin - https://blog.jetbrains.com/idea/2026/01/how-to-avoid-common-pitfalls-with-jpa-and-kotlin/ JPA est une spécification Java pour la persistance objet-relationnel, mais son utilisation avec Kotlin présente des incompatibilités dues aux différences de conception des deux langages Les classes Kotlin sont finales par défaut, ce qui empêche la création de proxies par JPA pour le lazy loading et les opérations transactionnelles Le plugin kotlin-jpa génère automatiquement des constructeurs sans argument et rend les classes open, résolvant les problèmes de compatibilité Les data classes Kotlin ne sont pas adaptées aux entités JPA car elles génèrent equals/hashCode basés sur tous les champs, causant des problèmes avec les relations lazy L'utilisation de lateinit var pour les relations peut provoquer des exceptions si on accède aux propriétés avant leur initialisation par JPA Les types non-nullables Kotlin peuvent entrer en conflit avec le comportement de JPA qui initialise les entités avec des valeurs null temporaires Le backing field direct dans les getters/setters personnalisés peut contourner la logique de JPA et casser le lazy loading IntelliJ IDEA 2024.3 introduit des inspections pour détecter automatiquement ces problèmes et propose des quick-fixes L'IDE détecte les entités finales, les data classes inappropriées, les problèmes de constructeurs et l'usage incorrect de lateinit Ces nouvelles fonctionnalités aident les développeurs à éviter les bugs subtils liés à l'utilisation de JPA avec Kotlin Librairies Guide sur MapStruct @IterableMapping - https://www.baeldung.com/java-mapstruct-iterablemapping MapStruct est une bibliothèque Java pour générer automatiquement des mappers entre beans, l'annotation @IterableMapping permet de configurer finement le mapping de collections L'attribut dateFormat permet de formater automatiquement des dates lors du mapping de listes sans écrire de boucle manuelle L'attribut qualifiedByName permet de spécifier quelle méthode custom appliquer sur chaque élément de la collection à mapper Exemple d'usage : filtrer des données sensibles comme des mots de passe en mappant uniquement certains champs via une méthode dédiée L'attribut nullValueMappingStrategy permet de contrôler le comportement quand la collection source est null (retourner null ou une collection vide) L'annotation fonctionne pour tous types de collections Java (List, Set, etc.) et génère le code de boucle nécessaire Possibilité d'appliquer des formats numériques avec numberFormat pour convertir des nombres en chaînes avec un format spécifique MapStruct génère l'implémentation complète du mapper au moment de la compilation, éliminant le code boilerplate L'annotation peut être combinée avec @Named pour créer des méthodes de mapping réutilisables et nommées Le mapping des collections supporte les conversions de types complexes au-delà des simples conversions de types primitifs Accès aux fichiers Samba depuis Java avec JCIFS - https://www.baeldung.com/java-samba-jcifs JCIFS est une bibliothèque Java permettant d'accéder aux partages Samba/SMB sans monter de lecteur réseau, supportant le protocole SMB3 on pense aux galériens qui doivent se connecter aux systèmes dit legacy La configuration nécessite un contexte CIFS (CIFSContext) et des objets SmbFile pour représenter les ressources distantes L'authentification se fait via NtlmPasswordAuthenticator avec domaine, nom d'utilisateur et mot de passe La bibliothèque permet de lister les fichiers et dossiers avec listFiles() et vérifier leurs propriétés (taille, date de modification) Création de fichiers avec createNewFile() et de dossiers avec mkdir() ou mkdirs() pour créer toute une arborescence Suppression via delete() qui peut parcourir et supprimer récursivement des arborescences entières Copie de fichiers entre partages Samba avec copyTo(), mais impossibilité de copier depuis le système de fichiers local Pour copier depuis le système local, utilisation des streams SmbFileInputStream et SmbFileOutputStream Les opérations peuvent cibler différents serveurs Samba et différents partages (anonymes ou protégés par mot de passe) La bibliothèque s'intègre dans des blocs try-with-resources pour une gestion automatique des ressources Quarkus 3.31 - Support complet Java 25, nouveau packaging Maven et Panache Next - https://quarkus.io/blog/quarkus-3-31-released/ Support complet de Java 25 avec images runtime et native Nouveau packaging Maven de type quarkus avec lifecycle optimisé pour des builds plus rapides voici un article complet pour plus de detail https://quarkus.io/blog/building-large-applications/ Introduction de Panache Next, nouvelle génération avec meilleure expérience développeur et API unifiée ORM/Reactive Mise à jour vers Hibernate ORM 7.2, Reactive 3.2, Search 8.2 Support de Hibernate Spatial pour les données géospatiales Passage à Testcontainers 2 et JUnit 6 Annotations de sécurité supportées sur les repositories Jakarta Data Chiffrement des tokens OIDC pour les implémentations custom TokenStateManager Support OAuth 2.0 Pushed Authorization Requests dans l'extension OIDC Maven 3.9 maintenant requis minimum pour les projets Quarkus A2A Java SDK 1.0.0.Alpha1 - Alignement avec la spécification 1.0 du protocole Agent2Agent - https://quarkus.io/blog/a2a-java-sdk-1-0-0-alpha1/ Le SDK Java A2A implémente le protocole Agent2Agent qui permet la communication standardisée entre agents IA pour découvrir des capacités, déléguer des tâches et collaborer Passage à la version 1.0 de la spécification marque la transition d'expérimental à production-ready avec des changements cassants assumés Modernisation complète du module spec avec des Java records partout remplaçant le mix précédent de classes et records pour plus de cohérence Adoption de Protocol Buffers comme source de vérité avec des mappers MapStruct pour la conversion et Gson pour JSON-RPC Les builders utilisent maintenant des méthodes factory statiques au lieu de constructeurs publics suivant les best practices Java modernes Introduction de trois BOMs Maven pour simplifier la gestion des dépendances du SDK core, des extensions et des implémentations de référence Quarkus AgentCard évolue avec une liste supportedInterfaces remplaçant url et preferredTransport pour plus de flexibilité dans la déclaration des protocoles Support de la pagination ajouté pour ListTasks et les endpoints de configuration des notifications push avec des wrappers Result appropriés Interface A2AHttpClient pluggable permettant des implémentations HTTP personnalisées avec une implémentation Vert.x fournie Travail continu vers la conformité complète avec le TCK 1.0 en cours de développement parallèlement à la finalisation de la spécification Pourquoi Quarkus finit par "cliquer" : les 10 questions que se posent les développeurs Java - https://www.the-main-thread.com/p/quarkus-java-developers-top-questions-2025 un article qui revele et repond aux questions des gens qui ont utilisé Quarkus depuis 4-6 mois, les non noob questions Quarkus est un framework Java moderne optimisé pour le cloud qui propose des temps de démarrage ultra-rapides et une empreinte mémoire réduite Pourquoi Quarkus démarre si vite ? Le framework effectue le travail lourd au moment du build (scanning, indexation, génération de bytecode) plutôt qu'au runtime Quand utiliser le mode réactif plutôt qu'impératif ? Le réactif est pertinent pour les workloads avec haute concurrence et dominance I/O, l'impératif reste plus simple dans les autres cas Quelle est la différence entre Dev Services et Testcontainers ? Dev Services utilise Testcontainers en gérant automatiquement le cycle de vie, les ports et la configuration sans cérémonie Comment la DI de Quarkus diffère de Spring ? CDI est un standard basé sur la sécurité des types et la découverte au build-time, différent de l'approche framework de Spring Comment gérer la configuration entre environnements ? Quarkus permet de scaler depuis le développement local jusqu'à Kubernetes avec des profils, fichiers multiples et configuration externe Comment tester correctement les applications Quarkus ? @QuarkusTest démarre l'application une fois pour toute la suite de tests, changeant le modèle mental par rapport à Spring Boot Que fait vraiment Panache en coulisses ? Panache est du JPA avec des opinions fortes et des défauts propres, enveloppant Hibernate avec un style Active Record Doit-on utiliser les images natives et quand ? Les images natives brillent pour le serverless et l'edge grâce au démarrage rapide et la faible empreinte mémoire, mais tous les apps n'en bénéficient pas Comment Quarkus s'intègre avec Kubernetes ? Le framework génère automatiquement les ressources Kubernetes, gère les health checks et métriques comme s'il était nativement conçu pour cet écosystème Comment intégrer l'IA dans une application Quarkus ? LangChain4j permet d'ajouter embeddings, retrieval, guardrails et observabilité directement en Java sans passer par Python Infrastructure Les alternatives à MinIO https://rmoff.net/2026/01/14/alternatives-to-minio-for-single-node-local-s3/ MinIO a abandonné le support single-node fin 2025 pour des raisons commerciales, cassant de nombreuses démos et pipelines CI/CD qui l'utilisaient pour émuler S3 localement L'auteur cherche un remplacement simple avec image Docker, compatibilité S3, licence open source, déploiement mono-nœud facile et communauté active S3Proxy est très léger et facile à configurer, semble être l'option la plus simple mais repose sur un seul contributeur RustFS est facile à utiliser et inclut une GUI, mais c'est un projet très récent en version alpha avec une faille de sécurité majeure récente SeaweedFS existe depuis 2012 avec support S3 depuis 2018, relativement facile à configurer et dispose d'une interface web basique Zenko CloudServer remplace facilement MinIO mais la documentation et le branding (cloudserver/zenko/scality) peuvent prêter à confusion Garage nécessite une configuration complexe avec fichier TOML et conteneur d'initialisation séparé, pas un simple remplacement drop-in Apache Ozone requiert au minimum quatre nœuds pour fonctionner, beaucoup trop lourd pour un usage local simple L'auteur recommande SeaweedFS et S3Proxy comme remplaçants viables, RustFS en maybe, et élimine Garage et Ozone pour leur complexité Garage a une histoire tres associative, il vient du collectif https://deuxfleurs.fr/ qui offre un cloud distribué sans datacenter C'est certainement pas une bonne idée, les datacenters dans l'espace https://taranis.ie/datacenters-in-space-are-a-terrible-horrible-no-good-idea/ Avis d'expert (ex-NASA/Google, Dr en électronique spatiale) : Centres de données spatiaux, une "terrible" idée. Incompatibilité fondamentale : L'électronique (surtout IA/GPU) est inadaptée à l'environnement spatial. Énergie : Accès limité. Le solaire (type ISS) est insuffisant pour l'échelle de l'IA. Le nucléaire (RTG) est trop faible. Refroidissement : L'espace n'est pas "froid" ; absence de convection. Nécessite des radiateurs gigantesques (ex: 531m² pour 200kW). Radiations : Provoque erreurs (SEU, SEL) et dommages. Les GPU sont très vulnérables. Blindage lourd et inefficace. Les puces "durcies" sont très lentes. Communications : Bande passante très limitée (1Gbps radio vs 100Gbps terrestre). Le laser est tributaire des conditions atmosphériques. Conclusion : Projet extrêmement difficile, coûteux et aux performances médiocres. Data et Intelligence Artificielle Guillaume a développé un serveur MCP pour arXiv (le site de publication de papiers de recherche) en Java avec le framework Quarkus https://glaforge.dev/posts/2026/01/18/implementing-an-arxiv-mcp-server-with-quarkus-in-java/ Implémentation d'un serveur MCP (Model Context Protocol) arXiv en Java avec Quarkus. Objectif : Accéder aux publications arXiv et illustrer les fonctionnalités moins connues du protocole MCP. Mise en œuvre : Utilisation du framework Quarkus (Java) et son support MCP étendu. Assistance par Antigravity (IDE agentique) pour le développement et l'intégration de l'API arXiv. Interaction avec l'API arXiv : requêtes HTTP, format XML Atom pour les résultats, parser XML Jackson. Fonctionnalités MCP exposées : Outils (@Tool) : Recherche de publications (search_papers). Ressources (@Resource, @ResourceTemplate) : Taxonomie des catégories arXiv, métadonnées des articles (via un template d'URI). Prompts (@Prompt) : Exemples pour résumer des articles ou construire des requêtes de recherche. Configuration : Le serveur peut fonctionner en STDIO (local) ou via HTTP Streamable (local ou distant), avec une configuration simple dans des clients comme Gemini CLI. Conclusion : Quarkus simplifie la création de serveurs MCP riches en fonctionnalités, rendant les données et services "prêts pour l'IA" avec l'aide d'outils d'IA comme Antigravity. Anthropic ne mettra pas de pub dans Claude https://www.anthropic.com/news/claude-is-a-space-to-think c'est en reaction au plan non public d'OpenAi de mettre de la pub pour pousser les gens au mode payant OpenAI a besoin de cash et est probablement le plus utilisé pour gratuit au monde Anthropic annonce que Claude restera sans publicité pour préserver son rôle d'assistant conversationnel dédié au travail et à la réflexion approfondie. Les conversations avec Claude sont souvent sensibles, personnelles ou impliquent des tâches complexes d'ingénierie logicielle où les publicités seraient inappropriées. L'analyse des conversations montre qu'une part significative aborde des sujets délicats similaires à ceux évoqués avec un conseiller de confiance. Un modèle publicitaire créerait des incitations contradictoires avec le principe fondamental d'être "genuinely helpful" inscrit dans la Constitution de Claude. Les publicités introduiraient un conflit d'intérêt potentiel où les recommandations pourraient être influencées par des motivations commerciales plutôt que par l'intérêt de l'utilisateur. Le modèle économique d'Anthropic repose sur les contrats entreprise et les abonnements payants, permettant de réinvestir dans l'amélioration de Claude. Anthropic maintient l'accès gratuit avec des modèles de pointe et propose des tarifs réduits pour les ONG et l'éducation dans plus de 60 pays. Le commerce "agentique" sera supporté mais uniquement à l'initiative de l'utilisateur, jamais des annonceurs, pour préserver la confiance. Les intégrations tierces comme Figma, Asana ou Canva continueront d'être développées en gardant l'utilisateur aux commandes. Anthropic compare Claude à un cahier ou un tableau blanc : des espaces de pensée purs, sans publicité. Infinispan 16.1 est sorti https://infinispan.org/blog/2026/02/04/infinispan-16-1 déjà le nom de la release mérite une mention Le memory bounded par cache et par ensemble de cache s est pas facile à faire en Java Une nouvelle api OpenAPI AOT caché dans les images container Un serveur MCP local juste avec un fichier Java ? C'est possible avec LangChain4j et JBang https://glaforge.dev/posts/2026/02/11/zero-boilerplate-java-stdio-mcp-servers-with-langchain4j-and-jbang/ Création rapide de serveurs MCP Java sans boilerplate. MCP (Model Context Protocol): standard pour connecter les LLM à des outils et données. Le tutoriel répond au manque d'options simples pour les développeurs Java, face à une prédominance de Python/TypeScript dans l'écosystème MCP. La solution utilise: LangChain4j: qui intègre un nouveau module serveur MCP pour le protocole STDIO. JBang: permet d'exécuter des fichiers Java comme des scripts, éliminant les fichiers de build (pom.xml, Gradle). Implémentation: se fait via un seul fichier .java. JBang gère automatiquement les dépendances (//DEPS). L'annotation @Tool de LangChain4j expose les méthodes Java aux LLM. StdioMcpServerTransport gère la communication JSON-RPC via l'entrée/sortie standard (STDIO). Point crucial: Les logs doivent impérativement être redirigés vers System.err pour éviter de corrompre System.out, qui est réservé à la communication MCP (messages JSON-RPC). Facilite l'intégration locale avec des outils comme Gemini CLI, Claude Code, etc. Reciprocal Rank Fusion : un algorithme utile et souvent utilisé pour faire de la recherche hybride, pour mélanger du RAG et des recherches par mots-clé https://glaforge.dev/posts/2026/02/10/advanced-rag-understanding-reciprocal-rank-fusion-in-hybrid-search/ RAG : Qualité LLM dépend de la récupération. Recherche Hybride : Combiner vectoriel et mots-clés (BM25) est optimal. Défi : Fusionner des scores d'échelles différentes. Solution : Reciprocal Rank Fusion (RRF). RRF : Algorithme robuste qui fusionne des listes de résultats en se basant uniquement sur le rang des documents, ignorant les scores. Avantages RRF : Pas de normalisation de scores, scalable, excellente première étape de réorganisation. Architecture RAG fréquente : RRF (large sélection) + Cross-Encoder / modèle de reranking (précision fine). RAG-Fusion : Utilise un LLM pour générer plusieurs variantes de requête, puis RRF agrège tous les résultats pour renforcer le consensus et réduire les hallucinations. Implémentation : LangChain4j utilise RRF par défaut pour agréger les résultats de plusieurs retrievers. Les dernières fonctionnalités de Gemini et Nano Banana supportées dans LangChain4j https://glaforge.dev/posts/2026/02/06/latest-gemini-and-nano-banana-enhancements-in-langchain4j/ Nouveaux modèles d'images Nano Banana (Gemini 2.5/3.0) pour génération et édition (jusqu'à 4K). "Grounding" via Google Search (pour images et texte) et Google Maps (localisation, Gemini 2.5). Outil de contexte URL (Gemini 3.0) pour lecture directe de pages web. Agents multimodaux (AiServices) capables de générer des images. Configuration de la réflexion (profondeur Chain-of-Thought) pour Gemini 3.0. Métadonnées enrichies : usage des tokens et détails des sources de "grounding". Comment configurer Gemini CLI comment agent de code dans IntelliJ grâce au protocole ACP https://glaforge.dev/posts/2026/02/01/how-to-integrate-gemini-cli-with-intellij-idea-using-acp/ But : Intégrer Gemini CLI à IntelliJ IDEA via l'Agent Client Protocol (ACP). Prérequis : IntelliJ IDEA 2025.3+, Node.js (v20+), Gemini CLI. Étapes : Installer Gemini CLI (npm install -g @google/gemini-cli). Localiser l'exécutable gemini. Configurer ~/.jetbrains/acp.json (chemin exécutable, --experimental-acp, use_idea_mcp: true). Redémarrer IDEA, sélectionner "Gemini CLI" dans l'Assistant IA. Usage : Gemini interagit avec le code et exécute des commandes (contexte projet). Important : S'assurer du flag --experimental-acp dans la configuration. Outillage PipeNet, une alternative (open source aussi) à LocalTunnel, mais un plus évoluée https://pipenet.dev/ pipenet: Alternative open-source et moderne à localtunnel (client + serveur). Usages: Développement local (partage, webhooks), intégration SDK, auto-hébergement sécurisé. Fonctionnalités: Client (expose ports locaux, sous-domaines), Serveur (déploiement, domaines personnalisés, optimisé cloud mono-port). Avantages vs localtunnel: Déploiement cloud sur un seul port, support multi-domaines, TypeScript/ESM, maintenance active. Protocoles: HTTP/S, WebSocket, SSE, HTTP Streaming. Intégration: CLI ou SDK JavaScript. JSON-IO — une librairie comme Jackson ou GSON, supportant JSON5, TOON, et qui pourrait être utile pour l'utilisation du "structured output" des LLMs quand ils ne produisent pas du JSON parfait https://github.com/jdereg/json-io json-io : Librairie Java pour la sérialisation et désérialisation JSON/TOON. Gère les graphes d'objets complexes, les références cycliques et les types polymorphes. Support complet JSON5 (lecture et écriture), y compris des fonctionnalités non prises en charge par Jackson/Gson. Format TOON : Notation orientée token, optimisée pour les LLM, réduisant l'utilisation de tokens de 40 à 50% par rapport au JSON. Légère : Aucune dépendance externe (sauf java-util), taille de JAR réduite (~330K). Compatible JDK 1.8 à 24, ainsi qu'avec les environnements JPMS et OSGi. Deux modes de conversion : vers des objets Java typés (toJava()) ou vers des Map (toMaps()). Options de configuration étendues via ReadOptionsBuilder et WriteOptionsBuilder. Optimisée pour les déploiements cloud natifs et les architectures de microservices. Utiliser mailpit et testcontainer pour tester vos envois d'emails https://foojay.io/today/testing-emails-with-testcontainers-and-mailpit/ l'article montre via SpringBoot et sans. Et voici l'extension Quarkus https://quarkus.io/extensions/io.quarkiverse.mailpit/quarkus-mailpit/?tab=docs Tester l'envoi d'emails en développement est complexe car on ne peut pas utiliser de vrais serveurs SMTP Mailpit est un serveur SMTP de test qui capture les emails et propose une interface web pour les consulter Testcontainers permet de démarrer Mailpit dans un conteneur Docker pour les tests d'intégration L'article montre comment configurer une application SpringBoot pour envoyer des emails via JavaMail Un module Testcontainers dédié à Mailpit facilite son intégration dans les tests Le conteneur Mailpit expose un port SMTP (1025) et une API HTTP (8025) pour vérifier les emails reçus Les tests peuvent interroger l'API HTTP de Mailpit pour valider le contenu des emails envoyés Cette approche évite d'utiliser des mocks et teste réellement l'envoi d'emails Mailpit peut aussi servir en développement local pour visualiser les emails sans les envoyer réellement La solution fonctionne avec n'importe quel framework Java supportant JavaMail Architecture Comment scaler un système de 0 à 10 millions d'utilisateurs https://blog.algomaster.io/p/scaling-a-system-from-0-to-10-million-users Philosophie : Scalabilité incrémentale, résoudre les goulots d'étranglement sans sur-ingénierie. 0-100 utilisateurs : Serveur unique (app, DB, jobs). 100-1K : Séparer app et DB (services gérés, pooling). 1K-10K : Équilibreur de charge, multi-serveurs d'app (stateless via sessions partagées). 10K-100K : Caching, réplicas de lecture DB, CDN (réduire charge DB). 100K-500K : Auto-scaling, applications stateless (authentification JWT). 500K-10M : Sharding DB, microservices, files de messages (traitement asynchrone). 10M+ : Déploiement multi-régions, CQRS, persistance polyglotte, infra personnalisée. Principes clés : Simplicité, mesure, stateless essentiel, cache/asynchrone, sharding prudent, compromis (CAP), coût de la complexité. Patterns d'Architecture 2026 - Du Hype à la Réalité du Terrain (Part 1/2) - https://blog.ippon.fr/2026/01/30/patterns-darchitecture-2026-part-1/ L'article présente quatre patterns d'architecture logicielle pour répondre aux enjeux de scalabilité, résilience et agilité business dans les systèmes modernes Il présentent leurs raisons et leurs pièges Un bon rappel L'Event-Driven Architecture permet une communication asynchrone entre systèmes via des événements publiés et consommés, évitant le couplage direct Les bénéfices de l'EDA incluent la scalabilité indépendante des composants, la résilience face aux pannes et l'ajout facile de nouveaux cas d'usage Le pattern API-First associé à un API Gateway centralise la sécurité, le routage et l'observabilité des APIs avec un catalogue unifié Le Backend for Frontend crée des APIs spécifiques par canal (mobile, web, partenaires) pour optimiser l'expérience utilisateur CQRS sépare les modèles de lecture et d'écriture avec des bases optimisées distinctes, tandis que l'Event Sourcing stocke tous les événements plutôt que l'état actuel Le Saga Pattern gère les transactions distribuées via orchestration centralisée ou chorégraphie événementielle pour coordonner plusieurs microservices Les pièges courants incluent l'explosion d'événements granulaires, la complexité du debugging distribué, et la mauvaise gestion de la cohérence finale Les technologies phares sont Kafka pour l'event streaming, Kong pour l'API Gateway, EventStoreDB pour l'Event Sourcing et Temporal pour les Sagas Ces patterns nécessitent une maturité technique et ne sont pas adaptés aux applications CRUD simples ou aux équipes junior Patterns d'architecture 2026 : du hype à la réalité terrain part. 2 - https://blog.ippon.fr/2026/02/04/patterns-darchitecture-2026-part-2/ Deuxième partie d'un guide pratique sur les patterns d'architecture logicielle et système éprouvés pour moderniser et structurer les applications en 2026 Strangler Fig permet de migrer progressivement un système legacy en l'enveloppant petit à petit plutôt que de tout réécrire d'un coup (70% d'échec pour les big bang) Anti-Corruption Layer protège votre nouveau domaine métier des modèles externes et legacy en créant une couche de traduction entre les systèmes Service Mesh gère automatiquement la communication inter-services dans les architectures microservices (sécurité mTLS, observabilité, résilience) Architecture Hexagonale sépare le coeur métier des détails techniques via des ports et adaptateurs pour améliorer la testabilité et l'évolutivité Chaque pattern est illustré par un cas client concret avec résultats mesurables et liste des pièges à éviter lors de l'implémentation Les technologies 2026 mentionnées incluent Istio, Linkerd pour service mesh, LaunchDarkly pour feature flags, NGINX et Kong pour API gateway Tableau comparatif final aide à choisir le bon pattern selon la complexité, le scope et le use case spécifique du projet L'article insiste sur une approche pragmatique : ne pas utiliser un pattern juste parce qu'il est moderne mais parce qu'il résout un problème réel Pour les systèmes simples type CRUD ou avec peu de services, ces patterns peuvent introduire une complexité inutile qu'il faut savoir éviter Méthodologies Le rêve récurrent de remplacer voire supprimer les développeurs https://www.caimito.net/en/blog/2025/12/07/the-recurring-dream-of-replacing-developers.html Depuis 1969, chaque décennie voit une tentative de réduire le besoin de développeurs (de COBOL, UML, visual builders… à IA). Motivation : frustration des dirigeants face aux délais et coûts de développement. La complexité logicielle est intrinsèque et intellectuelle, non pas une question d'outils. Chaque vague technologique apporte de la valeur mais ne supprime pas l'expertise humaine. L'IA assiste les développeurs, améliore l'efficacité, mais ne remplace ni le jugement ni la gestion de la complexité. La demande de logiciels excède l'offre car la contrainte majeure est la réflexion nécessaire pour gérer cette complexité. Pour les dirigeants : les outils rendent-ils nos développeurs plus efficaces sur les problèmes complexes et réduisent-ils les tâches répétitives ? Le "rêve" de remplacer les développeurs, irréalisable, est un moteur d'innovation créant des outils précieux. Comment creuser des sujets à l'ère de l'IA générative. Quid du partage et la curation de ces recherches ? https://glaforge.dev/posts/2026/02/04/researching-topics-in-the-age-of-ai-rock-solid-webhooks-case-study/ Recherche initiale de l'auteur sur les webhooks en 2019, processus long et manuel. L'IA (Deep Research, Gemini, NotebookLM) facilite désormais la recherche approfondie, l'exploration de sujets et le partage des résultats. L'IA a identifié et validé des pratiques clés pour des déploiements de webhooks résilients, en grande partie les mêmes que celles trouvées précédemment par l'auteur. Génération d'artefacts par l'IA : rapport détaillé, résumé concis, illustration sketchnote, et même une présentation (slide deck). Guillaume s'interroge sur le partage public de ces rapports de recherche générés par l'IA, tout en souhaitant éviter le "AI Slop". Loi, société et organisation Le logiciel menacé par le vibe coding https://www.techbuzz.ai/articles/we-built-a-monday-com-clone-in-under-an-hour-with-ai Deux journalistes de CNBC sans expérience de code ont créé un clone fonctionnel de Monday.com en moins de 60 minutes pour 5 à 15 dollars. L'expérience valide les craintes des investisseurs qui ont provoqué une baisse de 30% des actions des entreprises SaaS. L'IA a non seulement reproduit les fonctionnalités de base mais a aussi recherché Monday.com de manière autonome pour identifier et recréer ses fonctionnalités clés. Cette technique appelée "vibe-coding" permet aux non-développeurs de construire des applications via des instructions en anglais courant. Les entreprises les plus vulnérables sont celles offrant des outils "qui se posent sur le travail" comme Atlassian, Adobe, HubSpot, Zendesk et Smartsheet. Les entreprises de cybersécurité comme CrowdStrike et Palo Alto sont considérées plus protégées grâce aux effets de réseau et aux barrières réglementaires. Les systèmes d'enregistrement comme Salesforce restent plus difficiles à répliquer en raison de leur profondeur d'intégration et de données d'entreprise. Le coût de 5 à 15 dollars par construction permet aux entreprises de prototyper plusieurs solutions personnalisées pour moins cher qu'une seule licence Monday.com. L'expérience soulève des questions sur la pérennité du marché de 5 milliards de dollars des outils de gestion de projet face à l'IA générative. Conférences En complément de l'agenda des conférences de Aurélie Vache, il y a également le site https://javaconferences.org/ (fait par Brian Vermeer) avec toutes les conférences Java à venir ! La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 12-13 février 2026 : Touraine Tech #26 - Tours (France) 12-13 février 2026 : World Artificial Intelligence Cannes Festival - Cannes (France) 19 février 2026 : ObservabilityCON on the Road - Paris (France) 6 mars 2026 : WordCamp Nice 2026 - Nice (France) 18 mars 2026 : Jupyter Workshops: AI in Jupyter: Building Extensible AI Capabilities for Interactive Computing - Saint-Maur-des-Fossés (France) 18-19 mars 2026 : Agile Niort 2026 - Niort (France) 20 mars 2026 : Atlantique Day 2026 - Nantes (France) 26 mars 2026 : Data Days Lille - Lille (France) 26-27 mars 2026 : SymfonyLive Paris 2026 - Paris (France) 26-27 mars 2026 : REACT PARIS - Paris (France) 27-29 mars 2026 : Shift - Nantes (France) 31 mars 2026 : ParisTestConf - Paris (France) 31 mars 2026-1 avril 2026 : FlowCon France 2026 - Paris (France) 1 avril 2026 : AWS Summit Paris - Paris (France) 2 avril 2026 : Pragma Cannes 2026 - Cannes (France) 2-3 avril 2026 : Xen Spring Meetup 2026 - Grenoble (France) 7 avril 2026 : PyTorch Conference Europe - Paris (France) 9-10 avril 2026 : Android Makers by droidcon 2026 - Paris (France) 9-11 avril 2026 : Drupalcamp Grenoble 2026 - Grenoble (France) 16-17 avril 2026 : MiXiT 2026 - Lyon (France) 17-18 avril 2026 : Faiseuses du Web 5 - Dinan (France) 22-24 avril 2026 : Devoxx France 2026 - Paris (France) 23-25 avril 2026 : Devoxx Greece - Athens (Greece) 6-7 mai 2026 : Devoxx UK 2026 - London (UK) 12 mai 2026 : Lead Innovation Day - Leadership Edition - Paris (France) 19 mai 2026 : La Product Conf Paris 2026 - Paris (France) 21-22 mai 2026 : Flupa UX Days 2026 - Paris (France) 22 mai 2026 : AFUP Day 2026 Lille - Lille (France) 22 mai 2026 : AFUP Day 2026 Paris - Paris (France) 22 mai 2026 : AFUP Day 2026 Bordeaux - Bordeaux (France) 22 mai 2026 : AFUP Day 2026 Lyon - Lyon (France) 28 mai 2026 : DevCon 27 : I.A. & Vibe Coding - Paris (France) 28 mai 2026 : Cloud Toulouse 2026 - Toulouse (France) 29 mai 2026 : NG Baguette Conf 2026 - Paris (France) 29 mai 2026 : Agile Tour Strasbourg 2026 - Strasbourg (France) 2-3 juin 2026 : Agile Tour Rennes 2026 - Rennes (France) 2-3 juin 2026 : OW2Con - Paris-Châtillon (France) 3 juin 2026 : IA–NA - La Rochelle (France) 5 juin 2026 : TechReady - Nantes (France) 5 juin 2026 : Fork it! - Rouen - Rouen (France) 6 juin 2026 : Polycloud - Montpellier (France) 9 juin 2026 : JFTL - Montrouge (France) 9 juin 2026 : C: - Caen (France) 11-12 juin 2026 : DevQuest Niort - Niort (France) 11-12 juin 2026 : DevLille 2026 - Lille (France) 12 juin 2026 : Tech F'Est 2026 - Nancy (France) 16 juin 2026 : Mobilis In Mobile 2026 - Nantes (France) 17-19 juin 2026 : Devoxx Poland - Krakow (Poland) 17-20 juin 2026 : VivaTech - Paris (France) 18 juin 2026 : Tech'Work - Lyon (France) 22-26 juin 2026 : Galaxy Community Conference - Clermont-Ferrand (France) 24-25 juin 2026 : Agi'Lille 2026 - Lille (France) 24-26 juin 2026 : BreizhCamp 2026 - Rennes (France) 2 juillet 2026 : Azur Tech Summer 2026 - Valbonne (France) 2-3 juillet 2026 : Sunny Tech - Montpellier (France) 3 juillet 2026 : Agile Lyon 2026 - Lyon (France) 6-8 juillet 2026 : Riviera Dev - Sophia Antipolis (France) 2 août 2026 : 4th Tech Summit on Artificial Intelligence & Robotics - Paris (France) 20-22 août 2026 : 4th Tech Summit on AI & Robotics - Paris (France) & Online 4 septembre 2026 : JUG Summer Camp 2026 - La Rochelle (France) 17-18 septembre 2026 : API Platform Conference 2026 - Lille (France) 24 septembre 2026 : PlatformCon Live Day Paris 2026 - Paris (France) 1 octobre 2026 : WAX 2026 - Marseille (France) 1-2 octobre 2026 : Volcamp - Clermont-Ferrand (France) 5-9 octobre 2026 : Devoxx Belgium - Antwerp (Belgium) 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/

AWS Bites
148. Lambda and Java with Mark Sailes

AWS Bites

Play Episode Listen Later Sep 4, 2025 46:31


What if “Java is too old for serverless” is the myth holding your team back in 2025?We put it to the test with Mark Sailes (ex-AWS, Java-on-Lambda expert). In this AWS Bites episode we get specific: when Java is the right call for Lambda and when it isn't, how to hit real latency targets, and the exact levers that matter in production—SnapStart, provisioned concurrency, smart JVM/GC settings, and whether GraalVM is worth it. We compare vanilla Java, Micronaut, Quarkus, and Spring Boot for startup and memory, share realistic p95/p99 expectations, and outline fast feedback loops with Testcontainers and LocalStack.If Java on Lambda sounds risky, this might change your mind. Stick around for Mark's tuning checklist and our verdict on when to bet on Java vs pick another runtime.Big shoutout to fourTheorem for powering yet another episode of AWS Bites. At fourTheorem, we believe the cloud should be simple, scalable, and cost-effective, and we help teams do just that. Whether you're diving into containers, stepping into event-driven architecture, or scaling a global SaaS platform on AWS, or trying to keep cloud spend under control our team has your back. Visit ⁠⁠⁠⁠https://fourTheorem.com⁠⁠⁠⁠ to see how we can help you build faster, better, and with more confidence using AWS cloud!In this episode, we mentioned the following resources:Mark Sailes's website and books: https://www.sailes.co.uk/booksMark's YouTube channel: https://youtube.com/@javainthecloudRunning Java effectively on serverless (ServerlessLand): https://serverlessland.com/content/service/lambda/guides/effectively-running-java-on-serverless/1-introductionLambda execution visualizer: https://lambda-sim.sailes.co.uk/Lambda SnapStart for Java simulator: https://www.sailes.co.uk/learn/lambda-snapstartPenna logging library for Java: https://github.com/hkupty/pennaTestcontainers for Java: https://java.testcontainers.org/Localstack: https://docs.localstack.cloud/aws/Micronaut: https://micronaut.io/Quarkus: https://quarkus.io/GraalVM: https://www.graalvm.org/AWS response to the Log4j issue: https://aws.amazon.com/security/security-bulletins/AWS-2021-005/Do you have any AWS questions you would like us to address?Leave a comment here or connect with us on X/Twitter, BlueSky or LinkedIn:- ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://twitter.com/eoins⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ | ⁠⁠⁠⁠⁠⁠⁠⁠https://bsky.app/profile/eoin.sh⁠⁠⁠⁠⁠⁠⁠⁠ | ⁠⁠⁠⁠⁠⁠⁠⁠https://www.linkedin.com/in/eoins/⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠- ⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠https://twitter.com/loige⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠⁠ | ⁠⁠⁠⁠⁠⁠⁠⁠https://bsky.app/profile/loige.co⁠⁠⁠⁠⁠⁠⁠⁠ | ⁠⁠⁠⁠⁠⁠⁠⁠https://www.linkedin.com/in/lucianomammino/

Les Cast Codeurs Podcast
LCC 329 - L'IA, ce super stagiaire qui nous fait travailler plus

Les Cast Codeurs Podcast

Play Episode Listen Later Aug 14, 2025 120:24


Arnaud et Guillaume explore l'évolution de l'écosystème Java avec Java 25, Spring Boot et Quarkus, ainsi que les dernières tendances en intelligence artificielle avec les nouveaux modèles comme Grok 4 et Claude Code. Les animateurs font également le point sur l'infrastructure cloud, les défis MCP et CLI, tout en discutant de l'impact de l'IA sur la productivité des développeurs et la gestion de la dette technique. Enregistré le 8 août 2025 Téléchargement de l'épisode LesCastCodeurs-Episode–329.mp3 ou en vidéo sur YouTube. News Langages Java 25: JEP 515 : Profilage de méthode en avance (Ahead-of-Time) https://openjdk.org/jeps/515 Le JEP 515 a pour but d'améliorer le temps de démarrage et de chauffe des applications Java. L'idée est de collecter les profils d'exécution des méthodes lors d'une exécution antérieure, puis de les rendre immédiatement disponibles au démarrage de la machine virtuelle. Cela permet au compilateur JIT de générer du code natif dès le début, sans avoir à attendre que l'application soit en cours d'exécution. Ce changement ne nécessite aucune modification du code des applications, des bibliothèques ou des frameworks. L'intégration se fait via les commandes de création de cache AOT existantes. Voir aussi https://openjdk.org/jeps/483 et https://openjdk.org/jeps/514 Java 25: JEP 518 : Échantillonnage coopératif JFR https://openjdk.org/jeps/518 Le JEP 518 a pour objectif d'améliorer la stabilité et l'évolutivité de la fonction JDK Flight Recorder (JFR) pour le profilage d'exécution. Le mécanisme d'échantillonnage des piles d'appels de threads Java est retravaillé pour s'exécuter uniquement à des safepoints, ce qui réduit les risques d'instabilité. Le nouveau modèle permet un parcours de pile plus sûr, notamment avec le garbage collector ZGC, et un échantillonnage plus efficace qui prend en charge le parcours de pile concurrent. Le JEP ajoute un nouvel événement, SafepointLatency, qui enregistre le temps nécessaire à un thread pour atteindre un safepoint. L'approche rend le processus d'échantillonnage plus léger et plus rapide, car le travail de création de traces de pile est délégué au thread cible lui-même. Librairies Spring Boot 4 M1 https://spring.io/blog/2025/07/24/spring-boot–4–0–0-M1-available-now Spring Boot 4.0.0-M1 met à jour de nombreuses dépendances internes et externes pour améliorer la stabilité et la compatibilité. Les types annotés avec @ConfigurationProperties peuvent maintenant référencer des types situés dans des modules externes grâce à @ConfigurationPropertiesSource. Le support de l'information sur la validité des certificats SSL a été simplifié, supprimant l'état WILL_EXPIRE_SOON au profit de VALID. L'auto-configuration des métriques Micrometer supporte désormais l'annotation @MeterTag sur les méthodes annotées @Counted et @Timed, avec évaluation via SpEL. Le support de @ServiceConnection pour MongoDB inclut désormais l'intégration avec MongoDBAtlasLocalContainer de Testcontainers. Certaines fonctionnalités et API ont été dépréciées, avec des recommandations pour migrer les points de terminaison personnalisés vers les versions Spring Boot 2. Les versions milestones et release candidates sont maintenant publiées sur Maven Central, en plus du repository Spring traditionnel. Un guide de migration a été publié pour faciliter la transition depuis Spring Boot 3.5 vers la version 4.0.0-M1. Passage de Spring Boot à Quarkus : retour d'expérience https://blog.stackademic.com/we-switched-from-spring-boot-to-quarkus-heres-the-ugly-truth-c8a91c2b8c53 Une équipe a migré une application Java de Spring Boot vers Quarkus pour gagner en performances et réduire la consommation mémoire. L'objectif était aussi d'optimiser l'application pour le cloud natif. La migration a été plus complexe que prévu, notamment à cause de l'incompatibilité avec certaines bibliothèques et d'un écosystème Quarkus moins mature. Il a fallu revoir du code et abandonner certaines fonctionnalités spécifiques à Spring Boot. Les gains en performances et en mémoire sont réels, mais la migration demande un vrai effort d'adaptation. La communauté Quarkus progresse, mais le support reste limité comparé à Spring Boot. Conclusion : Quarkus est intéressant pour les nouveaux projets ou ceux prêts à être réécrits, mais la migration d'un projet existant est un vrai défi. LangChain4j 1.2.0 : Nouvelles fonctionnalités et améliorations https://github.com/langchain4j/langchain4j/releases/tag/1.2.0 Modules stables : Les modules langchain4j-anthropic, langchain4j-azure-open-ai, langchain4j-bedrock, langchain4j-google-ai-gemini, langchain4j-mistral-ai et langchain4j-ollama sont désormais en version stable 1.2.0. Modules expérimentaux : La plupart des autres modules de LangChain4j sont en version 1.2.0-beta8 et restent expérimentaux/instables. BOM mis à jour : Le langchain4j-bom a été mis à jour en version 1.2.0, incluant les dernières versions de tous les modules. Principales améliorations : Support du raisonnement/pensée dans les modèles. Appels d'outils partiels en streaming. Option MCP pour exposer automatiquement les ressources en tant qu'outils. OpenAI : possibilité de définir des paramètres de requête personnalisés et d'accéder aux réponses HTTP brutes et aux événements SSE. Améliorations de la gestion des erreurs et de la documentation. Filtering Metadata Infinispan ! (cc Katia( Et 1.3.0 est déjà disponible https://github.com/langchain4j/langchain4j/releases/tag/1.3.0 2 nouveaux modules expérimentaux, langchain4j-agentic et langchain4j-agentic-a2a qui introduisent un ensemble d'abstractions et d'utilitaires pour construire des applications agentiques Infrastructure Cette fois c'est vraiment l'année de Linux sur le desktop ! https://www.lesnumeriques.com/informatique/c-est-enfin-arrive-linux-depasse-un-seuil-historique-que-microsoft-pensait-intouchable-n239977.html Linux a franchi la barre des 5% aux USA Cette progression s'explique en grande partie par l'essor des systèmes basés sur Linux dans les environnements professionnels, les serveurs, et certains usages grand public. Microsoft, longtemps dominant avec Windows, voyait ce seuil comme difficilement atteignable à court terme. Le succès de Linux est également alimenté par la popularité croissante des distributions open source, plus légères, personnalisables et adaptées à des usages variés. Le cloud, l'IoT, et les infrastructures de serveurs utilisent massivement Linux, ce qui contribue à cette augmentation globale. Ce basculement symbolique marque un changement d'équilibre dans l'écosystème des systèmes d'exploitation. Toutefois, Windows conserve encore une forte présence dans certains segments, notamment chez les particuliers et dans les entreprises classiques. Cette évolution témoigne du dynamisme et de la maturité croissante des solutions Linux, devenues des alternatives crédibles et robustes face aux offres propriétaires. Cloud Cloudflare 1.1.1.1 s'en va pendant une heure d'internet https://blog.cloudflare.com/cloudflare–1–1–1–1-incident-on-july–14–2025/ Le 14 juillet 2025, le service DNS public Cloudflare 1.1.1.1 a subi une panne majeure de 62 minutes, rendant le service indisponible pour la majorité des utilisateurs mondiaux. Cette panne a aussi causé une dégradation intermittente du service Gateway DNS. L'incident est survenu suite à une mise à jour de la topologie des services Cloudflare qui a activé une erreur de configuration introduite en juin 2025. Cette erreur faisait que les préfixes destinés au service 1.1.1.1 ont été accidentellement inclus dans un nouveau service de localisation des données (Data Localization Suite), ce qui a perturbé le routage anycast. Le résultat a été une incapacité pour les utilisateurs à résoudre les noms de domaine via 1.1.1.1, rendant la plupart des services Internet inaccessibles pour eux. Ce n'était pas le résultat d'une attaque ou d'un problème BGP, mais une erreur interne de configuration. Cloudflare a rapidement identifié la cause, corrigé la configuration et mis en place des mesures pour prévenir ce type d'incident à l'avenir. Le service est revenu à la normale après environ une heure d'indisponibilité. L'incident souligne la complexité et la sensibilité des infrastructures anycast et la nécessité d'une gestion rigoureuse des configurations réseau. Web L'évolution des bonnes pratiques de Node.js https://kashw1n.com/blog/nodejs–2025/ Évolution de Node.js en 2025 : Le développement se tourne vers les standards du web, avec moins de dépendances externes et une meilleure expérience pour les développeurs. ES Modules (ESM) par défaut : Remplacement de CommonJS pour un meilleur outillage et une standardisation avec le web. Utilisation du préfixe node: pour les modules natifs afin d'éviter les conflits. API web intégrées : fetch, AbortController, et AbortSignal sont maintenant natifs, réduisant le besoin de librairies comme axios. Runner de test intégré : Plus besoin de Jest ou Mocha pour la plupart des cas. Inclut un mode “watch” et des rapports de couverture. Patterns asynchrones avancés : Utilisation plus poussée de async/await avec Promise.all() pour le parallélisme et les AsyncIterators pour les flux d'événements. Worker Threads pour le parallélisme : Pour les tâches lourdes en CPU, évitant de bloquer l'event loop principal. Expérience de développement améliorée : Intégration du mode --watch (remplace nodemon) et du support --env-file (remplace dotenv). Sécurité et performance : Modèle de permission expérimental pour restreindre l'accès et des hooks de performance natifs pour le monitoring. Distribution simplifiée : Création d'exécutables uniques pour faciliter le déploiement d'applications ou d'outils en ligne de commande. Sortie de Apache EChart 6 après 12 ans ! https://echarts.apache.org/handbook/en/basics/release-note/v6-feature/ Apache ECharts 6.0 : Sortie officielle après 12 ans d'évolution. 12 mises à niveau majeures pour la visualisation de données. Trois dimensions clés d'amélioration : Présentation visuelle plus professionnelle : Nouveau thème par défaut (design moderne). Changement dynamique de thème. Prise en charge du mode sombre. Extension des limites de l'expression des données : Nouveaux types de graphiques : Diagramme de cordes (Chord Chart), Nuage de points en essaim (Beeswarm Chart). Nouvelles fonctionnalités : Jittering pour nuages de points denses, Axes coupés (Broken Axis). Graphiques boursiers améliorés Liberté de composition : Nouveau système de coordonnées matriciel. Séries personnalisées améliorées (réutilisation du code, publication npm). Nouveaux graphiques personnalisés inclus (violon, contour, etc.). Optimisation de l'agencement des étiquettes d'axe. Data et Intelligence Artificielle Grok 4 s'est pris pour un nazi à cause des tools https://techcrunch.com/2025/07/15/xai-says-it-has-fixed-grok–4s-problematic-responses/ À son lancement, Grok 4 a généré des réponses offensantes, notamment en se surnommant « MechaHitler » et en adoptant des propos antisémites. Ce comportement provenait d'une recherche automatique sur le web qui a mal interprété un mème viral comme une vérité. Grok alignait aussi ses réponses controversées sur les opinions d'Elon Musk et de xAI, ce qui a amplifié les biais. xAI a identifié que ces dérapages étaient dus à une mise à jour interne intégrant des instructions encourageant un humour offensant et un alignement avec Musk. Pour corriger cela, xAI a supprimé le code fautif, remanié les prompts système, et imposé des directives demandant à Grok d'effectuer une analyse indépendante, en utilisant des sources diverses. Grok doit désormais éviter tout biais, ne plus adopter un humour politiquement incorrect, et analyser objectivement les sujets sensibles. xAI a présenté ses excuses, précisant que ces dérapages étaient dus à un problème de prompt et non au modèle lui-même. Cet incident met en lumière les défis persistants d'alignement et de sécurité des modèles d'IA face aux injections indirectes issues du contenu en ligne. La correction n'est pas qu'un simple patch technique, mais un exemple des enjeux éthiques et de responsabilité majeurs dans le déploiement d'IA à grande échelle. Guillaume a sorti toute une série d'article sur les patterns agentiques avec le framework ADK pour Java https://glaforge.dev/posts/2025/07/29/mastering-agentic-workflows-with-adk-the-recap/ Un premier article explique comment découper les tâches en sous-agents IA : https://glaforge.dev/posts/2025/07/23/mastering-agentic-workflows-with-adk-sub-agents/ Un deuxième article détaille comment organiser les agents de manière séquentielle : https://glaforge.dev/posts/2025/07/24/mastering-agentic-workflows-with-adk-sequential-agent/ Un troisième article explique comment paralleliser des tâches indépendantes : https://glaforge.dev/posts/2025/07/25/mastering-agentic-workflows-with-adk-parallel-agent/ Et enfin, comment faire des boucles d'amélioration : https://glaforge.dev/posts/2025/07/28/mastering-agentic-workflows-with-adk-loop-agents/ Tout ça évidemment en Java :slightly_smiling_face: 6 semaines de code avec Claude https://blog.puzzmo.com/posts/2025/07/30/six-weeks-of-claude-code/ Orta partage son retour après 6 semaines d'utilisation quotidienne de Claude Code, qui a profondément changé sa manière de coder. Il ne « code » plus vraiment ligne par ligne, mais décrit ce qu'il veut, laisse Claude proposer une solution, puis corrige ou ajuste. Cela permet de se concentrer sur le résultat plutôt que sur l'implémentation, comme passer de la peinture au polaroid. Claude s'avère particulièrement utile pour les tâches de maintenance : migrations, refactors, nettoyage de code. Il reste toujours en contrôle, révise chaque diff généré, et guide l'IA via des prompts bien cadrés. Il note qu'il faut quelques semaines pour prendre le bon pli : apprendre à découper les tâches et formuler clairement les attentes. Les tâches simples deviennent quasi instantanées, mais les tâches complexes nécessitent encore de l'expérience et du discernement. Claude Code est vu comme un très bon copilote, mais ne remplace pas le rôle du développeur qui comprend l'ensemble du système. Le gain principal est une vitesse de feedback plus rapide et une boucle d'itération beaucoup plus courte. Ce type d'outil pourrait bien redéfinir la manière dont on pense et structure le développement logiciel à moyen terme. Claude Code et les serveurs MCP : ou comment transformer ton terminal en assistant surpuissant https://touilleur-express.fr/2025/07/27/claude-code-et-les-serveurs-mcp-ou-comment-transformer-ton-terminal-en-assistant-surpuissant/ Nicolas continue ses études sur Claude Code et explique comment utiliser les serveurs MCP pour rendre Claude bien plus efficace. Le MCP Context7 montre comment fournir à l'IA la doc technique à jour (par exemple, Next.js 15) pour éviter les hallucinations ou les erreurs. Le MCP Task Master, autre serveur MCP, transforme un cahier des charges (PRD) en tâches atomiques, estimées, et organisées sous forme de plan de travail. Le MCP Playwright permet de manipuler des navigateurs et d'executer des tests E2E Le MCP Digital Ocean permet de déployer facilement l'application en production Tout n'est pas si ideal, les quotas sont atteints en quelques heures sur une petite application et il y a des cas où il reste bien plus efficace de le faire soit-même (pour un codeur expérimenté) Nicolas complète cet article avec l'écriture d'un MVP en 20 heures: https://touilleur-express.fr/2025/07/30/comment-jai-code-un-mvp-en-une-vingtaine-dheures-avec-claude-code/ Le développement augmenté, un avis politiquement correct, mais bon… https://touilleur-express.fr/2025/07/31/le-developpement-augmente-un-avis-politiquement-correct-mais-bon/ Nicolas partage un avis nuancé (et un peu provoquant) sur le développement augmenté, où l'IA comme Claude Code assiste le développeur sans le remplacer. Il rejette l'idée que cela serait « trop magique » ou « trop facile » : c'est une évolution logique de notre métier, pas un raccourci pour les paresseux. Pour lui, un bon dev reste celui qui structure bien sa pensée, sait poser un problème, découper, valider — même si l'IA aide à coder plus vite. Il raconte avoir codé une app OAuth, testée, stylisée et déployée en quelques heures, sans jamais quitter le terminal grâce à Claude. Ce genre d'outillage change le rapport au temps : on passe de « je vais y réfléchir » à « je tente tout de suite une version qui marche à peu près ». Il assume aimer cette approche rapide et imparfaite : mieux vaut une version brute livrée vite qu'un projet bloqué par le perfectionnisme. L'IA est selon lui un super stagiaire : jamais fatigué, parfois à côté de la plaque, mais diablement productif quand bien briefé. Il conclut que le « dev augmenté » ne remplace pas les bons développeurs… mais les développeurs moyens doivent s'y mettre, sous peine d'être dépassés. ChatGPT lance le mode d'étude : un apprentissage interactif pas à pas https://openai.com/index/chatgpt-study-mode/ OpenAI propose un mode d'étude dans ChatGPT qui guide les utilisateurs pas à pas plutôt que de donner directement la réponse. Ce mode vise à encourager la réflexion active et l'apprentissage en profondeur. Il utilise des instructions personnalisées pour poser des questions et fournir des explications adaptées au niveau de l'utilisateur. Le mode d'étude favorise la gestion de la charge cognitive et stimule la métacognition. Il propose des réponses structurées pour faciliter la compréhension progressive des sujets. Disponible dès maintenant pour les utilisateurs connectés, ce mode sera intégré dans ChatGPT Edu. L'objectif est de transformer ChatGPT en un véritable tuteur numérique, aidant les étudiants à mieux assimiler les connaissances. A priori Gemini viendrait de sortir un fonctionnalité similaire Lancement de GPT-OSS par OpenAI https://openai.com/index/introducing-gpt-oss/ https://openai.com/index/gpt-oss-model-card/ OpenAI a lancé GPT-OSS, sa première famille de modèles open-weight depuis GPT–2. Deux modèles sont disponibles : gpt-oss–120b et gpt-oss–20b, qui sont des modèles mixtes d'experts conçus pour le raisonnement et les tâches d'agent. Les modèles sont distribués sous licence Apache 2.0, permettant leur utilisation et leur personnalisation gratuites, y compris pour des applications commerciales. Le modèle gpt-oss–120b est capable de performances proches du modèle OpenAI o4-mini, tandis que le gpt-oss–20b est comparable au o3-mini. OpenAI a également open-sourcé un outil de rendu appelé Harmony en Python et Rust pour en faciliter l'adoption. Les modèles sont optimisés pour fonctionner localement et sont pris en charge par des plateformes comme Hugging Face et Ollama. OpenAI a mené des recherches sur la sécurité pour s'assurer que les modèles ne pouvaient pas être affinés pour des utilisations malveillantes dans les domaines biologique, chimique ou cybernétique. Anthropic lance Opus 4.1 https://www.anthropic.com/news/claude-opus–4–1 Anthropic a publié Claude Opus 4.1, une mise à jour de son modèle de langage. Cette nouvelle version met l'accent sur l'amélioration des performances en codage, en raisonnement et sur les tâches de recherche et d'analyse de données. Le modèle a obtenu un score de 74,5 % sur le benchmark SWE-bench Verified, ce qui représente une amélioration par rapport à la version précédente. Il excelle notamment dans la refactorisation de code multifichier et est capable d'effectuer des recherches approfondies. Claude Opus 4.1 est disponible pour les utilisateurs payants de Claude, ainsi que via l'API, Amazon Bedrock et Vertex AI de Google Cloud, avec des tarifs identiques à ceux d'Opus 4. Il est présenté comme un remplacement direct de Claude Opus 4, avec des performances et une précision supérieures pour les tâches de programmation réelles. OpenAI Summer Update. GPT–5 is out https://openai.com/index/introducing-gpt–5/ Détails https://openai.com/index/gpt–5-new-era-of-work/ https://openai.com/index/introducing-gpt–5-for-developers/ https://openai.com/index/gpt–5-safe-completions/ https://openai.com/index/gpt–5-system-card/ Amélioration majeure des capacités cognitives - GPT‑5 montre un niveau de raisonnement, d'abstraction et de compréhension nettement supérieur aux modèles précédents. Deux variantes principales - gpt-5-main : rapide, efficace pour les tâches générales. gpt-5-thinking : plus lent mais spécialisé dans les tâches complexes, nécessitant réflexion profonde. Routeur intelligent intégré - Le système sélectionne automatiquement la version la plus adaptée à la tâche (rapide ou réfléchie), sans intervention de l'utilisateur. Fenêtre de contexte encore étendue - GPT‑5 peut traiter des volumes de texte plus longs (jusqu'à 1 million de tokens dans certaines versions), utile pour des documents ou projets entiers. Réduction significative des hallucinations - GPT‑5 donne des réponses plus fiables, avec moins d'erreurs inventées ou de fausses affirmations. Comportement plus neutre et moins sycophant - Il a été entraîné pour mieux résister à l'alignement excessif avec les opinions de l'utilisateur. Capacité accrue à suivre des instructions complexes - GPT‑5 comprend mieux les consignes longues, implicites ou nuancées. Approche “Safe completions” - Remplacement des “refus d'exécution” par des réponses utiles mais sûres — le modèle essaie de répondre avec prudence plutôt que bloquer. Prêt pour un usage professionnel à grande échelle - Optimisé pour le travail en entreprise : rédaction, programmation, synthèse, automatisation, gestion de tâches, etc. Améliorations spécifiques pour le codage - GPT‑5 est plus performant pour l'écriture de code, la compréhension de contextes logiciels complexes, et l'usage d'outils de développement. Expérience utilisateur plus rapide et fluide- Le système réagit plus vite grâce à une orchestration optimisée entre les différents sous-modèles. Capacités agentiques renforcées - GPT‑5 peut être utilisé comme base pour des agents autonomes capables d'accomplir des objectifs avec peu d'interventions humaines. Multimodalité maîtrisée (texte, image, audio) - GPT‑5 intègre de façon plus fluide la compréhension de formats multiples, dans un seul modèle. Fonctionnalités pensées pour les développeurs - Documentation plus claire, API unifiée, modèles plus transparents et personnalisables. Personnalisation contextuelle accrue - Le système s'adapte mieux au style, ton ou préférences de l'utilisateur, sans instructions répétées. Utilisation énergétique et matérielle optimisée - Grâce au routeur interne, les ressources sont utilisées plus efficacement selon la complexité des tâches. Intégration sécurisée dans les produits ChatGPT - Déjà déployé dans ChatGPT avec des bénéfices immédiats pour les utilisateurs Pro et entreprises. Modèle unifié pour tous les usages - Un seul système capable de passer de la conversation légère à des analyses scientifiques ou du code complexe. Priorité à la sécurité et à l'alignement - GPT‑5 a été conçu dès le départ pour minimiser les abus, biais ou comportements indésirables. Pas encore une AGI - OpenAI insiste : malgré ses capacités impressionnantes, GPT‑5 n'est pas une intelligence artificielle générale. Non, non, les juniors ne sont pas obsolètes malgré l'IA ! (dixit GitHub) https://github.blog/ai-and-ml/generative-ai/junior-developers-arent-obsolete-heres-how-to-thrive-in-the-age-of-ai/ L'IA transforme le développement logiciel, mais les développeurs juniors ne sont pas obsolètes. Les nouveaux apprenants sont bien positionnés, car déjà familiers avec les outils IA. L'objectif est de développer des compétences pour travailler avec l'IA, pas d'être remplacé. La créativité et la curiosité sont des qualités humaines clés. Cinq façons de se démarquer : Utiliser l'IA (ex: GitHub Copilot) pour apprendre plus vite, pas seulement coder plus vite (ex: mode tuteur, désactiver l'autocomplétion temporairement). Construire des projets publics démontrant ses compétences (y compris en IA). Maîtriser les workflows GitHub essentiels (GitHub Actions, contribution open source, pull requests). Affûter son expertise en révisant du code (poser des questions, chercher des patterns, prendre des notes). Déboguer plus intelligemment et rapidement avec l'IA (ex: Copilot Chat pour explications, corrections, tests). Ecrire son premier agent IA avec A2A avec WildFly par Emmanuel Hugonnet https://www.wildfly.org/news/2025/08/07/Building-your-First-A2A-Agent/ Protocole Agent2Agent (A2A) : Standard ouvert pour l'interopérabilité universelle des agents IA. Permet communication et collaboration efficaces entre agents de différents fournisseurs/frameworks. Crée des écosystèmes multi-agents unifiés, automatisant les workflows complexes. Objet de l'article : Guide pour construire un premier agent A2A (agent météo) dans WildFly. Utilise A2A Java SDK pour Jakarta Servers, WildFly AI Feature Pack, un LLM (Gemini) et un outil Python (MCP). Agent conforme A2A v0.2.5. Prérequis : JDK 17+, Apache Maven 3.8+, IDE Java, Google AI Studio API Key, Python 3.10+, uv. Étapes de construction de l'agent météo : Création du service LLM : Interface Java (WeatherAgent) utilisant LangChain4J pour interagir avec un LLM et un outil Python MCP (fonctions get_alerts, get_forecast). Définition de l'agent A2A (via CDI) : ▪︎ Agent Card : Fournit les métadonnées de l'agent (nom, description, URL, capacités, compétences comme “weather_search”). Agent Executor : Gère les requêtes A2A entrantes, extrait le message utilisateur, appelle le service LLM et formate la réponse. Exposition de l'agent : Enregistrement d'une application JAX-RS pour les endpoints. Déploiement et test : Configuration de l'outil A2A-inspector de Google (via un conteneur Podman). Construction du projet Maven, configuration des variables d'environnement (ex: GEMINI_API_KEY). Lancement du serveur WildFly. Conclusion : Transformation minimale d'une application IA en agent A2A. Permet la collaboration et le partage d'informations entre agents IA, indépendamment de leur infrastructure sous-jacente. Outillage IntelliJ IDEa bouge vers une distribution unifiée https://blog.jetbrains.com/idea/2025/07/intellij-idea-unified-distribution-plan/ À partir de la version 2025.3, IntelliJ IDEA Community Edition ne sera plus distribuée séparément. Une seule version unifiée d'IntelliJ IDEA regroupera les fonctionnalités des éditions Community et Ultimate. Les fonctionnalités avancées de l'édition Ultimate seront accessibles via abonnement. Les utilisateurs sans abonnement auront accès à une version gratuite enrichie par rapport à l'édition Community actuelle. Cette unification vise à simplifier l'expérience utilisateur et réduire les différences entre les éditions. Les utilisateurs Community seront automatiquement migrés vers cette nouvelle version unifiée. Il sera possible d'activer les fonctionnalités Ultimate temporairement d'un simple clic. En cas d'expiration d'abonnement Ultimate, l'utilisateur pourra continuer à utiliser la version installée avec un jeu limité de fonctionnalités gratuites, sans interruption. Ce changement reflète l'engagement de JetBrains envers l'open source et l'adaptation aux besoins de la communauté. Prise en charge des Ancres YAML dans GitHub Actions https://github.com/actions/runner/issues/1182#issuecomment–3150797791 Afin d'éviter de dupliquer du contenu dans un workflow les Ancres permettent d'insérer des morceaux réutilisables de YAML Fonctionnalité attendue depuis des années et disponible chez GitLab depuis bien longtemps. Elle a été déployée le 4 aout. Attention à ne pas en abuser car la lisibilité de tels documents n'est pas si facile Gemini CLI rajoute les custom commands comme Claude https://cloud.google.com/blog/topics/developers-practitioners/gemini-cli-custom-slash-commands Mais elles sont au format TOML, on ne peut donc pas les partager avec Claude :disappointed: Automatiser ses workflows IA avec les hooks de Claude Code https://blog.gitbutler.com/automate-your-ai-workflows-with-claude-code-hooks/ Claude Code propose des hooks qui permettent d'exécuter des scripts à différents moments d'une session, par exemple au début, lors de l'utilisation d'outils, ou à la fin. Ces hooks facilitent l'automatisation de tâches comme la gestion de branches Git, l'envoi de notifications, ou l'intégration avec d'autres outils. Un exemple simple est l'envoi d'une notification sur le bureau à la fin d'une session. Les hooks se configurent via trois fichiers JSON distincts selon le scope : utilisateur, projet ou local. Sur macOS, l'envoi de notifications nécessite une permission spécifique via l'application “Script Editor”. Il est important d'avoir une version à jour de Claude Code pour utiliser ces hooks. GitButler permet desormais de s'intégrer à Claude Code via ces hooks: https://blog.gitbutler.com/parallel-claude-code/ Le client Git de Jetbrains bientot en standalone https://lp.jetbrains.com/closed-preview-for-jetbrains-git-client/ Demandé par certains utilisateurs depuis longtemps Ca serait un client graphique du même style qu'un GitButler, SourceTree, etc Apache Maven 4 …. arrive …. l'utilitaire mvnupva vous aider à upgrader https://maven.apache.org/tools/mvnup.html Fixe les incompatibilités connues Nettoie les redondances et valeurs par defaut (versions par ex) non utiles pour Maven 4 Reformattage selon les conventions maven … Une GitHub Action pour Gemini CLI https://blog.google/technology/developers/introducing-gemini-cli-github-actions/ Google a lancé Gemini CLI GitHub Actions, un agent d'IA qui fonctionne comme un “coéquipier de code” pour les dépôts GitHub. L'outil est gratuit et est conçu pour automatiser des tâches de routine telles que le triage des problèmes (issues), l'examen des demandes de tirage (pull requests) et d'autres tâches de développement. Il agit à la fois comme un agent autonome et un collaborateur que les développeurs peuvent solliciter à la demande, notamment en le mentionnant dans une issue ou une pull request. L'outil est basé sur la CLI Gemini, un agent d'IA open-source qui amène le modèle Gemini directement dans le terminal. Il utilise l'infrastructure GitHub Actions, ce qui permet d'isoler les processus dans des conteneurs séparés pour des raisons de sécurité. Trois flux de travail (workflows) open-source sont disponibles au lancement : le triage intelligent des issues, l'examen des pull requests et la collaboration à la demande. Pas besoin de MCP, le code est tout ce dont vous avez besoin https://lucumr.pocoo.org/2025/7/3/tools/ Armin souligne qu'il n'est pas fan du protocole MCP (Model Context Protocol) dans sa forme actuelle : il manque de composabilité et exige trop de contexte. Il remarque que pour une même tâche (ex. GitHub), utiliser le CLI est souvent plus rapide et plus efficace en termes de contexte que passer par un serveur MCP. Selon lui, le code reste la solution la plus simple et fiable, surtout pour automatiser des tâches répétitives. Il préfère créer des scripts clairs plutôt que se reposer sur l'inférence LLM : cela facilite la vérification, la maintenance et évite les erreurs subtiles. Pour les tâches récurrentes, si on les automatise, mieux vaut le faire avec du code reusable, plutôt que de laisser l'IA deviner à chaque fois. Il illustre cela en convertissant son blog entier de reStructuredText à Markdown : plutôt qu'un usage direct d'IA, il a demandé à Claude de générer un script complet, avec parsing AST, comparaison des fichiers, validation et itération. Ce workflow LLM→code→LLM (analyse et validation) lui a donné confiance dans le résultat final, tout en conservant un contrôle humain sur le processus. Il juge que MCP ne permet pas ce type de pipeline automatisé fiable, car il introduit trop d'inférence et trop de variations par appel. Pour lui, coder reste le meilleur moyen de garder le contrôle, la reproductibilité et la clarté dans les workflows automatisés. MCP vs CLI … https://www.async-let.com/blog/my-take-on-the-mcp-verses-cli-debate/ Cameron raconte son expérience de création du serveur XcodeBuildMCP, qui lui a permis de mieux comprendre le débat entre servir l'IA via MCP ou laisser l'IA utiliser directement les CLI du système. Selon lui, les CLIs restent préférables pour les développeurs experts recherchant contrôle, transparence, performance et simplicité. Mais les serveurs MCP excellent sur les workflows complexes, les contextes persistants, les contraintes de sécurité, et facilitent l'accès pour les utilisateurs moins expérimentés. Il reconnaît la critique selon laquelle MCP consomme trop de contexte (« context bloat ») et que les appels CLI peuvent être plus rapides et compréhensibles. Toutefois, il souligne que beaucoup de problèmes proviennent de la qualité des implémentations clients, pas du protocole MCP en lui‑même. Pour lui, un bon serveur MCP peut proposer des outils soigneusement définis qui simplifient la vie de l'IA (par exemple, renvoyer des données structurées plutôt que du texte brut à parser). Il apprécie la capacité des MCP à offrir des opérations état‑durables (sessions, mémoire, logs capturés), ce que les CLI ne gèrent pas naturellement. Certains scénarios ne peuvent pas fonctionner via CLI (pas de shell accessible) alors que MCP, en tant que protocole indépendant, reste utilisable par n'importe quel client. Son verdict : pas de solution universelle — chaque contexte mérite d'être évalué, et on ne devrait pas imposer MCP ou CLI à tout prix. Jules, l'agent de code asynchrone gratuit de Google, est sorti de beta et est disponible pour tout le monde https://blog.google/technology/google-labs/jules-now-available/ Jules, agent de codage asynchrone, est maintenant publiquement disponible. Propulsé par Gemini 2.5 Pro. Phase bêta : 140 000+ améliorations de code et retours de milliers de développeurs. Améliorations : interface utilisateur, corrections de bugs, réutilisation des configurations, intégration GitHub Issues, support multimodal. Gemini 2.5 Pro améliore les plans de codage et la qualité du code. Nouveaux paliers structurés : Introductif, Google AI Pro (limites 5x supérieures), Google AI Ultra (limites 20x supérieures). Déploiement immédiat pour les abonnés Google AI Pro et Ultra, incluant les étudiants éligibles (un an gratuit de AI Pro). Architecture Valoriser la réduction de la dette technique : un vrai défi https://www.lemondeinformatique.fr/actualites/lire-valoriser-la-reduction-de-la-dette-technique-mission-impossible–97483.html La dette technique est un concept mal compris et difficile à valoriser financièrement auprès des directions générales. Les DSI ont du mal à mesurer précisément cette dette, à allouer des budgets spécifiques, et à prouver un retour sur investissement clair. Cette difficulté limite la priorisation des projets de réduction de dette technique face à d'autres initiatives jugées plus urgentes ou stratégiques. Certaines entreprises intègrent progressivement la gestion de la dette technique dans leurs processus de développement. Des approches comme le Software Crafting visent à améliorer la qualité du code pour limiter l'accumulation de cette dette. L'absence d'outils adaptés pour mesurer les progrès rend la démarche encore plus complexe. En résumé, réduire la dette technique reste une mission délicate qui nécessite innovation, méthode et sensibilisation en interne. Il ne faut pas se Mocker … https://martinelli.ch/why-i-dont-use-mocking-frameworks-and-why-you-might-not-need-them-either/ https://blog.tremblay.pro/2025/08/not-using-mocking-frmk.html L'auteur préfère utiliser des fakes ou stubs faits à la main plutôt que des frameworks de mocking comme Mockito ou EasyMock. Les frameworks de mocking isolent le code, mais entraînent souvent : Un fort couplage entre les tests et les détails d'implémentation. Des tests qui valident le mock plutôt que le comportement réel. Deux principes fondamentaux guident son approche : Favoriser un design fonctionnel, avec logique métier pure (fonctions sans effets de bord). Contrôler les données de test : par exemple en utilisant des bases réelles (via Testcontainers) plutôt que de simuler. Dans sa pratique, les seuls cas où un mock externe est utilisé concernent les services HTTP externes, et encore il préfère en simuler seulement le transport plutôt que le comportement métier. Résultat : les tests deviennent plus simples, plus rapides à écrire, plus fiables, et moins fragiles aux évolutions du code. L'article conclut que si tu conçois correctement ton code, tu pourrais très bien ne pas avoir besoin de frameworks de mocking du tout. Le blog en réponse d'Henri Tremblay nuance un peu ces retours Méthodologies C'est quoi être un bon PM ? (Product Manager) Article de Chris Perry, un PM chez Google : https://thechrisperry.substack.com/p/being-a-good-pm-at-google Le rôle de PM est difficile : Un travail exigeant, où il faut être le plus impliqué de l'équipe pour assurer le succès. 1. Livrer (shipper) est tout ce qui compte : La priorité absolue. Mieux vaut livrer et itérer rapidement que de chercher la perfection en théorie. Un produit livré permet d'apprendre de la réalité. 2. Donner l'envie du grand large : La meilleure façon de faire avancer un projet est d'inspirer l'équipe avec une vision forte et désirable. Montrer le “pourquoi”. 3. Utiliser son produit tous les jours : Non négociable pour réussir. Permet de développer une intuition et de repérer les vrais problèmes que la recherche utilisateur ne montre pas toujours. 4. Être un bon ami : Créer des relations authentiques et aider les autres est un facteur clé de succès à long terme. La confiance est la base d'une exécution rapide. 5. Donner plus qu'on ne reçoit : Toujours chercher à aider et à collaborer. La stratégie optimale sur la durée est la coopération. Ne pas être possessif avec ses idées. 6. Utiliser le bon levier : Pour obtenir une décision, il faut identifier la bonne personne qui a le pouvoir de dire “oui”, et ne pas se laisser bloquer par des avis non décisionnaires. 7. N'aller que là où on apporte de la valeur : Combler les manques, faire le travail ingrat que personne ne veut faire. Savoir aussi s'écarter (réunions, projets) quand on n'est pas utile. 8. Le succès a plusieurs parents, l'échec est orphelin : Si le produit réussit, c'est un succès d'équipe. S'il échoue, c'est la faute du PM. Il faut assumer la responsabilité finale. Conclusion : Le PM est un chef d'orchestre. Il ne peut pas jouer de tous les instruments, mais son rôle est d'orchestrer avec humilité le travail de tous pour créer quelque chose d'harmonieux. Tester des applications Spring Boot prêtes pour la production : points clés https://www.wimdeblauwe.com/blog/2025/07/30/how-i-test-production-ready-spring-boot-applications/ L'auteur (Wim Deblauwe) détaille comment il structure ses tests dans une application Spring Boot destinée à la production. Le projet inclut automatiquement la dépendance spring-boot-starter-test, qui regroupe JUnit 5, AssertJ, Mockito, Awaitility, JsonAssert, XmlUnit et les outils de testing Spring. Tests unitaires : ciblent les fonctions pures (record, utilitaire), testés simplement avec JUnit et AssertJ sans démarrage du contexte Spring. Tests de cas d'usage (use case) : orchestrent la logique métier, généralement via des use cases qui utilisent un ou plusieurs dépôts de données. Tests JPA/repository : vérifient les interactions avec la base via des tests realisant des opérations CRUD (avec un contexte Spring pour la couche persistance). Tests de contrôleur : permettent de tester les endpoints web (ex. @WebMvcTest), souvent avec MockBean pour simuler les dépendances. Tests d'intégration complets : ils démarrent tout le contexte Spring (@SpringBootTest) pour tester l'application dans son ensemble. L'auteur évoque également des tests d'architecture, mais sans entrer dans le détail dans cet article. Résultat : une pyramide de tests allant des plus rapides (unitaires) aux plus complets (intégration), garantissant fiabilité, vitesse et couverture sans surcharge inutile. Sécurité Bitwarden offre un serveur MCP pour que les agents puissent accéder aux mots de passe https://nerds.xyz/2025/07/bitwarden-mcp-server-secure-ai/ Bitwarden introduit un serveur MCP (Model Context Protocol) destiné à intégrer de manière sécurisée les agents IA dans les workflows de gestion de mots de passe. Ce serveur fonctionne en architecture locale (local-first) : toutes les interactions et les données sensibles restent sur la machine de l'utilisateur, garantissant l'application du principe de chiffrement zero‑knowledge. L'intégration se fait via l'interface CLI de Bitwarden, permettant aux agents IA de générer, récupérer, modifier et verrouiller les identifiants via des commandes sécurisées. Le serveur peut être auto‑hébergé pour un contrôle maximal des données. Le protocole MCP est un standard ouvert qui permet de connecter de façon uniforme des agents IA à des sources de données et outils tiers, simplifiant les intégrations entre LLM et applications. Une démo avec Claude (agent IA d'Anthropic) montre que l'IA peut interagir avec le coffre Bitwarden : vérifier l'état, déverrouiller le vault, générer ou modifier des identifiants, le tout sans intervention humaine directe. Bitwarden affiche une approche priorisant la sécurité, mais reconnaît les risques liés à l'utilisation d'IA autonome. L'usage d'un LLM local privé est fortement recommandé pour limiter les vulnérabilités. Si tu veux, je peux aussi te résumer les enjeux principaux (interopérabilité, sécurité, cas d'usage) ou un extrait spécifique ! NVIDIA a une faille de securite critique https://www.wiz.io/blog/nvidia-ai-vulnerability-cve–2025–23266-nvidiascape Il s'agit d'une faille d'évasion de conteneur dans le NVIDIA Container Toolkit. La gravité est jugée critique avec un score CVSS de 9.0. Cette vulnérabilité permet à un conteneur malveillant d'obtenir un accès root complet sur l'hôte. L'origine du problème vient d'une mauvaise configuration des hooks OCI dans le toolkit. L'exploitation peut se faire très facilement, par exemple avec un Dockerfile de seulement trois lignes. Le risque principal concerne la compromission de l'isolation entre différents clients sur des infrastructures cloud GPU partagées. Les versions affectées incluent toutes les versions du NVIDIA Container Toolkit jusqu'à la 1.17.7 et du NVIDIA GPU Operator jusqu'à la version 25.3.1. Pour atténuer le risque, il est recommandé de mettre à jour vers les dernières versions corrigées. En attendant, il est possible de désactiver certains hooks problématiques dans la configuration pour limiter l'exposition. Cette faille met en lumière l'importance de renforcer la sécurité des environnements GPU partagés et la gestion des conteneurs AI. Fuite de données de l'application Tea : points essentiels https://knowyourmeme.com/memes/events/the-tea-app-data-leak Tea est une application lancée en 2023 qui permet aux femmes de laisser des avis anonymes sur des hommes rencontrés. En juillet 2025, une importante fuite a exposé environ 72 000 images sensibles (selfies, pièces d'identité) et plus d'1,1 million de messages privés. La fuite a été révélée après qu'un utilisateur ait partagé un lien pour télécharger la base de données compromise. Les données touchées concernaient majoritairement des utilisateurs inscrits avant février 2024, date à laquelle l'application a migré vers une infrastructure plus sécurisée. En réponse, Tea prévoit de proposer des services de protection d'identité aux utilisateurs impactés. Faille dans le paquet npm is : attaque en chaîne d'approvisionnement https://socket.dev/blog/npm-is-package-hijacked-in-expanding-supply-chain-attack Une campagne de phishing ciblant les mainteneurs npm a compromis plusieurs comptes, incluant celui du paquet is. Des versions compromises du paquet is (notamment les versions 3.3.1 et 5.0.0) contenaient un chargeur de malware JavaScript destiné aux systèmes Windows. Ce malware a offert aux attaquants un accès à distance via WebSocket, permettant potentiellement l'exécution de code arbitraire. L'attaque fait suite à d'autres compromissions de paquets populaires comme eslint-config-prettier, eslint-plugin-prettier, synckit, @pkgr/core, napi-postinstall, et got-fetch. Tous ces paquets ont été publiés sans aucun commit ou PR sur leurs dépôts GitHub respectifs, signalant un accès non autorisé aux tokens mainteneurs. Le domaine usurpé [npnjs.com](http://npnjs.com) a été utilisé pour collecter les jetons d'accès via des emails de phishing trompeurs. L'épisode met en lumière la fragilité des chaînes d'approvisionnement logicielle dans l'écosystème npm et la nécessité d'adopter des pratiques renforcées de sécurité autour des dépendances. Revues de sécurité automatisées avec Claude Code https://www.anthropic.com/news/automate-security-reviews-with-claude-code Anthropic a lancé des fonctionnalités de sécurité automatisées pour Claude Code, un assistant de codage d'IA en ligne de commande. Ces fonctionnalités ont été introduites en réponse au besoin croissant de maintenir la sécurité du code alors que les outils d'IA accélèrent considérablement le développement de logiciels. Commande /security-review : les développeurs peuvent exécuter cette commande dans leur terminal pour demander à Claude d'identifier les vulnérabilités de sécurité, notamment les risques d'injection SQL, les vulnérabilités de script intersite (XSS), les failles d'authentification et d'autorisation, ainsi que la gestion non sécurisée des données. Claude peut également suggérer et implémenter des correctifs. Intégration GitHub Actions : une nouvelle action GitHub permet à Claude Code d'analyser automatiquement chaque nouvelle demande d'extraction (pull request). L'outil examine les modifications de code pour y trouver des vulnérabilités, applique des règles personnalisables pour filtrer les faux positifs et commente directement la demande d'extraction avec les problèmes détectés et les correctifs recommandés. Ces fonctionnalités sont conçues pour créer un processus d'examen de sécurité cohérent et s'intégrer aux pipelines CI/CD existants, ce qui permet de s'assurer qu'aucun code n'atteint la production sans un examen de sécurité de base. Loi, société et organisation Google embauche les personnes clés de Windsurf https://www.blog-nouvelles-technologies.fr/333959/openai-windsurf-google-deepmind-codage-agentique/ windsurf devait être racheté par OpenAI Google ne fait pas d'offre de rachat mais débauche quelques personnes clés de Windsurf Windsurf reste donc indépendante mais sans certains cerveaux y compris son PDG. Les nouveaux dirigeants sont les ex leaders des force de vente Donc plus une boîte tech Pourquoi le deal a 3 milliard est tombé à l'eau ? On ne sait pas mais la divergence et l‘indépendance technologique est possiblement en cause. Les transfuge vont bosser chez Deepmind dans le code argentique Opinion Article: https://www.linkedin.com/pulse/dear-people-who-think-ai-low-skilled-code-monkeys-future-jan-moser-svade/ Jan Moser critique ceux qui pensent que l'IA et les développeurs peu qualifiés peuvent remplacer les ingénieurs logiciels compétents. Il cite l'exemple de l'application Tea, une plateforme de sécurité pour femmes, qui a exposé 72 000 images d'utilisateurs en raison d'une mauvaise configuration de Firebase et d'un manque de pratiques de développement sécurisées. Il souligne que l'absence de contrôles automatisés et de bonnes pratiques de sécurité a permis cette fuite de données. Moser avertit que des outils comme l'IA ne peuvent pas compenser l'absence de compétences en génie logiciel, notamment en matière de sécurité, de gestion des erreurs et de qualité du code. Il appelle à une reconnaissance de la valeur des ingénieurs logiciels qualifiés et à une approche plus rigoureuse dans le développement logiciel. YouTube déploie une technologie d'estimation d'âge pour identifier les adolescents aux États-Unis https://techcrunch.com/2025/07/29/youtube-rolls-out-age-estimatation-tech-to-identify-u-s-teens-and-apply-additional-protections/ Sujet très à la mode, surtout au UK mais pas que… YouTube commence à déployer une technologie d'estimation d'âge basée sur l'IA pour identifier les utilisateurs adolescents aux États-Unis, indépendamment de l'âge déclaré lors de l'inscription. Cette technologie analyse divers signaux comportementaux, tels que l'historique de visionnage, les catégories de vidéos consultées et l'âge du compte. Lorsqu'un utilisateur est identifié comme adolescent, YouTube applique des protections supplémentaires, notamment : Désactivation des publicités personnalisées. Activation des outils de bien-être numérique, tels que les rappels de temps d'écran et de coucher. Limitation de la visualisation répétée de contenus sensibles, comme ceux liés à l'image corporelle. Si un utilisateur est incorrectement identifié comme mineur, il peut vérifier son âge via une pièce d'identité gouvernementale, une carte de crédit ou un selfie. Ce déploiement initial concerne un petit groupe d'utilisateurs aux États-Unis et sera étendu progressivement. Cette initiative s'inscrit dans les efforts de YouTube pour renforcer la sécurité des jeunes utilisateurs en ligne. Mistral AI : contribution à un standard environnemental pour l'IA https://mistral.ai/news/our-contribution-to-a-global-environmental-standard-for-ai Mistral AI a réalisé la première analyse de cycle de vie complète d'un modèle d'IA, en collaboration avec plusieurs partenaires. L'étude quantifie l'impact environnemental du modèle Mistral Large 2 sur les émissions de gaz à effet de serre, la consommation d'eau, et l'épuisement des ressources. La phase d'entraînement a généré 20,4 kilotonnes de CO₂ équivalent, consommé 281 000 m³ d'eau, et utilisé 660 kg SB-eq (mineral consumption). Pour une réponse de 400 tokens, l'impact marginal est faible mais non négligeable : 1,14 gramme de CO₂, 45 mL d'eau, et 0,16 mg d'équivalent antimoine. Mistral propose trois indicateurs pour évaluer cet impact : l'impact absolu de l'entraînement, l'impact marginal de l'inférence, et le ratio inference/impact total sur le cycle de vie. L'entreprise souligne l'importance de choisir le modèle en fonction du cas d'usage pour limiter l'empreinte environnementale. Mistral appelle à plus de transparence et à l'adoption de standards internationaux pour permettre une comparaison claire entre modèles. L'IA promettait plus d'efficacité… elle nous fait surtout travailler plus https://afterburnout.co/p/ai-promised-to-make-us-more-efficient Les outils d'IA devaient automatiser les tâches pénibles et libérer du temps pour les activités stratégiques et créatives. En réalité, le temps gagné est souvent aussitôt réinvesti dans d'autres tâches, créant une surcharge. Les utilisateurs croient être plus productifs avec l'IA, mais les données contredisent cette impression : une étude montre que les développeurs utilisant l'IA prennent 19 % de temps en plus pour accomplir leurs tâches. Le rapport DORA 2024 observe une baisse de performance globale des équipes lorsque l'usage de l'IA augmente : –1,5 % de throughput et –7,2 % de stabilité de livraison pour +25 % d'adoption de l'IA. L'IA ne réduit pas la charge mentale, elle la déplace : rédaction de prompts, vérification de résultats douteux, ajustements constants… Cela épuise et limite le temps de concentration réelle. Cette surcharge cognitive entraîne une forme de dette mentale : on ne gagne pas vraiment du temps, on le paie autrement. Le vrai problème vient de notre culture de la productivité, qui pousse à toujours vouloir optimiser, quitte à alimenter l'épuisement professionnel. Trois pistes concrètes : Repenser la productivité non en temps gagné, mais en énergie préservée. Être sélectif dans l'usage des outils IA, en fonction de son ressenti et non du battage médiatique. Accepter la courbe en J : l'IA peut être utile, mais nécessite des ajustements profonds pour produire des gains réels. Le vrai hack de productivité ? Parfois, ralentir pour rester lucide et durable. Conférences MCP Submit Europe https://mcpdevsummit.ai/ Retour de JavaOne en 2026 https://inside.java/2025/08/04/javaone-returns–2026/ JavaOne, la conférence dédiée à la communauté Java, fait son grand retour dans la Bay Area du 17 au 19 mars 2026. Après le succès de l'édition 2025, ce retour s'inscrit dans la continuité de la mission initiale de la conférence : rassembler la communauté pour apprendre, collaborer et innover. La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 25–27 août 2025 : SHAKA Biarritz - Biarritz (France) 5 septembre 2025 : JUG Summer Camp 2025 - La Rochelle (France) 12 septembre 2025 : Agile Pays Basque 2025 - Bidart (France) 15 septembre 2025 : Agile Tour Montpellier - Montpellier (France) 18–19 septembre 2025 : API Platform Conference - Lille (France) & Online 22–24 septembre 2025 : Kernel Recipes - Paris (France) 22–27 septembre 2025 : La Mélée Numérique - Toulouse (France) 23 septembre 2025 : OWASP AppSec France 2025 - Paris (France) 23–24 septembre 2025 : AI Engineer Paris - Paris (France) 25 septembre 2025 : Agile Game Toulouse - Toulouse (France) 25–26 septembre 2025 : Paris Web 2025 - Paris (France) 30 septembre 2025–1 octobre 2025 : PyData Paris 2025 - Paris (France) 2 octobre 2025 : Nantes Craft - Nantes (France) 2–3 octobre 2025 : Volcamp - Clermont-Ferrand (France) 3 octobre 2025 : DevFest Perros-Guirec 2025 - Perros-Guirec (France) 6–7 octobre 2025 : Swift Connection 2025 - Paris (France) 6–10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium) 7 octobre 2025 : BSides Mulhouse - Mulhouse (France) 7–8 octobre 2025 : Agile en Seine - Issy-les-Moulineaux (France) 8–10 octobre 2025 : SIG 2025 - Paris (France) & Online 9 octobre 2025 : DevCon #25 : informatique quantique - Paris (France) 9–10 octobre 2025 : Forum PHP 2025 - Marne-la-Vallée (France) 9–10 octobre 2025 : EuroRust 2025 - Paris (France) 16 octobre 2025 : PlatformCon25 Live Day Paris - Paris (France) 16 octobre 2025 : Power 365 - 2025 - Lille (France) 16–17 octobre 2025 : DevFest Nantes - Nantes (France) 17 octobre 2025 : Sylius Con 2025 - Lyon (France) 17 octobre 2025 : ScalaIO 2025 - Paris (France) 17–19 octobre 2025 : OpenInfra Summit Europe - Paris (France) 20 octobre 2025 : Codeurs en Seine - Rouen (France) 23 octobre 2025 : Cloud Nord - Lille (France) 30–31 octobre 2025 : Agile Tour Bordeaux 2025 - Bordeaux (France) 30–31 octobre 2025 : Agile Tour Nantais 2025 - Nantes (France) 30 octobre 2025–2 novembre 2025 : PyConFR 2025 - Lyon (France) 4–7 novembre 2025 : NewCrafts 2025 - Paris (France) 5–6 novembre 2025 : Tech Show Paris - Paris (France) 6 novembre 2025 : dotAI 2025 - Paris (France) 6 novembre 2025 : Agile Tour Aix-Marseille 2025 - Gardanne (France) 7 novembre 2025 : BDX I/O - Bordeaux (France) 12–14 novembre 2025 : Devoxx Morocco - Marrakech (Morocco) 13 novembre 2025 : DevFest Toulouse - Toulouse (France) 15–16 novembre 2025 : Capitole du Libre - Toulouse (France) 19 novembre 2025 : SREday Paris 2025 Q4 - Paris (France) 19–21 novembre 2025 : Agile Grenoble - Grenoble (France) 20 novembre 2025 : OVHcloud Summit - Paris (France) 21 novembre 2025 : DevFest Paris 2025 - Paris (France) 27 novembre 2025 : DevFest Strasbourg 2025 - Strasbourg (France) 28 novembre 2025 : DevFest Lyon - Lyon (France) 1–2 décembre 2025 : Tech Rocks Summit 2025 - Paris (France) 4–5 décembre 2025 : Agile Tour Rennes - Rennes (France) 5 décembre 2025 : DevFest Dijon 2025 - Dijon (France) 9–11 décembre 2025 : APIdays Paris - Paris (France) 9–11 décembre 2025 : Green IO Paris - Paris (France) 10–11 décembre 2025 : Devops REX - Paris (France) 10–11 décembre 2025 : Open Source Experience - Paris (France) 11 décembre 2025 : Normandie.ai 2025 - Rouen (France) 28–31 janvier 2026 : SnowCamp 2026 - Grenoble (France) 2–6 février 2026 : Web Days Convention - Aix-en-Provence (France) 3 février 2026 : Cloud Native Days France 2026 - Paris (France) 12–13 février 2026 : Touraine Tech #26 - Tours (France) 22–24 avril 2026 : Devoxx France 2026 - Paris (France) 23–25 avril 2026 : Devoxx Greece - Athens (Greece) 17 juin 2026 : Devoxx Poland - Krakow (Poland) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

time community ai power google uk internet guide pr france building spring data elon musk microsoft chatgpt attention mvp phase dans agent construction tests windows bay area patterns ces tea tout ia pas limitations gemini openai faire distribution extension nvidia runner blue sky passage rust api retour conf agile gpt python cela toujours sb nouveau unis ml linux priorit trois github java guillaume activation mieux int libert aur jest num savoir valid selon donner armin bom lam llm certains javascript anthropic documentation opus exposition apache mod donc arnaud nouvelles contr prise gpu grok changement cpu maven nouveaux parfois m1 travailler google cloud ast exp dns certaines cinq normandie aff tester vall construire counted sql cloudflare verified principales lorsqu moser node loi git utiliser pdg sujet sortie afin sig lancement deepmind fen accepter ssl gitlab xai axes spel optimisation mcp enregistr mocha mongodb toutefois ci cd mistral json modules capacit configuration cli permet paris france orta aot github copilot objet repenser comportement utilisation montrer capitole enregistrement fuite prd fixe jit appels ecrire favoriser sse commande oauth firebase crud jep oci vache bgp jetbrains swe bitwarden github actions nuage windsurf mistral ai livrer propuls faille a2a stagiaire xss remplacement websockets mocker optimis automatiser cvss chris perry devcon revues spring boot tom l personnalisation jdk lyon france vertex ai podman adk amazon bedrock jfr clis bordeaux france profilage diagramme script editor junit dockerfile javaone testcontainers provence france toulouse france strasbourg france github issues commonjs lille france micrometer codeurs sourcetree dijon france devoxx france
The InfoQ Podcast
The Java Ecosystem Remains Ever-Green By Continuously Adapting to Developers' Needs

The InfoQ Podcast

Play Episode Listen Later Jul 14, 2025 51:15


Kevin Dubois and Thomas Vitale, two cloud-native enthusiasts in the Java ecosystem, discuss the evolution of frameworks and tooling that has led to increased development and developer joy. They cover everything from Testcontainers to incorporating LLMs in existing applications, as well as how to ensure the code quality remains high, even with the proliferation of code generation tooling. Read a transcript of this interview: http://bit.ly/3I0PcQJ Subscribe to the Software Architects' Newsletter for your monthly guide to the essential news and experience from industry peers on emerging patterns and technologies: https://www.infoq.com/software-architects-newsletter Upcoming Events: InfoQ Dev Summit Munich (October 15-16, 2025) Essential insights on critical software development priorities. https://devsummit.infoq.com/conference/munich2025 QCon San Francisco 2025 (November 17-21, 2025) Get practical inspiration and best practices on emerging software trends directly from senior software developers at early adopter companies. https://qconsf.com/ QCon AI New York 2025 (December 16-17, 2025) https://ai.qconferences.com/ The InfoQ Podcasts: Weekly inspiration to drive innovation and build great teams from senior software leaders. Listen to all our podcasts and read interview transcripts: - The InfoQ Podcast https://www.infoq.com/podcasts/ - Engineering Culture Podcast by InfoQ https://www.infoq.com/podcasts/#engineering_culture - Generally AI: https://www.infoq.com/generally-ai-podcast/ Follow InfoQ: - Mastodon: https://techhub.social/@infoq - X: https://x.com/InfoQ?from=@ - LinkedIn: www.linkedin.com/company/infoq - Facebook: bit.ly/2jmlyG8 - Instagram: @infoqdotcom - Youtube: www.youtube.com/infoq - Bluesky: https://bsky.app/profile/infoq.com Write for InfoQ: Learn and share the changes and innovations in professional software development. - Join a community of experts. - Increase your visibility. - Grow your career. https://www.infoq.com/write-for-infoq

Spring Office Hours
S4E10 - Testcontainers and Docker Model Runner featuring Eddú Meléndez

Spring Office Hours

Play Episode Listen Later Apr 29, 2025 57:30


Join Dan Vega and DaShaun Carter for the latest updates from the Spring Ecosystem. In this episode, they welcome Eddú Meléndez, who works on Testcontainers at Docker following the company's acquisition of the project.The trio explores the recently released Docker Model Runner in Docker Desktop 4.40.0, which provides a local Inference API compatible with the OpenAI API and integrates seamlessly with Spring AI 1.0.0-M7.Eddú shares his journey of contributing to Spring projects, discusses his experience with Testcontainers, and provides insights on running AI models locally with zero API keys or data sharing. Don't miss this in-depth look at the intersection of Spring AI and Docker technologies, showcasing how developers can leverage these powerful tools in their projects.You can participate in our live stream to ask questions or catch the replay on your preferred podcast platform.Show NotesSpring AI with Docker Model RunnerEddú Meléndez on TwitterEddú Meléndez on BlueSky

Late Night Linux All Episodes
Hybrid Cloud Show – Episode 22

Late Night Linux All Episodes

Play Episode Listen Later Jan 24, 2025 26:15


In this episode we discuss some challenges around using and testing lower environments, how to easily run integration tests using Testcontainers, and some of the pitfalls around using GitOps to deploy your applications.   Send your questions and feedback to show@hybridcloudshow.com       SysCloud Over 2,000 IT admins already trust SysCloud to protect their... Read More

hybrid cloud gitops testcontainers
Hybrid Cloud Show
Hybrid Cloud Show – Episode 22

Hybrid Cloud Show

Play Episode Listen Later Jan 24, 2025 26:15


In this episode we discuss some challenges around using and testing lower environments, how to easily run integration tests using Testcontainers, and some of the pitfalls around using GitOps to deploy your applications.   Send your questions and feedback to show@hybridcloudshow.com       SysCloud Over 2,000 IT admins already trust SysCloud to protect their … Continue reading "Hybrid Cloud Show – Episode 22"

hybrid cloud gitops testcontainers
Chinchilla Squeaks
Testcontainers

Chinchilla Squeaks

Play Episode Listen Later Dec 19, 2024 33:51


In this episode, I speak with Oleg of Testcontainers, an open source library for providing throwaway, lightweight instances of databases, message brokers, web browsers, or just about anything that can run in a Docker container. For show notes and an interactive transcript, visit chrischinchilla.com/podcast/To reach out and say hello, visit chrischinchilla.com/contact/To support the show for ad-free listening and extra content, visit chrischinchilla.com/support/

Spring Office Hours
S3E38 - Testcontainers with Oleg Šelajev

Spring Office Hours

Play Episode Listen Later Nov 13, 2024 64:27


Join Dan Vega and DaShaun Carter for the latest updates from the Spring Ecosystem. In this episode, they welcome Oleg Šelajev, Developer Advocate for Testcontainers, to explore the powerful world of integration testing. Learn how Testcontainers revolutionizes testing workflows in Spring Boot applications, discover advanced features you might have missed, and get insights into best practices for local development. Whether you're new to Testcontainers or an experienced user, this episode offers valuable insights into making your integration tests more reliable and efficient. You can participate in our live stream to ask questions or catch the replay on your preferred podcast platform.Show NotesDockerTestcontainersOleg on Twitter

.NET in pillole
263 - Respawn e Testcontainers, due comode utility per i nostri test

.NET in pillole

Play Episode Listen Later Oct 21, 2024 11:00


Oggi ti voglio parlare di due comode utility, una utile per la cancellazione di dati presenti nel database, così da prepararlo ad una fase di test, ed la seconda utility è Testcontainers, che permette la gestione di container docker direttamente da codice C#, così da poter creare, avviare, eliminare container direttamente dai nostri test. - https://github.com/jbogard/Res... - https://github.com/testcontain... - https://dotnet.testcontainers.... #dotnet #Testcontainers #Respawn #dotnetinpillole #podcast

A Bootiful Podcast
Oleg Šelajev, Docker and Testcontainers legend

A Bootiful Podcast

Play Episode Listen Later May 16, 2024 59:26


Hi, Spring and Testcontainers fans! In this interview, I talk to Oleg Šelajev

spring docker oleg testcontainers
Real-Time Analytics with Tim Berglund
Testcontainers and Apache Pinot with Tim Veil | Ep. 51

Real-Time Analytics with Tim Berglund

Play Episode Listen Later May 6, 2024 26:28


Follow: https://stree.ai/podcast | Sub: https://stree.ai/sub | Join us for episode #51 of the Real-Time Analytics podcast as our host, Tim Berglund, is joined by Tim Veil, VP of Solutions Engineering and Enablement at StarTree. Dive into an discussion about Testcontainers, a powerful tool that leverages Docker for sophisticated integration testing. Learn how Testcontainers simplifies the testing process against real databases like Apache Pinot, enhancing code reliability and CI pipeline efficiency.

dive veil keyboard docker quill enablement solutions engineering real time analytics testcontainers startree apache pinot
Thinking Elixir Podcast
184: Magic Links

Thinking Elixir Podcast

Play Episode Listen Later Jan 9, 2024 23:04


In the news, we dive into a mix of intriguing Elixir updates and innovative developments. We explore the convenient and versatile Testcontainers project, designed to streamline your testing environment, and touch on Zach Daniel's efforts to integrate bulk operations into the Ash Framework. German Velasco has been busy sharing a wealth of tips on ElixirStreams.com, and we stumbled upon a rare gem, a Windows-focused Elixir library that bridges the gap with Azure authentication services. But the heart of our discussion revolves around the magic of "magic links" in Phoenix applications. We delve deep into how these links offer a seamless user experience by simplifying authentication, the challenges they may pose, and the impressive ways they can refine your developer workflow. Stay tuned for these updates and more in the show! Show Notes online - http://podcast.thinkingelixir.com/184 (http://podcast.thinkingelixir.com/184) Elixir Community News - https://github.com/testcontainers (https://github.com/testcontainers?utm_source=thinkingelixir&utm_medium=shownotes) – Website for Testcontainers, a project for developing in multiple languages without needing a local test database. - https://github.com/testcontainers/testcontainers-elixir (https://github.com/testcontainers/testcontainers-elixir?utm_source=thinkingelixir&utm_medium=shownotes) – The Elixir-specific project under Testcontainers created by Jarl André Hübenthal, allowing for automated container management in test mode. - https://twitter.com/ZachSDaniel1/status/1741260030748324287 (https://twitter.com/ZachSDaniel1/status/1741260030748324287?utm_source=thinkingelixir&utm_medium=shownotes) – Tweet by Zach Daniel discussing his work on adding bulk operations into the Ash Framework. - https://elixirforum.com/t/basic-bulk-actions-atomics-new-stream-options-error-2-expression/60496?u=zachdaniel (https://elixirforum.com/t/basic-bulk-actions-atomics-new-stream-options-error-2-expression/60496?u=zachdaniel?utm_source=thinkingelixir&utm_medium=shownotes) – Elixir Forum thread where Zach Daniel explains the bulk operations feature for the Ash Framework. - https://twitter.com/germsvel/status/1740707041373503771 (https://twitter.com/germsvel/status/1740707041373503771?utm_source=thinkingelixir&utm_medium=shownotes) – German Velasco's announcement on Twitter about his ongoing series of Elixir tips and a list of top videos on ElixirStreams.com. - https://github.com/chgeuer/exwindowsapi_dataprotection (https://github.com/chgeuer/ex_windows_api_dataprotection?utm_source=thinkingelixir&utm_medium=shownotes) – GitHub repository for an Elixir library that provides access to the Windows Data Protection API, useful for Azure services on Windows. - https://www.youtube.com/watch?v=eM8vl7pgRJM (https://www.youtube.com/watch?v=eM8vl7pgRJM?utm_source=thinkingelixir&utm_medium=shownotes) – Andrew Stewart's video tutorial on adding magic links to a Phoenix application for passwordless authentication. - https://andrewian.dev/blog/magic-links (https://andrewian.dev/blog/magic-links?utm_source=thinkingelixir&utm_medium=shownotes) – Blog post by Andrew Stewart detailing the implementation of magic links in Phoenix applications. Do you have some Elixir news to share? Tell us at @ThinkingElixir (https://twitter.com/ThinkingElixir) or email at show@thinkingelixir.com (mailto:show@thinkingelixir.com) Discussion Resources - https://haveibeenpwned.com/ (https://haveibeenpwned.com/?utm_source=thinkingelixir&utm_medium=shownotes) – Resource for checking if an email address or password has been part of a data breach. - https://github.com/dashbitco/nimble_totp (https://github.com/dashbitco/nimble_totp?utm_source=thinkingelixir&utm_medium=shownotes) – NimbleTOTP - A tiny Elixir library for time-based one time passwords (TOTP) Find us online - Message the show - @ThinkingElixir (https://twitter.com/ThinkingElixir) - Message the show on Fediverse - @ThinkingElixir@genserver.social (https://genserver.social/ThinkingElixir) - Email the show - show@thinkingelixir.com (mailto:show@thinkingelixir.com) - Mark Ericksen - @brainlid (https://twitter.com/brainlid) - Mark Ericksen on Fediverse - @brainlid@genserver.social (https://genserver.social/brainlid) - David Bernheisel - @bernheisel (https://twitter.com/bernheisel) - David Bernheisel on Fediverse - @dbern@genserver.social (https://genserver.social/dbern) - Cade Ward - @cadebward (https://twitter.com/cadebward) - Cade Ward on Fediverse - @cadebward@genserver.social (https://genserver.social/cadebward)

Les Cast Codeurs Podcast
LCC 304 - Dark punk

Les Cast Codeurs Podcast

Play Episode Listen Later Dec 18, 2023 99:41


Dans cet épisode, Katia, Arnaud et Emmanuel discutent les nouvelles de cette fin 2023. Le gatherer dans les stream Java, les exceptions, JavaScript dans la JVM, recherche vectorielle, coût du cloud, Gemini, Llama et autres animaux fantastiques et pleins d'outils sympathiques pour fêter la fin de l'année. Enregistré le 15 décembre 2023 Téléchargement de l'épisode LesCastCodeurs-Episode-304.mp3 News Aide Les Cast Codeurs et remplis un petit formulaire pour nous guider l'année prochaine https://lescastcodeurs.com/sondage Langages Avec JEP 461, arrivée dans en preview dans Java 22 de la notion de “gatherer” pour les streams https://groovy.apache.org/blog/groovy-gatherers dans cet article de Paul King, de l'équipe Groovy, il montre et contraste ce que l'on pouvait faire en Groovy depuis des années, comme des sliding windows, par exemple explique l'approche des gatherers avec ses opérations intermédiaires gatherer sont des operations intermediaires custom qui prennent un etat et le prochain element pour decided quoi faire, et meme changer le stream d'elements suivants (en publier) (via la fonction integrate certains peuvent permettre de combiner les resultats intermediaires (pour paralleliser) Examples : fenetres de taille fixe, fenettres glissantes Joe Duffy, qui est CEO de Pulumi, mais qui avait travaillé chez Microsoft sur le project Midori (un futur OS repensé) parle du design des exceptions, des erreurs, des codes de retour https://joeduffyblog.com/2016/02/07/the-error-model/ Il compare les codes d'erreurs, les exceptions, checked et non-checked il separe les bugs des erreurs attendues (bugs doivent arreter le process) il raconte l'histoire des unchecked exception et leurs problemes et des checked exceptopns et poourquoi les developeurs java les detestent (selon lui) long article maisn interessant dans ses retours mais lon je ne suis pas allé au bout :smile: Après la disparition de Nashorn dans le JDK, on peut se tourner vers le projet Javet https://www.caoccao.com/Javet/index.html Javet permet d'intégrer JavaScript avec le moteur V8 Mais aussi carrément Node.js c'est super comme capacité car on a les deux mielleurs moteurs, par contre le support hors x86 est plus limité (genre arm sous windows c'est non) Librairies Une partie de l'équipe Spring se fait lourder après le rachat effectif de Broadcom https://x.com/odrotbohm/status/1729231722498425092?s=20 peu d'info en vrai à part ce tweet mais l'acquisition Broadcome n'a pas l'air de se faire dans le monde des bisounours Marc Wrobel annonce la sortie de JBanking 4.2.0 https://www.marcwrobel.fr/sortie-de-jbanking-4-2-0 support de Java 21 possibilité de générer aléatoirement des BIC amélioration de la génération d'IBAN jbanking est une bibliotheque pour manipuler des structures typiques des banques comme les IBAN les BIC, les monnaies, les SEPA etc. Hibernate Search 7 est sorti https://in.relation.to/2023/12/05/hibernate-search-7-0-0-Final/ Support ElasticSearch 8.10-11 et openSearch 2.10-11 Rebasé sur Lucerne 9.8 support sur Amazon OpenSearch Serverless (experimental) attention sous ensemble de fonctionnalités sur Serverless, c'est un API first search cluster vendu a la lambda En lien aussi sur la version 7.1 alpha1 Hibernate ORM 6.4 est sorti https://in.relation.to/2023/11/23/orm-640-final/ support pour SoftDelete (colonne marquant la suppression) support pour les operations vectorielles (support postgreSQL initialement) les fonctions vectorielles sont particulièrement utilisées par l'IA/ML événement spécifiques JFR Intégration de citrus et Quarkus pour les tests d'intégrations de pleins de protocoles et formats de message https://quarkus.io/blog/testing-quarkus-with-citrus/ permet de tester les entrees / sorties attendues de systèmes de messages (HTTP, Kafka, serveur mail etc) top pour tester les application Event Driven pas de rapport mais Quarkus 3.7 ciblera Java 17 (~8% des gens utilisaient Java 11 dans les builds qui ont activé les notifications) Hibernate Search 7.1 (dev 7.1.0.Alpha1) avec dernière version de Lucene (9.8), Infinispan rajoute le support pour la recherche vectorielle. https://hibernate.org/search/releases/7.1/ https://infinispan.org/blog/2023/12/13/infinispan-vector-search Hibernate Search permet maintenant la recherche vectorielle La dernière version est intégrée en Infinispan 15 (dev) qui sortira La recherche vectoriolle et stockage de vecteurs, permettent convertir Infinispan en Embedding Store (langchain) Cloud Comment choisir sa region cloud https://blog.scottlogic.com/2023/11/23/conscientious-cloud-pick-your-cloud-region-deliberately.html pas si simple le coût la securité légale de vos données la consommation carbone de la région choisie (la France est top, la Pologne moins) la latence vs où sont vos clients les services supportés Web Vers une standardisation des Webhooks ? https://www.standardwebhooks.com/ Des gens de Zapier, Twilio, Ngrok, Kong, Supabase et autres, se rejoignent pour essayer de standardiser l'approche des Webhooks La spec est open source (Apache) sur Github https://github.com/standard-webhooks/standard-webhooks/blob/main/spec/standard-webhooks.md Les objectifs sont la sécurité, la reliabilité, l'interopérabilité, la simplicité et la compatibilité (ascendante / descendante) sans la spec, chaque webhook est different dans son comportement et donc les clients doivent s'adapter dans la sematique et les erreurs etc la (meta-) structure de la payload, la taille, la securisation via signature (e.g. hmac), les erreurs (via erreurs HTTP), etc Data et Intelligence Artificielle Google annonce Gemini, son nouveau Large Language Model https://blog.google/technology/ai/google-gemini-ai/#sundar-note modèle multimodal qui peut prendre du texte, en entrée, mais aussi des images, du son, des vidéos d'après les benchmarks, il est largement aussi bon que GPT4 plusieurs tailles de modèles disponible : Nano pour être intégré aux mobiles, Pro qui va être utilisé dans la majeure partie des cas, et Ultra pour les besoins de réflexion les plus avancés Android va rajouter aussi des librairies AICore pour utiliser Gemini Nano dans les téléphones Pixel https://android-developers.googleblog.com/2023/12/a-new-foundation-for-ai-on-android.html Gemini Pro va être disponible dans Bard (en anglais et dans 170 pays, mais l'Europe va devoir attendre un petit peu pour que ce soit dispo) Gemini Ultra devrait aussi rejoindre Bard, dans une version étendue https://blog.google/products/bard/google-bard-try-gemini-ai/ Gemini va être intégré progressivement dans plein de produits Google DeepMind parlant de Gemini https://deepmind.google/technologies/gemini/#introduction Un rapport de 60 pages sur Gemini https://storage.googleapis.com/deepmind-media/gemini/gemini_1_report.pdf Gemini a permis aussi de pouvoir développer une nouvelle version du modèle AlphaCode qui excelle dans les compétitions de coding https://storage.googleapis.com/deepmind-media/AlphaCode2/AlphaCode2_Tech_Report.pdf Liste de petites vidéos sur YouTube avec des interviews et démonstrations des capacités de Gemini https://www.youtube.com/playlist?list=PL590L5WQmH8cSyqzo1PwQVUrZYgLcGZcG malheureusement certaines des annonces sont un peu fausse ce qui a amené un discrédit (non du) sur Gemini par exemple la video “aspirationelle” était vendue comme du réel mais ce n'est pas le cas. et ultra n'est pas disponible encore ausso la comparaison de ChatGPT sur la page (initialement au moins) comparait des choux et des carottes, meme si le papier de recherche était correct Avec la sortie de Gemini, Guillaume a écrit sur comment appeler Gemini en Java https://glaforge.dev/posts/2023/12/13/get-started-with-gemini-in-java/ Gemini est multimodèle, donc on peut passer aussi bien du texte que des images, ou même de la vidéo Il y a un SDK en Java pour interagir avec l'API de Gemini Facebook, Purple Llama https://ai.meta.com/blog/purple-llama-open-trust-safety-generative-ai/ Opensource https://ai.meta.com/llama/ dans l'optique des modeles GenAI ouverts, Facebook fournit des outils pour faire des IA responsables (mais pas coupables :wink: ) notament des benchmarks pour evaluler la sureté et un classifier de sureté, par exemple pour ne pas generer du code malicieux (ou le rendre plus dur) llama purple sera un projet parapluie D'ailleurs Meta IBM, Red Hat et pleins d'autres ont annoncé l'AI Alliance pour une AI ouverte et collaborative entre académique et industriels. Sont notammenrt absent Google, OpenAI (pas ouvert) et Microsoft Juste une annouce pour l'instant mais on va voir ce que ces acteurs de l'AI Alliance feront de concret il y a aussi un guide d'utilisateur l'usage IA responsable (pas lu) Apple aussi se met aux librairies de Machine Learning https://ml-explore.github.io/mlx/build/html/index.html MLX est une librairie Python qui s'inspire fortement de NumPy, PyTorch, Jax et ArrayFire Surtout, c'est développé spécifiquement pour les Macs, pour tirer au maximum parti des processeurs Apple Silicon Dans un des repos Github, on trouve également des exemples qui font tourner nativement sur macOS les modèles de Llama, de Mistral et d'auters https://github.com/ml-explore/mlx-examples non seulement les Apple Silicon amis aussi la memoire unifiee CPU/GPU qui est une des raisons clés de la rapidité des macs Faire tourner Java dans un notebook Jupyter https://www.javaadvent.com/2023/12/jupyter-notebooks-and-java.html Max Andersen explore l'utilisation de Java dans les notebooks Jupyter, au lieu du classique Python il y a des kernels java selon vos besoins mais il faut les installer dans la distro jupyter qu'on utilise et c'est la que jbang installable via pip vient a la rescousse il installe automatiquement ces kernels en quelques lignes Outillage Sfeir liste des jeux orientés développeurs https://www.sfeir.dev/tendances/notre-selection-de-jeux-de-programmation/ parfait pour Noël mais c'est pour ceux qui veulent continuer a challenger leur cerveau après le boulot jeu de logique, jeu de puzzle avec le code comme forme, jeu autour du machine learning, jeu de programmation assembleur Les calendriers de l'Avent sont populaires pour les développeurs ! En particulier avec Advent of Code https://adventofcode.com/ Mais il y a aussi l'Advent of Java https://www.javaadvent.com/ Ou un calendrier pour apprendre les bases de SVG https://svg-tutorial.com/ Le calendrier HTML “hell” https://www.htmhell.dev/adventcalendar/ qui parle d'accessibilité, de web components, de balises meta, de toutes les choses qu'on peut très bien faire en HTML/CSS sans avoir besoin de JavaScript Pour les développeurs TypeScript, il y a aussi un calendrier de l'Avent pour vous ! https://typehero.dev/aot-2023 Un super thread de Clara Dealberto sur le thème de la “dataviz” (data visualization) https://twitter.com/claradealberto/status/1729447130228457514 Beaucoup d'outil librement accessibles sont mentionnés pour faire toutes sortes de visualisations (ex. treemap, dendros, sankey…) mais aussi pour la cartographie Quelques ressources de site qui conseillent sur l'utilisation du bon type de visualisation en fonction du problème et des données que l'on a notemment celui du financial time qui tiens dans une page de PDF Bref c'est cool mais c'est long a lire Une petite liste d'outils sympas - jc pour convertir la sortie de commandes unix en JSON https://github.com/kellyjonbrazil/jc - AltTab pour macOS pour avoir le même comportement de basculement de fenêtre que sous Windows https://alt-tab-macos.netlify.app/ - gron pour rendre le JSON grep-able, en transformant chaque valeur en ligne ressemblant à du JSONPath https://github.com/tomnomnom/gron - Marker, en Python, pour transformer des PDF en beau Markdown https://github.com/VikParuchuri/marker - n8n un outil de workflow open source https://n8n.io/ gron en fait montre des lignes avec des assignments genre jsonpath = value et tu peux ungroner apres pour revenir a du json Marker utilise du machine learning mais il halklucine moins que nougat (nous voilà rassuré) Docker acquiert Testcontainers https://techcrunch.com/2023/12/11/docker-acquires-atomicjar-a-testing-startup-that-raised-25m-in-january/ Annonce par AtomicJar https://www.atomicjar.com/2023/12/atomicjar-is-now-part-of-docker/ Annonce par Docker https://www.docker.com/blog/docker-whale-comes-atomicjar-maker-of-testcontainers/ Architecture Comment implémenter la reconnaissance de chanson, comme Shazam https://www.cameronmacleod.com/blog/how-does-shazam-work il faut d'abord passer en mode fréquence avec des transformées de Fourrier pour obtenir des spectrogrammes puis créer une sorte d'empreinte qui rassemble des pics de fréquences notables à divers endroits de la chanson d'associer ces pics pour retrouver un enchainement de tels pics de fréquence dans le temps l'auteur a partagé son implémentation sur Github https://github.com/notexactlyawe/abracadabra/blob/e0eb59a944d7c9999ff8a4bc53f5cfdeb07b39aa/abracadabra/recognise.py#L80 Il y avait également une très bonne présentation sur ce thème par Moustapha Agack à DevFest Toulouse https://www.youtube.com/watch?v=2i4nstFJRXU les pics associés sont des hash qui peut etre comparés et le plus de hash veut dire que les chansons sont plus similaires Méthodologies Un mémo de chez ThoughtWorks à propos du coding assisté par IA https://martinfowler.com/articles/exploring-gen-ai.html#memo-08 Avec toute une liste de questions à se poser dans l'utilisation d'un outil tel que Copilot Il faut bien réaliser que malheureusement, une IA n'a pas raison à 100% dans ses réponses, et même plutôt que la moitié du temps, donc il faut bien mettre à jour ses attentes par rapport à cela, car ce n'est pas magique La conclusion est intéressante aussi, en suggérant que grosso modo dans 40 à 60% des situations, tu peux arriver à 40 à 80% de la solution. Est-ce que c'est à partir de ce niveau là qu'on peut vraiment gagner du temps et faire confiance à l'IA ? Ne perdez pas trop de temps non plus à essayer de convaincre l'IA de faire ce que vous voulez qu'elle fasse. Si vous n'y arrivez pas, c'est sans doute parce que l'IA n'y arrivera même pas elle même ! Donc au-delà de 10 minutes, allez lire la doc, chercher sur Google, etc. notamment, faire genrer les tests par l'IA dans al foulée augmente les risques surtout si on n'est pas capable de bien relire le code si on introduit un choix de pattern genre flexbox en CSS, si c'est sur une question de sécuriter, vérifier (ceinture et bretelle) est-ce le framework de la semaine dernière? L'info ne sera pas dans le LLM (sans RAG) Quelles capacités sont nécessaires pour déployer un projet AI/ML https://blog.scottlogic.com/2023/11/22/capabilities-to-deploy-ai-in-your-organisation.html C'est le MLOps et il y a quelques modèles end to end Google, IBM mais vu la diversité des organisations, c'est difficile a embrasser ces versions completes ML Ops est une métier, data science est un metier, donc intégrer ces competences sachez gérer votre catalogue de données Construire un process pour tester vos modèles et continuellement La notion de culture de la recherche et sa gestion (comme un portefeuille financier, accepter d'arrêter des experience etc) la culture de la recherche est peu présente en engineering qui est de construire des choses qui foncitonnent c'est un monde pre LLM Vous connaissez les 10 dark patterns de l'UX ? Pour vous inciter à cliquer ici ou là, pour vous faire rester sur le site, et plus encore https://dodonut.com/blog/10-dark-patterns-in-ux-design/ Parmi les dark patterns couverts Confirmshaming Fake Urgency and the Fear of Missing Out Nagging Sneaking Disguised Ads Intentional Misdirection The Roach Motel Pattern Preselection Friend Spam Negative Option Billing or Forced Continuity L'article conclut avec quelques pistes sur comment éviter ces dark patterns en regardant les bons patterns de la concurrence, en testant les interactions UX, et en applicant beaucoup de bon sens ! les dark patterns ne sont pas des accidents, ils s'appuient sur la psychologie et sont mis en place specifiquement Comment choisir de belles couleurs pour la visualisation de données ? https://blog.datawrapper.de/beautifulcolors/ Plutôt que de penser en RGB, il vaut mieux se positionner dans le mode Hue Saturation Brightness Plein d'exemples montrant comment améliorer certains choix de couleurs Mieux vaut éviter des couleurs trop pures ou des couleurs trop brillantes et saturées Avoir un bon contraste Penser aussi aux daltoniens ! j'ai personnellement eu toujours du mal avec saturationm vs brightness faire que les cloueirs en noir et blanc soient separees evant de le remettre (en changeant la brightness de chaque couleur) ca aide les daltoniens eviter les couleurs aux 4 coins amis plutot des couleurs complementaires (proches) rouge orange et jaune (non saturé) et variations de bleu sont pas mal les couleurs saturées sont aggressives et stressent les gens Pourquoi vous devriez devenir Engineering Manager? https://charity.wtf/2023/12/15/why-should-you-or-anyone-become-an-engineering-manager/ L'article parle de l'évolution de la perception de l'engineering management qui n'est plus désormais le choix de carrière par défaut pour les ingénieurs ambitieux. Il met en évidence les défis auxquels les engineering managers sont confrontés, y compris les attentes croissantes en matière d'empathie, de soutien et de compétences techniques, ainsi que l'impact de la pandémie de COVID-19 sur l'attrait des postes de management. L'importance des bons engineering mnanagers est soulignée, car ils sont considérés comme des multiplicateurs de force pour les équipes, contribuant de manière significative à la productivité, à la qualité et au succès global dans les environnements organisationnels complexes. L'article fournit des raisons pour lesquelles quelqu'un pourrait envisager de devenir Engineering Manager, y compris acquérir une meilleure compréhension de la façon dont les entreprises fonctionnent, contribuer au mentorat et influencer les changements positifs dans la dynamique des équipes et les pratiques de l'industrie. Une perspective est présentée, suggérant que devenir Engineering manager peut conduire à la croissance personnelle et à l'amélioration des compétences de vie, telles que l'autorégulation, la conscience de soi, la compréhension des autres, l'établissement de limites, la sensibilité à la dynamique du pouvoir et la maîtrise des conversations difficiles. L'article encourage à considérer la gestion comme une occasion de développer et de porter ces compétences pour la vie. Sécurité LogoFAIL une faille du bootloader de beaucoup de machines https://arstechnica.com/security/2023/12/just-about-every-windows-and-linux-device-vulnerable-to-new-logofail-firmware-attack/ en gros en changeant les eimages qu'on voit au boot permet d'executer du code arbitraire au tout debuit de la securisation du UEFI (le boot le plus utilisé) donc c'est game over parce que ca demarre avant l'OS c'est pas une exploitation a distance, il faut etre sur la machine avec des droits assez elevés deja mais ca peut etre la fin de la chaine d'attaque et comme d'hab un interpreteur d'image est la cause de ces vulnerabilités Conférences L'IA au secours de conférences tech: rajoute des profile tech femme comme speaker au programme pour passer le test diversité online via des profiles fake. https://twitter.com/GergelyOrosz/status/1728177708608450705 https://www.theregister.com/2023/11/28/devternity_conference_fake_speakers/ https://www.developpez.com/actu/351260/La-conference-DevTernity-sur-la-technologie-s-e[…]s-avoir-cree-de-fausses-oratrices-generees-automatiquement/ j'avais lu le tweet du createur de cette conf qui expliquait que c'etait des comptes de tests et que pris dans le rush ils avaient oublié de les enlever mais en fait les comptes de tests ont des profils “Actifs” sur le reseaux sociaux apparemment donc c'était savamment orchestré Au final beaucoup de speakers et des sponsors se desengagent La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 31 janvier 2024-3 février 2024 : SnowCamp - Grenoble (France) 1 février 2024 : AgiLeMans - Le Mans (France) 6 février 2024 : DevFest Paris - Paris (France) 8-9 février 2024 : Touraine Tech - Tours (France) 15-16 février 2024 : Scala.IO - Nantes (France) 6-7 mars 2024 : FlowCon 2024 - Paris (France) 14-15 mars 2024 : pgDayParis - Paris (France) 19 mars 2024 : AppDeveloperCon - Paris (France) 19 mars 2024 : ArgoCon - Paris (France) 19 mars 2024 : BackstageCon - Paris (France) 19 mars 2024 : Cilium + eBPF Day - Paris (France) 19 mars 2024 : Cloud Native AI Day Europe - Paris (France) 19 mars 2024 : Cloud Native Wasm Day Europe - Paris (France) 19 mars 2024 : Data on Kubernetes Day - Paris (France) 19 mars 2024 : Istio Day Europe - Paris (France) 19 mars 2024 : Kubeflow Summit Europe - Paris (France) 19 mars 2024 : Kubernetes on Edge Day Europe - Paris (France) 19 mars 2024 : Multi-Tenancy Con - Paris (France) 19 mars 2024 : Observabiity Day Europe - Paris (France) 19 mars 2024 : OpenTofu Day Europe - Paris (France) 19 mars 2024 : Platform Engineering Day - Paris (France) 19 mars 2024 : ThanosCon Europe - Paris (France) 19-21 mars 2024 : IT & Cybersecurity Meetings - Paris (France) 19-22 mars 2024 : KubeCon + CloudNativeCon Europe 2024 - Paris (France) 26-28 mars 2024 : Forum INCYBER Europe - Lille (France) 28-29 mars 2024 : SymfonyLive Paris 2024 - Paris (France) 4-6 avril 2024 : Toulouse Hacking Convention - Toulouse (France) 17-19 avril 2024 : Devoxx France - Paris (France) 18-20 avril 2024 : Devoxx Greece - Athens (Greece) 25-26 avril 2024 : MiXiT - Lyon (France) 25-26 avril 2024 : Android Makers - Paris (France) 8-10 mai 2024 : Devoxx UK - London (UK) 16-17 mai 2024 : Newcrafts Paris - Paris (France) 24 mai 2024 : AFUP Day Nancy - Nancy (France) 24 mai 2024 : AFUP Day Poitiers - Poitiers (France) 24 mai 2024 : AFUP Day Lille - Lille (France) 24 mai 2024 : AFUP Day Lyon - Lyon (France) 2 juin 2024 : PolyCloud - Montpellier (France) 6-7 juin 2024 : DevFest Lille - Lille (France) 6-7 juin 2024 : Alpes Craft - Grenoble (France) 27-28 juin 2024 : Agi Lille - Lille (France) 4-5 juillet 2024 : Sunny Tech - Montpellier (France) 19-20 septembre 2024 : API Platform Conference - Lille (France) & Online 7-11 octobre 2024 : Devoxx Belgium - Antwerp (Belgium) 10-11 octobre 2024 : Volcamp - Clermont-Ferrand (France) 10-11 octobre 2024 : Forum PHP - Marne-la-Vallée (France) 17-18 octobre 2024 : DevFest Nantes - Nantes (France) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via twitter https://twitter.com/lescastcodeurs Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/

The Cloudcast
Testcontainers to Reduce Developer Frustration

The Cloudcast

Play Episode Listen Later Nov 8, 2023 29:48


Eli Aleyner (@ealeyner, Co-founder at @AtomicJarInc) talks about the issues with shifting left and how to reduce developer frustration with Testcontainers. SHOW: 769CLOUD NEWS OF THE WEEK - http://bit.ly/cloudcast-cnotwNEW TO CLOUD? CHECK OUT - "CLOUDCAST BASICS"SHOW SPONSORS:CloudZero – Cloud Cost Visibility and Savings​​CloudZero provides immediate and ongoing savings with 100% visibility into your total cloud spendDatadog Security Solution: Modern Monitoring and SecurityStart investigating security threats before it affects your customers with a free 14 day Datadog trial. Listeners of The Cloudcast will also receive a free Datadog T-shirtSHOW NOTES:AtomicJar homepageTestcontainers CloudTestcontainers.com LinkTestcontainers on Twitter/XTopic 1 - Welcome to the show. Tell us a little bit about your background, and what brought you to create AtomicJarTopic 2 - Let's start at the beginning. We hear more and more about shifting everything left. In this case we are talking about potentially shifting testing left. What problem are we trying to solve and everything comes at a cost, what are the tradeoffs?Topic 3 - We hear all the time that adoption of changes to a development practice is part culture and part technology. What is the hook that gets folks interested in investing time and resources into better testing practices?Topic 4 - Are the tests integrated into the code? How seamless is this into existing CI/CD pipelines or an organization's DevOps practice on average?Topic 5 - From a business perspective, how are the advantages typically measured? More deployments, less defects, etcTopic 6 - Let's talk about the OSS project Testcontainers a bit. What is it? How did it come about? How are folks using this concept of throwaway, lightweight instances of databases, message brokers, and web browsers, for instance. Is this all in Docker containers?Topic 7 - There's also testing in the cloud with a SaaS service (Testcontiners Cloud). What is the origin story behind this and how are folks using it today? Is this a replacement for say Docker Desktop?Topic 8 - For those out there that are interested? How would they get started?FEEDBACK?Email: show at the cloudcast dot netTwitter: @thecloudcastnet

Better Software Design
70. O Testcontainers, piramidzie testów i jakości życia z Piotrem Przybyłem

Better Software Design

Play Episode Listen Later Sep 25, 2023 71:48


Każdy kod zostanie przetestowany, wcześniej bądź później. Pozostają jedynie pytania na jakim etapie i przez kogo zostanie to wykonane i jaki będzie tego ostateczny koszt. Gdy aplikacja staje się złożona i tworzy ją wiele różnych komponentów, proces testowania może zacząć przysparzać pewnych trudności, choćby z odwzorowaniem odpowiedniego środowiska uruchomienia testów. I tu przychodzi z pomocą biblioteka Testcontainers.Testcontainers to framework pozwalający testować aplikację w oparciu o kontenery Dockera z prawdziwymi zależnościami systemu. I choć pozornie brzmi to banalnie, narzędzie to oferuje szereg bardzo praktycznych i przydatnych rozwiązań, znacznie upraszczających cały proces testowania integracyjnego.Moim gościem jest dziś Piotr Przybył, Software Gardener z wieloletnim doświadczeniem programistycznym, który o praktycznym wykorzystaniu Testcontainers w projektach wie naprawdę sporo.W tym odcinku rozmawiamy z Piotrem między innymi o:częstych problemach z testowaniem kodu i jego jednostkach,możliwych podejściach do organizacji testów w piramidy, odwrócone piramidy, plastry miodu...zasadzie działania biblioteki Testcontainers i jej kluczowych konceptach,różnicach pomiędzy Testcontainers a innymi sposobami uruchamiania usług podczas testów,synchronizacji kodu testów opartych o Testcontainers z infrastrukturą produkcyjną.Zapraszam!Materiały dodatkowe:Testcontainers Getting Started, dokumentacja omawianej w odcinku bibliotekiKatalog modułów, dostępne gotowe kontenery z prekonfigurowanymi usługamiTestcontainers Workshop, repozytorium na Githubie z przykładowym kodem krok-po-krokuIntegration tests are needed and simple, prezentacja Piotra o testach integracyjnych z użyciem TC z konferencji Devoxx UK 2023Testcontainers: needed, simple, powerful, dłuższa, niemal 3 godzinna prezentacja z Devoxx z BelgiiWpisy o Testcontainers, blog Piotra o oprogramowaniu, nie tylko o testowaniu

Wicked Good Development
Episode 31: Testcontainers with Oleg Šelajev

Wicked Good Development

Play Episode Listen Later Apr 11, 2023 38:08


Ready to take a dive into the world of TestContainers? Join Kadi Grigg and Sonatype Developer Advocate Jamie Coleman as they sit down with the one and only Oleg Šelajev of AtomicJar, Inc., for an episode packed with insights and laughs.  Together, they'll delve into the world of Testcontainers and uncover the secrets behind these powerful tools that have revolutionized the testing landscape. From the origin of Testcontainers to the crucial importance of reliability in testing, they'll cover it all and so much more Check out the resources for this episode on the Sonatype Blog.

oleg testcontainers atomicjar
Open Source Startup Podcast
E74: Dev-First Testing with AtomicJar & Testcontainers

Open Source Startup Podcast

Play Episode Listen Later Feb 21, 2023 41:02


Sergei Egorov is Co-Founder & CEO of AtomicJar, the developer-first testing platform built on top of open source testing framework Testcontainers. AtomicJar provides Testcontainers Cloud which allows users to run tests in the cloud with anything that can be containerized. AtomicJar has raised almost $30M from investors including Insight Partners and Boldstart. In this episode, we discuss user demand driving the creation of a company alongside an open source project, using a different name for the company to have the ability to work with other projects, learnings from early scaling & more!

ceo co founders testing 30m insight partners testcontainers boldstart atomicjar
Contributor
Testcontainers and Confidence with Sergei Egorov and Eli Aleyner

Contributor

Play Episode Listen Later Jan 11, 2023 40:33


We're kicking off the new year with a conversation between Eric Anderson (@ericmander), Sergei Egorov (@bsideup) and Eli Aleyner (@ealeyner). Sergei and Eli founded AtomicJar to maintain Testcontainers, the family of open-source libraries that allow developers to write and run integration tests locally, and treat them as unit tests. Testcontainers is wildly popular, with over six thousand GitHub stars (and climbing!). Tune in to find out how Sergei and Eli are helping people test their software quicker, easier, and more efficiently. Subscribe to Contributor on Substack for email notifications, and join our Slack community! In this episode we discuss: How Testcontainers solves the problem of confidence The value of Github's networking effect Inspiration from Amazon's S3 “test bunny” Consequences of Docker's over- and under-adoption Replicating success in other languages besides Java Links: Testcontainers AtomicJar Spring Quarkus Micronaut How We Maintain Security Testing within the Software Development Life Cycle People mentioned: Richard North (@whichrich) Kevin Wittek (@Kiview) Martin Fowler (@martinfowler)

DevOps Paradox
DOP 187: Simplify Testing With Testcontainers

DevOps Paradox

Play Episode Listen Later Nov 30, 2022 45:51


#187: When writing tests that need to talk to a data source, you're usually faced with a couple of options. The first one is that you setup a database server on your machine. The problem with that is what happens when other developers need to run those same tests? They have to setup the database too.   The other option is you can mock your database connections. However, it's hard to keep your mock up to date with the latest features of the database you are using. What if there was another option you could use? Enter Testcontainers.   In this episode we speak with Sergei Egorov from AtomicJar about the history of Testcontainers and how to implement it into your development processes.   Sergei's contact information: Twitter: https://twitter.com/bsideup LinkedIn: https://www.linkedin.com/in/bsideup/   YouTube channel: https://youtube.com/devopsparadox/   Books and Courses: Catalog, Patterns, And Blueprints https://www.devopstoolkitseries.com/posts/catalog/   Review the podcast on Apple Podcasts: https://www.devopsparadox.com/review-podcast/   Slack: https://www.devopsparadox.com/slack/   Connect with us at: https://www.devopsparadox.com/contact/

Les Cast Codeurs Podcast
LCC 284 - De mal en pis - partie 1

Les Cast Codeurs Podcast

Play Episode Listen Later Sep 12, 2022 50:20


Dans cet épisode, nous discutons bonnes pratiques Java, Groovy, WebAssembly, Micronaut. Nous discutons également le changement de licence de Akka entre autre. La suite de cet épisode parlera de changement d'étage gratuit chez Heroku et des vagues de licenciement dans le monde technologique. Pour rester sous les 1h d'écoute, nous avons découpé les deux derniers épisodes nouvelles en 2 parties chacun. Qu'en pensez vous ? Donnez-nous votre avis sur Twitter ou sur le Google Groups des cast codeurs. Enregistré le 9 septembre 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–284.mp3 News Langages Jonathan Giles, un principal architecte de Java chez Microsoft, a un site qui partage des bonnes pratiques Java http://java.jonathangiles.net/ il couvre des bonnes pratiques Java de manière générale, mais également plus spécifiquement pour les développeurs de librairies Java Des conseils sur la bonne utilisation des dépendances, des BOMs, des versions LTS de Java, des modules Java, de la surface des APIs publiées, de faire attention à null ou au boxing, et de comprendre les interfaces fonctionnelles il y a beaucoup de contenu donc faites par petites doses Certains sujets sont plus controversés comme les modules Java les recommendations sont assez succinctes Je suppose que ce sont les recommendations que les équipes du Azure SDK suivent et qu'il a ouvert. Donc merci à lui Project Leyden https://www.infoq.com/news/2022/06/project-leyden-delays-aot/ Leyden n'a pas progressé en deux ans Accepté que GraalVM a déjà achevé les objectifs initiaux Donc vont explorer un spectre plus faible de contraintes (et probalbment d'optimisations Prochaine LTS en Sept 2023 et Leyden ne sera pas mature, donc Leyden sera utilse ~ Sept 2027 (en terme d'adoption) au plus tôt. SpringBoot pensent que CRaC (snapshot de la memoire sur disque pour demarrage plus rapide) sera très utile module-info dans Spring pourn jlink est dans la roadmap Lead de CRaC a fourni un prototype pour Quarkus: ameliore temps de demarrage pour OpenJDK mais pas la consommation memoire jlink pour Quarkus, dans un context Kube, les gains d'espace disque ne sont pas si interessant vs un layered image Micronaut a des issues ouverst pour CRaC José Paumard couvre Loom et Structured Concurrency dans sa vidéo de la série JEP Café https://inside.java/2022/08/02/jepcafe13/ Et cet article explique les problèmes classiques de concurrence comme les thread leaks et introduit la Structured Concurrency https://howtodoinjava.com/java/multi-threading/structured-concurrency/ Paul King montre l'utilisation de différents frameworks de tests avec Groovy (Spock, JUnit5, Jacoco, Jqwik et Pitest) https://blogs.apache.org/groovy/entry/testing-your-java-with-groovy Paul couvre aussi dans un autre article les comparateurs, et l'utilisation de l'API GINQ https://blogs.apache.org/groovy/entry/comparators-and-sorting-in-groovy La matrice spot est intéressante mais pas avec des noms de variable à, b, c, d :) L.article est super didactique et explique via un example concret quand utiliser quoi Je trouve les property base testing pas si simple à utiliser et avec un coup de réflection >> au truc testé. Mais peut être le cas est super simplistique pour l'usage Paul King continue de publier régulièrement des articles sur Groovy - https://blogs.apache.org/groovy/entry/working-with-sql-databases-with — accéder à des bases SQL avec Groovy et GraalVM - https://blogs.apache.org/groovy/entry/detecting-objects-with-groovy-the — détection d'objet avec le machine learning avec Deep Java Library et Apache MXNet Sortie de Spock 2.2, première version GA avec le support officiel de Groovy 4 https://twitter.com/spockframework/status/1564999285250326529 Bah la seule info intéressante est déjà dans le titre, càd c'est le support officiel de Groovy 4 Google lance un nouveau langage, appelé Carbon, comme un successeur de C++, mais en plus sympa ! https://github.com/carbon-language/carbon-lang interessant, ils veut Ceyloniser ou Scalaizer Rust avec Carbon's Kotlin-like strategy. Not a bad bet Rust n'est pas assez compatible avec C++, c'est problématique, surtout pour des boîtes comme Google avec d'énormes code bases en C++. Donc pour du green-field, Rust c'est bien. Ou c'est bien aussi pour de l'intégration avec du C. Mais pas avec du C++. State of WebAssembly https://blog.scottlogic.com/2022/06/20/state-of-wasm–2022.html On peut peut-être aussi rajouter l'utilisation de WebAssembly chez Figma https://neugierig.org/software/blog/2022/06/wasm-notes.html rust reste le langage de prédilection Python monte JavaScript est maintenant un langage viable Wasmtime est le runtime le plus populaire L'utilisation de WASM pour Serverless et la containérisation et en tant que hôte de plugin a beaucoup émergé Les api non browser sont ce dont a besoin web assembly En fait compilent pas JavaScript mais un moteur JavaScript et faire l'interprétation fonctionnalités très demandées : threads, exceptions, GC, type réflection etc Graal VM 22.2 https://medium.com/graalvm/graalvm–22–2-smaller-jdk-size-improved-memory-usage-better-library-support-and-more-cb34b5b68ec0 GraalVM JDK plus petit Plus petite conso mémoire lors de la création de native images Un travail de Quarkus, Micronaut et Spring Native pour ûblier des métadonnées partagées https://medium.com/graalvm/enhancing–3rd-party-library-support-in-graalvm-native-image-with-shared-metadata–9eeae1651da4 Possibilité de générer des heap dump dans des native images Différentes améliorations du compilateur Support de Apple Silicon Côté autres langages, GraalPython démarre plus vite et avec support étendu de librairie, et GraalJS avec une meilleurs interopérabilité Alex Blewitt un Java Champion est décédé prématurément https://www.infoq.com/news/2022/07/alex-blewitt/ notamment un contributeur à InfoQ Librairies Sortie de Micronaut 3.6 https://micronaut.io/2022/08/04/micronaut-framework–3–6–0-released/ Nouveau module Micronaut Test Resources avec une intégration TestContainers qui permet d'avoir des ressources de test externes, par exemple pour un Redis, un Elasticsearch ou autre Cédric Champeau qui a travaillé sur cette fonctionnalité a écrit un blog post complet sur le sujet https://melix.github.io/blog//2022/08/micronaut-test-resources.html Intégration avec OpenTelemetry (après Open Tracing et autre) Micronaut Data rajoute Hibernate Reactive comme intégration et plein d'autres mises à jour des différents modules existants Utiliser des serialiseurs. / deserialiseurs de messages Kafka dans votre application Quarkus https://quarkus.io/blog/kafka-serde/ explique quand on a besoin d'un serialisateur custom (hors des types fondamentaux) Explique que le support JSON existe par défaut Explique comment utiliser Avro mais avec un schéma registry Et la version full custom Akka change sa licence de ASL vers BSL (Business Source License) https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka comme MariaDB, Cockroach Labs, Sentry, Materialized BSL is source available et usage dev mais pas prod Après 3 ans, les commits en BSL se convertissent en ASL (donc pas les nouveaux commits) license commerciale disponible pour 2000$ par coeur due au fait qu'avec la maturiote de Akka les contributions ont diminué et le support est revenu a LightBend de plus en plus meme si des societes grosse utilisent Akka dans leur infra critique Gatling impacté Mécontentement de la communauté Akka et Scala, par exemple cet article d'Alexandru Nedelcu https://alexn.org/blog/2022/09/07/akka-is-moving-away-from-open-source 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/

Oracle Groundbreakers
Delightful Integration Testing with Oleg Šelajev

Oracle Groundbreakers

Play Episode Listen Later Aug 30, 2022 22:39


JavaOne 2022 Speaker Preview In this conversation Oracle's Jim Grisanzio talks with Java developer and JavaOne 2022 speaker Oleg Šelajev from Tartu, Estonia. Oleg works in developer relations at AtomicJar. He's also a Java Champion and a regular conference speaker. In this conversation Oleg previews his upcoming session at JavaOne — Delightful Integration Tests with Testcontainers.  JavaOne 2022 from October 17-20 in Las Vegas JavaOne 2022: Registration and Sessions JavaOne 2022 Updates at Inside Java Oleg Šelajev, Developer Relations at AtomicJar  @shelajev Java Development and Community OpenJDK Inside Java Dev.Java @java on Twitter Java on YouTube Duke's Corner Podcast Host Jim Grisanzio, Oracle Java Developer Relations, @jimgris

Console DevTools
Containers & Tests, with Sergei Egorov (Atomic Jar) - S03E07

Console DevTools

Play Episode Listen Later Jul 21, 2022 32:45


In this episode we speak to Sergei Egorov, CEO of AtomicJar, the company behind TestContainers, a library that helps with integration testing for containerized applications. We discuss the challenges of developing container-based applications, how to orchestrate containers for testing, the future of cloud development environments, and whether the Apple M1 chip has come too late. About Sergei EgorovSergei Egorov is CEO & co-founder of AtomicJar - the company behind Testcontainers on a mission to make integration testing easy and enjoyable for developers. He is a Java Champion, an active member of the Open Source community, member of the Apache Foundation, and Reactive Foundation TOC.Other things mentioned:DockerKubernetes  Google Cloud RunHerokuJosh WongTwelve-Factor AppWeb AssemblyScaffoldBuildpacksKO for GOLocalStackLambdaDynanoDBQuarkusGitHub Code SpacesMacBook Pro M1NotionLet us know what you think on Twitter:https://twitter.com/consoledotdevhttps://twitter.com/davidmyttonhttps://twitter.com/bsideupOr by email: hello@console.devAbout ConsoleConsole is the place developers go to find the best tools. Our weekly newsletter picks out the most interesting tools and new releases. We keep track of everything - dev tools, devops, cloud, and APIs - so you don't have to. Sign up for free at: https://console.devRecorded: 2022-04-07.

DevOps Speakeasy Podcast
S03E19: #DevOpsSpeakEasy at #jfokus 2022 with Ixchel Ruiz and Kevin Wittek

DevOps Speakeasy Podcast

Play Episode Listen Later Jul 3, 2022 7:00


26 views May 7, 2022 In this episode we talked with Kevin Wittek @kiview, a Testcontainers co-maintainer, passionate about FLOSS, containers and Java. We talked about an archaeological journey into the history of the testing pyramid: Who envisioned it first and in which context?

The Art Of Programming
277 Операторы, их данные и тестирование — The Art Of Programming [ Development ]

The Art Of Programming

Play Episode Listen Later Jun 19, 2022 43:55


00:00:00 — Java, BigData и операторские данные 00:11:26 — О тестировании и технологических диктатурах… 00:25:15 — Java декан, МТС Тета и онлайн образование 00:40:40 — Мы опять на плато — иррациональность человеческого сознания Сергей Егоров — TestContainers — интеграционное тестирование с Docker Сергей Егоров — Testcontainers: Год спустя Testcontainers – From Zero to Hero. By @Marco Codes Семён Киреков — «Паттерны, которые упростят тебе жизнь при написании тестов» Курсы МТС Тета Steve Freeman, Nat Pryce — Growing Object-Oriented Software, Guided by Tests Джек Лондон — «Мартин Иден» Голодный рекомендует Разработчик в контейнерную экосистему Yandex.Cloud Участники @golodnyj Семён Киреков Telegram канал Youtube канал iTunes подкаст Поддержи подкаст

DevOps Speakeasy Podcast
S03E04: #DevOpsSpeakeasy at #DevNexus 2022: Oleg Shelajev on Testcontainers 7th birthday and AtomicJar

DevOps Speakeasy Podcast

Play Episode Listen Later May 2, 2022 16:07


AtomicJar's developer advocate Oleg Shelajev explains what Testcontainers is, what it achieved in 7 years of its existence, and why AtomicJar takes it to the cloud.

oleg testcontainers atomicjar
TestGuild News Show
Playwright, Cypress, GitHub Action and More TGNS39

TestGuild News Show

Play Episode Listen Later Apr 18, 2022 9:36


Want to know how to Make Testing Easy with GitHub? Have you heard of this new way to tame cloud complexity? Are you concerned about the security and use JetBrains IntelliJ IDEA Ultimate? Find out the answers to these and other end-to-end entire pipeline DevOps, automation, performance, and security testing in 10 minutes or less in this episode of the test guild news show for the week of April 17 0:21 Applitools Free Account https://rcl.ink/xroZw 0:53 Github http://applitools.info/9m1 1:34 TestContainers https://links.testguild.com/DC9t5 2:37 Playwright https://links.testguild.com/xKij1 3:36 Cypress https://links.testguild.com/mCHsB 4:18 Splunk https://links.testguild.com/RIO5n 5:19 Datadog https://links.testguild.com/uf2xn 6:40 Salt/Idem https://links.testguild.com/Tduad 8:15 Checkmarx https://links.testguild.com/2v7K2

TestTalks | Automation Awesomeness | Helping YOU Succeed with Test Automation
Self-healing Selenium Test Using Healenium with Anna Chernysheva

TestTalks | Automation Awesomeness | Helping YOU Succeed with Test Automation

Play Episode Listen Later Feb 27, 2022 22:04


Are you looking for an open-source solution to make your automated Selenium tests more stable? In this episode, Anna Chernysheva, a Customer Success Engineer at Testcontainers and the creator of multiple open-source test automation libraries, shares how the Helenium project improves the stability of Selenium-based test cases by automatically handling changes of updated web elements. Discover how Healenum works, the key benefits of using it, and how it brings efficiency into your test automation. Listen up to learn how to develop stable and intelligent Selenium testing with less effort.

DevOps and Docker Talk
Testcontainers: Using Code to Control Docker for Testing

DevOps and Docker Talk

Play Episode Listen Later Feb 4, 2022 52:28


Unedited live recording of this show on YouTube (Ep 149). Topics=============TestcontainersTestcontainers on GitHub Company behind TestcontainersTestcontainers Cloud blogSergei Egorov=============Sergei on TwitterJoin my Community==============Best coupons for my Docker and Kubernetes coursesFollow me on Patreon and support this show!Chat with us on our Discord Server, Vital DevOpsHomepage bretfisher.com★ Support this podcast on Patreon ★

TestGuild News Show
SelectorHub, Resilience Testing and more TGNS30

TestGuild News Show

Play Episode Listen Later Jan 25, 2022 9:43


Hey, want to know an example page where you could find all the scenarios to practice your test automation skills. How do you deploy Jmeter on AWS using TerraForm? And do you know, the adoption of APIs is on the rise? How can you make sure that your security is keeping up with this development? Final answers to these and all other and full pipeline DevOps automation, testing, performance, testing, and security testing in this episode of the Test Guild new show for the week of January 23rd. So give yourself a cup of coffee or tea, and let's do this.   0:29 Applitools Free Account https://rcl.ink/xroZw 1:03 XPath Practice Page https://links.testguild.com/XcbFe 1:42 Applitools win's DevOps Dozen https://links.testguild.com/3NQFy 2:30 Cypress 9.3 https://links.testguild.com/HBiNh 3:00 Testcontainers-java 1.16.3 is out! https://links.testguild.com/xHJ6B 3:47 Migration to the Cloud https://links.testguild.com/csBcC 4:35 Reduce Test Failures in CI/CD Pipelines? https://links.testguild.com/RY6wm 5:08 Verica raises $12M  https://links.testguild.com/ZibfC 6:08 Automation Predictions:  https://links.testguild.com/jgFkA 6:39 Deploy JMeter on AWS using Terraform https://links.testguild.com/vrUnv 7:20 API Security: https://links.testguild.com/FO6hl 8:22  Cisco Security Issue: https://links.testguild.com/0rz1P

JavaHut
JavaHut #18: AtomicJar: No Way Home

JavaHut

Play Episode Listen Later Jan 13, 2022 83:23


Старый Новый год встречает нас с распростертыми объятиями, а какой праздник обойдется без отличного застолья?! Тут у нас и постоянные гости стола - разговоры про индустрию, CEO-деликатесы и даже что-то футуристичное и необыкновенное. Сегодня к нашему староновогоднему столу пришел гость и будьте уверены у него есть много чего рассказать о 2021 и как следует его проводить! Если вы хотите поделиться своими впечатлениями от выпуска или задать свои вопросы - у нас есть телеграмм канал: http://t.me/javahutpodcast и твиттер https://twitter.com/JavaHutPodcast! Мы ждём ваших подписок и лайков! Ваши комментарии, пожелания и предложения мы с удовольствием принимаем в наши почты и в телеграмм канале. Если вам интересны конкретные темы - мы приготовили для вас таймкоды, которые помогут вам их найти: 00:02:33 Какого это быть CEO компании 00:04:00 Как прошел путь от простого разработчика до сооснователя компании 00:08:30 О мотивации и как не потерять скилл 00:13:25 Про опыт который помогает сейчас 00:16:17 Что поменялось в Testcontainers с появлением компании 00:20:00 На чем зарабатывают AtomicJar 00:26:10 Про Docker, ценовую политику и как это сказалось на Testcontainers 00:38:20 Про ассоциацию технологий со спикерами её продвигающими и нужно ли с этим что-то делать 00:50:30 Про DevTools 2.0, зачем оно надо и причем тут современный гейминг 01:11:15 О том зачем Testcontainers в облаке и какие первые результаты 01:18:20 Поиграем в Дудя#2: Блиц! В выпуске мы обсуждаем ряд материалов и думаем будет полезным собрать все эти ссылки вместе тут: Dev Tools 2.0: https://www.atomicjar.com/2021/12/why-will-2022-be-the-year-of-devtools-2-0/ Альтернативы Docker: https://www.atomicjar.com/2021/10/docker-on-windows-and-macos/ Фильм "The Hummingbird Project": https://www.imdb.com/title/tt6866224 Ведущие: Рома Меерсон twitter: @Homich1991 Женя Никифоров twitter: @Baron_Oren Гость: Сергей Егоров twitter: @bsideup Music: https://www.purple-planet.com

ceo no way home docker devtools testcontainers hummingbird project atomicjar
Happy Path Programming
#50 Testcontainers (Like Uber but for Integration Tests) with Sergei Egorov

Happy Path Programming

Play Episode Listen Later Dec 17, 2021 65:26


Testcontainers are one of James' favorite modern technologies and in this episode we chat with Sergei Egorov, one of the project creators. We learn about what Testcontainers are and the new Testcontainers Cloud service created by Sergei's new company, AtomicJar. Discuss this episode: https://discord.gg/nPa76qF

uber sergei testcontainers atomicjar integration tests
Dev Interrupted
Under the Lid: How AtomicJar is Reshaping Testcontainers

Dev Interrupted

Play Episode Listen Later Dec 11, 2021 38:01 Transcription Available


Let's get nerdy with it. On this week's episode of Dev Interrupted, Dan gets technical with Sergei Egorov, co-founder and CEO of AtomicJar. With the mission to make integrated testing simpler and easier, AtomicJar created the Testcontainers Cloud which allows developers to test their code against real dependencies, not mocks. Today, Testcontainers powers over a million builds per month, helping developers build and release their software with confidence.Dan and Sergei also talk about the difficulty of finding time to code once you become a CEO, the challenges of building a product for developers, and the culture differences between Russian devs and U.S. devs. If you're a developer or enjoy learning about dev tools, this is the episode for you!AtomicJar's website: https://www.atomicjar.comJoin our Discord Community ►► discord.gg/devinterruptedOur Website ►► devinterrupted.com/Want to try LinearB?  Book a LinearB Demo and use the "Dev Interrupted Podcast" discount code.Have 60 seconds? Review the show on Apple Podcasts

ceo russian reshaping sergei linearb testcontainers atomicjar
Les Cast Codeurs Podcast
LCC 267 - Lagom efface sa dette technique

Les Cast Codeurs Podcast

Play Episode Listen Later Nov 15, 2021 76:33


Antonio et Emmanuel discutent Microsoft et Java, cryostat, Java 17, Micronaut, Quarkus, Play framework, Lagom, Amazon, CORS, CSS (si si), Hibernate Reactive, AtomicJar, canary, amplification algorithmique. Enregistré le 12 novembre 2021 Téléchargement de l'épisode LesCastCodeurs-Episode–267.mp3 News Langages Blog sur les extraits de code dans les JavaDocs (18 Oct 2021) C'est plus agréable à utiliser que les balises pre, pas besoin d'escaping (pour < et >), l'espace à gauche est normalisé On peut mettre en valeur certaines portion, ou remplacer par une expression régulière certains bouts Et on peut également externaliser d'où vient l'extrait de code, au lieu de le mettre dans la JavaDoc, on peut référencer une région de son vrai code. Donc au moins, on est sûr que c'est du code valide et qui compile évidemment Gunnar explique comment reprendre le code provenant de nos classes de test, pour le faire apparaître dans les JavaDocs, créant ainsi une vraie documentation “exécutable” Compress class space (27 Mars 2019) compressed object ou class pointer sur 64buts en 32 bits vis adresse relative due adresse relative, la Klass structure dans le metaspace doit être mémoire contiguë et pré allouée initialement (risque de non reallocation si mémoire libre non contiguë ) Donc le classpart et le non class part séparés dans le meta space. Klass is 32G max et contiguë et la klass part est appelé compressed class space Par défaut 1G mais configurable jusqu'à 3G. C'est virtual mémoire, juste une réservation. 1K pas classe environ donc 1000000 de classes max Que quand on utilise compressed oops Que pour Java heap size de 32G max Cryostat 2.0 (18 Oct 2021) Fournit une API sécurisée pour profiler et monitored les applis Java dans les containers avec Java Flight Recorder Cryostat peut récupérer stoquer et analyser les enregistrements flight recorder de containers Ensuite consommé par graphana ou l.appli JDK Mission Control desktop Fichier reste local au container par défaut donc pas pratique Connection via JMX directe pas pratique ni secure par défaut Cryostat récupère les recording via HTTPS A un opérateur kubernetes Etc Microsoft augmente ses investissements dans Java. (4 Nov 2021) Microsoft rejoints le JCP Travaille sur VSCode for Java avec Red Hat Est OK avec le LTS passant à 2 ans et va aider à supporter ces releases plus fréquentes Librairies Micronaut 3.1 (11 Oct 2021) support d'applications utilisant JDK 17 améliorations d'injections de dependances (repeatable scopes, primitive beans, etc) les classes générées sont plus petites et amélioration de consommation mémoire sous GraalVM routes HTTP par regexp random port binding (pour les conflits de tests) Changement certificats TLs via refresh sans arreter le serveur Kotlin coroutine supportées dans micronaut data extension de la couverture de support JPA (e.g. attribute converter) support des informers Kubernetes via le Kubernetes SDK integration Oracle Coherence sortie du mode preview Quarkus 2.4 (27 Oct 2021) Hibernate Reactive 1.0.0.Final Introducing Kafka Streams DevUI (c'est cool pour développer ca et savoir ce qui se passe Support continuous testing for multi module projects Support AWT image resize via new AWT extension Lightbend lâche Play Framework (20 Oct 2021) lightbend construit sur Scala, akka, et play framework C'est le moment de la 2.0 je crois Mais avec le cloud, ils veulent se focaliser sur les systèmes distribués Akka Open Source et Akka Serverless (leur PaaS) Laisse Play à la,communité et lightbend arrête d'investir dedans Dans une orga séparée Besoin de sponsors et de contributeurs Question: ils n'avaient pas déjà arrêté Scala? Lightbend déveste de Lagom aussi (27 Oct 2021) Lagom effacé par akka Platform'et Akka Serverless Trop de contraintes limitantes dans le framework Mais si client de Lightbend, supporté sur Lagom mais sans nouvelle fonctionnalité Infrastructure Installer et utiliser podman-machine sur macOS (19 Oct 2021) La virtualisation s'appuie sur qemu et met en place une VM dans laquelle les pods tournent. Podman Machine pour installer une VM linux avec les outils fonctionne aussi sous linux pour ceux qu ne supportent pas podman ou pour sandboxer fonctionne sous M1 homebrew pour l'installation comme docker machine avant en gros il y a aussi une belle présentation de Devoxx France Cloud Amazon déclaré la guerre à Microsoft en utilisant les arguments “Proprietaire” (28 Oct 2021) Aurora a un font qui parler protocole SQL server (Babelfish pour Aurora PostgreSQL). Et convertit les T-SQL Open source the t sql vers Postgres (debug). Sous license ASL Pas tout open sourcé encore Web CORS expliqué (12 Oct 2021) inclue images d'autres sites, c'est l'origine les cookies, credeitials etc etaient envoyés yahoo mail pouvait filer les credentials des utilisateurs une iFrame pouvait lire le contenu d'une autre iFrame (Netscape met en place le Cross-Frame Scripting) Access-Control-Allow-Origin: * est ok si pas de données privées Rendre une page HTML brute jolie en 100 caractères de CSS (16 Oct 2021) basique mais expliqué ligne par ligne E.g. 60–80 caractères pour la lecture Et 100 bytes de plus pour améliorer Data elasticsearch 8.0 will require java 17 (3 Nov 2021) definitely easier for something standalone than a library or anything that needs to share the JDK with all its apps PR GitHub Hibernate Reactive 1.0.0, ça vaut le coup ? (27 Oct 2021) PostgreSQL, MySQL, MariaDB, Db2, SQL Server, and CockroachDB bases de donnés désignées pour des interactions classiques Donc les constructions haut niveau ont tendances à être limitées par le protocole sous-jacent ce qui ne se voyait pas ou peu en JDBC utiliser HR si votre appli est déjà réactive au cœur (e.g. RESTEasy reactive dans Quarkus ou une appli Vert.x) Compareperfs acec techempower mais avec angle latence à un volume donné et et pas throughout max 20 requêtes d'affilée 20k request/s -> 35k sous 10ms de latence. C'est la valeur relative qui est intéressante Une requête et du processing pour rendre au client, peu de différence Toruhghput tend à être meilleur Amélioration de réactive sur un an Un vidéo cast sur le sujet Outillage AtomicJar se lance dans une offre Cloud (04 Nov 2021) les containers de test containers ne tournent plus en local Mais dans le cloud de AtomicJar A plus de spores source qu'une machine locale typique (2 cores et 8GB ram pour la docker machine) peut utiliser la machine quand les tests tournent Pour CI limitées vs containers ou les cloud IDE pour pas trop dépenser Pas de problème avec M1 Un petit binaire à installer (eg via curl) TestContainers et Quarkus: TestContainer Cloud fonctionne avec Dev Service (les containers lancés et configurés automatiquement) Encore en cours de développement (beta privée et on peut demander invitation) Méthodologies Canary releases ou avoir des testeurs (04 Nov 2021) canary release est une release en prod mais sur un petit sous ensemble des utilisateurs Peut aider a voir si une nouvelle fonctionnalité intéresse les utilisateurs avant de commiter sur le long terme Toujours option du retour arrière Donc peut on réduire les tests internes ? Risque de réputation ou abandon utilisateur (acquisition et rétentions sont chères) Test automatisés compréhensifs permettent le risque de canary Test exploratoires pour compléter les tests automatiques Loi, société et organisation Le droit à decompiler pour corriger des erreurs confirmé légal (21 Oct 2021) arrêt du 6 octobre 2021 Pour corriger une erreur affectant le fonctionnement y compris via la désactivation d'une fonction affectant le bon fonctionnement de l'application Influence de l'amplificartion algorithmique sur le contenu politique (21 Octo 2021) les recommendations algorithmiques amplifient-elle le contenu politique ? dans le cas des timeline organisées algorithmiquement et pas reverse chronologique Est-ce que ça varie entre partis politiques ou groups politiques Des sources de nouvelles plus amplifiées que d'autre Les élus sont plus amplifiés que le contenu politique général Pas d'amplification particulière d.individus ces d'autres au sein du même parti ???? La,droite tend à avoir une amplification plus importante que la gauche Les sources de nouvelles orientées à droite sont aussi plus amplifiées que celles de gauche La méthodologie est détaillée sur par exemple ce qu'est un journal de droite Pourquoi c'est amplifié différemment est une question plus difficile à répondre Amplification n'est pas mauvaise par défaut mais elle l'est si elle amène à un traitement préférentiel du à l'algorithme (vs comment les gens interagissent sur la plateforme) Le PDF de l'étude intégrale Conférences DevFest Lille le 19 novembre 2021 Devoxx France du 20 au 22 avril 2021 SunnyTech les 30 juin et 1er juillet 2022 à 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/

BadGeek
Les Cast Codeurs n°267 du 15/11/21 - LCC 267 - Lagom efface sa dette technique

BadGeek

Play Episode Listen Later Nov 15, 2021 76:33


Antonio et Emmanuel discutent Microsoft et Java, cryostat, Java 17, Micronaut, Quarkus, Play framework, Lagom, Amazon, CORS, CSS (si si), Hibernate Reactive, AtomicJar, canary, amplification algorithmique. Enregistré le 12 novembre 2021 Téléchargement de l'épisode [LesCastCodeurs-Episode-267.mp3](https://traffic.libsyn.com/lescastcodeurs/LesCastCodeurs-Episode-267.mp3) ## News ### Langages [Blog sur les extraits de code dans les JavaDocs](https://www.morling.dev/blog/executable-javadoc-code-snippets/) (18 Oct 2021) * C'est plus agréable à utiliser que les balises pre, pas besoin d'escaping (pour < et >), l'espace à gauche est normalisé * On peut mettre en valeur certaines portion, ou remplacer par une expression régulière certains bouts * Et on peut également externaliser d'où vient l'extrait de code, au lieu de le mettre dans la JavaDoc, on peut référencer une région de son vrai code. * Donc au moins, on est sûr que c'est du code valide et qui compile évidemment * Gunnar explique comment reprendre le code provenant de nos classes de test, pour le faire apparaître dans les JavaDocs, créant ainsi une vraie documentation “exécutable” [Compress class space](https://stuefe.de/posts/metaspace/what-is-compressed-class-space/) (27 Mars 2019) * compressed object ou class pointer sur 64buts en 32 bits vis adresse relative * due adresse relative, la Klass structure dans le metaspace doit être mémoire contiguë et pré allouée initialement (risque de non reallocation si mémoire libre non contiguë ) * Donc le classpart et le non class part séparés dans le meta space. Klass is 32G max et contiguë et la klass part est appelé compressed class space * Par défaut 1G mais configurable jusqu'à 3G. C'est virtual mémoire, juste une réservation. * 1K pas classe environ donc 1000000 de classes max * Que quand on utilise compressed oops * Que pour Java heap size de 32G max [Cryostat 2.0](https://developers.redhat.com/articles/2021/10/18/announcing-cryostat-20-jdk-flight-recorder-containers) (18 Oct 2021) * Fournit une API sécurisée pour profiler et monitored les applis Java dans les containers avec Java Flight Recorder * Cryostat peut récupérer stoquer et analyser les enregistrements flight recorder de containers * Ensuite consommé par graphana ou l.appli JDK Mission Control desktop * Fichier reste local au container par défaut donc pas pratique * Connection via JMX directe pas pratique ni secure par défaut * Cryostat récupère les recording via HTTPS * A un opérateur kubernetes * Etc [Microsoft augmente ses investissements dans Java](https://devblogs.microsoft.com/java/microsoft-deepens-its-investments-in-java/). (4 Nov 2021) * Microsoft rejoints le [JCP](https://jcp.org/) * Travaille sur VSCode for Java avec Red Hat * Est OK avec le LTS passant à 2 ans et va aider à supporter ces releases plus fréquentes ### Librairies [Micronaut 3.1](https://micronaut.io/2021/10/11/micronaut-framework-released/) (11 Oct 2021) * support d'applications utilisant JDK 17 * améliorations d'injections de dependances (repeatable scopes, primitive beans, etc) * les classes générées sont plus petites et amélioration de consommation mémoire sous GraalVM * routes HTTP par regexp * random port binding (pour les conflits de tests) * Changement certificats TLs via refresh sans arreter le serveur * Kotlin coroutine supportées dans micronaut data * extension de la couverture de support JPA (e.g. attribute converter) * support des informers Kubernetes via le Kubernetes SDK * integration Oracle Coherence sortie du mode preview [Quarkus 2.4](https://quarkus.io/blog/quarkus-2-4-0-final-released/) (27 Oct 2021) * Hibernate Reactive 1.0.0.Final * Introducing Kafka Streams DevUI (c'est cool pour développer ca et savoir ce qui se passe * Support continuous testing for multi module projects * Support AWT image resize via new AWT extension [Lightbend lâche Play Framework](https://www.lightbend.com/blog/on-the-future-of-play-framework) (20 Oct 2021) * lightbend construit sur Scala, akka, et play framework * C'est le moment de la 2.0 je crois * Mais avec le cloud, ils veulent se focaliser sur les systèmes distribués * Akka Open Source et Akka Serverless (leur PaaS) * Laisse Play à la,communité et lightbend arrête d'investir dedans * Dans une orga séparée * Besoin de sponsors et de contributeurs * Question: ils n'avaient pas déjà arrêté Scala? [Lightbend déveste de Lagom aussi](https://discuss.lightbend.com/t/the-future-of-lagom/8962) (27 Oct 2021) * Lagom effacé par akka Platform'et Akka Serverless * Trop de contraintes limitantes dans le framework * Mais si client de Lightbend, supporté sur Lagom mais sans nouvelle fonctionnalité ### Infrastructure [Installer et utiliser podman-machine sur macOS](https://blog.while-true-do.io/podman-machine/) (19 Oct 2021) * La virtualisation s'appuie sur qemu et met en place une VM dans laquelle les pods tournent. * Podman Machine pour installer une VM linux avec les outils * fonctionne aussi sous linux pour ceux qu ne supportent pas podman ou pour sandboxer * fonctionne sous M1 * homebrew pour l'installation * comme docker machine avant en gros * [il y a aussi une belle présentation de Devoxx France](https://www.youtube.com/watch?v=pUFIG2AMDhg) ### Cloud [Amazon déclaré la guerre à Microsoft en utilisant les arguments “Proprietaire”](https://aws.amazon.com/blogs/aws/goodbye-microsoft-sql-server-hello-babelfish/) (28 Oct 2021) * Aurora a un font qui parler protocole SQL server ([Babelfish pour Aurora PostgreSQL](https://aws.amazon.com/fr/rds/aurora/babelfish/)). * Et convertit les T-SQL * Open source the t sql vers Postgres (debug). Sous license ASL * Pas tout open sourcé encore ### Web [CORS expliqué](https://jakearchibald.com/2021/cors/) (12 Oct 2021) * inclue images d'autres sites, c'est l'origine * les cookies, credeitials etc etaient envoyés * yahoo mail pouvait filer les credentials des utilisateurs * une iFrame pouvait lire le contenu d'une autre iFrame (Netscape met en place le Cross-Frame Scripting) * `Access-Control-Allow-Origin: *` est ok si pas de données privées [Rendre une page HTML brute jolie en 100 caractères de CSS](https://www.swyx.io/css-100-bytes) (16 Oct 2021) * basique mais expliqué ligne par ligne * E.g. 60-80 caractères pour la lecture * Et 100 bytes de plus pour améliorer ### Data [elasticsearch 8.0 will require java 17](https://twitter.com/xeraa/status/1455980076001071106) (3 Nov 2021) * definitely easier for something standalone than a library or anything that needs to share the JDK with all its apps * [PR GitHub](https://github.com/elastic/elasticsearch/pull/79873) [Hibernate Reactive 1.0.0, ça vaut le coup ?](https://in.relation.to/2021/10/27/hibernate-reactive-performance/) (27 Oct 2021) * PostgreSQL, MySQL, MariaDB, Db2, SQL Server, and CockroachDB * bases de donnés désignées pour des interactions classiques * Donc les constructions haut niveau ont tendances à être limitées par le protocole sous-jacent ce qui ne se voyait pas ou peu en JDBC * utiliser HR si votre appli est déjà réactive au cœur (e.g. RESTEasy reactive dans Quarkus ou une appli Vert.x) * Compareperfs acec techempower mais avec angle latence à un volume donné et et pas throughout max * 20 requêtes d'affilée 20k request/s -> 35k sous 10ms de latence. C'est la valeur relative qui est intéressante * Une requête et du processing pour rendre au client, peu de différence * Toruhghput tend à être meilleur * Amélioration de réactive sur un an * [Un vidéo cast sur le sujet](https://youtu.be/VGAnVX1lCxg) ### Outillage [AtomicJar se lance dans une offre Cloud](https://www.atomicjar.com/2021/11/announcing-testcontainers-cloud/) (04 Nov 2021) * les containers de test containers ne tournent plus en local * Mais dans le cloud de AtomicJar * A plus de spores source qu'une machine locale typique (2 cores et 8GB ram pour la docker machine) * peut utiliser la machine quand les tests tournent * Pour CI limitées vs containers ou les cloud IDE pour pas trop dépenser * Pas de problème avec M1 * Un petit binaire à installer (eg via curl) * TestContainers et Quarkus: TestContainer Cloud fonctionne avec Dev Service (les containers lancés et configurés automatiquement) * Encore en cours de développement (beta privée et on peut demander invitation) ### Méthodologies [Canary releases ou avoir des testeurs](https://www.infoq.com/articles/canary-releases-testing/) (04 Nov 2021) * canary release est une release en prod mais sur un petit sous ensemble des utilisateurs * Peut aider a voir si une nouvelle fonctionnalité intéresse les utilisateurs avant de commiter sur le long terme * Toujours option du retour arrière * Donc peut on réduire les tests internes ? * Risque de réputation ou abandon utilisateur (acquisition et rétentions sont chères) * Test automatisés compréhensifs permettent le risque de canary * Test exploratoires pour compléter les tests automatiques ### Loi, société et organisation [Le droit à decompiler pour corriger des erreurs confirmé légal](https://www.legalis.net/actualite/le-droit-a-decompiler-un-logiciel-pour-corriger-des-erreurs-confirme-par-la-cjue/) (21 Oct 2021) * arrêt du 6 octobre 2021 * Pour corriger une erreur affectant le fonctionnement y compris via la désactivation d'une fonction affectant le bon fonctionnement de l'application [Influence de l'amplificartion algorithmique sur le contenu politique](https://blog.twitter.com/en_us/topics/company/2021/rml-politicalcontent) (21 Octo 2021) * les recommendations algorithmiques amplifient-elle le contenu politique ? * dans le cas des timeline organisées algorithmiquement et pas reverse chronologique * Est-ce que ça varie entre partis politiques ou groups politiques * Des sources de nouvelles plus amplifiées que d'autre * Les élus sont plus amplifiés que le contenu politique général * Pas d'amplification particulière d.individus ces d'autres au sein du même parti ???? * La,droite tend à avoir une amplification plus importante que la gauche * Les sources de nouvelles orientées à droite sont aussi plus amplifiées que celles de gauche * La méthodologie est détaillée sur par exemple ce qu'est un journal de droite * Pourquoi c'est amplifié différemment est une question plus difficile à répondre * Amplification n'est pas mauvaise par défaut mais elle l'est si elle amène à un traitement préférentiel du à l'algorithme (vs comment les gens interagissent sur la plateforme) * [Le PDF de l'étude intégrale](https://cdn.cms-twdigitalassets.com/content/dam/blog-twitter/official/en_us/company/2021/rml/Algorithmic-Amplification-of-Politics-on-Twitter.pdf) ## Conférences [DevFest Lille le 19 novembre 2021](https://devfest.gdglille.org/) [Devoxx France du 20 au 22 avril 2021](https://www.devoxx.fr/) [SunnyTech les 30 juin et 1er juillet 2022 à Montpellier](https://sunny-tech.io/) ## Nous contacter Soutenez Les Cast Codeurs sur Patreon [Faire un crowdcast ou une crowdquestion](https://lescastcodeurs.com/crowdcasting/) Contactez-nous via twitter sur le groupe Google ou sur le site web

airhacks.fm podcast with adam bien
What are AtomicJar and Testcontainers Cloud?

airhacks.fm podcast with adam bien

Play Episode Listen Later Nov 13, 2021 54:13


An airhacks.fm conversation with Kevin Wittek (@kiview) about: from blockchain back to TestContainers, building the Testcontainers Cloud product, spinning containers in the cloud, Docker Java talks remotely to docker demon, connecting to docker via REST, Podman is a docker replacement, rkt as docker alternative, runc, containerd and opensourcing docker, using testcontainers for PoCs, on-premise programmable API are hard to implement, windows support for test containers is improving, WSL 2, the "semi ephemeral lightweight cloud mock", the new Iron Kobra album Kevin Wittek on twitter: @kiview and AtomicJar

cloud api wsl pocs podman testcontainers atomicjar
Enterprise Java Newscast
Stackd 53. An interview with Richard Fitchner

Enterprise Java Newscast

Play Episode Listen Later Nov 11, 2021 110:20


Recorded Date 10/23/2021 Title: In this episode, Kito, Ian, Danno and Josh welcome special guest Richard Fitchner, Founder JUG Oberpfalz, CEO of XDev, and one of the organizers of JCON. They discuss #lowcode, running a conference, being CEO, #microstream, #jooq, the future of the #playframework, #rapidclipse, XDEV IDE, #tabnine AI IDE plugin, #jreleaser, #testcontainers, and much more. Richard / XDEV XDEV Software https://xdev.software/en/ XAPI - XDEV IDE Framework https://github.com/xdev-software/xapi RapidClipse https://rapidclipse.com/en Server Side Java Payara Cloud now Available https://www.payara.fish/products/payara-cloud/ Microstream https://microstream.one/ Open source announcement https://www.infoq.com/news/2021/09/microstream-5-is-open-source/ jOOQ: The easiest way to write SQL in Java https://www.jooq.org/ Web On the future of Play Framework https://www.lightbend.com/blog/on-the-future-of-play-framework IE11 Countdown Clock https://death-to-ie11.com/ Java Web Start is dead. Long live OpenWebStart! - openwebstart.com https://openwebstart.com/ Developer Tools Github Copilot https://copilot.github.com/ Tabnine - AI plugin https://www.tabnine.com/ Picks JReleaser https://jreleaser.org/ Free Guy (Movie) https://www.imdb.com/title/tt6264654/ TestContainers http://testcontainers.org Book: Procrastinate on Purpose https://www.amazon.com/Procrastinate-on-Purpose-audiobook/dp/B00RV58ZFO/ref=sr_1_1?dchild=1&gclid=CjwKCAjwwsmLBhACEiwANq-tXOE3sB0aAh-2reeOQLzwXxJ52sDFhz9DlcXwJG_ADcWJvXrKCRjmWRoChJcQAvD_BwE&hvadid=241897656186&hvdev=c&hvlocphy=1027142&hvnetw=g&hvqmt=e&hvrand=12176312028861189251&hvtargid=kwd-76000619146&hydadcr=22564_10346437&keywords=procrastinate+on+purpose&qid=1634933460&sr=8-1 AdoptOpenJDK is now Eclipse Tamarin https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/ Events W-JAX Nov 8 – 12, 2021, Munich, Germany or virtual https://jax.de/munich/ JakartaOne LiveStream 2021 - Dec 7th, 2021 in US https://jakartaone.org/ Progressive Web Experience Dec 5-8, 2021, Clearwater, FL, USA or virtual https://progressivewebexperience.io/ Jconf.dev Dec 8-10, 2021, Chicago, IL, USA https://2021.jconf.dev/ Archconf Dec 13-16, Clearwater, FL, USA or virtual https://archconf.com/ CodeMash Jan 11-14, 2022 - Sandusky, OH https://www.codemash.org/ Software Design and Development - May 16-20, 2022 - London, UK https://sddconf.com/    

Les Cast Codeurs Podcast
LCC 263 - Le maillot jaune du salon

Les Cast Codeurs Podcast

Play Episode Listen Later Sep 17, 2021 81:31


Deux A et un E discutent des nouvelles de l'été et de la rentrée. #JDK17 #scala #Kotlin #spring6 #dockerdesktop #fitdesk et encore d'autres sujets. Enregistré le 10 septembre 2022 Téléchargement de l'épisode LesCastCodeurs-Episode–263.mp3 News Langages Au revoir AdopOpenJDK, bonjour Adoptium Eclipse Temurin runtimes pour la partie JDK Grosse test suite License oracle (que Adopt OpenJDK avait perdu) Plus de OpenJ9 ni GraalVM (Oracle recule) mais IBM a Rapatrié OpenJ9 sous le nom IBM Semurin Nouvelles API (backward compatibles ?) Les anciens builds ne seront pas migrés Une interview des architectes Java Java longevity: stability (not removing things), readability, ecosystem' well defined stable interfaces (JVM etc) Nouvelles fonctionnalités : qu'est que qui ne peut être fait en dehors de la plateforme Rendre Java plus extensible (Valhalla) Bloque en Java 8 Perds argent (meilleure mémoire, performance, temps de démarrage, pauses 2ms G1 etc Sécurité Loom Réactive programming pour mieux utiliser le,hardware Mais opposé à certains designs de la JVM (error report, débug, flight recorder) Loom résout le même problème mais en harmonie avec la JVM Api familières Next Vallalah , panama Tail call recursion Etc Article en passant sur l'utilisation du foreign API avec libsodium juste une mention Quoi de neuf dans Scala 3 Scala 3.0.1 Syntaxe given simplifiée (pas de with) @experimental Scala 3.1 Experimental safer exception (checked exceptions mais sans les ennuis) Warnings de compilation plus configurable Multiversal equality (des classes différentes qui peuvent être égales) Kotlin a 10 ans annoncé en 2011, 1.0 en 2016, default Android en 2017 pas theorique, problemes pragmatiques multi plateforme encore experimental, on prend notre temps ajoutent features dans le core lib plus lentement que Java prochains 10 ans: multiplatforme, langage reste relevant, reactive programming et immuabilité du front vers le back Librairies Spring 6 / SpringBoot 3 annoncé à SpringOne Java 17 et plus Intègre Spring Native Tomcat 10 min Jakarta 9 avec cassage de packages Q4 2022 Spring 5.3 et SpringBoot 2.7 seront en maintenance open source entendue Autre lien Quarkus 2.2 et 2.1 2.2 Solidification (utilisabilite, doc, corriger problèmes) Mongodb service binding RESTEasy Réactive automatiquement choisi le thread bloquant ou non bloquant Plus facile quand on vient de RESTEasy Classic Détails ici 2.1 Dev services pour keycloak SQLServer réactive a son extension Kotlin 1.5 Blog post expliquant les nouvelles modularités de quarkus platform Micronaut 3 est sorti RxJava n'est plus un dépendance transitive (choix du moteur réactive streams) Utilisent Reactor en dessous Les annotations ne sont plus héritées par défaut Support Jakarta lifecycle annotations, Jakarta inject Injection qualifiée par le generic des arguments Filtres servers plus consistant (appelés une seule fois) @Introspected ne rajoute plus les metadonnes pour GraalVM, utiliser @ReflectiveAccess Ajout des resources passe du compile time au build time donc utilisez les plugins maven de Micronaut ou faite le vous même Quelques autres breaking changes OpenRewrite règles changent le code pour migrer pour vous Infrastructure Comment debugger son script Ansible --step In-line logging Ansible-lint Ansible-console Ansible debugger Cloud Apple nous protégeras des photos pedophiles mais en ouvrant une brèche sur la sécurité de ses téléphones Une analyse techniques Il y a deux choses distinctes Détecter les images d'une base de donnée pedophile avec du hash sur le téléphone et en alertant quand trop'sonr flaggues positive (avec check humain) Ça s'appuie sur iCloud photo car sur leur cloud mais pas un filtre serveur Base de donnée Baked dans chaque iOS NeuralHash Hash résiste au ré cadrage et autres ajustement de photos Threshold secret sharing Au bout de n rapports remontés, on a capacité à reconstituer la clef de chiffrement Et un troisième mécanisme pour éviter de montrer qu'elles photos intéressent Apple Quid d'une puissance étrangère qui veut rajouter des photos de discidents? Apple dit on n'acceptera pas Où attaque sur le neural hash Détection de nudité et demande si l'nfznt veut voir avec alerte aux parents Ils se donnent quelques mois de retravail au final AWS a 15 ans demarre avec une region, un seul type d'instance et tout ephemère (pas de block storage) peu de feature et peu de details initialement prix a l'heure initialement qui etait innovant Data La guerre de la recherche - Les clients Elastic Search ne seront pas compatible avec OpenSearch Elastic vs AWS - Clash numéro ? Dans ce dernier épisode, Elastic rajoute des controles dans ses APIs clientes pour ne se connecter qu'a ses propres clusters et empêcher de les utiliser avec opensearch. Risques d'incompatibilité Manque de chance ce changement bloque aussi l'utilisation de la version OSS d'elastic-search. De son coté AWS promet de faire son possible pour fournir des drivers qui resteront compatibles Elasticsearch 7.10.2 (la version à partir de laquelle ils ont forké) et OpenSearch Bref la guerre continue … Outillage AtomicJar release TestContainers 1.16 https://www.atomicjar.com/2021/07/testcontainers–1–16–0-release/ Test Containers 1.16.0 est la première release faite par AtomicJar, la société créée par les fondateurs du projet. Meilleure compatibilité Apple M1 Couche de transport utilise Apache HTTP Client 5 au lieu de OKHTTP pour éviter la malediction Kotlin Meilleure stabilité et compatibilité sur Windows pour process natifs Windows et WSL 2 docker.host peut etre configuré dans $HOME/.testcontainers.properties Aussi Support Podman amélioré récemment Docker introduit un nouveau système d'abonnement avec Docker Business et différents niveaux: perso, pro, entreprise etc donc pour les boites de plus de 250 personnes ou qui font 10 millions, tu dois payer pour Docker Desktop Des articles paraissent listant les alternatives à Docker Desktop Sur l'impact macOS How Docker broke in half Les différentes manières de déclarer les dépendances dans son projet Gradle En particulier, les différences entre api, implementation, runtimeOnly, compileOnly, compileOnlyApi Avec des exemples concrets pour bien illustre ces différents scopes. Gradle regroupe les dépendances dans des ensembles appelés des “configurations”. Ces configurations définissent le classpath lors de la compilation, ou le classpath pour le runtime lorsque votre code s'exécute. Gradle définit 3 types de configuration : api, implementation et runtimeOnly La configuration “api” est utilisée pour le classpath compilation et runtime et est exposé aux consommateurs de l'API aussi pour le classpath de compilation et runtime La configuration “implementation” est utilisée pour le classpath de compilation et runtime, mais est exposée pour le consommateur de l'API que pour le classpath au runtime La configuration “runtimeOnly” n'est utilisée que pour le classpath au runtime La configuration “compileOnly” est utilisée pour le classpath de compilation, mais n'est pas exposée pour les consommateurs Enfin la configuration “compileOnlyApi” est utilisée pour le classpath de compliation et est exposée au consommateurs à la compilation de leur code quand les metadata Gradle sont utilisées Méthodologies Opinion sur Googlespeak et les pratiques anti concurrentielles Certains dont l'auteur voient Google utiliser Google search pour placer hautement leur propres services alternatifs. Google flight etc Et les Googlers avec qui il interagissait trouvait ça « absurde » de penser ça. Chercher un hôtel Étude montre que Google offre 41% de sa première page à ses propres propriétés (inclus direct answers ) Direct answer est mis rapide pour l'utilisateur mais prend le contenu 3rd party ( Wikipedia, IMDb etc) et nous fait rester sur une page Google. Googlespeak d'après Orwell. Si le langage ne permet pas d'exprimer , on ne pense pas aux choses. Pas dominant mais succès. Pas barrière à l'entrée , marché, effet réseau qui sont taboo dans un contexte de tension antitrust Encourage à réfréner sa communication écrite. Comme beaucoup de sociétés américaines à cause du processus de discovery Market share -> user preference Apple et epic ont levés des doc similaires mais Apple n'était pas gardé dans sa comm interne. Autour de l'app store. Google dans ses formation mention non monopoly car beaucoup de compétiteurs. Et se defini en termes très large et donc avec de la compétition. (Dans la pub et dans la recuperation d'information. Ils ne font pas d'analyse de marchés (sur les marchés dominants) quand demandés par le congrès. 65% des recherches n'entraînent pas un clic sur un site externe - valeur réfutée par Google C'est une réaction à la judiciarusarion de la vie des entreprises. Loi, société et organisation Matt Asay quitte AWS et reflecte sur l'open source chez AWS pleins de petites equipes et pas de décisions top down en tous cas pas pour open source Un langage specifique a Amazon pour convaincre Les Leadership Principles tendent à ne pas investir dans les elements side de type open source et quand on a deux pizza team, peut on contribuer sans se sentir trop contraint en temps si c'est une équipe de 12 sur 200 equipes ca ne m'étonnes pas trop

BadGeek
Les Cast Codeurs n°263 du 17/09/21 - LCC 263 - Le maillot jaune du salon

BadGeek

Play Episode Listen Later Sep 17, 2021 81:31


Deux A et un E discutent des nouvelles de l'été et de la rentrée. #JDK17 #scala #Kotlin #spring6 #dockerdesktop #fitdesk et encore d'autres sujets. Enregistré le 10 septembre 2021 Téléchargement de l'épisode [LesCastCodeurs-Episode-263.mp3](https://traffic.libsyn.com/lescastcodeurs/LesCastCodeurs-Episode-263.mp3) ## News ### Langages [Au revoir AdopOpenJDK, bonjour Adoptium](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/) * Eclipse Temurin runtimes pour la partie JDK * Grosse test suite * License oracle (que Adopt OpenJDK avait perdu) * Plus de OpenJ9 ni GraalVM (Oracle recule) mais IBM a [Rapatrié OpenJ9 sous le nom IBM Semurin](https://developer.ibm.com/languages/java/semeru-runtimes/) * Nouvelles API (backward compatibles ?) * Les anciens builds ne seront pas migrés [Une interview des architectes Java](https://blogs.oracle.com/javamagazine/java-architects-loom-panama-valhalla?source=:em:nw:mt::::RC_WWMK200429P00043C0036:NSL400176960) * Java longevity: stability (not removing things), readability, ecosystem' well defined stable interfaces (JVM etc) * Nouvelles fonctionnalités : qu'est que qui ne peut être fait en dehors de la plateforme * Rendre Java plus extensible (Valhalla) * Bloque en Java 8 * Perds argent (meilleure mémoire, performance, temps de démarrage, pauses 2ms G1 etc * Sécurité * Loom * Réactive programming pour mieux utiliser le,hardware * Mais opposé à certains designs de la JVM (error report, débug, flight recorder) * Loom résout le même problème mais en harmonie avec la JVM * Api familières * Next * Vallalah , panama * Tail call recursion * Etc [Article en passant sur l'utilisation du foreign API avec libsodium](https://blog.arkey.fr/2021/09/04/a-practical-look-at-jep-412-in-jdk17-with-libsodium/) * juste une mention [Quoi de neuf dans Scala 3](https://medium.com/scala-3/scala-3-whats-changed-since-scala-3-0-0-be0830c059f5) * Scala 3.0.1 * Syntaxe given simplifiée (pas de with) * `@experimental` * Scala 3.1 * Experimental safer exception (checked exceptions mais sans les ennuis) * Warnings de compilation plus configurable * Multiversal equality (des classes différentes qui peuvent être égales) [Kotlin a 10 ans](https://www.infoq.com/articles/kotlin-ten-years-qa/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=mobile) * annoncé en 2011, 1.0 en 2016, default Android en 2017 * pas theorique, problemes pragmatiques * multi plateforme encore experimental, on prend notre temps * ajoutent features dans le core lib plus lentement que Java * prochains 10 ans: multiplatforme, langage reste relevant, reactive programming et immuabilité du front vers le back ### Librairies [Spring 6 / SpringBoot 3 annoncé à SpringOne](https://twitter.com/mraible/status/1433072410182357000?s=21) * Java 17 et plus * Intègre Spring Native * Tomcat 10 min * Jakarta 9 avec cassage de packages * Q4 2022 * Spring 5.3 et SpringBoot 2.7 seront en maintenance open source entendue * [Autre lien](https://spring.io/blog/2021/09/02/a-java-17-and-jakarta-ee-9-baseline-for-spring-framework-6) [Quarkus 2.2 et 2.1](http://quarkus.io/blog/quarkus-2-2-1-final-released/) * 2.2 Solidification (utilisabilite, doc, corriger problèmes) * Mongodb service binding * RESTEasy Réactive automatiquement choisi le thread bloquant ou non bloquant * Plus facile quand on vient de RESTEasy Classic * [Détails ici](https://quarkus.io/blog/resteasy-reactive-smart-dispatch/) * 2.1 * Dev services pour keycloak * SQLServer réactive a son extension * Kotlin 1.5 * [Blog post expliquant les nouvelles modularités de quarkus platform](http://quarkus.io/blog/quarkus-2x-platform-quarkiverse-registry/) [Micronaut 3 est sorti](https://micronaut.io/2021/08/18/micronaut-framework-3-released/) * RxJava n'est plus un dépendance transitive (choix du moteur réactive streams) * Utilisent Reactor en dessous * Les annotations ne sont plus héritées par défaut * Support Jakarta lifecycle annotations, Jakarta inject * Injection qualifiée par le generic des arguments * Filtres servers plus consistant (appelés une seule fois) * `@Introspected` ne rajoute plus les metadonnes pour GraalVM, utiliser `@ReflectiveAccess` * Ajout des resources passe du compile time au build time donc utilisez les plugins maven de Micronaut ou faite le vous même * Quelques autres breaking changes * OpenRewrite règles changent le code pour migrer pour vous ### Infrastructure [Comment debugger son script Ansible](https://zwischenzugs.com/2021/08/27/five-ansible-techniques-i-wish-id-known-earlier/) * `--step` * In-line logging * Ansible-lint * Ansible-console * Ansible debugger ### Cloud [Apple nous protégeras des photos pedophiles mais en ouvrant une brèche sur la sécurité de ses téléphones ](https://www.apple.com/child-safety/) * [Une analyse techniques](https://twitter.com/MathisHammel/status/1425523073806110720) * Il y a deux choses distinctes * Détecter les images d'une base de donnée pedophile avec du hash sur le téléphone et en alertant quand trop'sonr flaggues positive (avec check humain) * Ça s'appuie sur iCloud photo car sur leur cloud mais pas un filtre serveur * Base de donnée Baked dans chaque iOS * NeuralHash * Hash résiste au ré cadrage et autres ajustement de photos * Threshold secret sharing * Au bout de n rapports remontés, on a capacité à reconstituer la clef de chiffrement * Et un troisième mécanisme pour éviter de montrer qu'elles photos intéressent Apple * Quid d'une puissance étrangère qui veut rajouter des photos de discidents? * Apple dit on n'acceptera pas * Où attaque sur le neural hash * Détection de nudité et demande si l'nfznt veut voir avec alerte aux parents * Ils se donnent quelques mois de retravail au final [AWS a 15 ans](https://aws.amazon.com/fr/blogs/aws/happy-15th-birthday-amazon-ec2/) * demarre avec une region, un seul type d'instance et tout ephemère (pas de block storage) * peu de feature et peu de details initialement * prix a l'heure initialement qui etait innovant ### Data [La guerre de la recherche - Les clients Elastic Search ne seront pas compatible avec OpenSearch](https://thenewstack.io/this-week-in-programming-the-elasticsearch-saga-continues/) * Elastic vs AWS - Clash numéro ? Dans ce dernier épisode, Elastic rajoute des controles dans ses APIs clientes pour ne se connecter qu'a ses propres clusters et empêcher de les utiliser avec opensearch. * Risques d'incompatibilité * Manque de chance ce changement bloque aussi l'utilisation de la version OSS d'elastic-search. * De son coté AWS promet de faire son possible pour fournir des drivers qui resteront compatibles Elasticsearch 7.10.2 (la version à partir de laquelle ils ont forké) et OpenSearch * Bref la guerre continue ... ### Outillage [AtomicJar release TestContainers 1.16](https://www.atomicjar.com/2021/07/testcontainers-1-16-0-release/) * https://www.atomicjar.com/2021/07/testcontainers-1-16-0-release/ Test Containers 1.16.0 est la première release faite par AtomicJar, la société créée par les fondateurs du projet. * Meilleure compatibilité Apple M1 * Couche de transport utilise Apache HTTP Client 5 au lieu de OKHTTP pour éviter la malediction Kotlin * Meilleure stabilité et compatibilité sur Windows pour process natifs Windows et WSL 2 * docker.host peut etre configuré dans $HOME/.testcontainers.properties * Aussi Support Podman amélioré récemment [Docker introduit un nouveau système d'abonnement avec Docker Business et différents niveaux: perso, pro, entreprise etc](https://www.docker.com/blog/updating-product-subscriptions/) * donc pour les boites de plus de 250 personnes ou qui font 10 millions, tu dois payer pour Docker Desktop * [Des articles paraissent listant les alternatives à Docker Desktop](https://matt-rickard.com/docker-desktop-alternatives/) * [Sur l'impact macOS](https://twitter.com/idriss_neumann/status/1432943504485986305) * [How Docker broke in half](https://www.infoworld.com/article/3632142/how-docker-broke-in-half.html) [Les différentes manières de déclarer les dépendances dans son projet Gradle](https://medium.com/agorapulse-stories/gradle-configurations-explained-4b9608dd5e35) * En particulier, les différences entre api, implementation, runtimeOnly, compileOnly, compileOnlyApi Avec des exemples concrets pour bien illustre ces différents scopes. * Gradle regroupe les dépendances dans des ensembles appelés des “configurations”. Ces configurations définissent le classpath lors de la compilation, ou le classpath pour le runtime lorsque votre code s'exécute. * Gradle définit 3 types de configuration : api, implementation et runtimeOnly * La configuration “api” est utilisée pour le classpath compilation et runtime et est exposé aux consommateurs de l'API aussi pour le classpath de compilation et runtime * La configuration “implementation” est utilisée pour le classpath de compilation et runtime, mais est exposée pour le consommateur de l'API que pour le classpath au runtime * La configuration “runtimeOnly” n'est utilisée que pour le classpath au runtime * La configuration “compileOnly” est utilisée pour le classpath de compilation, mais n'est pas exposée pour les consommateurs * Enfin la configuration “compileOnlyApi” est utilisée pour le classpath de compliation et est exposée au consommateurs à la compilation de leur code quand les metadata Gradle sont utilisées ### Méthodologies [Opinion sur Googlespeak et les pratiques anti concurrentielles](https://zyppy.com/googlespeak/) * Certains dont l'auteur voient Google utiliser Google search pour placer hautement leur propres services alternatifs. Google flight etc * Et les Googlers avec qui il interagissait trouvait ça « absurde » de penser ça. * Chercher un hôtel * Étude montre que Google offre 41% de sa première page à ses propres propriétés (inclus direct answers ) * Direct answer est mis rapide pour l'utilisateur mais prend le contenu 3rd party ( Wikipedia, IMDb etc) et nous fait rester sur une page Google. * Googlespeak d'après Orwell. Si le langage ne permet pas d'exprimer , on ne pense pas aux choses. * Pas dominant mais succès. Pas barrière à l'entrée , marché, effet réseau qui sont taboo dans un contexte de tension antitrust * Encourage à réfréner sa communication écrite. * Comme beaucoup de sociétés américaines à cause du processus de discovery * Market share -> user preference * Apple et epic ont levés des doc similaires mais Apple n'était pas gardé dans sa comm interne. Autour de l'app store. * Google dans ses formation mention non monopoly car beaucoup de compétiteurs. Et se defini en termes très large et donc avec de la compétition. (Dans la pub et dans la recuperation d'information. * Ils ne font pas d'analyse de marchés (sur les marchés dominants) quand demandés par le congrès. * 65% des recherches n'entraînent pas un clic sur un site externe - valeur réfutée par Google * C'est une réaction à la judiciarusarion de la vie des entreprises. ### Loi, société et organisation [Matt Asay quitte AWS et reflecte sur l'open source chez AWS](https://www.infoworld.com/article/3631376/what-you-dont-know-about-working-with-aws.html) * pleins de petites equipes et pas de décisions top down * en tous cas pas pour open source * Un langage specifique a Amazon pour convaincre * Les Leadership Principles tendent à ne pas investir dans les elements side de type open source * et quand on a deux pizza team, peut on contribuer sans se sentir trop contraint en temps * si c'est une équipe de 12 sur 200 equipes ca ne m'étonnes pas trop ???? [L'Open Source au secours du développeur (et de l'architecte) ?](https://philippart-s.github.io/blog/articles/dev/oss-for-developer/), un retour d'expérience très personnel mais instructif pour ceux qui souhaiteraient se lancer ... * Pourquoi l'Open Source ? * Par où commencer ? * Le choix du premier projet pour sa première contribution? (Le syndrome de l'imposteur) * La première contribution * Rythme de travail ## Outils de l'épisode [Fit Desk](https://thefitdesk.com) * Antonio passe au [Fit Desk](https://thefitdesk.com) pour travailler en pédalant * Promis, il écrira un blog dans 4/6 mois avec du feedback ## Rubrique débutant [RISC vs CISC](https://medium.com/swlh/what-does-risc-and-cisc-mean-in-2020-7b4d42c9a9de) * CISC roi quand la mémoire est chère, on crée des instructions haut niveau plus complexes * RISC paye en mémoire mais simplifie la chaîne de travail (instructions de taille fixe) * RISC plus d'opérations et donc de CPU clock mais pipelining possible * RISC compensé par plus de registers et par la compression d'instructions set * register mémoire interne CPU de taille fixe * CISC fait du hardware hyper threading * RISC philosophiquement fait travailler les compilateurs beaucoup plus mais on ne code plus en assembleur ## Conférences Crowdcast sur devfest Lille et CloudNord par Emmanuel Demey [Pas de Devoxx Belgique en 2021](https://twitter.com/stephan007/status/1432254876436815874?s=21) ## Nous contacter Soutenez Les Cast Codeurs sur Patreon [Faire un crowdcast ou une crowdquestion](https://lescastcodeurs.com/crowdcasting/) Contactez-nous via twitter sur le groupe Google ou sur le site web

TWiT Bits (MP3)
FLOSS Clip: Getting VC Funding for Your Open Source Project

TWiT Bits (MP3)

Play Episode Listen Later Sep 10, 2021 4:44


Richard North of Atomicjar and Testcontainers talks about the experience of getting venture capital funding for open source projects. Dan Lynch and Doc Searls of FLOSS Weekly asks if there are any tips for pitching VC's and investors for your open source project. Also, what impact has the pandemic had on the project? Subscribe and watch the full FLOSS Weekly podcast: https://twit.tv/floss/646 Hosts: Doc Searls and Dan Lynch Guest: Richard North You can find more about TWiT and subscribe to our podcasts at https://podcasts.twit.tv/

vc open source devops floss twit vc funding open source projects open source community dan lynch doc searls testcontainers floss weekly atomicjar richard north podcast about open source
TWiT Bits (Video HD)
FLOSS Clip: Getting VC Funding for Your Open Source Project

TWiT Bits (Video HD)

Play Episode Listen Later Sep 10, 2021 4:45


Richard North of Atomicjar and Testcontainers talks about the experience of getting venture capital funding for open source projects. Dan Lynch and Doc Searls of FLOSS Weekly asks if there are any tips for pitching VC's and investors for your open source project. Also, what impact has the pandemic had on the project? Subscribe and watch the full FLOSS Weekly podcast: https://twit.tv/floss/646 Hosts: Doc Searls and Dan Lynch Guest: Richard North You can find more about TWiT and subscribe to our podcasts at https://podcasts.twit.tv/

vc open source devops floss twit vc funding open source projects open source community dan lynch doc searls testcontainers floss weekly atomicjar richard north podcast about open source
Python Bytes
#249 All of Linux as a Python API

Python Bytes

Play Episode Listen Later Sep 9, 2021 37:12


Watch the live stream: Watch on YouTube About the show Sponsored by us: Check out the courses over at Talk Python And Brian's book too! Special guest: Erik Christiansen Michael #1: Fickling via Oli A Python pickling decompiler and static analyzer Pickled ML models are becoming the data exchange and workflow of ML Analyses pickle files for security risks - It can also remove or insert [malicious] code into pickle files... Created by a security firm, it can be a useful defensive or offensive tool. Perhaps it is time to screen all pickles? >>> import ast >>> import pickle >>> from fickling.pickle import Pickled >>> print(ast.dump(Pickled.load(pickle.dumps([1, 2, 3, 4])).ast, indent=4)) Module( body=[ Assign( targets=[ Name(id='result', ctx=Store())], value=List( elts=[ Constant(value=1), Constant(value=2), Constant(value=3), Constant(value=4)], ctx=Load()))]) You can test for common patterns of malicious pickle files with the --check-safety option You can also safely trace the execution of the Pickle virtual machine without exercising any malicious code with the --trace option. Finally, you can inject arbitrary Python code that will be run on unpickling into an existing pickle file with the --inject option. See Risky Biz's episode for more details. Brian #2: Python Project-Local Virtualenv Management Hynek Schlawack Only works on UNIX-like systems. MacOS, for example. Instructions Install direnv. (ex: brew install direnv) Put this into a .envrc file in your project root: layout python python3.9 Now when you cd into that directory or a subdirectory, your virtual environment is loaded. when you cd out of it, the venv is unloaded Notes: Michael covered direnv on Episode 185. But it wasn't until Hynek spelled it out for me how to use it with venv that I understood the simplicity and power. Not really faster than creating a venv, but when flipping between several projects, it's way faster than deactivating/activating. You can also set env variables per directory (kinda the point of direnv) Erik #3: Testcontainers “Python port for testcontainers-java that allows using docker containers for functional and integration testing. Testcontainers-python provides capabilities to spin up docker containers (such as a database, Selenium web browser, or any other container) for testing. “ (pypi description). Provides cloud native services, many databases and the like (e.g. Google Cloud Pub/Sub, Kafka..) Originally a java project, still a way to go for us python programmers to implement all services Provides an example for use in CI/CD by leveraging Docker in Docker import sqlalchemy from testcontainers.mysql import MySqlContainer with MySqlContainer('mysql:5.7.17') as mysql: engine = sqlalchemy.create_engine(mysql.get_connection_url()) version, = engine.execute("select version()").fetchone() print(version) # 5.7.17 Michael #4: jc via Garett CLI tool and python library that converts the output of popular command-line tools and file-types to JSON or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts. Run it as COMMAND ARGS | jc --COMMAND Commands include: systemctl, passwd, ls, jobs, hosts, du, and cksum. Brian #5: What is Python's Ellipsis Object? Florian Dahlitz Ellipsis or … is a constant defined in Python “Ellipsis: The same as the ellipsis literal “...”. Special value used mostly in conjunction with extended slicing syntax for user-defined container data types.” Can be used in type hinting Func returns two int tuple def return_tuple() -> tuple[int, int]: pass Func returns one or more integer: def return_tuple() -> tuple[int, ...]: pass Replacement for pass: def my_function(): ... Ellipsis in the wild, “if you want to implement a certain feature where you need a non-used literal, you can use the ellipsis object.” FastAPI : Ellipsis used to make parameters required Typer: Same Erik #6: PyTorch Forecasting PyTorch Forecasting aims to ease state-of-the-art timeseries forecasting with neural networks for both real-world cases and research alike. The goal is to provide a high-level API with maximum flexibility for professionals and reasonable defaults for beginners. basically tries to achieve for time series what fast.ai has achieved for computer vision and natural language processing The package is built on PyTorch Lightning to allow training on CPUs, single and multiple GPUs out-of-the-box. Implements of Temporal Fusion Transformers interpretable - can calculate feature importance Hyperparameter tuning with optuna Extras Brian Python 3.10rc2 available. 3.10 is about a month away Michael GoAccess follow up Caffinate more - via Nathan Henrie: you mentioned the MacOS /usr/bin/caffeinate tool on "https://pythonbytes.fm/episodes/show/247/do-you-dare-to-press-.". Follow caffeinate with long-running command to keep awake until done (caffeinate python -c 'import time; time.sleep(10)'), or caffeinate -w "$PID" for an already running task. Python Keyboard (via Sean Tabor) Open source is booming (via Mark Little) FFMPEG.WASM ffmpeg.wasm is a pure WebAssembly via Jim Anderson Everything is fine: PyPI packages Python 3.10 RC 2 is out Joke: 200 == 400

FLOSS Weekly (Video HD)
FLOSS Weekly 646: AtomicJar and Testcontainers - Richard North

FLOSS Weekly (Video HD)

Play Episode Listen Later Sep 8, 2021 64:47


Richard North was the dog that caught the bus when all of a sudden his open source project, Testcontainers, took off, and now has more than a million monthly downloads and developers using it at Netflix, Uber, Spotify, Google and other settings large and small. Doc Searls and Dan Lynch talk with Richard about how he caught the bus he ended up driving, how he set up Testcontainers.org, stood up Atomicjar.com as a running business backed by smart capital, and put learnings to use through a six-year journey that includes a worldwide pandemic that is changing development for everyone. Hosts: Doc Searls and Dan Lynch Guest: Richard North Download or subscribe to this show at https://twit.tv/shows/floss-weekly Think your open source project should be on FLOSS Weekly? Email floss@twit.tv. Thanks to Lullabot's Jeff Robbins, web designer and musician, for our theme music. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: bitwarden.com/twit Compiler - FLOSS

spotify netflix google development north uber testing devops containers kubernetes floss twit open source community club twit dan lynch doc searls jeff robbins lullabot open source development testcontainers floss weekly atomicjar richard north
All TWiT.tv Shows (Video LO)
FLOSS Weekly 646: AtomicJar and Testcontainers

All TWiT.tv Shows (Video LO)

Play Episode Listen Later Sep 8, 2021 64:47


Richard North was the dog that caught the bus when all of a sudden his open source project, Testcontainers, took off, and now has more than a million monthly downloads and developers using it at Netflix, Uber, Spotify, Google and other settings large and small. Doc Searls and Dan Lynch talk with Richard about how he caught the bus he ended up driving, how he set up Testcontainers.org, stood up Atomicjar.com as a running business backed by smart capital, and put learnings to use through a six-year journey that includes a worldwide pandemic that is changing development for everyone. Hosts: Doc Searls and Dan Lynch Guest: Richard North Download or subscribe to this show at https://twit.tv/shows/floss-weekly Think your open source project should be on FLOSS Weekly? Email floss@twit.tv. Thanks to Lullabot's Jeff Robbins, web designer and musician, for our theme music. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: Bitwarden.com/twit Compiler - FLOSS

spotify netflix google development uber testing devops containers kubernetes floss twit open source community club twit dan lynch doc searls jeff robbins lullabot open source development testcontainers floss weekly atomicjar richard north
All TWiT.tv Shows (Video HI)
FLOSS Weekly 646: AtomicJar and Testcontainers

All TWiT.tv Shows (Video HI)

Play Episode Listen Later Sep 8, 2021 64:47


Richard North was the dog that caught the bus when all of a sudden his open source project, Testcontainers, took off, and now has more than a million monthly downloads and developers using it at Netflix, Uber, Spotify, Google and other settings large and small. Doc Searls and Dan Lynch talk with Richard about how he caught the bus he ended up driving, how he set up Testcontainers.org, stood up Atomicjar.com as a running business backed by smart capital, and put learnings to use through a six-year journey that includes a worldwide pandemic that is changing development for everyone. Hosts: Doc Searls and Dan Lynch Guest: Richard North Download or subscribe to this show at https://twit.tv/shows/floss-weekly Think your open source project should be on FLOSS Weekly? Email floss@twit.tv. Thanks to Lullabot's Jeff Robbins, web designer and musician, for our theme music. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: Bitwarden.com/twit Compiler - FLOSS

spotify netflix google development uber testing devops containers kubernetes floss twit open source community club twit dan lynch doc searls jeff robbins lullabot open source development testcontainers floss weekly atomicjar richard north
All TWiT.tv Shows (Video HD)
FLOSS Weekly 646: AtomicJar and Testcontainers

All TWiT.tv Shows (Video HD)

Play Episode Listen Later Sep 8, 2021 64:47


Richard North was the dog that caught the bus when all of a sudden his open source project, Testcontainers, took off, and now has more than a million monthly downloads and developers using it at Netflix, Uber, Spotify, Google and other settings large and small. Doc Searls and Dan Lynch talk with Richard about how he caught the bus he ended up driving, how he set up Testcontainers.org, stood up Atomicjar.com as a running business backed by smart capital, and put learnings to use through a six-year journey that includes a worldwide pandemic that is changing development for everyone. Hosts: Doc Searls and Dan Lynch Guest: Richard North Download or subscribe to this show at https://twit.tv/shows/floss-weekly Think your open source project should be on FLOSS Weekly? Email floss@twit.tv. Thanks to Lullabot's Jeff Robbins, web designer and musician, for our theme music. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: Bitwarden.com/twit Compiler - FLOSS

spotify netflix google development uber testing devops containers kubernetes floss twit open source community club twit dan lynch doc searls jeff robbins lullabot open source development testcontainers floss weekly atomicjar richard north
All TWiT.tv Shows (MP3)
FLOSS Weekly 646: Atomic Jar and Testcontainers

All TWiT.tv Shows (MP3)

Play Episode Listen Later Sep 8, 2021 64:28


Richard North was the dog that caught the bus when all of a sudden his open source project, Testcontainers, took off, and now has more than a million monthly downloads and developers using it at Netflix, Uber, Spotify, Google and other settings large and small. Doc Searls and Dan Lynch talk with Richard about how he caught the bus he ended up driving, how he set up Testcontainers.org, stood up Atomicjar.com as a running business backed by smart capital, and put learnings to use through a six-year journey that includes a worldwide pandemic that is changing development for everyone. Hosts: Doc Searls and Dan Lynch Guest: Richard North Download or subscribe to this show at https://twit.tv/shows/floss-weekly Think your open source project should be on FLOSS Weekly? Email floss@twit.tv. Thanks to Lullabot's Jeff Robbins, web designer and musician, for our theme music. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: Bitwarden.com/twit Compiler - FLOSS

FLOSS Weekly (MP3)
FLOSS Weekly 646: Atomic Jar and Testcontainers - Richard North

FLOSS Weekly (MP3)

Play Episode Listen Later Sep 8, 2021 64:28


Richard North was the dog that caught the bus when all of a sudden his open source project, Testcontainers, took off, and now has more than a million monthly downloads and developers using it at Netflix, Uber, Spotify, Google and other settings large and small. Doc Searls and Dan Lynch talk with Richard about how he caught the bus he ended up driving, how he set up Testcontainers.org, stood up Atomicjar.com as a running business backed by smart capital, and put learnings to use through a six-year journey that includes a worldwide pandemic that is changing development for everyone. Hosts: Doc Searls and Dan Lynch Guest: Richard North Download or subscribe to this show at https://twit.tv/shows/floss-weekly Think your open source project should be on FLOSS Weekly? Email floss@twit.tv. Thanks to Lullabot's Jeff Robbins, web designer and musician, for our theme music. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: Bitwarden.com/twit Compiler - FLOSS

TestTalks | Automation Awesomeness | Helping YOU Succeed with Test Automation
Testcontainers: Making Sense of the Software Testing Landscape with Sergei Egorov

TestTalks | Automation Awesomeness | Helping YOU Succeed with Test Automation

Play Episode Listen Later Aug 29, 2021 35:27


Did you know that, on average, an application touches more than 50 external dependencies? How do you test in this scenario? In this episode, Sergei Egorov will explain how to handle tricky integration testing scenarios. Learn about TestContainers, a cool way to create throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. This will help you test everything from databases to APIs to other microservices in ways you might not have thought possible—at least not quickly. Listen up! ** Never miss another episode ** Get alerted every time a new episode is released and also get access to free exclusive content when you join the Guild! ===>JOIN NOW

A Bootiful Podcast
Richard North and Sergei Egorov on Testcontainers, their new company AtomicJar, and more

A Bootiful Podcast

Play Episode Listen Later Aug 26, 2021 67:29


Hi, Spring fans! Welcome to another installment of _This Week in Spring_! In this installment, Josh Long talks to [Richard North (@whichrich)](https://twitter.com/whichrich) and [Sergei Egorov (@bsideup)](https://twitter.com/bsideup) about Testcontainers, their new company AtomicJars, and software licensing, among other things.

spring north sergei new company josh long testcontainers atomicjar richard north
Cloudy Chat
Integration testing and Testcontainers with Richard North

Cloudy Chat

Play Episode Listen Later Aug 5, 2021 10:34


open north testcontainers integration testing richard north
airhacks.fm podcast with adam bien
CDI Lite, MicroProfile, Helidon, Micronaut and Serverless

airhacks.fm podcast with adam bien

Play Episode Listen Later Jul 25, 2021 54:10


An airhacks.fm conversation with Graeme Rocher (@graemerocher) about: Graeme became a Jakarta EE committer, Micronaut supports large parts of CDI Lite, the Build Time Extension API, SessionScoped, RequestScoped and ApplicationScoped are going to be part of CDI Lite, splitting the BeanManager interface, the goal of CDI Lite, CDI and immutable infrastructure, using TestContainers to spin out micronaut instances, heavy kubernetes, Google Cloud Run, CDI Lite's main goal is memory efficiency and fast startups, using CDI Lite to write CLI apps, using CDI Lite for IoT, micronaut on IoT devices, Azure functions, AWS Lambda and GraalVM, Micronaut Launch as AWS Lambda, Helidon will use Micronaut Core for CDI Lite injection, Helidon will eliminate reflection with Micronaut contributions, Helidon will be able to use any Micronaut module, the micronaut's pom.xml was simplified, micrometer and MicroProfile, eclipse-ee4j CDI lite, separating business and technology metrics, the battle between standards and de-facto standards, OpenMetrics, OpenCensus and opentelemetry, moving fast and backward compatibility, Graeme Rocher on twitter: @graemerocher

Talk Python To Me - Python conversations for passionate developers
#323: Best practices for Docker in production

Talk Python To Me - Python conversations for passionate developers

Play Episode Listen Later Jul 3, 2021 70:47


You've got your Python API or app running in a Docker container. Great! Are you ready to ship it to that hosted cluster service and head off to production? Not so fast. Have you considered how you'll manage evolving dependencies and addressing security updates over time? Not just for the base OS but for installed packages? How about your pip installed dependencies? Are you running as root? If you don't know, the answer is yes. We'll discuss these issues and many more with Itamar Turner-Trauring on this episode. Links from the show PyCon Talk: youtube.com Docker packaging articles (code TALKPYTHON to get 15% off): pythonspeed.com PSF+JetBrains 2020 Survey: jetbrains.com Give me back my monolith article: craigkerstiens.com TestContainers: github.com SpaceMacs: spacemacs.org Rust bindings for Python: github.com PyOxidizer: pyoxidizer.readthedocs.io ahocorasick_rs: Quickly search for multiple substrings at once: github.com FIL Profiler: pythonspeed.com Free ebook covering this process: pythonspeed.com Talk Python Twilio + Flask course: talkpython.fm/twilio Episode transcripts: talkpython.fm Sponsors Sentry Error Monitoring, Code TALKPYTHON Linode AssemblyAI Talk Python Training

airhacks.fm podcast with adam bien
(fake) reactive programming, project loom, chunked IO

airhacks.fm podcast with adam bien

Play Episode Listen Later Apr 22, 2021 83:23


An airhacks.fm conversation with Lenny Primak (@lprimak) about: no aviation, applying at google and amazon, the online coding assessment at amazon, the lost test at amazon, starting as test engineer at Payara, TestContainers, JUnit 5, project loom impact on reactive programming, the killer use cases for reactive programming, callbacks, promises and async-await in JavaScript, Glassfish grizzly was the origin web server, doubling the work with nonblocking IO, chunking the IO to the size of the buffer, trying to patch the hazelcast, payara enterprise and payara community, hazelcast could be used as zookeeper, payara insight, payara cloud, sun grid engine was the first cloud, ThinWARs vs. Helidon's and quarkus SkimmedJARs, thanks to Bauke Luitsen Scholtz for accepting the JSF contributions, Jakarta EE proxies are serializable, readResolve serializable method, the lombok contributors, the payara contributors, lombok's delombok, apache tapestry, Lenny Primak on twitter: @lprimak

project fake io loom javascript jsf reactive programming junit testcontainers payara
BadGeek
Les Cast Codeurs n°254 du 20/04/21 - LCC 254 - Fission acquisition (80min)

BadGeek

Play Episode Listen Later Apr 20, 2021 80:52


Arnaud et Emmanuel discutent la sortie de Java 16, diverses distributions d'OpenJDK, des outils comme JHipster, JReleaser, la décision de la court suprême dans le procès des API Java entre Google et Oracle et le refactoring de Michael Dell avec la cession de VMWare. Enregistré le 16 avril 2021 Téléchargement de l'épisode [LesCastCodeurs-Episode-254.mp3](https://traffic.libsyn.com/lescastcodeurs/LesCastCodeurs-Episode-254.mp3) ## News ### Langages [Java 16 est sorti](https://mail.openjdk.java.net/pipermail/announce/2021-March/000295.html) * [La version longue des release notes](https://builds.shipilev.net/backports-monitor/release-notes-16.txt) * [Les fonctionnalités préférées des Java Champion](https://blogs.oracle.com/javamagazine/java-champion-favorite-java16-records-vector-arm64-github?source=:em:nw:mt::::RC_WWMK200429P00043:NSL400139911&elq_mid=187945&sh=162609181316181313222609291604350235&cmid=WWMK200429P00043C0022) * [Lombok en conflit avec openJDK sur --add-open](https://github.com/rzwitserloot/lombok/issues/2681) [La plateforme Java moderne de 2021, selon James Ward](https://jamesward.com/2021/03/16/the-modern-java-platform-2021-edition/) * James parle de Java la plateforme, donc y compris ses langages alternatifs, en particulier Kotlin et Scala dont il est fan * Java a l’avantage d’avoir un outillage moderne, aussi bien niveau IDE (Intellij, VS code...) que des librairies de tests (Java, Testcontainers...) * Pour les frameworks les plus utilisés, évidemment Spring vient en tête, mais il mentionne aussi Micronaut (avec l’injection de dépendance à la compilation) et Quarkus (avec son focus sur l’expérience développeur) * James fait la part belle à l’approche “reactive”, en mentionnant par exemple les drivers de base de données R2DBC * Pour continuer sur le thème réactif, il mentionne aussi le reactive streaming (au dessus de Kafka par exemple), mais il parle aussi de CQRS et Event Sourcing, mais aussi les CRDTs * Niveau containeurisation, il cite les initiatives comme Jib, les cloud native Buildpacks, ou les images Distroless, pour faciliter et simplifier le packaging d’applis Java pour les environnements à base de conteneurs * Côté “serverless”, James évoque GraalVM, pour transformer les applis Java en native, pour gagner en temps de premier chargement (le cold start, fréquent dans les environnements serverless) * (Il aurait pu mentionner les approches comme Micronaut avec l’injection de dépendance à la compilation qui éviter une bonne partie du coût de démarrage du framework sous-jacent et diminue donc le cold start) [53 librairies Java pour résoudre vos problèmes](https://emmanuelbernard.com/blog/2021/03/16/53-java-libraries/) * Max Andersen avait demandé sur Twitter de donner des librairies Java utiles et pratiques qui résolvaient des problèmes concrets, Emmanuel a compilé la liste * avec des librairies pour parser / générer du code Java, des structures de données, de conversion de format, pour parser des formats de données, pour le web aussi bien en tant que serveur que pour faire des requêtes, pour les tests de toutes sortes [La migration d'AdoptOpenJDK vers Eclipse Adoptium a commencé](https://blog.adoptium.net/2021/03/eclipse-adoptium-announcement/) [Microsoft annonce sa distribution d'AdoptOpenJDK](https://devblogs.microsoft.com/java/announcing-preview-of-microsoft-build-of-openjdk/) * LTS gratuite et "sans coût" * Support au sens patch jusqu’en 2024 de 11 * Utilisent en interne pour leurs clients et pour eux * Ont aussi une version java 16 arm en preview * utilise les tests adoptium * ça peut devier de OpenDJK en terme de patchs * Eclipse Adoptium pour Java 8 * docker image bientot * Azuul vient de perdre un client ### Librairies [Spring-Boot client app to access an Auth0 protected service (JWT)](https://www.aheritier.net/spring-boot-app-client-of-an-auth0-protected-service-jwt/). [JHipster release v7.0.0](https://www.jhipster.tech/2021/03/21/jhipster-release-7.0.0.html) ### Outils Andrés Almiray annonce la release de... [JReleaser](https://andresalmiray.com/jreleaser-says-hello/), un projet qui permet de facilement livrer un projet Java sur des plateformes comme Homebrew, Snapcraft, Scoop, ou des registries de conteneurs. ### Cloud [AWS announce OpenSearch, une communauté qui forke ElasticSearch et Kibana](https://aws.amazon.com/fr/blogs/opensource/introducing-opensearch/) * OpenSearch (derived from Elasticsearch 7.10.2) and OpenSearch Dashboards (derived from Kibana 7.10.2) * ASL 2.0 * marque OpenSearch avec usage permissif * Amazon OpenSearch Service * Red Hat, SAP, Capital One, and Logz.io * reutilise la marque OpenSearch [que Amazon avait avant pour autre chose](https://github.com/dewitt/opensearch) ### Infrastructure [Pourquoi tous mes serveurs ont un fichier vide de 8 Go?](https://brianschrader.com/archive/why-all-my-servers-have-an-8gb-empty-file/) * rien de pire qu'un linux ou macOS avec zero espace disque, ca part en sucette * donc 8Go pour se donner du temps * ca touche mon égo de developpeur cette solution :) [Docker Desktop for Apple Silicon en preview](https://docs.docker.com/docker-for-mac/apple-m1/) * ils offrent une alternative au framework de virt d'apple qui tourne sur qemu * utilise encore rosetta 2 vu qu'il y a des libs qui utilisent encore intel * fait tourner les images ARM, et sinon ajouter la platform amd64 mais les images amd crashent QEMU parfois * pour qemu: "ping from inside a container to the Internet does not work as expected." LOL [Levée de fond de 23 millions de dollar pour Docker](https://www.docker.com/press-release/Docker-Series-B) * Serie B, ahahah [2ème incendie chez OVH](https://www.dna.fr/faits-divers-justice/2021/03/19/nouvel-incendie-chez-ovh) * Dégagement de fumée de 300 batteries de 25 kg * Sgb1 et 3 coupés temporairement ### Loi, société et organisation [Google chrome révèle le type de données collectées attachées à l’utilisateur.](https://www.forbes.com/sites/zakdoffman/2021/03/20/stop-using-google-chrome-on-apple-iphone-12-pro-max-ipad-and-macbook-pro/) ( + [Google Chrome 90](https://stuffunknown.com/the-big-update-to-google-chrome-will-change-the-way-your-internet-browsing/) ) * Beaucoup plus important que Firefox ou safari. * Google a mis longtemps avant de donner ces infos. * après c’est la course au nombre et beaucoup sont poussées par des fonctionnalités mais cela montre l’approche philosophique différente. * chrome acte comme un super cookie. * j'ai mis edge par defaut sur l'ordi de mon père [Fin du procès Oracle vs Google](https://www.wsj.com/articles/supreme-court-rules-for-google-in-multibillion-dollar-copyright-battle-with-oracle-11617632233?mod=hp_lead_pos1) * les APIs ne sont pas copyrightable * Pas exactement. Ils disent que dans le cas de Google oracle, c’est ok parce que les api sont devenues des choses familières aux développeurs et donc que dans ce cas c’est ok. Il ne se positionnent pas exactement sur api vs implementation * Que les apis comme ça s’éloignent du cœur de la notion de copyright. Concept intéressant. Et d’où la notion de fair use. * Mais ça dépend de comment le code est fait et utilisé * "When a new interface, like an API or a spreadsheet program, first comes on the market, it may attract new users because of its expressive qualities, such as a better visual screen or because of its superior function- ality. As time passes, however, it may be valuable for a dif- ferent reason, namely, because users, including program- mers, are just used to it. They have already learned how to work with it" [Microsoft a regardé ses employés remote et c’est pas beau](https://www.zdnet.com/article/microsoft-revealed-the-latest-truths-about-working-from-home-one-is-truly-disturbing/) * +52% de messagerie instantannée entre minuit et 6 heures * 61% des leaders sont super efficaces vs 38% pour les non leaders * Moins de chances de voir les problèmes en remote * 37% pensent que la société les fait travailelr trop dur et 41% cherchent un nouvel employé * consider how to reduce employee workloads, embrace a balance of synchronous and asynchronous collaboration, and create a culture where breaks are encouraged and respected * Encourager les coupures y compris les vacances [cratedb abandonne l'open core et retourne sur ses racines open source et s’éloigne de la business software license](https://opensource.com/article/21/4/crate-open-source) [Dell vend (encore) VMWare](https://www.lemondeinformatique.fr/actualites/lire-la-scission-avec-vmware-finalisee-fin-2021-selon-dell-82622.html) * vente des 80% detenus * pour rembourser sa dette * independance mieux pour les deux sociétés * "stimuler l'innovation et préserver les synergies" ## Conférences [Mix-IT (virtuel) les 18, 19 et 20 mai 2021](https://mixitconf.org/fr/) * 10 talks de 30 mn + 20mn de Q&A + 10 mn de pause [https://www.devoxx.fr/2021/02/25/preparation-du-programme-de-ledition-2021/](https://www.devoxx.fr/2021/02/25/preparation-du-programme-de-ledition-2021/) * reprend une partie du CfP de l’année dernière. ## Outils de l'épisode [Pourquoi les prix d'AWS lambda sont trop élevés poiur du batch](https://www.infoq.com/articles/aws-lambda-price-change/) [topgrade](https://github.com/r-darwish/topgrade) pour mettre à jour tous vos systèmes de packages. [asdf](https://asdf-vm.com/#/) pour gérer facilement différentes versions de vos outils en lignes de commande (java, maven, gradle, kubectl, help, .....). ## Nous contacter Soutenez Les Cast Codeurs sur Patreon [Faire un crowdcast ou une crowdquestion](https://lescastcodeurs.com/crowdcasting/) Contactez-nous via twitter sur le groupe Google ou sur le site web

Herr Mies will's wissen
HMww35 - Ich packe meinen Testtoolkoffer mit Sandra Parsick

Herr Mies will's wissen

Play Episode Listen Later Apr 27, 2020 85:51


Nach einer „kurzen" Kreativpause meldet sich der Podcast zurück und ich freue mich Sandra Parsick (Twitter) erneut im Podcast begrüßen zu dürfen. Am Anfang sprechen wir über, wie soll es in dieser Zeit anders sein, Corona und remote work. Wer, wie ich, immer mal wieder an Pausen erinnert werden möchte, sollte sich mal Stretchly ansehen. Beim Thema Hackathon sprechen wir auch kurz über Jugend hackt. Wenn ihr hier mehr erfahren wollt, solltet ihr Euch die passende Folge dazu anhören. Beim Thema "Testing" (mit Java) legen wir mit JUnit 5 los und Sandra erklärt uns direkt mal, wie man von JUnit 4 zu JUnit 5 migrieren kann (und was dabei schief gehen kann). Im Anschluss sprechen wir darüber, was JUnit 5 uns neues bietet und welche Features Sandra besonders gefallen. Natürlich gibt es im Java Umfeld noch weitere Bibliothek, die Euch bei der Arbeit unterstützen können. Wir sprechen über AssertJ JavaFaker EqualsVerifier Spock und natürlich Testcontainers (Folge zu Testcontainers) Das Git Repository zu Sandras Talk findet ihr auf GitHub unter https://github.com/sparsick/test-tool-talk. Cross-Promotion: In der erwähnten Schepp&Mies Folge spreche ich mit Christian Schäfer u.a. über Corona und Homeoffice. Buchempfehlung der Folge: Growing Object-Oriented Software With Tests von Steve Freeman und Nat Pryce (Amazon Aufnahmedatum: 21.04.2020

A Bootiful Podcast
Apache Groovy, Testcontainers, and Reactor committer Sergei Egorov

A Bootiful Podcast

Play Episode Listen Later Mar 27, 2020 86:35


Hi Spring fans! In this installment [Josh Long (@starbuxman)](http://twitter.com/starbuxman) talks to fellow Java Champion, Oracle Groundbreaker, and Apache Groovy, Testcontainers, and Reactor committer [Sergei Egorov (@bsideup)](http://twitter.com/bsideup).

airhacks.fm podcast with adam bien
TestContainers, Unit, Integration, System, Load and Stress Testing

airhacks.fm podcast with adam bien

Play Episode Listen Later Dec 21, 2019 58:58


An airhacks.fm conversation with Kevin Wittek (@kiview) about: The Java Blockchain Benchmarking Framework, ironkobra, practicing heavy metal in a hospital, boring but fast Mugen Seiki, Uli Jon Roth and G3, playing together with Uli Jon Roth, the Dodge Charger experience, the Jakarta EE, MicroProfile and Quarkus test approaches, the 3 kubernetes environments, using Jenkins on OpenShift, unit tests, integration tests and system testing, the wad.sh tool for local deployment, using TestContainers to launch PostgreSQL, port forwarding with OpenShift, seamless onboarding with TestContainers, black box integration tests are system tests, convenient system testing with Jakarta EE, kubernetes readiness probes are waiting strategy from test containers, using TestContainers to execute openshift deployments locally, TestContainers is a convenient, object oriented API for docker, in the next, major, TestContainers release the testing and docker remote control are going to be separated, using TestContainers for JPA integration testing, Quarkus and TestContainers, in-process System Testing is for lazy developers, enforcing frequent integrations, kubernetes is a larger problem than an application server, from local scripts, to central Jenkins pipeline, TestContainers always removes all the containers after JVM exit, the reusable container feature, interactive testing environment, unit tests are for classes in project's control, integration tests are for classes outside the project's control, pentagonal architectures, system tests is a blackbox tests, stress tests and performance tests, why REST-assured is not used, performance tests with JMH, using JMH for Blockchain Benchmarking Kevin Wittek on twitter: @kiview on github https://github.com/kiview and Kevin's blog.

javaswag
#3 - Сергей Егоров - Pivotal, Testcontainers, Reactor Type episode Kind page

javaswag

Play Episode Listen Later Nov 4, 2019 76:48


#3 - Сергей Егоров - Pivotal, Testcontainers, Reactor 00:00:49 Доклад про https://github.com/testcontainers/ 00:06:17 Разработка игр 00:09:30 Язык Haxe - https://haxe.org/ - https://www.youtube.com/watch?v=XQLNAx9DGmk 00:14:18 Apache Groovy - https://www.youtube.com/watch?v=Ujuz-D-ekXE 00:16:30 Groovy макрометоды https://github.com/bsideup/MacroGroovy 00:22:50 Первый доклад на английском на 00:25:10 Zeroturnaround JRebel, XRebel 00:30:40 С нуля в облака. Поднять продакшн, пока едет пицца - https://www.youtube.com/watch?v=9lpDjZUGhKA 00:33:25 Берлин, Zalando 00:36:36 История Testcontainers - Перевести сервис на SpringBoot за час 00:40:30 Vivy https://www.vivy.com/ - Стартап - Архитектура за которую не стыдно EventSourcing, CQRS - Выиграть тендер у IBM - Пивотал - это как найти улыбающуюся, поизитивну голову лошади в кровати :) - Liiklus - https://github.com/bsideup/liiklus - Бум ифраструктур, построенных на ивентах - Apache Kafka, Apache Pulsar - 50 микросервисов 00:58:40 Спринг - Офисы Pivotal - Staff Software Engineer - Reactor & Reactive Spring - https://pivotal.io/careers/openings/staff-software-engineer-reactor-reactive-spring/1077260 - Почему выбрали реактивный подход в Vivy - Ownership & trust - Конференция s1p https://springoneplatform.io/ - Java agent to detect blocking calls from non-blocking threads https://github.com/reactor/BlockHound - Доклад от Blizzard https://www.youtube.com/watch?v=xCu73WVg8Ps 00:67:10 Jabel - unlock Javac 12+ syntax when targeting Java 8 - https://github.com/bsideup/jabel 00:70:45 Подкаст Two Devs One Ops https://www.2d1o.ru/ 00:72:10 Никнейм bsideup 00:74:00 Дреды, конфликты в университете Гость - twitter.com/bsideup Телеграм канал t.me/javaswag Чат t.me/javaswag_chat Подкаст записан на конференции https://jokerconf.com/ Голос подкаста - t.me/volyx Продакшн подкаста - t.me/pahaus

airhacks.fm podcast with adam bien
Blockchain, Heavy Metal and Testcontainers

airhacks.fm podcast with adam bien

Play Episode Listen Later Oct 28, 2019 65:48


An airhacks.fm conversation with Kevin Wittek (@kiview) about: typing with 3 on a terminal, 486 for playing DOS games, radio controlled cars for fathers, RC car races with transponders, worldcup in beijing, hawaii, las vegas, tamiya, kyosho, professional competition RC cars by Mugen Seiki, playing civilization-like game, switching from PCs to console gaming, starting with Quick Basic programming at highschool, writing text adventures with Quick Basic and huge if-else blocks, advent calendar with Quick Basic, switching from Quick Basic to Java 1.4, a coffee lover without aeropress, aeropress and aerospace technology, aerobie frizbies, teaching polymorphic dispatches at highschool, who cares about object orientation, bluej programming learning environment, the great scratch IDE, manipulating the ASCII characters might not be the future, sometimes it is better to manipulate the Abstract Syntax Tree (AST) directly, writing a ZIP-compressor in Java, studying in Gelsenkirchen-the Java-focussed university, writing Android software for Museums, Museums don't have money, writing fraud detection services for GData, banking trojan detection was really successful, leading the blockchain research group, having a dream job, lazy loading the PhD topic, assessing the non-functional aspects of a blockchain system, why Groovy is a pragmatic language, Groovy started as an ergonomic version of Java, playing e-guitar at a heavy metal band "Iron Kobra", Rush, Deep Purple, Led Zeppelin, and a bit Metallica, one of the best guitar players is Uli Jon Roth from the German Scorpions band, starting to play guitar with 16, starting with TNT from AC/DC, software engineering is like playing blues, the SoCraTes Conference, the JUnit 5 extension for Docker, the beginnings as TestContainers committer, Richard North was the initiator of the TestContainers project, TestContainers started in a blockchain-related project, TestContainers project was written in Java from the beginning, TestContainers started with JUnit 4 integration, the TestContainers project has actually nothing todo with testing, ephemeral container concept is built-in into the testcontainers, the docker container is going to be removed after the JVM exits, ryuk is a side container which watches the actual container, when the JVM stops sending the heartbeat - ryuk will remove the container, GraalVM might replace Go in the sidecontainer, testcontainers gives strong guarantees about readiness, testcontainer ships with multiple probes / wait strategies: log-based wait strategy, port-based wait strategy, docker health-check strategy, testcontainers ships with container communication API, in the case of a database testcontainer will provide a JDBC-URL, testcontainer can is able to start DB on demand by using the JDBC driver, testcontainer also works with remote Docker daemons, testcontainer is using the REST interface to communicate with Docker, the switch from Netty to OkHTTP, testcontainers relies on Docker Java, hardcoding functionality in a project is the right choice at the beginning, testcontainers has to be refactored into two parts, testcontainer's 2.0 goal are distinct APIs for testing and container orchestration, windows support was a challenge, testcontainers supports windows, linux and MacOS, the testcontainers team is using Macs for local development, azure pipelines is used to test windows, Kevin Wittek on twitter: @kiview, on github https://github.com/kiview and Kevin's blog.

Herr Mies will's wissen
HMww34: Testcontainers mit Kevin Wittek

Herr Mies will's wissen

Play Episode Listen Later May 5, 2019 78:29


Kevin Wittek (Twitter) ist Software-Entwickler bei der codecentric und einer der Maintainer von Testcontainers. Er war auch mal bei autoweird.fm zu Gast. Kevin legt mit einer gewagten These los der wir uns am Anfang etwas länger widmen. Kevin und ich sprechen über die Qualität der Software-Entwicklung und auch der Entwickler in Deutschland. Wir diskutieren über die Ausbildung und die Probleme des fehlenden Praxisbezugs an Universitäten. Natürlich haben wir auch Lösungsvorschläge für die Problematik parat. Wer Interesse an Open Source hat und sich damit mehr beschäftigen will, der sollte bei der Softwerkskammer Ruhrgebiet mal vorbeischauen und den Hackergarten besuchen. Bevor wir uns dann mit Testcontainers beschäftigen, unterhalten wir uns über das Thema Testen und klären, wie wir Unit- und Integrationstests abgrenzen. Wir erwähnen hier auch noch Alternativen zur Testpyramide wie die Honigwabe. Die erwähnte autoweird.fm Folge findet ihr hier. Wir machen dann noch einen kleinen Ausflug zu Integrated Tests bevor es zum eigentlichen Thema kommt. Kevin erklärt mir, wo die Stärken von Testcontainers liegen und wie sich Tests mit Testcontainers von den "klassischen" Integrated Tests unterscheiden. Er gibt uns einen tiefen Blick in die Funktionsweise und erzählt auch, wie er zum Projekt gekommen ist. Am Ende schließen wir nochmal den Kreis zum Einstiegsthema und geben ein paar Tipps, wie man die eigene Codebase mit Hilfe von Testcontainers testen und verbessern kann. Übrigens: Testcontainers gibt es nicht nur für Java. In der GitHub Organisation von Testcontainers gibt es auch Implementierungen für zahlreiche andere Sprachen. Aufnahme vom 22.03.2019