Restez informes sur les sujets brulants de l industrie Java.
Plongez sur un sujet precis avec l interview de l episode.
Supportez les radotages de vos hôtes : Emmanuel Bernard (JBoss, Hibernate), Arnaud Héritier (CloudBees, Jenkins), Guillaume Laforge (Google, Groovy), Antonio Goncalves (freelance, auteur), Vincent Massol (XWiki, Maven), Audrey Neveu (Saagie, Devoxx4Kids).
Site
RSS
Apple
Classements récents
Dernières positions dans les classements Apple Podcasts et Spotify.
Liens partagés entre épisodes et podcasts
Liens présents dans les descriptions d'épisodes et autres podcasts les utilisant également.
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 ?
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)
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.
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)!!!
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…
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)
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
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://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
le projet remporte un gain de 10000€. Ce prix est organisé par le gouvernement français afin de récompenser les projets open sources les plus impactants.
Les politiques de congés illimités, populaires aux États-Unis, ne sont pas aussi avantageuses en Europe.
En Europe, les employeurs doivent suivre les congés pris pour respecter les minima légaux de quatre semaines par an donc ils ne peuvent pas economiser sur le faire de ne plus les gérer.
Les congés illimités permettent aux US de ne plus à devoir les payer au départ de l'employé. En Europe les employeurs doivent payer les congés non utilisés lors de la fin du contrat.
Les employés européens pourraient prendre davantage de congés, car ils sont mieux protégés contre le licenciement.
Les jours de maladie sont plus cadrés en europe. Un employé qui souffre d'une maladie longue pourrait utiliser les congés illimités mais ce ne sont pas les même règles qui s'appliquent
OpenDNS n'est plus disponible en France et au Portugal
A priori Cisco qui opère openDNS en a marre des demandes de restrictions spécifiques à nos pays et préfère donc retirer entièrement l'accès au service plutôt que de se conformer à la nième demande de restrictions qui faisait suite à la plainte du groupe Canal+ portant sur l'accès à des sites illicites de streaming pour du sport
Ask Me Anything
Salut ! Êtes-vous plutôt IDE payants (ex : IJ Ultimate, ou des plugins payants), ou ne jurez-vous que par des outils gratuits ? Un peu des deux ? Si adaptes du payant, ça ne vous déprime pas qu'un nombre considérable d'employeurs rechignent à nous payer nos outils ? Que "de toute façon VSCode c'est gratuit" (à prononcer avec une voix méprisante) ? Quid du confort, ou de la productivité et/ou qualité accrue quand on maîtrise de tels outils ? Merci !
Katia, Guillaume, Emmanuel et Antonio discutent Kotlin, Micronaut, Spring Boot, Quarkus, Langchain4j, LLMs en Java, builds reproductible et la question AMA du jour, comment fait-on carrière de dev à 40 ans ?
Des licenciements ont continué chez Google et l'équipe Flutter/Dart comme plein d'autres ont été touchées, mais sur les réseaux sociaux les gens ont pensé que Google désinvestissait dans Flutter et Dart.
Par ailleurs, côté Android, ils poussent plutôt du côté de Kotlin et KMP, mais naturellement aussi les gens se sont demandé si Google avait pris parti pour pousser plus Kotlin/KMP plutôt que Flutter/Dart.
Pour essayer de mieux faire comprendre aux développeurs l'intérêt des deux plateformes, et leurs avantages et inconvénients, les directeurs des deux plateformes ont rédigé un article commun.
Si l'on souhaite une expérience plus proche du hardware et des dernières nouveautés d'Android, et d'avoir aussi une UI/UX vraiment native Android, mieux vaut aller du côté de Kotlin/KMP.
Si l'on souhaite par contre une expérience multiplateforme Web, mobile, desktop avec une UX commune cross-plateforme, avec également le partage de business logic à partir d'une même base de code, Flutter et Dart sont plus adaptés.
la pres Grow with the flow montrant la reecriture en kotlin plus simple que des solutions complexes ailleurs
power-assert pour ecrire des tests
Kotlin 2.0 et les evolutions majeures
Librairies Web Data et Intelligence Artificielle Outillage Méthodologies Sécurité Demande aux cast codeurs Conférences Nous contacter
LCC 304 - Dark punk
lundi 18 décembre 2023 • Durée 01:39:41
Dans cet épisode, Katia, Arnaud et Emmanuel discutent les nouvelles de cette fin 2023. Le gatherer dans les stream Java, les exceptions, JavaScript dans la JVM, recherche vectorielle, coût du cloud, Gemini, Llama et autres animaux fantastiques et pleins d'outils sympathiques pour fêter la fin de l'année.
dans cet article de Paul King, de l'équipe Groovy, il montre et contraste ce que l'on pouvait faire en Groovy depuis des années, comme des sliding windows, par exemple
explique l'approche des gatherers avec ses opérations intermédiaires
gatherer sont des operations intermediaires custom qui prennent un etat et le prochain element pour decided quoi faire, et meme changer le stream d'elements suivants (en publier) (via la fonction integrate
certains peuvent permettre de combiner les resultats intermediaires (pour paralleliser)
Examples : fenetres de taille fixe, fenettres glissantes
Joe Duffy, qui est CEO de Pulumi, mais qui avait travaillé chez Microsoft sur le project Midori (un futur OS repensé) parle du design des exceptions, des erreurs, des codes de retour https://joeduffyblog.com/2016/02/07/the-error-model/
Il compare les codes d'erreurs, les exceptions, checked et non-checked
il separe les bugs des erreurs attendues (bugs doivent arreter le process)
il raconte l'histoire des unchecked exception et leurs problemes et des checked exceptopns et poourquoi les developeurs java les detestent (selon lui)
Librairies Cloud Web Data et Intelligence Artificielle Outillage Architecture Méthodologies Sécurité Conférences Nous contacter
LCC 214 - L'édition Barbecue
mardi 9 juillet 2019 • Durée 01:39:42
Les Cast Codeurs se réunissent pour leur déjeuner annuel de tous les 18 mois à deux ans pour enregistrer cet épisode news. On y discute contribution OpenJDK, JIT, sérialisation, Quarkus, CloudEvent, AWS lambda, React, daltonisme, event sourcing, uml, loi extra territoriale et bien d'autres choses encore. Le mot Barbecue vient de l'embrochement du gibier "de la barbe au cul" avant de le faire chauffer dans les cheminées de cuisine.
Middleware Infrastructure Cloud Web Data Outillage Architecture Méthodologies Sécurité Loi, société et organisation Outils de l'épisode Conférences Nous contacter
LCC 213 - les re-10 ans des cast codeurs au RivieraDEV
mercredi 19 juin 2019 • Durée 42:26
Cet épisode en direct de RivieraDEV continue la séance Ask Me Anything débutée à Devoxx France.
Guillaume, Vincent et Emmanuel discutent des nouvelles autour de Java 12, Jakarta EE, Spring, Quarkus, la mairie de Paris et son data center. Mais aussi de web, de Huawei, du design des fichiers Dockerfile et bien d'autres choses encore.
Infrastructure Cloud Web Data Outillage Architecture Méthodologies Loi, société et organisation Conférences Nous contacter
LCC 211 - Interview sur la virtualisation avec Quentin Adam
lundi 27 mai 2019 • Durée 01:31:22
Quentin Adam (CEO de Clever Cloud) et Emmanuel discutent la stack de bas en haut, du physique au software sous l'angle de la virtualisation. Et bien sûr, une petite dérive de la conversation de temps en temps, parce qu'on le vaut bien.
Container ("Isolateur") Noyau en espace utilisateur Modèle économique, recompilation pour le matériel physique et conclusion Nous contacter
LCC 210 - Javax is coming
samedi 11 mai 2019 • Durée 01:42:47
Dans cet épisode, Guillaume, Arnaud et Audrey reviennent sur les derniers rebondissements des drama de la tech : le futur de Jakarta EE, Amazon vs l'Open Source … Et bien sûr on discute aussi technique avec les actualités de Elastic, JHipster, Micronaut, et plein d'autres.
Middleware Cloud Web Outillage Architecture Méthodologies Sécurité Loi, société et organisation Outils de l'épisode Rubrique débutant Conférences Nous contacter
LCC 209 - Les 10 ans des cast codeurs à Devoxx France
samedi 27 avril 2019 • Durée 45:52
Cet épisode en direct de Devoxx France est l'occasion pour la fine équipe de repondre aux questions que vous nous avez posé.
LCC 208 - Si après 10 ans d'open source, t'as pas ta fondation, t'as raté ta vie
lundi 8 avril 2019 • Durée 01:37:53
Dans cet épisode en tête à tête Arnaud et Audrey discutent des nouveautés de Java 12, des dernières versions de Vert.x, Kubernetes ou Traefik mais aussi open source et fondations, et bien d'autres choses encore.
Le serveur basé sur Netty inclus la détection d'opération bloquante et les modules l'utilisant indiqueront à l'utilisateur quand certaines opérations peuvent être redirigée plutôt sur un virtual thread ou dans le thread pool IO
Micronaut Data inclus le support de la multitenance avec partitionnement par discriminateur pour JDBC et R2DBC
Micronaut Data rajoute le pagination par curseur pour JDBC et R2DBC (important aussi pour Jakarta Data)
Support des annotations Jakarta Servlet pour configurer par exemple les servelet filters
Support virtual thread et HTTP/2
Un nouveau module JSON Schema pour générer des JSON Schemas pour les records Java
Un nouveau module Source Gen pour faire de la génération de source pour Java et Kotlin cross-language
Un nouveau module Guice pour importer des modules Guice existants
Support expérimental pour la détection de changement sans zone
Angular.dev est désormais le nouveau site pour les développeurs Angular
Material 3, les "deferrable views", le "built-in control flow" sont maintenant stables et intègrent une série d'améliorations
Améliorations du rendu côté serveur telles que le support de l'hydratation i18n, un meilleur débogage, le support de l'hydratation dans Angular Material, et la event replay qui utilise la même bibliothèque que Google Search.
Nouveau algo Deep Learning de l'Université de Washington permet d'écouter une seule personne de ton choix et effacer tout le bruit autour
le système nécessite que la personne portant les écouteurs appuie sur un bouton tout en regardant quelqu'un parler ou simplement en le fixant pendant trois à cinq secondes
Permet à un modèle d'apprendre les schémas vocaux du locuteur et de s'y attacher pour pouvoir les restituer à l'auditeur, même s'il se déplace et cesse de regarder cette personne.
Selon les chercheurs, cela constitue une avancée significative par rapport aux écouteurs à réduction de bruit existants, qui peuvent annuler efficacement tous les sons, mais ne peuvent pas sélectionner les locuteurs en fonction de leurs caractéristiques vocales.
Actuellement, le système ne peut enregistrer qu'un seul locuteur à la fois. Une autre limitation est que l'enregistrement ne réussira que si aucune autre voix forte ne provient de la même direction.
L'équipe a mis en open source leur code et leur jeu de données afin de faciliter les travaux de recherche futurs pour améliorer l'audition de la parole cible.
Slack a migré 15.000 tests de Enzyme à React Testing Library avec un succès de 80%
Migration nécessaire pour le manque de support de Enzyme pour React 18
L'équipe a essayé d'automatiser la conversion avec des transformations AST, mais n'a atteint que 45 % de succès à cause de la complexité des méthodes d'Enzyme et du manque d'accès aux informations contextuelles du DOM.
L'équipe a utilisé Claude 2.1 pour la conversion, avec des taux de réussite variant de 40 % à 60 %, les résultats dépendant largement de la complexité des tâches.
Suite aux résultats insatisfaisants, l'équipe a décidé d'observer comment les développeurs humains abordaient la conversion des tests unitaires.
Les développeurs humains utilisaient leurs connaissances sur React, Enzyme et RTL, ainsi que le contexte du rendu et les conversions AST de l'outil initial pour mieux convertir les tests unitaires.
Finalement les ingénieurs de Slack ont combiné transformations AST et LLM en intégrant des composants React rendus et des conversions AST dans les invites, atteignant un taux de réussite de 80 % démontrant ainsi la complémentarité de ces technologies.
Claude 2.1 est un modèle de langage de grande taille (LLM) annoncé en novembre 2023 par Anthropic. Il inclut une fenêtre contextuelle de 200 000 tokens, des réductions significatives des taux d'hallucination du modèle, des invites système et permet l'utilisation d'outils. Depuis, Anthropic a introduit la famille de modèles Claude 3, composée de trois modèles distincts, avec des capacités multimodales et une compréhension contextuelle améliorée.
Un arbre de syntaxe abstraite (AST) est une représentation arborescente de la structure syntaxique abstraite du code source écrit dans un langage de programmation. Chaque nœud de l'arbre représente une construction du code source. Un arbre de syntaxe se concentre sur la structure et le contenu nécessaires pour comprendre la fonctionnalité du code. Les AST sont couramment utilisés dans les compilateurs et les interpreters pour analyser et examiner le code, permettant diverses transformations, optimisations et traductions lors de la compilation.
Aqua, le premier IDE conçu pour l'automatisation des tests, supporte plusieurs langages (Java, Python, JavaScript, TypeScript, Kotlin, SQL) et frameworks de tests (Selenium, Playwright, Cypress).
Pourquoi ? Les tests d'applications nécessitent des compétences spécifiques. Aqua, un IDE adapté, est recommandé par les ingénieurs en automatisation des tests.
Aqua propose deux plans de licence : un gratuit pour les usages non commerciaux et un payant pour les usages commerciaux.
cam me parait un peu contre intuitif a l'heure du devops et du TDD de faire des outils dédiés et donc des equipes ou personnes dédiées
modèle multimodal qui peut prendre du texte, en entrée, mais aussi des images, du son, des vidéos
d'après les benchmarks, il est largement aussi bon que GPT4
plusieurs tailles de modèles disponible : Nano pour être intégré aux mobiles, Pro qui va être utilisé dans la majeure partie des cas, et Ultra pour les besoins de réflexion les plus avancés
dans l'optique des modeles GenAI ouverts, Facebook fournit des outils pour faire des IA responsables (mais pas coupables :wink: )
notament des benchmarks pour evaluler la sureté et un classifier de sureté, par exemple pour ne pas generer du code malicieux (ou le rendre plus dur)
llama purple sera un projet parapluie
D'ailleurs Meta IBM, Red Hat et pleins d'autres ont annoncé l'AI Alliance pour une AI ouverte et collaborative entre académique et industriels. Sont notammenrt absent Google, OpenAI (pas ouvert) et Microsoft
Juste une annouce pour l'instant mais on va voir ce que ces acteurs de l'AI Alliance feront de concret
il y a aussi un guide d'utilisateur l'usage IA responsable (pas lu)
MLX est une librairie Python qui s'inspire fortement de NumPy, PyTorch, Jax et ArrayFire
Surtout, c'est développé spécifiquement pour les Macs, pour tirer au maximum parti des processeurs Apple Silicon
Dans un des repos Github, on trouve également des exemples qui font tourner nativement sur macOS les modèles de Llama, de Mistral et d'auters https://github.com/ml-explore/mlx-examples
non seulement les Apple Silicon amis aussi la memoire unifiee CPU/GPU qui est une des raisons clés de la rapidité des macs
Le calendrier HTML "hell" https://www.htmhell.dev/adventcalendar/ qui parle d'accessibilité, de web components, de balises meta, de toutes les choses qu'on peut très bien faire en HTML/CSS sans avoir besoin de JavaScript
Beaucoup d'outil librement accessibles sont mentionnés pour faire toutes sortes de visualisations (ex. treemap, dendros, sankey…) mais aussi pour la cartographie
Quelques ressources de site qui conseillent sur l'utilisation du bon type de visualisation en fonction du problème et des données que l'on a
notemment celui du financial time qui tiens dans une page de PDF
Avec toute une liste de questions à se poser dans l'utilisation d'un outil tel que Copilot
Il faut bien réaliser que malheureusement, une IA n'a pas raison à 100% dans ses réponses, et même plutôt que la moitié du temps, donc il faut bien mettre à jour ses attentes par rapport à cela, car ce n'est pas magique
La conclusion est intéressante aussi, en suggérant que grosso modo dans 40 à 60% des situations, tu peux arriver à 40 à 80% de la solution. Est-ce que c'est à partir de ce niveau là qu'on peut vraiment gagner du temps et faire confiance à l'IA ?
Ne perdez pas trop de temps non plus à essayer de convaincre l'IA de faire ce que vous voulez qu'elle fasse. Si vous n'y arrivez pas, c'est sans doute parce que l'IA n'y arrivera même pas elle même ! Donc au-delà de 10 minutes, allez lire la doc, chercher sur Google, etc.
notamment, faire genrer les tests par l'IA dans al foulée augmente les risques surtout si on n'est pas capable de bien relire le code
si on introduit un choix de pattern genre flexbox en CSS, si c'est sur une question de sécuriter, vérifier (ceinture et bretelle)
est-ce le framework de la semaine dernière? L'info ne sera pas dans le LLM (sans RAG)
C'est le MLOps et il y a quelques modèles end to end Google, IBM mais vu la diversité des organisations, c'est difficile a embrasser ces versions completes
ML Ops est une métier, data science est un metier, donc intégrer ces competences
sachez gérer votre catalogue de données
Construire un process pour tester vos modèles et continuellement
La notion de culture de la recherche et sa gestion (comme un portefeuille financier, accepter d'arrêter des experience etc)
la culture de la recherche est peu présente en engineering qui est de construire des choses qui foncitonnent
L'article conclut avec quelques pistes sur comment éviter ces dark patterns en regardant les bons patterns de la concurrence, en testant les interactions UX, et en applicant beaucoup de bon sens !
les dark patterns ne sont pas des accidents, ils s'appuient sur la psychologie et sont mis en place specifiquement
L'article parle de l'évolution de la perception de l'engineering management qui n'est plus désormais le choix de carrière par défaut pour les ingénieurs ambitieux.
Il met en évidence les défis auxquels les engineering managers sont confrontés, y compris les attentes croissantes en matière d'empathie, de soutien et de compétences techniques, ainsi que l'impact de la pandémie de COVID-19 sur l'attrait des postes de management.
L'importance des bons engineering mnanagers est soulignée, car ils sont considérés comme des multiplicateurs de force pour les équipes, contribuant de manière significative à la productivité, à la qualité et au succès global dans les environnements organisationnels complexes.
L'article fournit des raisons pour lesquelles quelqu'un pourrait envisager de devenir Engineering Manager, y compris acquérir une meilleure compréhension de la façon dont les entreprises fonctionnent, contribuer au mentorat et influencer les changements positifs dans la dynamique des équipes et les pratiques de l'industrie.
Une perspective est présentée, suggérant que devenir Engineering manager peut conduire à la croissance personnelle et à l'amélioration des compétences de vie, telles que l'autorégulation, la conscience de soi, la compréhension des autres, l'établissement de limites, la sensibilité à la dynamique du pouvoir et la maîtrise des conversations difficiles. L'article encourage à considérer la gestion comme une occasion de développer et de porter ces compétences pour la vie.
j'avais lu le tweet du createur de cette conf qui expliquait que c'etait des comptes de tests et que pris dans le rush ils avaient oublié de les enlever
mais en fait les comptes de tests ont des profils "Actifs" sur le reseaux sociaux apparemment donc c'était savamment orchestré
Au final beaucoup de speakers et des sponsors se desengagent
Et par rapport à Kata Containers par exemple ? ou KVM ? Quels sont les avantages / inconvénients ? (mémoire, sécurité/sandboxing, rapidité de démarrage…)
Découvrez des podcasts liées à Les Cast Codeurs Podcast. Explorez des podcasts avec des thèmes, sujets, et formats similaires. Ces similarités sont calculées grâce à des données tangibles, pas d'extrapolations !