LCC 315 - les températures ne sont pas déterministes
Épisode de Les Cast Codeurs Podcast par Emmanuel Bernard, Guillaume, Antonio, Arnaud, Katia · 17 septembre 2024 · 1 h 50 min
JVM summit, virtual threads, stacks applicatives, licences, déterminisme et LLMs, quantification, deux outils de l'épisode et bien plus encore.
Enregistré le 13 septembre 2024
Téléchargement de l'épisode LesCastCodeurs-Episode–315.mp3
News
Langages
Netflix utilise énormément Java et a rencontré un problème avec les Virtual Thread dans Java 21. Les ingénieurs de Netflix analysent ce problème dans cet article : https://netflixtechblog.com/java–21-virtual-threads-dude-wheres-my-lock–3052540e231d
Les threads virtuels peuvent améliorer les performances mais posent des défis.
Un problème de locking a été identifié : les threads virtuels se bloquent mutuellement.
Cela entraîne des performances dégradées et des instabilités.
Netflix travaille à résoudre ces problèmes et à tirer pleinement parti des threads virtuels.
Une syntax pour indiquer qu'un type est nullable ou null-restricted arriverait dans Java https://bugs.openjdk.org/browse/JDK–8303099
Foo! interdirait null
Foo? indiquerait que null est accepté
Foo?[]! serait un tableau non-null de valeur nullable
Il y a aussi des idées de syntaxe pour initialiser les tableaux null-restricted
JEP: https://openjdk.org/jeps/8303099
Les vidéos du JVM Language Summit 2024 sont en ligne https://www.youtube.com/watch?v=OOPSU4LnKg0&list=PLX8CzqL3ArzUEYnTa6KYORRbP3nhsK0L1
Project Leyden Update
Project Babylon - Code Reflection
Valhalla - Where Are We?
An Opinionated Overview on Static Analysis for Java Rethinking Java String Concatenation
Code Reflection in Action - Translating Java to SPIR-V Java in 2024
Type Specialization of Java Generics - What If Casts Have Teeth ? (avec notre Rémi Forax national !)
aussi tip or tail pour tout l'ecosysteme
quelques liens sur Babylon: Code reflection pour exprimer des langages etranger (SQL) dans Java: https://openjdk.org/projects/babylon/ et sont example en emulation de LINQ https://openjdk.org/projects/babylon/articles/linq
Librairies
Micronaut sort sa version 4.6 https://micronaut.io/2024/08/26/micronaut-framework–4–6–0-released/
essentiellement une grosse mise à jour de tonnes de modules avec les dernières versions des dépendances
Microprofile 7 faire quelques changements et evolution incompatibles https://microprofile.io/2024/08/22/microprofile–7–0-release/#general
enleve Metrics et remplace avec Telemetry (metrics, log et tracing)
Metrics reste une spec mais standalone
Microprofile 7 depende de Jakarta Core profile et ne le package plus
Microprofile OpenAPI 4 et Telemetry 2 amenent des changements incompatibles
Quarkus 3.14 avec LetsEncrypt et des serialiseurs JAckson sans reflection https://quarkus.io/blog/quarkus–3–14–1-released/
Hibernate ORM 6.6
Serialisateurs JAckson sans reflection
installer des certificats letsencrypt simplement (notamment avec la ligne de commande qui aide
sympa notamment avec ngrok pour faire un tunnel vers son localhost
retropedalage sur @QuarkusTestResource vs @WithTestResource suite aux retour de OOME et lenteur des tests mieux isolés
Les logs structurées dans Spring Boot 3.4 https://spring.io/blog/2024/08/23/structured-logging-in-spring-boot–3–4
Les logs structurées (souvent en JSON) vous permettent de les envoyer facilement vers des backends comme Elastic, AWS CloudWatch…
Vous pouvez les lier à du reporting et de l'alerting.
Spring Boot 3.4 prend en charge la journalisation structurée par défaut. Il prend en charge les formats Elastic Common Schema (ECS) et Logstash, mais il est également possible de l'étendre avec vos propres formats.
Vous pouvez également activer la journalisation structurée dans un fichier. Cela peut être utilisé, par exemple, pour imprimer des journaux lisibles par l'homme sur la console et écrire des journaux structurés dans un fichier pour l'ingestion par machine.
Infrastructure
CockroachDB qui avait une approche Business Software License (source available puis ALS 3 ans apres), passe maintenant en license proprietaire avec source available https://www.cockroachlabs.com/blog/enterprise-license-announcement/
Polyform project offre des licences standardisees selon les besoins de gratuit vs payant https://polyformproject.org/
Cloud
Azure fonctions, comment le demarrage a froid est optimisé https://www.infoq.com/articles/azure-functions-cold-starts/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=Cloud
fonctions ont une latence naturelle forte
toutes les lantences longues ne sont aps impactantes pour le business
les demarrages a froid peuvent etre mesures avec les outils du cloud provider donc faites en usage
faites des decentilers de latences
experience 381 ms cold et 10ms apres
tracing pour end to end latence
les strategies
keep alive pings: reveiller la fonctione a intervalles reguliers pour rester "warm"
dans le code de la fonction: initialiser les connections et le chargement des assemblies dans l'initialization
configurer dans host.json le batching, desactiver file system logging etc
deployer les fonctions as zips
reduire al taille du code et des fichiers (qui sont copies sur le serveur froid)
sur .net activer ready to run qui aide le JIT compiler
instances azure avec plus de CPU et memoire sont plus cher amis baissent le cold start
dedicated azure instances pour vos fonctions (pas aprtage avec les autres tenants)
ensuite montre des exemples concrets
Web
Sortie de Vue.js 3.5 https://blog.vuejs.org/posts/vue–3–5
Vue.JS 3.5: Nouveautés clés
Optimisations de performance et de mémoire:
Réduction significative de la consommation de mémoire (–56%).
Amélioration des performances pour les tableaux réactifs de grande taille.
Résolution des problèmes de valeurs calculées obsolètes et de fuites de mémoire.
Nouvelles fonctionnalités:
Reactive Props Destructure: Simplification de la déclaration des props avec des valeurs par défaut.
Lazy Hydration: Contrôle de l'hydratation des composants asynchrones.
useId(): Génération d'ID uniques stables pour les applications SSR.
data-allow-mismatch: Suppression des avertissements de désynchronisation d'hydratation.
Améliorations des éléments personnalisés: Prise en charge de configurations d'application, d'API pour accéder à l'hôte et au shadow root, de montage sans Shadow DOM, et de nonce pour les balises.
useTemplateRef(): Obtention de références de modèle via l'API useTemplateRef().
Teleport différé: Téléportation de contenu vers des éléments rendus après le montage du composant.
onWatcherCleanup(): Enregistrement de callbacks de nettoyage dans les watchers.
Data et Intelligence Artificielle
On entend souvent parler de Large Language Model quantisés, c'est à dire qu'on utilise par exemple des entiers sur 8 bits plutôt que des floatants sur 32 bits, pour réduire les besoins mémoire des GPU tout en gardant une précision proche de l'original. Cet article explique très visuellement et intuitivement ce processus de quantisation : https://newsletter.maartengrootendorst.com/p/a-visual-guide-to-quantization
Guillaume continue de partager ses aventures avec le framework LangChain4j. Comment effectuer de la classification de texte : https://glaforge.dev/posts/2024/07/11/text-classification-with-gemini-and-langchain4j/
en utilisant la classe TextClassification de LangChain4j, qui utilise une approche basée sur les vector embeddings pour comparer des textes similaires
en utilisant du few-shot prompting, sous différentes variantes, dans cet autre article : https://glaforge.dev/posts/2024/07/30/sentiment-analysis-with-few-shots-prompting/
et aussi comment faire du multimodal avec LangChain4j (avec le modèle Gemini) pour analyser des textes, des images, mais également des vidéos, du contenu audio, ou bien des fichiers PDFs : https://glaforge.dev/posts/2024/07/25/analyzing-videos-audios-and-pdfs-with-gemini-in-langchain4j/
Autres épisodes de « Les Cast Codeurs Podcast »
- LCC 344 - Feature flags - 2^n raisons de ne pas dormir la nuit 20 octobre 2026
- LCC 343 - Trois IA, une seule prise électrique 14 septembre 2026
- LCC 342 - Bun en Rust, TypeScript en Go 21 juillet 2026
- LCC 341 - Endives ou Chicorée ? 22 juin 2026
- LCC 340 - Episode on l'voit on l'voit pas 12 mai 2026
- LCC 339 - Clotûre de Devoxx France 2026 par les cast codeurs 29 avril 2026
- LCC 338 - Le soulèvement des bots de skills 20 mars 2026
- LCC 337 - Datacenters Carrier Class dans l'espace 16 février 2026
- LCC 336 - Interview Kotlin avec Arnaud Giuliani 6 février 2026
- LCC 335 - 200 terminaux en prod vendredi 16 janvier 2026
- LCC 334 - Interview de Muriel Ekovich sur les biais cognitifs 24 décembre 2025
- LCC 333 - A vendre OSS primitif TBE 15 décembre 2025
- LCC 332 - Groquik revient, Emmanuel s'en va 18 novembre 2025
- LCC 331 - Le retour des jackson 5 6 novembre 2025
- LCC 330 - Nano banana l'AI de Julia 15 septembre 2025
À propos du podcast
Les Cast Codeurs : le podcast en français de, par et pour les développeurs. Prenez connaissance des dernières nouvelles de la sphère Java et du développement en général. Plongez sur un sujet précis avec les épisodes interview. Supportez les radotages de vos hôtes : Emmanuel Bernard (ex Red Hat,…
Épisodes similaires
- Acte III: « Tous les policiers sont mobilisés, de la plus petite ville à Paris » assure Agathe Foucault, porte-parole de la police nationale – L'interview politique du week-end
- Récolte, variétés, vente directe : les secrets de La Pommeraie de Charlotte à Cavaillon – Les circuits courts en France
- L’École Française Digitale : un enseignement flexible qui s’adapte | Delphine Ithembela, cofondatrice de l’École Française Digitale – L'invité de PME Radio
- Attentat de Trappes : une idéologie peut-elle facilement conduire à un passage à l’acte – Radical, le podcast de l'Observatoire des radicalités
- Mobilisations : «Je constate une déliquescence de la France, on ne pourra pas revenir en arrière», s'alarme un commercant – Eliot Deval et vous
Tous les épisodes de Les Cast Codeurs Podcast · Plus de podcasts Actualités