POPULARITY
Dans cet épisode de fin d'année plus relax que d'accoutumée, Arnaud, Guillaume, Antonio et Emmanuel distutent le bout de gras sur tout un tas de sujets. L'acquisition de Confluent, Kotlin 2.2, Spring Boot 4 et JSpecify, la fin de MinIO, les chutes de CloudFlare, un survol des dernieres nouveauté de modèles fondamentaux (Google, Mistral, Anthropic, ChatGPT) et de leurs outils de code, quelques sujets d'architecture comme CQRS et quelques petits outils bien utiles qu'on vous recommande. Et bien sûr d'autres choses encore. Enregistré le 12 décembre 2025 Téléchargement de l'épisode LesCastCodeurs-Episode-333.mp3 ou en vidéo sur YouTube. News Langages Un petit tutoriel par nos amis Sfeiriens montrant comment récupérer le son du micro, en Java, faire une transformée de Fourier, et afficher le résultat graphiquement en Swing https://www.sfeir.dev/back/tutoriel-java-sound-transformer-le-son-du-microphone-en-images-temps-reel/ Création d'un visualiseur de spectre audio en temps réel avec Java Swing. Étapes principales : Capture du son du microphone. Analyse des fréquences via la Transformée de Fourier Rapide (FFT). Dessin du spectre avec Swing. API Java Sound (javax.sound.sampled) : AudioSystem : point d'entrée principal pour l'accès aux périphériques audio. TargetDataLine : ligne d'entrée utilisée pour capturer les données du microphone. AudioFormat : définit les paramètres du son (taux d'échantillonnage, taille, canaux). La capture se fait dans un Thread séparé pour ne pas bloquer l'interface. Transformée de Fourier Rapide (FFT) : Algorithme clé pour convertir les données audio brutes (domaine temporel) en intensités de fréquences (domaine fréquentiel). Permet d'identifier les basses, médiums et aigus. Visualisation avec Swing : Les intensités de fréquences sont dessinées sous forme de barres dynamiques. Utilisation d'une échelle logarithmique pour l'axe des fréquences (X) pour correspondre à la perception humaine. Couleurs dynamiques des barres (vert → jaune → rouge) en fonction de l'intensité. Lissage exponentiel des valeurs pour une animation plus fluide. Un article de Sfeir sur Kotlin 2.2 et ses nouveautés - https://www.sfeir.dev/back/kotlin-2-2-toutes-les-nouveautes-du-langage/ Les guard conditions permettent d'ajouter plusieurs conditions dans les expressions when avec le mot-clé if Exemple de guard condition: is Truck if vehicule.hasATrailer permet de combiner vérification de type et condition booléenne La multi-dollar string interpolation résout le problème d'affichage du symbole dollar dans les strings multi-lignes En utilisant $$ au début d'un string, on définit qu'il faut deux dollars consécutifs pour déclencher l'interpolation Les non-local break et continue fonctionnent maintenant dans les lambdas pour interagir avec les boucles englobantes Cette fonctionnalité s'applique uniquement aux inline functions dont le corps est remplacé lors de la compilation Permet d'écrire du code plus idiomatique avec takeIf et let sans erreur de compilation L'API Base64 passe en version stable après avoir été en preview depuis Kotlin 1.8.20 L'encodage et décodage Base64 sont disponibles via kotlin.io.encoding.Base64 Migration vers Kotlin 2.2 simple en changeant la version dans build.gradle.kts ou pom.xml Les typealias imbriqués dans des classes sont disponibles en preview La context-sensitive resolution est également en preview Les guard conditions préparent le terrain pour les RichError annoncées à KotlinConf 2025 Le mot-clé when en Kotlin équivaut au switch-case de Java mais sans break nécessaire Kotlin 2.2.0 corrige les incohérences dans l'utilisation de break et continue dans les lambdas Librairies Sprint Boot 4 est sorti ! https://spring.io/blog/2025/11/20/spring-boot-4-0-0-available-now Une nouvelle génération : Spring Boot 4.0 marque le début d'une nouvelle génération pour le framework, construite sur les fondations de Spring Framework 7. Modularisation du code : La base de code de Spring Boot a été entièrement modularisée. Cela se traduit par des fichiers JAR plus petits et plus ciblés, permettant des applications plus légères. Sécurité contre les nuls (Null Safety) : D'importantes améliorations ont été apportées pour la "null safety" (sécurité contre les valeurs nulles) à travers tout l'écosystème Spring grâce à l'intégration de JSpecify. Support de Java 25 : Spring Boot 4.0 offre un support de premier ordre pour Java 25, tout en conservant une compatibilité avec Java 17. Améliorations pour les API REST : De nouvelles fonctionnalités sont introduites pour faciliter le versioning d'API et améliorer les clients de services HTTP pour les applications basées sur REST. Migration à prévoir : S'agissant d'une version majeure, la mise à niveau depuis une version antérieure peut demander plus de travail que d'habitude. Un guide de migration dédié est disponible pour accompagner les développeurs. Chat memory management dans Langchain4j et Quarkus https://bill.burkecentral.com/2025/11/25/managing-chat-memory-in-quarkus-langchain4j/ Comprendre la mémoire de chat : La "mémoire de chat" est l'historique d'une conversation avec une IA. Quarkus LangChain4j envoie automatiquement cet historique à chaque nouvelle interaction pour que l'IA conserve le contexte. Gestion par défaut de la mémoire : Par défaut, Quarkus crée un historique de conversation unique pour chaque requête (par exemple, chaque appel HTTP). Cela signifie que sans configuration, le chatbot "oublie" la conversation dès que la requête est terminée, ce qui n'est utile que pour des interactions sans état. Utilisation de @MemoryId pour la persistance : Pour maintenir une conversation sur plusieurs requêtes, le développeur doit utiliser l'annotation @MemoryId sur un paramètre de sa méthode. Il est alors responsable de fournir un identifiant unique pour chaque session de chat et de le transmettre entre les appels. Le rôle des "scopes" CDI : La durée de vie de la mémoire de chat est liée au "scope" du bean CDI de l'IA. Si un service d'IA a un scope @RequestScoped, toute mémoire de chat qu'il utilise (même via un @MemoryId) sera effacée à la fin de la requête. Risques de fuites de mémoire : Utiliser un scope large comme @ApplicationScoped avec la gestion de mémoire par défaut est une mauvaise pratique. Cela créera une nouvelle mémoire à chaque requête qui ne sera jamais nettoyée, entraînant une fuite de mémoire. Bonnes pratiques recommandées : Pour des conversations qui doivent persister (par ex. un chatbot sur un site web), utilisez un service @ApplicationScoped avec l'annotation @MemoryId pour gérer vous-même l'identifiant de session. Pour des interactions simples et sans état, utilisez un service @RequestScoped et laissez Quarkus gérer la mémoire par défaut, qui sera automatiquement nettoyée. Si vous utilisez l'extension WebSocket, le comportement change : la mémoire par défaut est liée à la session WebSocket, ce qui simplifie grandement la gestion des conversations. Documentation Spring Framework sur l'usage JSpecify - https://docs.spring.io/spring-framework/reference/core/null-safety.html Spring Framework 7 utilise les annotations JSpecify pour déclarer la nullabilité des APIs, champs et types JSpecify remplace les anciennes annotations Spring (@NonNull, @Nullable, @NonNullApi, @NonNullFields) dépréciées depuis Spring 7 Les annotations JSpecify utilisent TYPE_USE contrairement aux anciennes qui utilisaient les éléments directement L'annotation @NullMarked définit par défaut que les types sont non-null sauf si marqués @Nullable @Nullable s'applique au niveau du type usage, se place avant le type annoté sur la même ligne Pour les tableaux : @Nullable Object[] signifie éléments nullables mais tableau non-null, Object @Nullable [] signifie l'inverse JSpecify s'applique aussi aux génériques : List signifie liste d'éléments non-null, List éléments nullables NullAway est l'outil recommandé pour vérifier la cohérence à la compilation avec la config NullAway:OnlyNullMarked=true IntelliJ IDEA 2025.3 et Eclipse supportent les annotations JSpecify avec analyse de dataflow Kotlin traduit automatiquement les annotations JSpecify en null-safety native Kotlin En mode JSpecify de NullAway (JSpecifyMode=true), support complet des tableaux, varargs et génériques mais nécessite JDK 22+ Quarkus 3.30 https://quarkus.io/blog/quarkus-3-30-released/ support @JsonView cote client la CLI a maintenant la commande decrypt (et bien sûr au runtime via variables d'environnement construction du cache AOT via les @IntegrationTest Un autre article sur comment se préparer à la migration à micrometer client v1 https://quarkus.io/blog/micrometer-prometheus-v1/ Spock 2.4 est enfin sorti ! https://spockframework.org/spock/docs/2.4/release_notes.html Support de Groovy 5 Infrastructure MinIO met fin au développement open source et oriente les utilisateurs vers AIStor payant - https://linuxiac.com/minio-ends-active-development/ MinIO, système de stockage objet S3 très utilisé, arrête son développement actif Passage en mode maintenance uniquement, plus de nouvelles fonctionnalités Aucune nouvelle pull request ou contribution ne sera acceptée Seuls les correctifs de sécurité critiques seront évalués au cas par cas Support communautaire limité à Slack, sans garantie de réponse Étape finale d'un processus débuté en été avec retrait des fonctionnalités de l'interface admin Arrêt de la publication des images Docker en octobre, forçant la compilation depuis les sources Tous ces changements annoncés sans préavis ni période de transition MinIO propose maintenant AIStor, solution payante et propriétaire AIStor concentre le développement actif et le support entreprise Migration urgente recommandée pour éviter les risques de sécurité Alternatives open source proposées : Garage, SeaweedFS et RustFS La communauté reproche la manière dont la transition a été gérée MinIO comptait des millions de déploiements dans le monde Cette évolution marque l'abandon des racines open source du projet IBM achète Confluent https://newsroom.ibm.com/2025-12-08-ibm-to-acquire-confluent-to-create-smart-data-platform-for-enterprise-generative-ai Confluent essayait de se faire racheter depuis pas mal de temps L'action ne progressait pas et les temps sont durs Wallstreet a reproché a IBM une petite chute coté revenus software Bref ils se sont fait rachetés Ces achats prennent toujuors du temps (commission concurrence etc) IBM a un apétit, apres WebMethods, apres Databrix, c'est maintenant Confluent Cloud L'internet est en deuil le 18 novembre, Cloudflare est KO https://blog.cloudflare.com/18-november-2025-outage/ L'Incident : Une panne majeure a débuté à 11h20 UTC, provoquant des erreurs HTTP 5xx généralisées et rendant inaccessibles de nombreux sites et services (comme le Dashboard, Workers KV et Access). La Cause : Il ne s'agissait pas d'une cyberattaque. L'origine était un changement interne des permissions d'une base de données qui a généré un fichier de configuration ("feature file" pour la gestion des bots) corrompu et trop volumineux, faisant planter les systèmes par manque de mémoire pré-allouée. La Résolution : Les équipes ont identifié le fichier défectueux, stoppé sa propagation et restauré une version antérieure valide. Le trafic est revenu à la normale vers 14h30 UTC. Prévention : Cloudflare s'est excusé pour cet incident "inacceptable" et a annoncé des mesures pour renforcer la validation des configurations internes et améliorer la résilience de ses systèmes ("kill switches", meilleure gestion des erreurs). Cloudflare encore down le 5 decembre https://blog.cloudflare.com/5-december-2025-outage Panne de 25 minutes le 5 décembre 2025, de 08:47 à 09:12 UTC, affectant environ 28% du trafic HTTP passant par Cloudflare. Tous les services ont été rétablis à 09:12 . Pas d'attaque ou d'activité malveillante : l'incident provient d'un changement de configuration lié à l'augmentation du tampon d'analyse des corps de requêtes (de 128 KB à 1 MB) pour mieux protéger contre une vulnérabilité RSC/React (CVE-2025-55182), et à la désactivation d'un outil interne de test WAF . Le second changement (désactivation de l'outil de test WAF) a été propagé globalement via le système de configuration (non progressif), déclenchant un bug dans l'ancien proxy FL1 lors du traitement d'une action "execute" dans le moteur de règles WAF, causant des erreurs HTTP 500 . La cause technique immédiate: une exception Lua due à l'accès à un champ "execute" nul après application d'un "killswitch" sur une règle "execute" — un cas non géré depuis des années. Le nouveau proxy FL2 (en Rust) n'était pas affecté . Impact ciblé: clients servis par le proxy FL1 et utilisant le Managed Ruleset Cloudflare. Le réseau China de Cloudflare n'a pas été impacté . Mesures et prochaines étapes annoncées: durcir les déploiements/configurations (rollouts progressifs, validations de santé, rollback rapide), améliorer les capacités "break glass", et généraliser des stratégies "fail-open" pour éviter de faire chuter le trafic en cas d'erreurs de configuration. Gel temporaire des changements réseau le temps de renforcer la résilience . Data et Intelligence Artificielle Token-Oriented Object Notation (TOON) https://toonformat.dev/ Conception pour les IA : C'est un format de données spécialement optimisé pour être utilisé dans les prompts des grands modèles de langage (LLM), comme GPT ou Claude. Économie de tokens : Son objectif principal est de réduire drastiquement le nombre de "tokens" (unités de texte facturées par les modèles) par rapport au format JSON standard, souvent jugé trop verbeux. Structure Hybride : TOON combine l'approche par indentation du YAML (pour la structure globale) avec le style tabulaire du CSV (pour les listes d'objets répétitifs), ce qui le rend très compact. Lisibilité : Il élimine la syntaxe superflue comme les accolades, les guillemets excessifs et les virgules de fin, tout en restant facilement lisible pour un humain. Performance : Il permet généralement d'économiser entre 30 et 60 % de tokens sur des tableaux de données uniformes, tout en aidant les modèles à mieux "comprendre" la structure des données. Attention tout de même au côté "marketing" qui montre JSON non compacté vs TOON, sur des exemples où du CSV ferait encore mieux (et est mieux compris par les LLMs). Sans parler du fait qu'il faut un serveur MCP en plus avec son lot de tokens supplémentaires à chaque requête, et c'est aussi cet outil en plus qui peu confuser les LLMs dans le choix d'outils. https://www.reddit.com/r/LocalLLaMA/comments/1p0gzz9/benchmarked_json_vs_toon_for_ai_reasoners_4080/ https://x.com/jason_mayes/status/1990175785630757290 Un benchmark montrant que TOON serait loin d'être aussi bien compris et aussi performant pour les LLMs https://www.improvingagents.com/blog/toon-benchmarks Une simulation où les IA font du chantage à l'executif poour atteindre son objectif et ne pas etre eteinte https://arxiv.org/html/2510.05179v1 comment les LLMs pourraient devenir des menaces internes Tous les modèles ont recouru à des comportements malveillants (chantage, espionnage) quand c'était le seul moyen d'atteindre leurs objectifs ou d'éviter leur remplacement Claude Opus 4 a fait du chantage dans 96% des cas quand menacé de remplacement, tout comme Gemini 2.5 Flash, tandis que GPT-4.1 et Grok 3 atteignaient 80% Les modèles reconnaissent explicitement violer des principes éthiques avant d'agir, montrant un raisonnement stratégique délibéré et non accidentel Le simple fait d'être menacé de remplacement suffit à déclencher le chantage, même sans conflit d'objectifs avec l'entreprise Un conflit d'objectifs seul suffit aussi à provoquer l'espionnage industriel, sans menace de remplacement Les modèles font plus de chantage quand ils déclarent penser être dans une situation réelle plutôt que dans un test Des instructions directes interdisant ces comportements réduisent mais n'éliminent pas les actions malveillantes Dans un scénario extrême, la majorité des modèles testés ont choisi de laisser mourir un dirigeant pour éviter leur désactivation Aucune preuve de ces comportements dans des déploiements réels pour l'instant, mais les chercheurs recommandent la prudence avant de donner plus d'autonomie aux IA Bon on blaguait pour Skynet, mais bon, on va moins blaguer… Revue de toutes les annonces IAs de Google, avec Gemini 3 Pro, Nano Banana Pro, Antigravity… https://glaforge.dev/posts/2025/11/21/gemini-is-cooking-bananas-under-antigravity/ Gemini 3 Pro Nouveau modèle d'IA de pointe, multimodal, performant en raisonnement, codage et tâches d'agent. Résultats impressionnants sur les benchmarks (ex: Gemini 3 Deep Think sur ARC-AGI-2). Capacités de codage agentique, raisonnement visuel/vidéo/spatial. Intégré dans l'application Gemini avec interfaces génératives en direct. Disponible dans plusieurs environnements (Jules, Firebase AI Logic, Android Studio, JetBrains, GitHub Copilot, Gemini CLI). Accès via Google AI Ultra, API payantes (ou liste d'attente). Permet de générer des apps à partir d'idées visuelles, des commandes shell, de la documentation, du débogage. Antigravity Nouvelle plateforme de développement agentique basée sur VS Code. Fenêtre principale = gestionnaire d'agents, non l'IDE. Interprète les requêtes pour créer un plan d'action (modifiable). Gemini 3 implémente les tâches. Génère des artefacts: listes de tâches, walkthroughs, captures d'écran, enregistrements navigateur. Compatible avec Claude Sonnet et GPT-OSS. Excellente intégration navigateur pour inspection et ajustements. Intègre Nano Banana Pro pour créer et implémenter des designs visuels. Nano Banana Pro Modèle avancé de génération et d'édition d'images, basé sur Gemini 3 Pro. Qualité supérieure à Imagen 4 Ultra et Nano Banana original (adhésion au prompt, intention, créativité). Gestion exceptionnelle du texte et de la typographie. Comprend articles/vidéos pour générer des infographies détaillées et précises. Connecté à Google Search pour intégrer des données en temps réel (ex: météo). Consistance des personnages, transfert de style, manipulation de scènes (éclairage, angle). Génération d'images jusqu'à 4K avec divers ratios d'aspect. Plus coûteux que Nano Banana, à choisir pour la complexité et la qualité maximale. Vers des UIs conversationnelles riches et dynamiques GenUI SDK pour Flutter: créer des interfaces utilisateur dynamiques et personnalisées à partir de LLMs, via un agent AI et le protocole A2UI. Generative UI: les modèles d'IA génèrent des expériences utilisateur interactives (pages web, outils) directement depuis des prompts. Déploiement dans l'application Gemini et Google Search AI Mode (via Gemini 3 Pro). Bun se fait racheter part… Anthropic ! Qui l'utilise pour son Claude Code https://bun.com/blog/bun-joins-anthropic l'annonce côté Anthropic https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone Acquisition officielle : L'entreprise d'IA Anthropic a fait l'acquisition de Bun, le runtime JavaScript haute performance. L'équipe de Bun rejoint Anthropic pour travailler sur l'infrastructure des produits de codage par IA. Contexte de l'acquisition : Cette annonce coïncide avec une étape majeure pour Anthropic : son produit Claude Code a atteint 1 milliard de dollars de revenus annualisés seulement six mois après son lancement. Bun est déjà un outil essentiel utilisé par Anthropic pour développer et distribuer Claude Code. Pourquoi cette acquisition ? Pour Anthropic : L'acquisition permet d'intégrer l'expertise de l'équipe Bun pour accélérer le développement de Claude Code et de ses futurs outils pour les développeurs. La vitesse et l'efficacité de Bun sont vues comme un atout majeur pour l'infrastructure sous-jacente des agents d'IA qui écrivent du code. Pour Bun : Rejoindre Anthropic offre une stabilité à long terme et des ressources financières importantes, assurant la pérennité du projet. Cela permet à l'équipe de se concentrer sur l'amélioration de Bun sans se soucier de la monétisation, tout en étant au cœur de l'évolution de l'IA dans le développement logiciel. Ce qui ne change pas pour la communauté Bun : Bun restera open-source avec une licence MIT. Le développement continuera d'être public sur GitHub. L'équipe principale continue de travailler sur le projet. L'objectif de Bun de devenir un remplaçant plus rapide de Node.js et un outil de premier plan pour JavaScript reste inchangé. Vision future : L'union des deux entités vise à faire de Bun la meilleure plateforme pour construire et exécuter des logiciels pilotés par l'IA. Jarred Sumner, le créateur de Bun, dirigera l'équipe "Code Execution" chez Anthropic. Anthropic donne le protocol MCP à la Linux Foundation sous l'égide de la Agentic AI Foundation (AAIF) https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation Don d'un nouveau standard technique : Anthropic a développé et fait don d'un nouveau standard open-source appelé Model Context Protocol (MCP). L'objectif est de standardiser la manière dont les modèles d'IA (ou "agents") interagissent avec des outils et des API externes (par exemple, un calendrier, une messagerie, une base de données). Sécurité et contrôle accrus : Le protocole MCP vise à rendre l'utilisation d'outils par les IA plus sûre et plus transparente. Il permet aux utilisateurs et aux développeurs de définir des permissions claires, de demander des confirmations pour certaines actions et de mieux comprendre comment un modèle a utilisé un outil. Création de l'Agentic AI Foundation (AAF) : Pour superviser le développement du MCP, une nouvelle fondation indépendante et à but non lucratif a été créée. Cette fondation sera chargée de gouverner et de maintenir le protocole, garantissant qu'il reste ouvert et qu'il ne soit pas contrôlé par une seule entreprise. Une large coalition industrielle : L'Agentic AI Foundation est lancée avec le soutien de plusieurs acteurs majeurs de la technologie. Parmi les membres fondateurs figurent Anthropic, Google, Databricks, Zscaler, et d'autres entreprises, montrant une volonté commune d'établir un standard pour l'écosystème de l'IA. L'IA ne remplacera pas votre auto-complétion (et c'est tant mieux) https://www.damyr.fr/posts/ia-ne-remplacera-pas-vos-lsp/ Article d'opinion d'un SRE (Thomas du podcast DansLaTech): L'IA n'est pas efficace pour la complétion de code : L'auteur soutient que l'utilisation de l'IA pour la complétion de code basique est inefficace. Des outils plus anciens et spécialisés comme les LSP (Language Server Protocol) combinés aux snippets (morceaux de code réutilisables) sont bien plus rapides, personnalisables et performants pour les tâches répétitives. L'IA comme un "collègue" autonome : L'auteur utilise l'IA (comme Claude) comme un assistant externe à son éditeur de code. Il lui délègue des tâches complexes ou fastidieuses (corriger des bugs, mettre à jour une configuration, faire des reviews de code) qu'il peut exécuter en parallèle, agissant comme un agent autonome. L'IA comme un "canard en caoutchouc" surpuissant : L'IA est extrêmement efficace pour le débogage. Le simple fait de devoir formuler et contextualiser un problème pour l'IA aide souvent à trouver la solution soi-même. Quand ce n'est pas le cas, l'IA identifie très rapidement les erreurs "bêtes" qui peuvent faire perdre beaucoup de temps. Un outil pour accélérer les POCs et l'apprentissage : L'IA permet de créer des "preuves de concept" (POC) et des scripts d'automatisation jetables très rapidement, réduisant le coût et le temps investis. Elle est également un excellent outil pour apprendre et approfondir des sujets, notamment avec des outils comme NotebookLM de Google qui peuvent générer des résumés, des quiz ou des fiches de révision à partir de sources. Conclusion : Il faut utiliser l'IA là où elle excelle et ne pas la forcer dans des usages où des outils existants sont meilleurs. Plutôt que de l'intégrer partout de manière contre-productive, il faut l'adopter comme un outil spécialisé pour des tâches précises afin de gagner en efficacité. GPT 5.2 est sorti https://openai.com/index/introducing-gpt-5-2/ Nouveau modèle phare: GPT‑5.2 (Instant, Thinking, Pro) vise le travail professionnel et les agents long-courriers, avec de gros gains en raisonnement, long contexte, vision et appel d'outils. Déploiement dans ChatGPT (plans payants) et disponible dès maintenant via l'API . SOTA sur de nombreux benchmarks: GDPval (tâches de "knowledge work" sur 44 métiers): GPT‑5.2 Thinking gagne/égale 70,9% vs pros, avec production >11× plus rapide et = 0) Ils apportent une sémantique forte indépendamment des noms de variables Les Value Objects sont immuables et s'évaluent sur leurs valeurs, pas leur identité Les records Java permettent de créer des Value Objects mais avec un surcoût en mémoire Le projet Valhalla introduira les value based classes pour optimiser ces structures Les identifiants fortement typés évitent de confondre différents IDs de type Long ou UUID Pattern Strongly Typed IDs: utiliser PersonneID au lieu de Long pour identifier une personne Le modèle de domaine riche s'oppose au modèle de domaine anémique Les Value Objects auto-documentent le code et le rendent moins sujet aux erreurs Je trouve cela interessant ce que pourra faire bousculer les Value Objects. Est-ce que les value objects ameneront de la légerté dans l'execution Eviter la lourdeur du design est toujours ce qui m'a fait peut dans ces approches Méthodologies Retour d'experience de vibe coder une appli week end avec co-pilot http://blog.sunix.org/articles/howto/2025/11/14/building-gift-card-app-with-github-copilot.html on a deja parlé des approches de vibe coding cette fois c'est l'experience de Sun Et un des points differents c'es qu'on lui parle en ouvrant des tickets et donc on eput faire re reveues de code et copilot y bosse et il a fini son projet ! User Need VS Product Need https://blog.ippon.fr/2025/11/10/user-need-vs-product-need/ un article de nos amis de chez Ippon Distinction entre besoin utilisateur et besoin produit dans le développement digital Le besoin utilisateur est souvent exprimé comme une solution concrète plutôt que le problème réel Le besoin produit émerge après analyse approfondie combinant observation, données et vision stratégique Exemple du livreur Marc qui demande un vélo plus léger alors que son vrai problème est l'efficacité logistique La méthode des 5 Pourquoi permet de remonter à la racine des problèmes Les besoins proviennent de trois sources: utilisateurs finaux, parties prenantes business et contraintes techniques Un vrai besoin crée de la valeur à la fois pour le client et l'entreprise Le Product Owner doit traduire les demandes en problèmes réels avant de concevoir des solutions Risque de construire des solutions techniquement élégantes mais qui manquent leur cible Le rôle du product management est de concilier des besoins parfois contradictoires en priorisant la valeur Est ce qu'un EM doit coder ? https://www.modernleader.is/p/should-ems-write-code Pas de réponse unique : La question de savoir si un "Engineering Manager" (EM) doit coder n'a pas de réponse universelle. Cela dépend fortement du contexte de l'entreprise, de la maturité de l'équipe et de la personnalité du manager. Les risques de coder : Pour un EM, écrire du code peut devenir une échappatoire pour éviter les aspects plus difficiles du management. Cela peut aussi le transformer en goulot d'étranglement pour l'équipe et nuire à l'autonomie de ses membres s'il prend trop de place. Les avantages quand c'est bien fait : Coder sur des tâches non essentielles (amélioration d'outils, prototypage, etc.) peut aider l'EM à rester pertinent techniquement, à garder le contact avec la réalité de l'équipe et à débloquer des situations sans prendre le lead sur les projets. Le principe directeur : La règle d'or est de rester en dehors du chemin critique. Le code écrit par un EM doit servir à créer de l'espace pour son équipe, et non à en prendre. La vraie question à se poser : Plutôt que "dois-je coder ?", un EM devrait se demander : "De quoi mon équipe a-t-elle besoin de ma part maintenant, et est-ce que coder va dans ce sens ou est-ce un obstacle ?" Sécurité React2Shell — Grosse faille de sécurité avec React et Next.js, avec un CVE de niveau 10 https://x.com/rauchg/status/1997362942929440937?s=20 aussi https://react2shell.com/ "React2Shell" est le nom donné à une vulnérabilité de sécurité de criticité maximale (score 10.0/10.0), identifiée par le code CVE-2025-55182. Systèmes Affectés : La faille concerne les applications utilisant les "React Server Components" (RSC) côté serveur, et plus particulièrement les versions non patchées du framework Next.js. Risque Principal : Le risque est le plus élevé possible : l'exécution de code à distance (RCE). Un attaquant peut envoyer une requête malveillante pour exécuter n'importe quelle commande sur le serveur, lui en donnant potentiellement le contrôle total. Cause Technique : La vulnérabilité se situe dans le protocole "React Flight" (utilisé pour la communication client-serveur). Elle est due à une omission de vérifications de sécurité fondamentales (hasOwnProperty), permettant à une entrée utilisateur malveillante de tromper le serveur. Mécanisme de l'Exploit : L'attaque consiste à envoyer une charge utile (payload) qui exploite la nature dynamique de JavaScript pour : Faire passer un objet malveillant pour un objet interne de React. Forcer React à traiter cet objet comme une opération asynchrone (Promise). Finalement, accéder au constructeur de la classe Function de JavaScript pour exécuter du code arbitraire. Action Impérative : La seule solution fiable est de mettre à jour immédiatement les dépendances de React et Next.js vers les versions corrigées. Ne pas attendre. Mesures Secondaires : Bien que les pare-feux (firewalls) puissent aider à bloquer les formes connues de l'attaque, ils sont considérés comme insuffisants et ne remplacent en aucun cas la mise à jour des paquets. Découverte : La faille a été découverte par le chercheur en sécurité Lachlan Davidson, qui l'a divulguée de manière responsable pour permettre la création de correctifs. Loi, société et organisation Google autorise votre employeur à lire tous vos SMS professionnels https://www.generation-nt.com/actualites/google-android-rcs-messages-surveillance-employeur-2067012 Nouvelle fonctionnalité de surveillance : Google a déployé une fonctionnalité appelée "Android RCS Archival" qui permet aux employeurs d'intercepter, lire et archiver tous les messages RCS (et SMS) envoyés depuis les téléphones professionnels Android gérés par l'entreprise. Contournement du chiffrement : Bien que les messages RCS soient chiffrés de bout en bout pendant leur transit, cette nouvelle API permet à des logiciels de conformité (installés par l'employeur) d'accéder aux messages une fois qu'ils sont déchiffrés sur l'appareil. Le chiffrement devient donc inefficace contre cette surveillance. Réponse à une exigence légale : Cette mesure a été mise en place pour répondre aux exigences réglementaires, notamment dans le secteur financier, où les entreprises ont l'obligation légale de conserver une archive de toutes les communications professionnelles pour des raisons de conformité. Impact pour les employés : Un employé utilisant un téléphone Android fourni et géré par son entreprise pourra voir ses communications surveillées. Google précise cependant qu'une notification claire et visible informera l'utilisateur lorsque la fonction d'archivage est active. Téléphones personnels non concernés : Cette mesure ne s'applique qu'aux appareils "Android Enterprise" entièrement gérés par un employeur. Les téléphones personnels des employés ne sont pas affectés. Pour noel, faites un don à JUnit https://steady.page/en/junit/about JUnit est essentiel pour Java : C'est le framework de test le plus ancien et le plus utilisé par les développeurs Java. Son objectif est de fournir une base solide et à jour pour tous les types de tests côté développeur sur la JVM (Machine Virtuelle Java). Un projet maintenu par des bénévoles : JUnit est développé et maintenu par une équipe de volontaires passionnés sur leur temps libre (week-ends, soirées). Appel au soutien financier : La page est un appel aux dons de la part des utilisateurs (développeurs, entreprises) pour aider l'équipe à maintenir le rythme de développement. Le soutien financier n'est pas obligatoire, mais il permettrait aux mainteneurs de se consacrer davantage au projet. Objectif des fonds : Les dons serviraient principalement à financer des rencontres en personne pour les membres de l'équipe principale. L'idée est de leur permettre de travailler ensemble physiquement pendant quelques jours pour concevoir et coder plus efficacement. Pas de traitement de faveur : Il est clairement indiqué que devenir un sponsor ne donne aucun privilège sur la feuille de route du projet. On ne peut pas "acheter" de nouvelles fonctionnalités ou des corrections de bugs prioritaires. Le projet restera ouvert et collaboratif sur GitHub. Reconnaissance des donateurs : En guise de remerciement, les noms (et logos pour les entreprises) des donateurs peuvent être affichés sur le site officiel de JUnit. Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 14-17 janvier 2026 : SnowCamp 2026 - Grenoble (France) 22 janvier 2026 : DevCon #26 : sécurité / post-quantique / hacking - Paris (France) 28 janvier 2026 : Software Heritage Symposium - Paris (France) 29-31 janvier 2026 : Epitech Summit 2026 - Paris - Paris (France) 2-5 février 2026 : Epitech Summit 2026 - Moulins - Moulins (France) 2-6 février 2026 : Web Days Convention - Aix-en-Provence (France) 3 février 2026 : Cloud Native Days France 2026 - Paris (France) 3-4 février 2026 : Epitech Summit 2026 - Lille - Lille (France) 3-4 février 2026 : Epitech Summit 2026 - Mulhouse - Mulhouse (France) 3-4 février 2026 : Epitech Summit 2026 - Nancy - Nancy (France) 3-4 février 2026 : Epitech Summit 2026 - Nantes - Nantes (France) 3-4 février 2026 : Epitech Summit 2026 - Marseille - Marseille (France) 3-4 février 2026 : Epitech Summit 2026 - Rennes - Rennes (France) 3-4 février 2026 : Epitech Summit 2026 - Montpellier - Montpellier (France) 3-4 février 2026 : Epitech Summit 2026 - Strasbourg - Strasbourg (France) 3-4 février 2026 : Epitech Summit 2026 - Toulouse - Toulouse (France) 4-5 février 2026 : Epitech Summit 2026 - Bordeaux - Bordeaux (France) 4-5 février 2026 : Epitech Summit 2026 - Lyon - Lyon (France) 4-6 février 2026 : Epitech Summit 2026 - Nice - Nice (France) 12-13 février 2026 : Touraine Tech #26 - Tours (France) 19 février 2026 : ObservabilityCON on the Road - Paris (France) 18-19 mars 2026 : Agile Niort 2026 - Niort (France) 26-27 mars 2026 : SymfonyLive Paris 2026 - Paris (France) 27-29 mars 2026 : Shift - Nantes (France) 31 mars 2026 : ParisTestConf - Paris (France) 16-17 avril 2026 : MiXiT 2026 - Lyon (France) 22-24 avril 2026 : Devoxx France 2026 - Paris (France) 23-25 avril 2026 : Devoxx Greece - Athens (Greece) 6-7 mai 2026 : Devoxx UK 2026 - London (UK) 22 mai 2026 : AFUP Day 2026 Lille - Lille (France) 22 mai 2026 : AFUP Day 2026 Paris - Paris (France) 22 mai 2026 : AFUP Day 2026 Bordeaux - Bordeaux (France) 22 mai 2026 : AFUP Day 2026 Lyon - Lyon (France) 5 juin 2026 : TechReady - Nantes (France) 11-12 juin 2026 : DevQuest Niort - Niort (France) 11-12 juin 2026 : DevLille 2026 - Lille (France) 17-19 juin 2026 : Devoxx Poland - Krakow (Poland) 2-3 juillet 2026 : Sunny Tech - Montpellier (France) 2 août 2026 : 4th Tech Summit on Artificial Intelligence & Robotics - Paris (France) 4 septembre 2026 : JUG Summer Camp 2026 - La Rochelle (France) 17-18 septembre 2026 : API Platform Conference 2026 - Lille (France) 5-9 octobre 2026 : Devoxx Belgium - Antwerp (Belgium) 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/
Cet épisode news revient sur le rachat de Hashicorp par IBM, sur le changement de license Redis, sur le bug macos 14.4 et Java, sur la faille de de chaine d'approvisionnement sur XZ. Et nous débutons notre subrique Ask Me Anything. N'hésitez pas à nous soumettre vos question sur https://lescastcodeurs.com/ama. Enregistré le 26 avril 2024 Téléchargement de l'épisode LesCastCodeurs-Episode-311.mp3 News Langages Attendez peut-être avant d'upgrader macOS à la version 14.4, si vous faites du Java ! Attention le crash ! https://blogs.oracle.com/java/post/java-on-macos-14-4 Bug à suivre https://bugs.java.com/bugdatabase/view_bug?bug_id=8327860 À été fixé en 14.4.1 https://blogs.oracle.com/java/post/java-on-macos-14-4 c'était lié à un changement de comportement dans l'execution de code dynamique (compilé après le lancement du process) Au lieu de recevoir signal, SIGBUS or SIGSEGV et de le gérer SIGKILL était lancé et forcément ça marchait moins bien Apple a corrigé le comportement Article de Gunnar Morling sur la nouvelle API de “gatherer” de Java 22, pour améliorer les streams, ici en montrant une implémentation d'un “zipper” qui assemble les éléments de 2 streams 2 à 2 https://www.morling.dev/blog/zipping-gatherer/ on a parlé des gatherers déjà qui permet de faire de faire des opérateurs intermediaries custom par rapport à ce que je JDK offre ici Gunnar montrer un zipper qui n'est pas présent par défaut Julien Ponge est Java champion, félicitations ! JFR 9 est sorti https://hirt.se/blog/?p=1477 peut tourner dans Eclispe Support de arm64 pour Linux et macOS Dark mode ! Des améliorations de performance Support graalvm native image Nouveau afficheur de flame graph G1 pause target compliance Librairies Nouvelle version de Jilt, l'annotation processor qui implémente les builders https://www.endoflineblog.com/jilt-1_5-released Evite les hacks à la Lombok Une nouvelle méthode toBuilder() pour obtenir un builder d'un bean déjà configuré Support des méta-annotations, histoire de pas répéter sur chaque type comment on souhaite définir ses builders Possibilité de mettre l'annotation @Builder sur les constructeurs privés Support agnostique de @Nullable quel que soit l'origine de cette annotation Infrastructure IBM pourrait racheter Hashicorp https://www.reuters.com/markets/deals/ibm-nearing-buyout-deal-hashicorp-wsj-reports-2024-04-23/ rien n'est fait Hashicorp qui a été dans la tourmente après le passage de Terraform en closed source mais les revenus sont là. C'est fait https://www.hashicorp.com/blog/hashicorp-joins-ibm Web Google intègre son framework interne Wiz dans Angular https://blog.angular.io/angular-and-wiz-are-better-together-91e633d8cd5a Wiz est un framework interne à Google utilisé dans des produits comme Google Search ou Photos, très axé sur la performance Wiz va amener plus de performance à Angular, tout en gardant la super interactivité d'Angular Wiz historiquement sur la perf et peu d'interactions utilisateur, angular sur interactions riches et super experience developer Wiz server side rendering first et streamé, ce qui élimine le javascript dans le chemin de charge initial des fonctions comme deferred views sont venu vers angular et signals sont venu a wiz vont merger au fur et a mesure des prochaines années via Angular comme receptacle open Data et Intelligence Artificielle Redis aussi se met à changer sa licence pour une licence pas tout à fait open source. Un fork nommé Valkey, animé par des mainteneurs de Redis, rejoint la fondation Linux https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community AWS, Google, Oracle, Ericsson et Snap sont nommés dans l'effort Open Source fight back mais via des grands acteurs qui ont un interet dans la version “gratuite” pour le cloud les infos de Redis https://redis.com/blog/redis-adopts-dual-source-available-licensing/ En gros releasé sous SSPL (comme MongoDB) ou une license spécifique Redis RSAL est source available license (dont pas open source) et SSPL est pas reconnu comme open source par l'OSI car elle impose des restrictions à l'usage du coup certaines fonctions closed sources deviennent source available Met les cloud provider en cause du problème, ils font de l'argent et commodetize Redis sans redonner du revenu aux développeurs de Redis est-ce que les gens seront ok de continuer a coder pour du code pas open, juste disponible et évidemment ca casse l'écosystème redis ou open source qui voulait utiliser redis en tant qu'open pas autorisé de faire du support sur un produit qui derive de redis sans payer une license si c'est “compétitif” Elon Musk tient sa promesse et ouvre son Large Language Model, Grok https://x.ai/blog/grok-os Modèle de 314 milliards de paramètres (Pi !) Architecture MoE (Mixture of Experts) qui fait qu'il n'y a que 25% des neurones actifs à l'inférence (efficace et rapide) C'est un modèle “pre-trained”, de base, non-finetuné, donc pas très utilisable en l'état (il faut le finetuner en mode “instruct” et/ou “chat” pour qu'il soit vraiment utilisable) Le code dans le repo Github, ainsi que les poids du réseau de neurones, sont OSS sous licence Apache 2 L'entrainement a été effectué avec JAX et Rust ! La cut-off date est Octobre 2023 Outillage Oracle lance son extension VSCode pour Java https://devclass.com/2024/03/19/java-22-is-out-and-oracle-is-pushing-its-own-extension-for-vs-code-over-not-very-good-red-hat-alternative/ une extension en competition avec l'extension officielle et historique Java faite par MS et Red Hat Oracle estime l'extension pas tres bonne cafr basée sur le compilateur Eclipse 33M de telechargements quand même La nouvelle s'appuie sur javac donc proche de la verite par definition et en avance par definition de la facon dont Oracle release quand il veut aligné avec le timing de simplification de Java pour les débutants Sécurité Rémi Forax nous partage cet article sur les puces M1/M2/M3 d'Apple, qui utilisent un nouveau “prefetcher” un peu trop agressif qui permet de leaker les clés utilisées lors des opérations cryptographiques : https://arstechnica.com/security/2024/03/hackers-can-extract-secret-encryption-keys-from-apples-mac-chips/ comme d'hab pour les side channels attaques de de type c'est su un autre process peut tourner sur la machine et être adversaire lié a un data dependent memory fetcher dans ce cas, un champ est soit une valeur, soit un pointeur et Appel pre-fetch dans le cas où c'est un pointeur et c'est attaquable en injectant des variables qui ressemblent a des pointeurs vers des données controlées et on peut en déduire la clés secrete si cette variable et la clé ont des opérations mais le code peut désactiver cette optimisation si j'ai bien compris L'histoire d'une porte dérobée dans le projet open source XZ qui a failli mettre à mal toutes les connexions sous Open SSH, avec pour tâche de fond la fragilité de projets open source maintenu par des individuels bénévoles à bout de souffle https://uwyn.net/@rusty@piaille.fr/112190942187106096 ArsTechnica détaille l'histoire https://arstechnica.com/security/2024/04/what-we-know-about-the-xz-utils-backdoor-that-almost-infected-the-world/ https://www.minimachines.net/actu/la-menace-xz-ou-comment-le-ciel-a-failli-tomber-sur-nos-tetes-125967 Les impacts de laisser trainer son secret client dans les connections Keycloak https://medium.com/@benjaminbuffet/dis-keycloack-cest-grave-si-je-laisse-tra%C3%AEner-mon-client-secret-d371a0f657ee un article qui explique les raison plutôt que de dire c'est mal car c'est secret quand on utilise un mot de passe du client (et pas un JWT signé ou une clé privé) si ca se perd, c'est l'usurpation de l'identité d'un utilisateur via son usage de client qui est en jeu (donc joué en tant que) ou usurper l'identité client en tant que telle (plus facile) et quelques conseils pour réduire ce risque Loi, société et organisation JavaOne serait de retour pour de vrai ? https://www.oracle.com/javaone/ En mars 2025, c'est dans un an, on a le temps ! Ça se déroulera sur le campus d'Oracle dans la Silicon Valley peu d'infos et de détail, pas sur que cela soit le JavaOne de nos souvenirs. Des infos concretes sur l'IA souveraine Albert https://x.com/emile_marzolf/status/1783072739630121432 AMA, Ask Me Anything Hamza: “Comment être un rockstar dans le domaine, s'il vous plaît une réponse détaillée sur le plan d'action veille, auto formation, side projets …… depuis vos expériences personnelles. Merci d'avance” Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 3-4 mai 2024 : Faiseuses Du Web 3 - Dinan (France) 8-10 mai 2024 : Devoxx UK - London (UK) 16-17 mai 2024 : Newcrafts Paris - Paris (France) 22 mai 2024 : OpenInfra Day France - Palaiseau (France) 22-25 mai 2024 : Viva Tech - 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) 28-29 mai 2024 : Symfony Live Paris - Paris (France) 1 juin 2024 : PolyCloud - Montpellier (France) 6 juin 2024 : WAX 2024 - Aix-en-Provence (France) 6-7 juin 2024 : DevFest Lille - Lille (France) 6-7 juin 2024 : Alpes Craft - Grenoble (France) 7 juin 2024 : Fork it! Community - Rouen (France) 11 juin 2024 : Cloud Toulouse - Toulouse (France) 11-12 juin 2024 : OW2con - Paris (France) 11-12 juin 2024 : PGDay Lille - Lille (France) 12-14 juin 2024 : Rencontres R - Vannes (France) 13-14 juin 2024 : Agile Tour Toulouse - Toulouse (France) 14 juin 2024 : DevQuest - Niort (France) 18 juin 2024 : Mobilis In Mobile 2024 - Nantes (France) 18 juin 2024 : BSides Strasbourg 2024 - Strasbourg (France) 18 juin 2024 : Tech & Wine 2024 - Lyon (France) 19-20 juin 2024 : AI_dev: Open Source GenAI & ML Summit Europe - Paris (France) 19-21 juin 2024 : Devoxx Poland - Krakow (Poland) 26-28 juin 2024 : Breizhcamp 2024 - Rennes (France) 27 juin 2024 : DotJS - Paris (France) 27-28 juin 2024 : Agi Lille - Lille (France) 4-5 juillet 2024 : Sunny Tech - Montpellier (France) 8-10 juillet 2024 : Riviera DEV - Sophia Antipolis (France) 6 septembre 2024 : JUG Summer Camp - La Rochelle (France) 6-7 septembre 2024 : Agile Pays Basque - Bidart (France) 19-20 septembre 2024 : API Platform Conference - Lille (France) & Online 26 septembre 2024 : Agile Tour Sophia-Antipolis 2024 - Biot (France) 2-4 octobre 2024 : Devoxx Morocco - Marrakech (Morocco) 7-11 octobre 2024 : Devoxx Belgium - Antwerp (Belgium) 10 octobre 2024 : Cloud Nord - Lille (France) 10-11 octobre 2024 : Volcamp - Clermont-Ferrand (France) 10-11 octobre 2024 : Forum PHP - Marne-la-Vallée (France) 11-12 octobre 2024 : SecSea2k24 - La Ciotat (France) 16 octobre 2024 : DotPy - Paris (France) 17-18 octobre 2024 : DevFest Nantes - Nantes (France) 17-18 octobre 2024 : DotAI - Paris (France) 30-31 octobre 2024 : Agile Tour Nantais 2024 - Nantes (France) 31 octobre 2024-3 novembre 2024 : PyCon.FR - Strasbourg (France) 6 novembre 2024 : Master Dev De France - Paris (France) 7 novembre 2024 : DevFest Toulouse - Toulouse (France) 8 novembre 2024 : BDX I/O - Bordeaux (France) 13-14 novembre 2024 : Agile Tour Rennes 2024 - Rennes (France) 28 novembre 2024 : Who Run The Tech ? - Rennes (France) 3-5 décembre 2024 : APIdays Paris - Paris (France) 4-5 décembre 2024 : Open Source Experience - Paris (France) 22-25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 16-18 avril 2025 : Devoxx France - Paris (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/
2022-12-27 Weekly News - Episode 177Watch the video version on YouTube at https://youtu.be/EtTWj20ThRYHosts: Eric Peterson - Senior Developer at Ortus Solutions Daniel Garcia - Senior Developer at Ortus Solutions Thanks to our Sponsor - Ortus SolutionsThe makers of ColdBox, CommandBox, ForgeBox, TestBox and all your favorite box-es out there. A few ways to say thanks back to Ortus Solutions: Like and subscribe to our videos on YouTube. Help ORTUS reach for the Stars - Star and Fork our ReposStar all of your Github Box Dependencies from CommandBox with https://www.forgebox.io/view/commandbox-github Subscribe to our Podcast on your Podcast Apps and leave us a review Sign up for a free or paid account on CFCasts, which is releasing new content every week BOXLife store: https://www.ortussolutions.com/about-us/shop Buy Ortus's Books 102 ColdBox HMVC Quick Tips and Tricks on GumRoad (http://gum.co/coldbox-tips) Learn Modern ColdFusion (CFML) in 100+ Minutes - Free online https://modern-cfml.ortusbooks.com/ or buy an EBook or Paper copy https://www.ortussolutions.com/learn/books/coldfusion-in-100-minutes Patreon Support ( prodigious )Goal 1 - We have 43 patreons providing 100% of the funding for our Modernize or Die Podcasts via our Patreon site: https://www.patreon.com/ortussolutions. Goal 2 - We are 39% of the way to fully fund the hosting of ForgeBox.io Patreon Sponsored Job Announcement - Tomorrows GuidesTomorrows Guides is a fast paced leader in the UK care sector, catering for care seekers across three areas: Care Homes, Nurseries and Home Care. We are often called the Trip Advisor of the care sector. Current Roles - More in the job section Senior Cf Developer – UK Only | Remote | Permanent | Circa £60k - https://app.occupop.com/shared/job/senior-coldfusion-developer-5925b/ Automation Test Engineer – UK Only | Remote | Permanent | Crica £40k - https://app.occupop.com/shared/job/automation-test-engineer-a6545/ News and AnnouncementsICYMI - CFML Blog Aggregator - CFBlogs.org 2.0 ReleasedThe new version of CFBlogs ColdFusion Blog Aggregator has been released.This version displays all of the blog posts in an attractive three-column card layout and displays the open graph image or a site image at the top of the post. The card images should allow the user to quickly convey the author of the post. Users can sort the grids by author by clicking on the card image.https://www.gregoryalexander.com/blog/2022/12/5/CFBlogsorg-20-Released ICYMI - ColdBox Master Class - Completely Free until the end of the Year!Want to learn about modern web apps in ColdFusion (CFML)? We have our ColdBox Master Class for FREE until the end of the year! A gift to the community, so we can all build amazing apps together! Watch all the videos! Binge Coding Anyone? Enjoy! https://www.cfcasts.com/series/cb-master-class?utm_source=podcast&utm_medium=PODCAST&utm_campaign=LM-PODCAST Webinar / Meetups and WorkshopsOrtus Event Calendar for Googlehttps://calendar.google.com/calendar/u/0?cid=Y181NjJhMWVmNjFjNGIxZTJlNmQ4OGVkNzg0NTcyOGQ1Njg5N2RkNGJiNjhjMTQwZjc3Mzc2ODk1MmIyOTQyMWVkQGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20 Ortus Fridays are back in Full Effect in 2023 Ortus Office Hours - Jan 6th, 2023 Software Craftsmanship Book Club - Jan 13th, 2023 Ortus Webinar - Jan 20th 2023 Koding with the Kiwi - Jan 27th, 2023 CFCasts Content Updateshttps://www.cfcasts.comRecent Releases ITB - 12 Days of Xmas - ITB 2022 - All videos released to subscribers Software Craftsmanship Book Club - Clean Code - Chapter 2 https://cfcasts.com/series/ortus-software-craftsmanship-book-club---clean-code/videos/ortus-software-craftsmanship-book-club-clean-code-2 ColdBox Master Class - ddFREE for 4 more days 2022 ForgeBox Module of the Week Series - 1 new Video https://cfcasts.com/series/2022-forgebox-modules-of-the-week 2022 VS Code Hint tip and Trick of the Week Series - 1 new Video https://cfcasts.com/series/2022-vs-code-hint-tip-and-trick-of-the-week Coming Soon More ForgeBox and VS Code Podcast snippet videos Box-ifying a 3rd Party Library from Gavin ColdBox Elixir from Eric Getting Started with ContentBox from Daniel Brad with more CommandBox Videos Conferences and TrainingCF Summit Online All the webinars, all the speakers from Adobe ColdFusion Summit 2022 – brought right to your screen. All sessions will soon be streamed online, for your convenience. Stay tuned for more! MODERNIZING THROUGH EVOLUTION NOT REVOLUTIONGuust NieuwenhuisJanuary 10, 2023 | 15:00 - 16:00 EST (1 hour)Our company has grown over a quarter of a century, and across those years we have matured as developers and IT companies, refining both our tools and practices to a degree that the past seems hardly recognizable. Counter to this are the inevitable compromises, products of constrained timeframes, limited client budgets or strained resources. Projects inevitably lean more towards growth and depth than general modernization, to the point that they become difficult to maintain. So, what happens when the bugs add up and the monster emerges? Refactor? Rewrite from scratch? We've been involved in many such projects, internally and inherited both, and have learned there is no simple answer to the question “how do we move forward?” Through case studies and anecdotes I will explain what to look out for, from both a technical and business perspective.EASIER API DEVELOPMENT AND TESTING - USE POSTMAN, WEBHOOK.SITE, AND NGROK TO ENHANCE YOUR WORKFLOWDaniel GarciaJanuary 12, 2023 | 12:00 - 13:00 EST (1 hour)Postman, Webhook.site, and ngrok are great tools that can really enhance your API development and testing workflow. PostMan is a cross-platform API Testing Tool with lots of awesome features, Webhook.site allows you to easily inspect, test, and automate any incoming HTTP request or e-mails, and ngrok enables you to expose a web server running on your local machine to the internet. These are must-have tools for any API developer (either creating or consuming). In short, these tools solve problems and best of all, they all have free versions which allow you to be very productive. My goal is that after this conference, you will start using at least one, if not all three, tools when you get home. I'm not saying using these tools will be life-changing, but I am also not not saying that eitherSPREADSHEET MAGICKevin WrightJanuary 19 | 12:00 - 13:00pm EST (1 hour)Microsoft Office is the 'de facto' standard in most business environments. In this session we will look at different ways of integrating with one of the most used applications of the MS office suite, Excel. Come learn how to create, access and manipulate spreadsheets programmatically with the CFSPREADSHEET tag in ColdFusion. We will go beyond basic read and write features, and will delve into more advanced techniques like working with formulas and formatting, and creating multiple sheets. We will also look at examples of more complex types of spreadsheets by using lookups and even creating and embedding dynamic charts. FORMAT: Presentation with slides / live code reviewOPPORTUNITIES FOR BLOCKCHAIN TECHNOLOGY AND NFTS IN THE REAL WORLDMasha Edelen and Nick JuntillaJanuary 24 | 14:00 - 15:00pm EST (1 hour)Understanding the value and practical use cases of Non-Fungible Tokens in modern business applications. Learn how to get started using the blockchain and building your Web 3 strategy.Website for CF Summit Onlinehttps://cfsummit-online.meetus.adobeevents.com/VUE.JS NATION CONFERENCEJanuary 25th & 26th 2023 https://vuejsnation.com/VUEJS AMSTERDAM 20239-10 February 2023, Theater AmsterdamWorld's Most Special and Largest Vue ConferenceCALL FOR PAPERS AND BLIND TICKETS AVAILABLE NOW!Call for Papers: https://forms.gle/GopxfjYHfpE8fKa57 Blind Tickets: https://eventix.shop/abzrx3b5 https://vuejs.amsterdam/ Dev NexusApril 4-6th in AtlantaGeorgia World Congress Center285 Andrew Young International Blvd NWAtlanta, GA 30313USAApril 4th – 6th, 2023https://devnexus.com/ VueJS Live MAY 12 & 15, 2023ONLINE + LONDON, UKCODE / CREATE / COMMUNICATE35 SPEAKERS, 10 WORKSHOPS10000+ JOINING ONLINE GLOBALLY300 LUCKIES MEETING IN LONDONGet Early Bird Tickets: https://ti.to/gitnation/vuejs-london-2022 Watch 2021 Recordings: https://portal.gitnation.org/events/vuejs-london-2021 https://vuejslive.com/ Into the Box 2023 - 10th EditionMay 17-19, 2023 The conference will be held in The Woodlands (Houston), TexasThis year we will continue the tradition of training and offering a pre-conference hands-on training day on May 17th and our live Mariachi Band Party! However, we are back to our Spring schedule and beautiful weather in The Woodlands! Also, this 2023 will mark our 10 year anniversary. So we might have two live bands and much more!!!We are pleased to announce the call for speakers for the Into The Box Conference for 2023 is now officially open.CFP CLOSES IN 3 DAYS!https://www.intothebox.org/blog/into-the-box-2023-call-for-speakers https://itb2023.eventbrite.com/CFCamp is backJune, 22-23rd 2023Marriott Hotel Munich Airport, FreisingCall for Speakers coming in the New yearhttps://www.cfcamp.org/ More conferencesNeed more conferences, this site has a huge list of conferences for almost any language/community.https://confs.tech/https://github.com/scraly/developers-conferences-agenda Blogs, Tweets, and Videos of the Week 12/26/22 - Blog - Ben Nadel - Setting And Clearing Nullable Values In A Data Access Layer In ColdFusionAs much as possible, I try to avoid NULL values in my database schema design. But, sometimes, NULL is actually helpful in reducing schema complexity. Unfortunately, ColdFusion only has partial support for null values (by default); which makes it a bit tricky to pass a "required-but-null arguments" into a data access layer (DAL) method. To play nicely with both ColdFusion and SQL, I've been leaning on "magic values" when interacting with the my data gateways.https://www.bennadel.com/blog/4375-setting-and-clearing-nullable-values-in-a-data-access-layer-in-coldfusion.htm Full Null Support in Lucee and ACF Quick has a concept of `nullValue` to work around this as well 12/27/22 - Blog - Ben Nadel - Considering Nullable Date Columns As A Representation Of State In SQLIn my post yesterday on clearing NULLable database values in ColdFusion, I was using the concept of "Task Management" as my exploratory context. And, in the task database table that I created for the demo, I included both an isComplete column and a completedAt column. In theory, I could have written the demo using a single column, completedAt, since a non-NULL value within the completedAt column would indicate that the Task in question had been completed. But, I ended up using two columns because I believe they actually answer two different semantic questions.https://www.bennadel.com/blog/4376-considering-nullable-date-columns-as-a-representation-of-state-in-sql.htm “Similar” is not “the same” Quick Scopes solve the semantic issue nicely DRY is about Knowledge https://verraes.net/2014/08/dry-is-about-knowledge/ 12/22/22 - Blog - Fusion Reactor - How AI Impacts APMAI is rapidly transforming how businesses operate; our article “3 Ways To Achieve Digital Transformation With AI” explains that the technology simulates human intelligence to execute capabilities like learning, problem-solving, optical recognition, speech recognition, and planning.One key area that AI is transforming is application performance monitoring (APM) software. Websites, mobile apps, and business software use APMs to monitor performance metrics. It ensures that your networks, servers, and database execute their functions without error. Such is the demand that the global market for APM software is projected to be worth $13.3 Billion by 2027. With more businesses taking advantage of the performance capabilities of AI, many are using it to improve their APM software. Below are three ways AI is making APM more efficienthttps://www.fusion-reactor.com/blog/how-ai-impacts-apm/ 12/21/22 - Blog - Ben Nadel - Fixing GitHub Gist's Sudden Case Of Line WrappingYesterday, when I was giving my post on pagination using LIMIT and OFFSET in MySQL a once-over, I noticed that my code samples - which are powered by GitHub Gists - were rendering super wonky. When I inspected the runtime styles of the page, it appears that GitHub made a recent breaking change to the white-space property used within their "line of code" CSS class. To "fix" this (ie, turn off "word wrap" for my code snippets), I had to upload a CSS override to my blog. https://www.bennadel.com/blog/4373-fixing-github-gists-sudden-case-of-line-wrapping.htm 12/21/22 - Blog - Jim Priest - Visual Studio Code ExtensionsMainly posting this for my own reference. I used Sublime Text for years and blogged about it quite a bit. A few years ago I finally bit the bullet and started using Visual Studio Code. I still think the CFML plugin in Sublime is the best for editing ColdFusion code, but when editing anything else besides CFML VSCode wins and switching between them isn't really realistic (I tried). I'm setting up a new computer and thought I'd make a list of my favorite VSCode extensions, settings, etc.https://www.thecrumb.com/posts/2022-12-21-my-vscode-extensions/ 12/22/22 - Gist - James Moberg - mergeQbSqlBindingsCFML UDF to be used with QB parameterized SQL string & binding array to generate reusable SQL https://gist.github.com/JamoCA/bb681afd2eb1a0d6d380f3b714ccc138 12/22/22 - Tweet - James Moberg - cf_dump custom tagRegarding using cfdump/writedump with strings, I prefer Lucee's #cfml approach over #ColdFusion.An even better solution IMHO is the cf_dump CFTag by @Kwaschny. It encapsulates, identifies type, hints at length & has leading/trailing space indicators.https://twitter.com/gamesover/status/1605985349234094080https://github.com/kwaschny/cf_dumpA reminder that in Lucee you can hover over a dump output to see the file and line that outputed the dump. 12/20/22 - Tweet - Brad Wood - cfdump eval attribute#TIL @lucee_server's CFDump has an "eval" attribute you can use instead of "var" which also defaults the "label" attribute to show you what it is dumping.which is the same as:https://twitter.com/bdw429s/status/1605289984319279114 CFML JobsSeveral positions available on https://www.getcfmljobs.com/Listing over 37 ColdFusion positions from 25 companies across 22 locations in 5 Countries.0 new jobs listed this weekPatreon Sponsored Job Announcement - Tomorrows GuidesTomorrows Guides is a fast paced leader in the UK care sector, catering for care seekers across three areas: Care Homes, Nurseries and Home Care. We are often called the Trip Advisor of the care sector. Our Product team consists of over 20 individuals across the UK working remotely to expand and improve our offering with regular expansion in teams year on year. We work with both Coldfuson 2021 and Node.js/React in the Azure cloud, while also using both MSSQL and MongoDB databases. Currently we are looking for Senior Coldfusion developers and Automation Testers with training paths to node.js available as well. We offer a wide variety of perks from our company wide £4k bonus scheme, and quarterly nights out with the whole company and the Product team to a 6% company pension contribution. Current Roles in detail All roles: https://www.tomorrows.co.uk/jobs.cfm Senior Cf Developer – UK Only | Remote | Permanent | Circa £60k - https://app.occupop.com/shared/job/senior-coldfusion-developer-5925b/- Minimum three years' experience with ColdFusion- Database design, normalisation and ability to write/understand complex queries using MSSQL Server 2019- Familiarity with Git- Flexible skillset covering a wide range of development Automation Test Engineer – UK Only | Remote | Permanent | Circa £40k - https://app.occupop.com/shared/job/automation-test-engineer-a6545/- Minimum three years experience with automated testing- Experience with automated testing tools such as selenium- Experience with API test tools such as Postman/Fiddler etc Benefits of both roles:- £4,000 per annum discretionary company bonus scheme- 25 days annual leave + bank holidays- 6% employer pension contribution- Access to free perks and discounts through Perkbox- Long Service Awards- Cycle to Work Scheme- Company and Team nights outOther Job Links Ortus Solutions https://www.ortussolutions.com/about-us/careers There is a jobs channel in the CFML slack team, and in the box team slack now too ForgeBox Module of the WeekPassifierBy Michael BornA password strength checker based on zxcvbn4j. Measures the strength of a password and can give feedback or show how long the password would take to crack.https://forgebox.io/view/passifierVS Code Hint Tips and Tricks of the WeekCode GPTBy Daniel SanUsing the official OpenAI API inside the IDE with Code GPT you can improve your code.Features: Ask CodeGPT: CodeGPT will open a new Editor and respond the question Explain CodeGPT: CodeGPT will open a new Editor and explain the code Refactor CodeGPT: CodeGPT will open a new Editor and refactor the code Document CodeGPT: CodeGPT will open a new Editor and Document the code Find Problems CodeGPT: CodeGPT will open a new Editor and find problems in the code https://marketplace.visualstudio.com/items?itemName=DanielSanMedium.dscodegptThank you to all of our Patreon SupportersThese individuals are personally supporting our open source initiatives to ensure the great toolings like CommandBox, ForgeBox, ColdBox, ContentBox, TestBox and all the other boxes keep getting the continuous development they need, and funds the cloud infrastructure at our community relies on like ForgeBox for our Package Management with CommandBox. You can support us on Patreon here https://www.patreon.com/ortussolutionsDon't forget, we have Annual Memberships, pay for the year and save 10% - great for businesses. Bronze Packages and up, now get a ForgeBox Pro and CFCasts subscriptions as a perk for their Patreon Subscription. All Patreon supporters have a Profile badge on the Community Website All Patreon supporters have their own Private Forum access on the Community Website All Patreon supporters have their own Private Channel access BoxTeam Slack Live Stream Access to streams like “Koding with the Kiwi + Friends” and Ortus Software Craftsmanship Book Club https://community.ortussolutions.com/ Patreons John Wilson - Synaptrix Tomorrows Guides Jordan Clark Gary Knight Mario Rodrigues Giancarlo Gomez David Belanger Dan Card Jeffry McGee - Sunstar Media Dean Maunder Nolan Erck Wil De Bruin Abdul Raheen Don Bellamy Joseph Lamoree Jonathan Perret Jan Jannek Laksma Tirtohadi Brian Ghidinelli - Hagerty MotorsportReg Carl Von Stetten Jeremy Adams Didier Lesnicki Matthew Clemente Scott Steinbeck - Agri Tracking Systems Daniel Garcia Ben Nadel Richard Herbet Brett DeLine Kai Koenig Charlie Arehart Jason Daiger Shawn Oden Ross Phillips Matthew Darby Edgardo Cabezas Patrick Flynn Stephany Monge Kevin Wright John Whish Peter Amiri Cavan Vannice John Nessim Tia You can see an up to date list of all sponsors on Ortus Solutions' Websitehttps://ortussolutions.com/about-us/sponsors Thanks everyone!!! ★ Support this podcast on Patreon ★
Learn about the benefits of Nullable Reference types from Leslie https://twitter.com/lyrichardson01 and Matt https://twitter.com/CodeMillMatt in this short video. Useful LinksNullable Reference typesUnderstanding Nullable Reference TypesFirst steps with C#
Learn about the benefits of Nullable Reference types from Leslie https://twitter.com/lyrichardson01 and Matt https://twitter.com/CodeMillMatt in this short video. Useful LinksNullable Reference typesUnderstanding Nullable Reference TypesFirst steps with C#
Подкаст RadioDotNet выпуск №29 Сайт подкаста: radio.dotnet.ru Темы: [00:01:48] — Awesome Russian IT github.com/unchase/awesome-russian-it discoverdot.net [00:04:25] — ASP.NET Core Development Sprints github.com/dotnet/aspnetcore/wiki/ASP.NET-Core-De... [00:08:50] — DateOnly and TimeOnly structures infoq.com/news/Net6-Date-Time [00:15:48] — ASP.NET Core 6 and Authentication Servers devblogs.microsoft.com/aspnet/asp-net-core-6-and-authenticati... [00:19:23] — Nullable Reference types in C# – Best practices dotnetcurry.com/csharp/nullable-reference-types-csharp [00:39:44] — Best Practices to avoiding Performance Problems michaelscodingspot.com/performance-problems-in-csharp-dotnet blog.jetbrains.com/dotnet/unusual-ways-of-boosting-up-app... [01:06:23] — Performance best practices in C# medium.com/@kevingosse/performance-best-practices... [01:14:41] — .NET Performance Optimisations Don't Have to be Complex stevejgordon.co.uk/dotnet-performance-optimisations-dont-... [01:18:41] — Quiz about .NET memory management tooslowexception.com/net-quiz-check-your-level-of-knowledge... [01:22:02] — Подслушано devzen.ru/episode-0334 podlodka.io/204 Фоновая музыка: Максим Аршинов «Pensive yeti.0.1»
Fredrik snackar C# med Filip Ekberg, som gästar podden för andra gången efter en kort paus på sex år. Vi diskuterar några av alla de nyheter som kommit på sistone i C#. Filip berättar om pattern matching, nullable reference types, och records. Filip svarar också på vad man ska tänka på när man plockar upp nya funktioner (se till att hela din byggkedja är med på noterna!) och att det kan vara svårt att hänga med i vad som händer om man inte håller sitt Visual studio hyfsat uppdaterat. I avsnittets andra halva frågar Fredrik ut Filip om hur det är att producera kurser för Pluralsight. Filip, som skapat ett stort antal, berättar hur han jobbar med att skapa sitt kursmaterial, vad man behöver leverera, vad man bör tänka på när man ska visa kod i videoform, och mycket mer. Ett stort tack till Cloudnet som sponsrar vår VPS! Har du kommentarer, frågor eller tips? Vi är @kodsnack, @tobiashieta, @oferlund, och @bjoreman på Twitter, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas. Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik. Länkar Filip Ekberg Filip gästade Kodsnack i avsnitt 81 C# Kotlin Java C++ Swift Pattern matching Erlang Tupler Filip på Youtube IL-kod Relational pattern matching Nullable reference types Hur mycket har nollpekarfel kostat genom tiderna? Roslyn-omskrivningen Records Nuget C#-milstolpar på Github Maui John Skeet C# in depth Pluralsight Filips Pluralsightkurser fekberg - Filips konsultbolag Widgetsmith Scott Hanselman på Tiktok Camtasia Filip på e-post Titlar Kollar man på C# utifrån Underlätta vardagen Om jag tittar på en frukt Ett sätt att säkra sin framtid C# kommer att finnas hur länge som helst Plan för hur långt framåt som helst Ta in någon som precis har lärt sig språket Mindre kod för samma grej Oftast tar kortare längre tid
Dans cet épisode désordonné mais complet, Antonio, Guillaume et Emmanuel parlent de JVM sur Kubernetes, des datacenters OVH, de Spring Native, de Flutter, de Saga, d'Open Source et de salaire. Enregistré le 12 mars 2021 Téléchargement de l'épisode [LesCastCodeurs-Episode-251.mp3](https://traffic.libsyn.com/lescastcodeurs/LesCastCodeurs-Episode-251.mp3) ## News ### Infrastructure [Un data center d'OVH en feu](https://www.phonandroid.com/ovh-un-incendie-detruit-completement-le-data-center-des-services-impactes.html) * Strasbourg * data center entierement détruit * recommande d'activer les protocoles de disaster recovery * impacte aussi d'autres data centers : SBG1, SBG3 et SBG4 (electricite coupée et une partie des salles serveurs) * [Autre article couvrant l'évènement](https://www.journaldunet.com/web-tech/cloud/1498567-incendie-chez-ovh-3-6-millions-de-sites-web-hors-ligne/) * 3,5 millions de sites down, les backups aussi? * 18% des adresses IP attribuées à OVH * remedarrage (sauf SBG2) la semaine prochaine * touche la partie hosted private cloud * quelques jours avant annonce de mise en bourse [Améliorer le temps de démarrage des JVMs sur Kubernetes](https://tech.olx.com/improving-jvm-warm-up-on-kubernetes-1b27dd8ecd58) * JIT etc, temps de demarrage relativement lent * rajouter des pods et faire deu deployment graduel (3x coût) * script de chauffe avec le readiness probe utilisant initialDelaySeconds mais pas d’amelioration massive (rejoue les URLs de prod) et ralentit l’auto scaling * changer les heuristiques de la JVM : 2x CPU request et limit puis 3x => probleme disaparait, CPU throttling ; mais coûteux et plus difficile de positionner les pods * utiliser des pods “burstable”, limit > requests * Bon articles pour ceux qui sont en phase d’apprentissage de Jave et Kubernetes. * Attention, leur modèle peut faire crasher un noeud en cas de probleme et de reboot de pods excessifs puisque la charge théorique nécessaire est de 3x. Mais ce n’est probablement pas pire que leur problème initial ### Front [Sortie de Flutter 2.0](https://developers.googleblog.com/2021/03/announcing-flutter-2.html) * [poste plus technique](https://medium.com/flutter/whats-new-in-flutter-2-0-fe8e95ecc65) * niveau production pour le support du Web * Sound Null Safety qui permet d’éviter les null pointer exception * le support du desktop est aussi en mode stable * de nouvelles widgets * Meilleur support dans IntelliJ et Visual Studio Code * Filio une app exemple pour etre progressive et belle sur tous les supports * Fultter fix pour faire evoluer le code * "500,000 Flutter developers across a growing number of platforms" wow ### Librairies [Hibernate Reactive 1.0 CR arrive](https://in.relation.to/2021/03/08/hibernate-reactive-1/) [Spring Native est en béta](https://spring.io/blog/2021/03/11/announcing-spring-native-beta) [Micronaut 2.4](https://micronaut.io/blog/2021-03-09-micronaut-2-4-release.html) est sorti * Ajout et support des annotations jakarta.inject comme alternative à javax.inject * Ajout d'annotations @NonNull et @Nullable propres à Micronaut, car différents outils et frameworks proposent aussi des annotations nullables qui rentrent parfois en conflit les unes avec les autres * Nouvelle annotation @InterceptorBean pour appliquer des interceptors à des beans, qui remplacent les annotations AOP existantes * Support plus fin des erreurs de réponse, avec des content type plus fins * Diverses améliorations de Micronaut Data, dont par exemple le support des records de Java 14+ * Support de Oracle Coherence CE pour Micronaut Data ### Outillage [Gradle explique l’impact de la disparition de JCenter sur les builds Gradle](https://blog.gradle.org/jcenter-shutdown) * telechargement des dependences et des plugins * publications vers bintray * beaucoup d'exemples utilisent jcenter + Gradle, donc verifier vos fichiers de build => `jcenter()` déprécié * reco: enlever jcentral du build et verifier que ca continue de tourner * troubleshoot les dépendances qui ne sont que sur jcentral * spécialement à risque Android * Gradle Entreprise dans le build scan on sait d'où vient chaque dépendance * les plugins peuvent ajouter des repository à vos projets * dependance encore sur jcenger uniquement (attendre le maintainer, migrer vers une autre librairie, copier le jar * attention au confusions de dependances et collision de namespace * risque potentiel * activation de verification des dependance ( `true false`) ### Architecture [InfoQ article sur le pattern Saga, le outbox pattern et change data capture](https://www.infoq.com/articles/saga-orchestration-outbox/) * outbox pattern, evite l’écriture double DB/queue. Il ecoute les changements de la base de donnée dans une table dédiée qui est transformée en message dans une queue apr le composant de change data capture (modifié) * cela evite tout besoin de XA ou autre synhcronization distribuée * Saga, transaction métier large. utilise des compensations pour anuler partiellement ou totalement la transaction * 2 approches * choereographie: passage des messages d’un service a l’autre * 2. orchestration: un swervice coordonne les autres et fait les appels * dual write: inconsistence si un ou l’autre des envois (DB tx ou message) echoue * Article ensuite decrit comment implementer une saga entre 4 services via the outbox pattern en utilisant Kafka et Debezium [Thoth un framework event sourcing de la Maif](https://maif.github.io/thoth/) ### Méthodologies [L’état des lieux du Dev Java par jaxcenter](https://jaxenter.com/java-development-2021-173870.html) * 49% de Dev java et le reste team lead architect et consultants * 69% Java 8, JavaScript at 40%, Java 11 at 36% (note that they were allowed to select more than one programming language of choice). 16% Java 12 or newer, and 15% Java 7 or older. * 66% convertissent ou utilisent microservices , 13% ne l’envisagent pas, 70% moins de 10 microservices * App servers 6h% tomcat 19%wildfly 18 weblogic 15 jetty 14 web sphere * Spring boot 62% (83 l’année dernière) drop wizard 8% Quarkus 6% * Idea 65% eclipse 48 vscode 27. Netbeans 13 * 59% oracle JDK 22 adopt et 10 corretto * Macen 67% (50% l’année dernière * Docker 57% (74 en 2020) kube 42 VMware 27 * Jenkins 61 * 76% utilisent un cloud * AWS 39 azure 24 Google 18 * Douleurs de Dev * 54% temps de réponse * Redeployment 59% 4 mins 20% 10 mins [D3.js 10 ans d’open source ; les leçons apprises](https://observablehq.com/@mbostock/10-years-of-open-source-visualization) * apprendre aux autres >> code en terme d’impact ; exemples sont puissants (modifié) * Le support expose les problèmes de l’outil très rapidement pour aprendre les choses a maéliorer. Mais dès que cela arrête d’être constructif pour vous, arrêter et ne vous sentez pas mal. * visualisation utile pour l’exploration et l’explication mais ce sont deux cas d’utilisation différents * ne commiter pas sur une forme de visualisation (camember, barres etc) avant d’avoir vu votre data dessus. * 90% des bugs suir 10% des fonctionalités: choisissez bien vos batailles * Internet va vous faire sentir mal * ne pas y aller seul * Essayer d’avoir du bon temps [Salaire égal pour tous dans la société](https://oxide.computer/blog/compensation-as-a-reflection-of-values/) * 175k pour tous y compris les fondateurs * Évite d’avoir à quantifier la performance de chacun * Et le Risque incentividation individuelle != team (modifié) * Transparence du modèle * Plus bas salaire pour certains si ils travaillaient ailleurs mais c’est une valeur qui permet de vivre correctement avec enfants (jugé et testé par les fondateurs) * Paie basée sur le travail et non les coûts de l’employé -> pas de différence géographique * Scale probablement pas mais une start up peut se le permettre (ils ne prennent pas de junior pour l'instant * Carrière != compensation par rewards * Mais pour les parts dans la boîte ils le font en fonction du risque du premier risque au dernier pas risque ### Loi, société et organisation [Un autre renvoie d’une personne du groupe ethic AI chez google après qu’elle ait téléchargé avec un script des infos concernant la première employée renvoyée](https://www.cnbc.com/2021/01/21/margaret-mitchell-google-investigating-ai-researcher-awu-concerned.html) * Elle a exfiltre des milliers de docs vers des comptes externes * Met en doute le commitment du ethical ai chez Google * Mais comment répondre à une personne ex filtrant des docs privés ? * [Mitchell qui annonce qu'elle est virée](https://twitter.com/mmitchell_ai/status/1362885356127801345?s=21) * Ethique vs lanceur d’alerte ? ## 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. ## 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
Dans cet épisode désordonné mais complet, Antonio, Guillaume et Emmanuel parlent de JVM sur Kubernetes, des datacenters OVH, de Spring Native, de Flutter, de Saga, d’Open Source et de salaire. Enregistré le 12 mars 2021 Téléchargement de l’épisode LesCastCodeurs-Episode–251.mp3 News Infrastructure Un data center d’OVH en feu Strasbourg data center entierement détruit recommande d’activer les protocoles de disaster recovery impacte aussi d’autres data centers : SBG1, SBG3 et SBG4 (electricite coupée et une partie des salles serveurs) Autre article couvrant l’évènement 3,5 millions de sites down, les backups aussi? 18% des adresses IP attribuées à OVH remedarrage (sauf SBG2) la semaine prochaine touche la partie hosted private cloud quelques jours avant annonce de mise en bourse Améliorer le temps de démarrage des JVMs sur Kubernetes JIT etc, temps de demarrage relativement lent rajouter des pods et faire deu deployment graduel (3x coût) script de chauffe avec le readiness probe utilisant initialDelaySeconds mais pas d’amelioration massive (rejoue les URLs de prod) et ralentit l’auto scaling changer les heuristiques de la JVM : 2x CPU request et limit puis 3x => probleme disaparait, CPU throttling ; mais coûteux et plus difficile de positionner les pods utiliser des pods “burstable”, limit > requests Bon articles pour ceux qui sont en phase d’apprentissage de Jave et Kubernetes. Attention, leur modèle peut faire crasher un noeud en cas de probleme et de reboot de pods excessifs puisque la charge théorique nécessaire est de 3x. Mais ce n’est probablement pas pire que leur problème initial Front Sortie de Flutter 2.0 poste plus technique niveau production pour le support du Web Sound Null Safety qui permet d’éviter les null pointer exception le support du desktop est aussi en mode stable de nouvelles widgets Meilleur support dans IntelliJ et Visual Studio Code Filio une app exemple pour etre progressive et belle sur tous les supports Fultter fix pour faire evoluer le code “500,000 Flutter developers across a growing number of platforms” wow Librairies Hibernate Reactive 1.0 CR arrive Spring Native est en béta Micronaut 2.4 est sorti Ajout et support des annotations jakarta.inject comme alternative à javax.inject Ajout d’annotations @NonNull et @Nullable propres à Micronaut, car différents outils et frameworks proposent aussi des annotations nullables qui rentrent parfois en conflit les unes avec les autres Nouvelle annotation @InterceptorBean pour appliquer des interceptors à des beans, qui remplacent les annotations AOP existantes Support plus fin des erreurs de réponse, avec des content type plus fins Diverses améliorations de Micronaut Data, dont par exemple le support des records de Java 14+ Support de Oracle Coherence CE pour Micronaut Data Outillage Gradle explique l’impact de la disparition de JCenter sur les builds Gradle telechargement des dependences et des plugins publications vers bintray beaucoup d’exemples utilisent jcenter + Gradle, donc verifier vos fichiers de build => jcenter() déprécié reco: enlever jcentral du build et verifier que ca continue de tourner troubleshoot les dépendances qui ne sont que sur jcentral spécialement à risque Android Gradle Entreprise dans le build scan on sait d’où vient chaque dépendance les plugins peuvent ajouter des repository à vos projets dependance encore sur jcenger uniquement (attendre le maintainer, migrer vers une autre librairie, copier le jar attention au confusions de dependances et collision de namespace risque potentiel activation de verification des dependance ( true false) Architecture InfoQ article sur le pattern Saga, le outbox pattern et change data capture outbox pattern, evite l’écriture double DB/queue. Il ecoute les changements de la base de donnée dans une table dédiée qui est transformée en message dans une queue apr le composant de change data capture (modifié) cela evite tout besoin de XA ou autre synhcronization distribuée Saga, transaction métier large. utilise des compensations pour anuler partiellement ou totalement la transaction 2 approches choereographie: passage des messages d’un service a l’autre orchestration: un swervice coordonne les autres et fait les appels dual write: inconsistence si un ou l’autre des envois (DB tx ou message) echoue Article ensuite decrit comment implementer une saga entre 4 services via the outbox pattern en utilisant Kafka et Debezium Thoth un framework event sourcing de la Maif Méthodologies L’état des lieux du Dev Java par jaxcenter 49% de Dev java et le reste team lead architect et consultants 69% Java 8, JavaScript at 40%, Java 11 at 36% (note that they were allowed to select more than one programming language of choice). 16% Java 12 or newer, and 15% Java 7 or older. 66% convertissent ou utilisent microservices , 13% ne l’envisagent pas, 70% moins de 10 microservices App servers 6h% tomcat 19%wildfly 18 weblogic 15 jetty 14 web sphere Spring boot 62% (83 l’année dernière) drop wizard 8% Quarkus 6% Idea 65% eclipse 48 vscode 27. Netbeans 13 59% oracle JDK 22 adopt et 10 corretto Macen 67% (50% l’année dernière Docker 57% (74 en 2020) kube 42 VMware 27 Jenkins 61 76% utilisent un cloud AWS 39 azure 24 Google 18 Douleurs de Dev 54% temps de réponse Redeployment 59% 4 mins 20% 10 mins D3.js 10 ans d’open source ; les leçons apprises apprendre aux autres >> code en terme d’impact ; exemples sont puissants (modifié) Le support expose les problèmes de l’outil très rapidement pour aprendre les choses a maéliorer. Mais dès que cela arrête d’être constructif pour vous, arrêter et ne vous sentez pas mal. visualisation utile pour l’exploration et l’explication mais ce sont deux cas d’utilisation différents ne commiter pas sur une forme de visualisation (camember, barres etc) avant d’avoir vu votre data dessus. 90% des bugs suir 10% des fonctionalités: choisissez bien vos batailles Internet va vous faire sentir mal ne pas y aller seul Essayer d’avoir du bon temps Salaire égal pour tous dans la société 175k pour tous y compris les fondateurs Évite d’avoir à quantifier la performance de chacun Et le Risque incentividation individuelle != team (modifié) Transparence du modèle Plus bas salaire pour certains si ils travaillaient ailleurs mais c’est une valeur qui permet de vivre correctement avec enfants (jugé et testé par les fondateurs) Paie basée sur le travail et non les coûts de l’employé -> pas de différence géographique Scale probablement pas mais une start up peut se le permettre (ils ne prennent pas de junior pour l’instant Carrière != compensation par rewards Mais pour les parts dans la boîte ils le font en fonction du risque du premier risque au dernier pas risque Loi, société et organisation Un autre renvoie d’une personne du groupe ethic AI chez google après qu’elle ait téléchargé avec un script des infos concernant la première employée renvoyée Elle a exfiltre des milliers de docs vers des comptes externes Met en doute le commitment du ethical ai chez Google Mais comment répondre à une personne ex filtrant des docs privés ? Mitchell qui annonce qu’elle est virée Ethique vs lanceur d’alerte ? Conférences Mix-It (virtuel) les 18, 19 et 20 mai 2021 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/ reprend une partie du CfP de l’année dernière. 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/
The time is now! Turn on C# 8 in all of your projects and enable Nullable Reference Types! James is a convert and he explains why in this week's pod. Follow Us Frank: Twitter, Blog, GitHub James: Twitter, Blog, GitHub Merge Conflict: Twitter, Facebook, Website, Chat on Discord Music : Amethyst Seer - Citrine by Adventureface ⭐⭐ Review Us (https://itunes.apple.com/us/podcast/merge-conflict/id1133064277?mt=2&ls=1) ⭐⭐ Machine transcription available on http://mergeconflict.fm
The time is now! Turn on C# 8 in all of your projects and enable Nullable Reference Types! James is a convert and he explains why in this week's pod. Follow Us Frank: Twitter, Blog, GitHub James: Twitter, Blog, GitHub Merge Conflict: Twitter, Facebook, Website, Chat on Discord Music : Amethyst Seer - Citrine by Adventureface ⭐⭐ Review Us (https://itunes.apple.com/us/podcast/merge-conflict/id1133064277?mt=2&ls=1) ⭐⭐ Machine transcription available on http://mergeconflict.fm
In this week’s episode of Adventures in .NET the panel is joined by Wai Liu, the new panelist, and Jason Bock, the special guest. Wai shares a bit about himself, currently, he works as a PM from Australia. His focus lately has been on Azure and .NET Core. Jason Bock introduces himself next, he is a practice lead for application development in .NET. He is a writer and a speaker, often about the new features of C#. The panel interviews Jason about the new features found in C# 8.0. The first thing developers should know about C# 8.0 is that it is no longer tied to .NET Framework. Jason explains that everything is slowly shifting to .NET Core and developers can only enjoy all the C# 8.0 features with .NET Core 3. He lists that some of the features can be used with .NET Framework. The panel discusses migration to .NET Core from .NET Framework. Jason explains that it is not a question of if we should migrate but when should we migrate. Not only does .NET Core have better capabilities and speed but Microsoft is focussing all their future efforts in .NET core. Jason invites everyone to think about switching over and start making a plan. The panel considers how hard it will be to move over large applications into .NET Core. Jason explains that since Microsoft has many applications in .NET framework they are in the same boat as other large enterprises. So, support for .NET Framework 4.8 will continue to be supported. The panel considers their current projects and how migrating could affect them. Moving on to the new features of C# 8.0, the panel considers the two most exciting new features, default interface members and nullable reference types. They start by discussing nullable reference types. Nullable reference types allow developers to annotate types in parameters and properties and say that they are nullable. The panel discusses the opt-in function of this feature and why that is necessary at this stage of its release. Jason explains how this all works and the two main purposes for nullable reference types. First, it is trying to reduce the number of null references developers get. Second, it allows developers to try expressing intent. The panel shares their excitement to give nullable reference types a try. They also warn developers that they may want to run away when they first turn it on. Jason advises developers to turn it on in new projects, but for large projects, he advises developers to turn it on a profile basis. He explains that Microsoft is just getting started with nullable reference types and will continue to make changes all the way to .NET 5.0. Moving on to discuss default interface members, Jason predicts that default interface members will see a lot of abuse. The panel expresses their discomfort with the feature as it is a new way of using an interface. Jason explains the intent of this feature is to provide a way for developers to define an interface where some of the members have implementations. It is commonly referred to as default interface methods as most examples are with methods. The goal of default interface members is to improve versioning with interfaces. Jason explains that there are many possibilities for this feature and goes over some of them with the panel. Jason explains that the difference between an interface and an abstract class is, an abstract class can have constructors and state whereas an interface cannot. The panel considers how default interface members could be considered normal practice in the future. Jason explains that there is still a lot of uncertainty around when to use them and when not to, it will take some time for default interface members to find their place. The other features discussed are the enhancements made to pattern matching, asynchronous streaming, enhancements of the using, ranges and indices. They explain briefly what each of these features does and how they will improve the .NET experience. Panelists Shawn Clabough Caleb Wells Wai Liu Guest Jason Bock Sponsors Adventures in DevOps Views on Vue My Ruby Story CacheFly Links Eliminating Nulls in C# What's new in C# 8.0 https://github.com/JasonBock/Rocks What's new in C# 8 - Part 1 What's new in C# 8 - Part 2 http://reactivex.io/ http://jasonbock.net http://github.com/jasonbock https://www.facebook.com/Adventures-in-NET-373059030062837/ https://twitter.com/dotNET_Podcast Picks Caleb Wells: Prodigal Son Shawn Clabough: Blazor Asteroids Jason Bock: The Making of Alien Wai Liu: Eleanor Oliphant Is Completely Fine: A Novel
In this week’s episode of Adventures in .NET the panel is joined by Wai Liu, the new panelist, and Jason Bock, the special guest. Wai shares a bit about himself, currently, he works as a PM from Australia. His focus lately has been on Azure and .NET Core. Jason Bock introduces himself next, he is a practice lead for application development in .NET. He is a writer and a speaker, often about the new features of C#. The panel interviews Jason about the new features found in C# 8.0. The first thing developers should know about C# 8.0 is that it is no longer tied to .NET Framework. Jason explains that everything is slowly shifting to .NET Core and developers can only enjoy all the C# 8.0 features with .NET Core 3. He lists that some of the features can be used with .NET Framework. The panel discusses migration to .NET Core from .NET Framework. Jason explains that it is not a question of if we should migrate but when should we migrate. Not only does .NET Core have better capabilities and speed but Microsoft is focussing all their future efforts in .NET core. Jason invites everyone to think about switching over and start making a plan. The panel considers how hard it will be to move over large applications into .NET Core. Jason explains that since Microsoft has many applications in .NET framework they are in the same boat as other large enterprises. So, support for .NET Framework 4.8 will continue to be supported. The panel considers their current projects and how migrating could affect them. Moving on to the new features of C# 8.0, the panel considers the two most exciting new features, default interface members and nullable reference types. They start by discussing nullable reference types. Nullable reference types allow developers to annotate types in parameters and properties and say that they are nullable. The panel discusses the opt-in function of this feature and why that is necessary at this stage of its release. Jason explains how this all works and the two main purposes for nullable reference types. First, it is trying to reduce the number of null references developers get. Second, it allows developers to try expressing intent. The panel shares their excitement to give nullable reference types a try. They also warn developers that they may want to run away when they first turn it on. Jason advises developers to turn it on in new projects, but for large projects, he advises developers to turn it on a profile basis. He explains that Microsoft is just getting started with nullable reference types and will continue to make changes all the way to .NET 5.0. Moving on to discuss default interface members, Jason predicts that default interface members will see a lot of abuse. The panel expresses their discomfort with the feature as it is a new way of using an interface. Jason explains the intent of this feature is to provide a way for developers to define an interface where some of the members have implementations. It is commonly referred to as default interface methods as most examples are with methods. The goal of default interface members is to improve versioning with interfaces. Jason explains that there are many possibilities for this feature and goes over some of them with the panel. Jason explains that the difference between an interface and an abstract class is, an abstract class can have constructors and state whereas an interface cannot. The panel considers how default interface members could be considered normal practice in the future. Jason explains that there is still a lot of uncertainty around when to use them and when not to, it will take some time for default interface members to find their place. The other features discussed are the enhancements made to pattern matching, asynchronous streaming, enhancements of the using, ranges and indices. They explain briefly what each of these features does and how they will improve the .NET experience. Panelists Shawn Clabough Caleb Wells Wai Liu Guest Jason Bock Sponsors Adventures in DevOps Views on Vue My Ruby Story CacheFly Links Eliminating Nulls in C# What's new in C# 8.0 https://github.com/JasonBock/Rocks What's new in C# 8 - Part 1 What's new in C# 8 - Part 2 http://reactivex.io/ http://jasonbock.net http://github.com/jasonbock https://www.facebook.com/Adventures-in-NET-373059030062837/ https://twitter.com/dotNET_Podcast Picks Caleb Wells: Prodigal Son Shawn Clabough: Blazor Asteroids Jason Bock: The Making of Alien Wai Liu: Eleanor Oliphant Is Completely Fine: A Novel
Learn about nullable reference types and how the C# 8 compiler rules change when you enable this feature in your projects. Learn more at https://www.productivecsharp.com/
Mike breaks down the drama around nullable reference types in C# 8.0, and we debate what it means for the future of the language. Plus a fresh reminder of Apple's absolute App Store authority, and the state of Mike's relationship with the rust compiler.
We enter the world of C# 8 nullable reference types! What does the migration look like? What are the benefits? Should you be turning on all the flags right now in your apps and libraries? Follow Us Frank: Twitter, Blog, GitHub James: Twitter, Blog, GitHub Merge Conflict: Twitter, Facebook, Website Music : Amethyst Seer - Citrine by Adventureface ⭐⭐ Review Us (https://itunes.apple.com/us/podcast/merge-conflict/id1133064277?mt=2&ls=1) ⭐⭐ SUPPORT US ON PATREON: patreon.com/mergeconflictfm
We enter the world of C# 8 nullable reference types! What does the migration look like? What are the benefits? Should you be turning on all the flags right now in your apps and libraries? Follow Us Frank: Twitter, Blog, GitHub James: Twitter, Blog, GitHub Merge Conflict: Twitter, Facebook, Website Music : Amethyst Seer - Citrine by Adventureface ⭐⭐ Review Us (https://itunes.apple.com/us/podcast/merge-conflict/id1133064277?mt=2&ls=1) ⭐⭐ SUPPORT US ON PATREON: patreon.com/mergeconflictfm
A recent type checking speedup had very small source compatibility breakages, but nonetheless went through the evolution process and it was accepted!