LCC 314 - 1000 fois 1000 dépendances
Épisode de Les Cast Codeurs Podcast par Emmanuel Bernard, Guillaume, Antonio, Arnaud, Katia · 16 juillet 2024 · 1 h 23 min
Emmanuel, Guillaume et Arnaud discutent des nouvelles de l'été. JEPs, transactional outbox pattern avec Spring, LLM dans Chrome, faille polyfill.io, TOTP, congés illimités et IDE payant ou pas payant ?
Enregistré le 12 juillet 2024
Téléchargement de l'épisode LesCastCodeurs-Episode-314.mp3
News
Langages
Les fonctionnalités de JDK 23 ont été figées début Juin (release prévue en septembre) https://openjdk.org/projects/jdk/23/ https://www.youtube.com/watch?v=kzjGp7LmW0I
JEPs finales:
467: Markdown Documentation Comments
471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
474: ZGC: Generational Mode by Default
JEPs en incubation / preview
455: Primitive Types in Patterns, instanceof, and switch (Preview)
466: Class-File API (Second Preview)
469: Vector API (Eighth Incubator)
473: Stream Gatherers (Second Preview)
476: Module Import Declarations (Preview)
477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
480: Structured Concurrency (Third Preview)
481: Scoped Values (Third Preview)
482: Flexible Constructor Bodies (Second Preview)
Librairies
Le transactional outbox pattern avec Spring Boot https://www.wimdeblauwe.com/blog/2024/06/25/transactional-outbox-pattern-with-spring-boot/
transactional outbox permet d'éviter des 2PC ou des désynchronisations de resources: typiquement un commit dans une base et un envoie de message dans un bus
on ecrit le message dans une table de la base de données, et un process séparé récupère les messages et les envoient dans le bus
implémentation utilise Spring Integration
dans l'article, la seconde resource est l'envoie d'email
montre une approche de tests
le flow descrit pas psring integration est pas super trivial a lire quand on est pas familier mais cela poll la table toutes les secondes et envoie email et si succes de l'appel de service, vide le message de la table
Deuxieme exemple avec Spring modulith qui a un event bus interne qui peut être persisté
décrit les differences avec spring integration et les limites de l'approche modulith (message order, retry etc)
Comment tester des valeurs de propriétés différentes dans un test Quarkus https://quarkus.io/blog/overriding-configuration-from-test-code/
on a tendance a ne pas tester les propriétés de config
ce blog montre 5 (enfin 4 utiles) façons de le faire avec Quarkus.
les profils de test, mocker l'objet de config, les test components (experimental), l'injection dans les constructeurs
Quarkus 3.12 https://quarkus.io/blog/quarkus-3-12-0-released/
centralisation des configs TLS
support pour le load shedding (reject requests on service overload)
événements JFR specific a Quarkus
native image agent
support Spring Boot 3 (compat layer)
Support Kotlin 2
etc
Cloud
On vous parlait dans un épisode précédent de ce problème de coûts S3 sur des requêtes non autorisées. C'est Graphana Loki qui a mis ce problème sous les projecteurs https://grafana.com/blog/2024/06/27/grafana-security-update-grafana-loki-and-unintended-data-write-attempts-to-amazon-s3-buckets/
le problème venait des valeurs par défaut des buckets déclarés dans le chart helm de Loki, en particulier celui nommé 'chunks'
Data et Intelligence Artificielle
Guillaume avait partagé l'information sur la disponibilité prochaine d'un mini modele LLM dans chrome. C'est maintenant une réalité et vous pouvez le tester.
https://ai-sdk-chrome-ai.vercel.app/
Nécessite Chrome 127 (version stable à partir de mi-juillet)
Utilise le SDK Vercel AI
Guillaume nous parle de toutes les nouveautés liées au modèle Gemini de Google dans la dernière release de LangChain4j https://glaforge.dev/posts/2024/07/05/latest-gemini-features-support-in-langchain4j/
Outillage
1% des utilisateurs de Maven Central utilisent 83% de sa bande passante. Installez un repository manager qui fait proxy (et cela pour tous les types de dépendances)!!!
https://www.sonatype.com/blog/maven-central-and-the-tragedy-of-the-commons
rien n'est réellement gratuit et l'abus d'une minorité peut nuire à l'ensemble. Cela fait maintenant plus de 20 ans que les communautés le répète: installer un gestionnaire de dépendances dans votre infrastructure (nexus, artifactory, CodeArtifact, …). En plus de protéger le bien commun cela vous permet de raffiner le filtrage des dépendances, d'assurer la reproductibilité de vos builds, d'optimiser les performances (et réduire les coûts) en ne téléchargeant que depuis votre propre infrastructure, etc …
Maven Central est un commun qui ne coute rien à l'utilisteur
mais qui est indispensable à tous
1000 milliards de téléchargements l'année dernière
83% de la bande passante consommé par 1% des IPs
Beaucoup des ces IP viennent des companies les plus larges
proxy pour réduire charge sur central, réduire couts ingress/egress
ils vont implementer un mécanisme de throttling
question est-ce que la concentration des IPs veut juste dire que c'est le dernier noeud mais que cacher n'est pas effectif pour eux et qu'il y a des milliers de clients derrière une IP?
le trotting ferait mal
et le proxy ne marche plus dans un monde ou le dev est dans le cloud et distribue géographiquement
Comment mettre en place backstage, ici avec un projet Spring Boot utilisant CircleCi, Renovate, SonarCloud…
https://piotrminkowski.com/2024/06/13/getting-started-with-backstage/
Cet article explique comment utiliser backstage pour fournir à vos équipes un template d'une application spring-boot.
Elle est automatiquement crée sous forme d'un repository git(hub) avec les integrations classiques pour gérer la CI (via CircleCI), la qualité (via SonarCloud), la mise à jour de dépendances (via Renovate) et bien sur son référencement sur le portail backstage.
tutoriel tres complet
tres facilement remplacable pour un project avec votre technologie preferee (pas specifique a Spring Boot, ou Java)
Architecture
Que se passe t'il quand vous faites un push sur GitHub? https://github.blog/2024-06-11-how-we-improved-push-processing-on-github/
GitHub explique comment ils ont amélioré leur architecture, notamment en mettant en place Kafka pour distribuer les actions qui découlent d'un push sur GitHub.
paralelisation des taches (avant sequentiel)
limitation des dependances entre etapes effectuées lors d'un push
plus de taches peuvent faire un retry
un classique de decoupling via un EDA
Sécurité
Attaque du CDN polyfill.io https://sansec.io/research/polyfill-supply-chain-attack
polyfill c'est un support de nouvelles fonctionalites dans les ancien navigateurs
servi par cdn notamment
une societe chinoise a achete le domaine et le github
et injecte du malware qui pointe sur des serveurs qui servent le malware selectivement (device, admin ou pas, heure de la journée)
Fastly et Cloudflare on des deploiements alternatiuve
Une faille de sécurité, de type Remote Code Execution, vieille de 10ans, dans CocoaPods, un gestionnaire de dépendances très utilisé dans le monde Apple (macOS et iOS)
https://securityboulevard.com/2024/07/cocoapods-apple-vulns-richixbw/
https://cocoapods.org/ / https://cocoapods.org/ est un gestionnaire de dépendances pour les projets Xcode. Les dependances (Pods) sont publiées sous forme de Specs qui sont référencées dans un Specs Repo (une sorte de Maven central mais seulement avec des metadonnées)
CVE-2024-38366 est une vulnérabilité de type remote code execution avec un score CVSS de 10
La faille existait depuis 10 ans et a été corrigée en Sept 2023. Elle permettait d'avoir un accès root sur trunk.cocoapods.org qui stock les Specs. Elles auraient donc pu être modifiées sans que les auteurs ne s'en apperçoivent.
Pas de preuve pour l'instant que la faille ait été exploitée
Mieux comprendre la double authentification avec TOTP
https://hendrik-erz.de/post/understanding-totp-two-factor-authentication-eli5
Cet article revient sur le fonctionnement de TOTP et comment l'implementer avec des exemples en python
the QR code est une URL qui contient: le secret en base 32. le nom du totp, qui a fournit le TOTP, combien de chiffres et la durée de vie du TOTP
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