LCC 297 - Lockless design
Épisode de Les Cast Codeurs Podcast par Emmanuel Bernard, Guillaume, Antonio, Arnaud, Katia · 12 juin 2023 · 1 h 14 min
Guillaume, Arnaud et Emmanuel discutent des nouvelles de mai et juin. La communauté Rust, WebAssembly. Guava, Debezium, Kafka, de flame graph, d'open source et bien sûr les large language models. On répond aussi à la question fondamentale: mais pourquoi Maven n'a pas de fichier .lock ?
Enregistré le 9 juin 2023
Téléchargement de l'épisode LesCastCodeurs-Episode-297.mp3
News
Langages
Lors de Microsoft BUILD 2023, un des fondateurs de OpenAI a fait une excellente présentation de Large Language Models, des GPT https://build.microsoft.com/en-US/sessions/db3f4859-cd30-4445-a0cd-553c3304f8e2
Il parle du fonctionnement des LLM, comment/pourquoi ils arrivent à générer ce qu'ils génèrent
Le fine-tuning, l'apprentissage renforcé avec feedback humain, l'art du prompting
Des patterns comme Chain of Thought (CoT) ou ReAct (Reflect then Act)
Leaning Technologies annonce l'arrivée prochaine de CheerpJ 3 : le retour de Java dans la navigateur, grâce à WebAssembly https://leaningtech.com/announcing-cheerpj-3-0-a-jvm-replacement-in-html5-and-webassembly-to-run-java-applications-and-applets-on-modern-browsers/
Avant la version 3.0, CheerpJ utilisait une approche AOT (ahead of time compilation) qui nécessitait aussi une étape d'intégration continue pour transformer aussi toutes les dépendances JAR associées à un projet
Avec la version 3.0, qui devrait sortir cet été, CheerpJ adopte une approche JIT (Just In Time compilation) qui ressemble plus à l'approche de Java lui même
Plus besoin non plus de version custom d'OpenJDK
Les Applets vous avaient manqué ? Elles sont de retour avec WebAssembly :smile:
Communauté RUST: Il y a de l'eau dans le gaz https://www.jntrnr.com/why-i-left-rust/
Plus d'infos https://gist.github.com/fasterthanlime/42da9378768aebef662dd26dddf04849
lié au backchannel et un petit groupe qui essaie de faire les choses bien mais qui derappe de l'exterieur
en gros ils ont un process interne pour prendre des decisions
avec ce process ils ont invité une personne pas super pro Rust a faire la keynote a RustConf
d'autres du commité ont vu ca et on discuté en backchannel pour revenir en arriere de la decision (sans suivre le process)
il y a eu une semaine de pause avant action mais pas annoncé
le speaker a ete dé keynoté et a donc refusé de venir a la conf
et paf, ca enerve des gens decisionaire et ils demissionnent
Bref des gens qui veulent faire le bien mais en cercle un peu trop ferné et paf
Les gens de Wasmer étendent WASI avec WASIX, on rajoutant le support POSIX, les threads… permettant de compiler vers WASM plein de projet C/C++ ou Rust, comme cURL ou autre https://wasmer.io/posts/announcing-wasix
ca frotte un oeu entre innovation et standardisation dans la communaite WASM
WASMER sont un peu les cowboys startuper
par exemple ils ont essayé de deposer la marque WebAssemble au nez et à la barbe de la communauté
donc la reaction du coeur de la communauté a cette annonce est plutôt calme
WASI c'est standard mais ca prend du temps a maturer
WASIX c'est cool et dispo maintenant mais c'est un produit d'une société spécifique, donc pas de portabilité
Librairies
Guava 32 est sorti et beaucoup de choses annotées en @Beta ne le sont plus https://www.reddit.com/r/java/comments/13w2l8w/guava_320_released_today_and_the_beta_annotation/
ont eu des API en @Beta pendant longtemps pour proteger des risques de changements
en pratique quasi personne ne se limitait au non beta, et elles n'ont pas bougé ces API ou peu
donc ils ont enlevé @Beta de la plupart
beaucoup de parties de Guava sont dans le JDK, le cache est dans Caffeine
des bons echanges dans les commentaires entre les utilisateurs et Kevin un des mainteneurs chez Google
Comment démarrer avec l'API PaLM de Google, mais en Java! https://glaforge.dev/posts/2023/05/30/getting-started-with-the-palm-api-in-the-java-ecosystem/
Guillaume a écrit une petite application qui génère des histoires pour enfants avec un Large Language Model (l'API PaLM)
https://bed-time-stories.web.app/
Le code est dispo sur Github https://github.com/glaforge/bedtimestories
Il explique également le processus incrémentale des prompts qui aident à générer aussi le contenu de l'application https://glaforge.dev/posts/2023/06/08/creating-kids-stories-with-generative-ai/
Infrastructure
Debezium 2.2 https://debezium.io/blog/2023/04/20/debezium-2-2-final-released/
Experimental, opt-in Parallel Snapshots
Incremental snapshots with surrogate keys
Quarkus 3 support
Ingestion of Oracle changes from logical standby instances
Google Spanner improvementsNew Debezium Server sinks for Infinispan, RabbitMQ, and RocketMQ
New Storage APIs for Amazon S3 and RocketMQ
Many MongoDB improvements
Cassandra connector for Cassandra Enterprise
Un article sur l'utilisation de Kafka par CloudFlare https://www.infoq.com/articles/kafka-clusters-cloudflare/?utm_campaign=infoq_content&utm_source=twitter&utm_medium=feed&utm_term=architecture-design
c'est du "classique" mais bon de se le faire rappeler
beaucoup d'evenements CloudFlare passent pas Kafka pour processing
Kafka en tant que bus generique
Ils ont imposé un message unique par topic via protobuf
ils sont une Application Service team (internal developer platform) depuis peu de temps
gitops pour creation de topic etc
développé un connector framework declaratif pour étendre le pannel de patrons d'architecture disponibles
developé des SDKs d'access a KAfka avec monitoring (prometheus)
sympa a lire
Post mortem du problème chez datadogHQ https://www.datadoghq.com/blog/2023-03-08-multiregion-infrastructure-connectivity-issue/
data dog a perdu tous ces services dans la plupart ou toutes ses regions pendant 3 heures avant la premiere recuperation et 10 heures au total pour la recuperation totale
Equipe : 10 senior engineering leaders, about 70 local incident commanders and a pool of 450 to 750 incident responders active throughout the incident, which required four shifts to bring the incident to full resolution.
cause: une mise a jour de systemd appliqué sur la plupart de leurs VM en quasi parallele qui a effacer les routes des container et ne les a aps remis ; c'est un cas qui n'arrive pas au reboot d'un noeud (init sequence)
des 10000s noeuds impactés
en general ils font du rollout par region en enlevant les noeuds etc mais le base os avait un legacy update channel activé (vs gere pas les equipes de datadog manuellement)
les noeuds de controlleurs qui sont cense recycler les noeuds n'ont pu le faire vu le volume de noeud et surtout parce qu'eux meme étaient effectés
l'autre article
Cloud
Le data center parisien europe-west9-a est en panne depuis 3 semaines https://www.lebigdata.fr/data-center-panne
un feu s'est déclenché qui a touché une zone
le DC reste opérationnel sur les zones non touchée sauf BigTable qui a besoin de la zone touchée
les autres services fonctionnent
sauf les applis utilisateurs qui ne tournaiuent que sur la zone affecté
Outillage
Podman Desktop 1.0 est sorti https://podman-desktop.io/blog/podman-desktop-release-1.0
pas grand chose a dire que c'est la 1.0
"Works on my machine"
Contract testing with Pact https://hollycummins.com/contract-testing-devoxx-greece/
Conference
quand on change un microservice l'autre casse
les tests d'integration sont lent, instable et demande des grosses machines ou des environnements remote de dev
mock / unit tests ne sont pas vraiment le code de l'autre équipe
D'où Contract test qui vit entre les end to end et les unit tests.
Peut partir d'un test mock et rempalcer avec pact cote consommateur
en faisait tourner, un pack listener enregistre la declaration (le DSL) et le retours attendus / generés par l'appel du test
copier ce fichier vers le producteur
copier a la main, dans le repo, via a broker
ajoute un test pact cote producteur qui va exercer le JSON et verifier que cela marche
tests de pack sont plus profonds qu'un test OPENAPI
consommateur utilise pact comme mock et verifie le provider wrt le contract du mock
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