Filtrer par genre

Les Cast Codeurs Podcast

Les Cast Codeurs Podcast

Emmanuel Bernard, Guillaume Laforge, Vincent Massol, Antonio Goncalves, Aud

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).

319 - LCC 318 - La faille sous la faille sous la faille
0:00 / 0:00
1x
  • 319 - LCC 318 - La faille sous la faille sous la faille

    Cet épisode est relativement pauvre en IA, ouaissssssss ! Mais il nous reste plein de Spring, plein de failles, plein d’OpenTelemetry, un peu de versionnage sémantique, une astuce Git et bien d’autres choses encore.

    Enregistré le 8 novembre 2024

    Téléchargement de l’épisode LesCastCodeurs-Episode–318.mp3

    News Langages

    Le createur de Fernflower in decompilateur qui a relancé l’outillage autour de Java 8 est mort, un hommage d’IntelliJ IDEA https://blog.jetbrains.com/idea/2024/11/in-memory-of-stiver/

    les decompilateurs s’appuyaient sur des patterns reconnus et étaient fragiles et incomplets surtout quand Java 8 a changé le pattern try catch et ajouté des concepts comme les annotations le champ était moribond quand Stiver s’est lancé dommage l’article n’explique pas comment le control-flow graph est genere a partir du bytecode pour ameliorer la decompilation Librairies

    On peut maintenant utiliser Jakarta Data Repository dans Quarkus https://in.relation.to/2024/11/04/data-in-quarkus/

    petit article avec un projet example aussi un lien sur la presentation de Jakarta Data par Gavin à Devoxx Belgique

    Quarkus 3.16 https://quarkus.io/guides/opentelemetry-logging

    logs distribués avec OpenTelemetry (preview) deserialiseurs Jackson sans reflection des améliorations dans la stack de sécurité TLS registry a ratjouté graphql client et keycloak admin client LEs logs des container devservice et des access http sont visible dans la DevUI Les extensions peuvent maintenant ecrire leur doc en markdown (c’etait juste asciidoc avant)

    Un artcile sur comment débuter en Spring Batch https://www.sfeir.dev/back/planifier-des-taches-avec-spring-batch/

    Le support OAuth2 pour RestClient arrive dans Security 6.4 / Boot 3.4. Plus de hack de WebClient dans vos applications Spring-Web ! https://spring.io/blog/2024/10/28/restclient-support-for-oauth2-in-spring-security–6–4

    RestClient a été ajouté dans Spring Framework 6.1 API Fluide Spring Security 6.4 simplifie la configuration OAuth2 avec le nouveau client HTTP synchrone RestClient. RestClient permet des requêtes de ressources sans dépendances réactives, alignant la configuration entre applications servlet et réactives. La mise à jour facilite la migration depuis RestTemplate et ouvre la voie à des scénarios avancés.

    Marre des microservices ? Revenez au monoliths avec Spring Modulith 1.3RC1, 1.2.5 et 1.1.10 https://spring.io/blog/2024/10/28/spring-modulith–1–3-rc1–1–2–5-and–1–1–10-released

    Spring Modulith 1.3 RC1, 1.2.5, and 1.1.10 sont disponibles. La version 1.3 RC1 inclut des nouvelles fonctionnalités : archiving event publication completion mode compatibilité avec MariaDB et Oracle avec JDBC-based event publication registry Possibilité d’externaliser des événements dans des MessageChannels de Spring. Expressions SpEL dans @Externalized validation d’architecture technique jMolecules. Les versions 1.2.5 et 1.1.10 apportent des correctifs et mises à jour de dépendances.

    Spring gRPC 0.1 est sorti https://github.com/spring-projects-experimental/spring-grpc

    c’est tout nouveau et explorationel si c’est un probleme qui vous gratte, ca vaut le coup de jeter un coup d’oeil et participer. Spring Boot 3.3

    Integrer Spring avec Open Telemetry (OTLP protocole) https://spring.io/blog/2024/10/28/lets-use-opentelemetry-with-spring

    rappel de la valeur de ce standard Open Telemetry comment l’utiliser dans vos projets Spring

    Comment utiliser ollama avec Spring AI https://spring.io/blog/2024/10/22/leverage-the-power-of–45k-free-hugging-face-models-with-spring-ai-and-ollama

    permet d’acceter aux 45k modeles de Hugging faces qui supportent le deploiement sur ollama il y a un spring boot starter c’est vraiment pour debuter Cloud

    Google Cloud Frankfort a subit 12h d’interruption https://t.co/VueiQjhCA3

    Google Cloud a subi une panne de 12 heures dans la région europe-west3 (Francfort) le 24 octobre 2024. La panne, causée par une défaillance d’alimentation et de refroidissement, a affecté plusieurs services, y compris Compute Engine et Kubernetes Engine. Les utilisateurs ont rencontré des problèmes de création de VM, des échecs d’opérations et des retards de traitement. Google a conseillé de migrer les charges de travail vers d’autres zones. il y a eu une autre zone Europeenne pas mal affectée l’année dernière et des clients ont perdu des données :sweat: Web

    La fin de la World Wild Web Foundation https://www.theregister.com/2024/09/30/world_wide_web_foundation_closes/

    la Fondation World Wide Web ferme ses portes. Les cofondateurs estiment que les problèmes auxquels est confronté le Web ont changé et que d’autres groupes de défense peuvent désormais prendre le relais. Ils estiment également que la priorité absolue doit être donnée à la passion de Tim Berners-Lee pour redonner aux individus le pouvoir et le contrôle de leurs données et pour construire activement des systèmes de collaboration puissants (Solid Protocol - https://solidproject.org/).

    Release du https://www.patternfly.org/ 6

    Fw opensource pour faire de UI, sponsor RH Interessant à regarder Data et Intelligence Artificielle

    TSMC arrête des ventes à un client chinois qui aurait revenu un processeur à Huawei et utilise dans sa puce IA https://www.reuters.com/technology/tsmc-suspended-shipments-china-firm-after-chip-found-huawei-processor-sources–2024–10–26/

    Taiwan Semiconductor Manufacturing Company (TSMC) a suspendu ses livraisons à Sophgo, un concepteur de puces chinois, après la découverte d’une puce fabriquée par TSMC dans un processeur AI de Huawei (Ascend 910B). Cette découverte soulève des préoccupations concernant des violations potentielles des contrôles d’exportation des États-Unis, qui restreignent Huawei depuis 2020. Sophgo, lié à Bitmain, a nié toute connexion avec Huawei et affirme se conformer aux lois applicables. Toutefois, l’incident a conduit à une enquête approfondie de TSMC et des autorités américaines et taïwanaises

    Open AI et Microsoft, de l’amour à la guerre https://www.computerworld.com/article/3593206/microsoft-and-openai-good-by-bromance-hel[…]m_source=Adestra&huid=4349eeff–5b8b–493d–9e61–9abf8be5293b

    on a bien suivi les chants d’amour entre Sam Altman et Satia Nadella ca c’est tendu ces derniers temps deja avec le coup chez openAI où MS avait sifflé la fin de la récré “on a le code, les données, l’IP et la capacité, on peut tout recrée” OpenAi a un competiteur de Copilot et essaie de courtises ses clients les apétits d’investissements d’OpenAI et une dispute sur la valeur de la aprt de MS qui a donné des crédits cloud semble etre aui coeur de la dispute du moment

    Debezium 3 est sorti https://debezium.io/blog/2024/10/02/debezium–3–0-final-released/

    Java 17 minimum pour les connecteurs et 21 pour le serveur, l’extension quarkus outbox et pour l’operateur nettoyage des depreciations metriques par table maintenant support for mysql 9 y compris vector data type oracle, default mining strategie changée ehcache off-heap ajouté amelioarations diverses Oracle (offline RAC node flush, max string size for Extended PostgreSQL PGVector etc (Spanner, vitess, …)

    NotebookLlama: une version Open Source de NotebookLM https://github.com/meta-llama/llama-recipes/tree/main/recipes/quickstart/NotebookLlama

    Si vous avez été impressionné par les démo de Gemini Notebook, en créant des podcasts à partir de différentes resources, testez la version llama Tutoriel étape par étape pour transformer un PDF en podcast. Outillage

    Vous aimez Maven? Bien évidemment! Vous aimez asciidoctor? Absolument! Alors la version 3.1.0 du plugin asciidoctor pour maven est pour vous !! https://github.com/asciidoctor/asciidoctor-maven-plugin

    Le plugin permet soit de convertir des documents asciidoc de manière autonome, soit de les gérer via le site maven

    GitHub Universe: de l’IA, de l’IA et encore de l’IA https://github.blog/news-insights/product-news/universe–2024-previews-releases/

    GitHub Universe 2024 présente les nouveautés de l’année, notamment la possibilité de choisir parmi plusieurs modèles d’IA pour GitHub Copilot (Claude 3.5, Gemini 1.5 Pro, OpenAI o1). Nouvelles fonctionnalités : GitHub Spark pour créer des micro-applications, révisions de code assistées par Copilot, sécurité renforcée avec Copilot Autofix. Simplification des workflows avec les extensions GitHub Copilot Facilitation de la création d’applications IA génératives avec GitHub Models Méthodologies

    Les blogs de developpeurs experts Java recommandés par IntelliJ https://blog.jetbrains.com/idea/2024/11/top-java-blogs-for-experienced-programmers/

    pas forcement d’accord avec toute la liste mais elle donne de bonnes options si vous voulez lire plus de blogs Java

    Keycloak revient au semantic versioning après avoir suivi le versionage à la Google Chrome https://www.keycloak.org/2024/10/release-updates

    ne pas savoir si une mise a jour était retrocompatible était problématique pour les utilisateurs aussi les librairies clientes seront délivrées séparément et supporteront toutes les versions serveur de keycloak supportés Sécurité

    Un exemple d’attaque de secure supply chain théorique identifiée dans le quarkiverse et les détails de la résolution https://quarkus.io/blog/quarkiverse-and-smallrye-new-release-process/

    dans le quarkiverse, les choses sont automatisées pour simplifier la vie des contributeurs d’extension occasionels mais il y avait un défaut, les secrets de signature et d’accès à maven central étaient des secrets d’organisation ce qui veut dire qu’un editeur d’extension malicieux pouvait ecrire un pluging ou un test qiu lisait ses secrets et pouvait livrer de faux artifacts la solution est de séparer la construction des artifacts de l’etape de signature et de release sur maven central comme cela les cles ne sont plus accessible

    Avec Okta pus besoin de mot de passe quand tu as un identifiant long :face_with_hand_over_mouth: https://trust.okta.com/security-advisories/okta-ad-ldap-delegated-authentication-username/

    LOL Une vulnérabilité a été découverte dans la génération de la clé de cache pour l’authentification déléguée AD/LDAP. Les conditions: MFA non utilisé Nom d’utilisateur de 52 caractères ou plus Utilisateur authentifié précédemment, créant un cache d’authentification Le cache a été utilisé en premier, ce qui peut se produire si l’agent AD/LDAP était hors service ou inaccessible, par exemple en raison d’un trafic réseau élevé L’authentification s’est produite entre le 23 juillet 2024 et le 30 octobre 2024 Fixé le 30 octobre, 2024

    La revanche des imprimantes !! Linux ne les aime pas, et elles lui rendent bien. https://www.theregister.com/2024/09/26/cups_linux_rce_disclosed/

    Après quelques heures / jours de rumeurs sur une faille 9.9/10 CVSS il s’avère que cela concerne que les système avec le système d’impression CUPS et cups-browsed Désactivez et/ou supprimez le service cups-browsed. Mettez à jour votre installation CUPS pour appliquer les mises à jour de sécurité lorsqu’elles sont disponibles. Envisagez de bloquer l’accès au port UDP 631 et également de désactiver le DNS-SD. Cela concerne la plupart des distributions Linux, certaines BSD, possiblement Google ChromeOS, Solaris d’Oracle et potentiellement d’autres systèmes, car CUPS est intégré à diverses distributions pour fournir la fonctionnalité d’impression. Pour exploiter cette vulnérabilité via internet ou le réseau local (LAN), un attaquant doit pouvoir accéder à votre service CUPS sur le port UDP 631. Idéalement, aucun de vous ne devrait exposer ce port sur l’internet public. L’attaquant doit également attendre que vous lanciez une tâche d’impression. Si le port 631 n’est pas directement accessible, un attaquant pourrait être en mesure de falsifier des annonces zeroconf, mDNS ou DNS-SD pour exploiter cette vulnérabilité sur un LAN. Loi, société et organisation

    La version 1.0 de la definition de l’IA l’Open Source est sortie https://siliconangle.com/2024/10/28/osi-clarifies-makes-ai-systems-open-source-open-models-fall-short/

    L’Open Source Initiative (OSI) a clarifié les critères pour qu’un modèle d’IA soit considéré comme open-source : accès complet aux données de formation, au code source et aux paramètres d’entraînement. La plupart des modèles dits “open” comme ceux de Meta (Llama) et Stability AI (Stable Diffusion) ne respectent pas ces critères, car ils imposent des restrictions sur l’utilisation commerciale et ne rendent pas publiques les données de formation c’est au details de données de formation (donc pas forcement les données elle meme. “In particular, this must include: (1) the complete description of all data used for training, including (if used) of unshareable data, disclosing the provenance of the data, its scope and characteristics, how the data was obtained and selected, the labeling procedures, and data processing and filtering methodologies; (2) a listing of all publicly available training data and where to obtain it; and (3) a listing of all training data obtainable from third parties and where to obtain it, including for fee.” C’est en echo a la version d’open source AI de la linux fondation

    En parlant de cela un article sur l’open source washing dans les modèles https://www.theregister.com/2024/10/25/opinion_open_washing/

    L’open washing désigne la pratique où des entreprises prétendent que leurs produits ou modèles sont open-source, bien qu’ils ne respectent pas les critères réels d’ouverture (transparence, accessibilité, partage des connaissances). De grandes entreprises comme Meta, Google et Microsoft sont souvent accusées d’utiliser cette stratégie, ce qui soulève des préoccupations concernant la clarté des définitions légales et commerciales de l’open source, surtout avec l’essor de l’IA. Rubrique débutant

    Un petit article fondamental sur REST https://www.sfeir.dev/rest-definition/

    there de Roy Fielding en reaction aux protocoles lourds comme SOAP 5 verbes (GET PUT, POST. DELETE, PATCH) JSON mais pas que (XML et autre pas d’etat inter requete Ask Me Anything

    Morgan de Montréal Comment faire cohabiter plusieurs dépôts Git ?

    Je m’explique : dans mon entreprise, nous utilisons notre dépôt Git (Bitbucket) configuré pour notre dépôt d’entreprise. Lorsque je souhaite contribuer à un projet open source, je suis obligé de modifier ma configuration globale Git (nom d’utilisateur, email) pour correspondre à mon compte GitHub. Il arrive souvent que, lorsque je reviens pour effectuer un commit sur le dépôt d’entreprise, j’oublie que je suis en mode “open source”, ce qui entraîne l’enregistrement de mes configurations “open source” dans l’historique de Bitbucket… Comment gérez-vous ce genre de situation ?

    Comment gérer différents profiles git https://medium.com/@mrjink/using-includeif-to-manage-your-git-identities-bcc99447b04b

    Conférences

    La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

    8 novembre 2024 : BDX I/O - Bordeaux (France) 13–14 novembre 2024 : Agile Tour Rennes 2024 - Rennes (France) 16–17 novembre 2024 : Capitole Du Libre - Toulouse (France) 20–22 novembre 2024 : Agile Grenoble 2024 - Grenoble (France) 21 novembre 2024 : DevFest Strasbourg - Strasbourg (France) 21 novembre 2024 : Codeurs en Seine - Rouen (France) 21 novembre 2024 : Agile Game Toulouse - Toulouse (France) 27–28 novembre 2024 : Cloud Expo Europe - Paris (France) 28 novembre 2024 : OVHcloud Summit - Paris (France) 28 novembre 2024 : Who Run The Tech ? - Rennes (France) 2–3 décembre 2024 : Tech Rocks Summit - Paris (France) 3 décembre 2024 : Generation AI - Paris (France) 3–5 décembre 2024 : APIdays Paris - Paris (France) 4–5 décembre 2024 : DevOpsRex - Paris (France) 4–5 décembre 2024 : Open Source Experience - Paris (France) 5 décembre 2024 : GraphQL Day Europe - Paris (France) 6 décembre 2024 : DevFest Dijon - Dijon (France) 19 décembre 2024 : Normandie.ai 2024 - Rouen (France) 22–25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 30 janvier 2025 : DevOps D-Day #9 - Marseille (France) 6–7 février 2025 : Touraine Tech - Tours (France) 28 février 2025 : Paris TS La Conf - Paris (France) 20 mars 2025 : PGDay Paris - Paris (France) 25 mars 2025 : ParisTestConf - Paris (France) 3 avril 2025 : DotJS - Paris (France) 10–12 avril 2025 : Devoxx Greece - Athens (Greece) 16–18 avril 2025 : Devoxx France - Paris (France) 7–9 mai 2025 : Devoxx UK - London (UK) 16 mai 2025 : AFUP Day 2025 Lille - Lille (France) 16 mai 2025 : AFUP Day 2025 Lyon - Lyon (France) 16 mai 2025 : AFUP Day 2025 Poitiers - Poitiers (France) 11–13 juin 2025 : Devoxx Poland - Krakow (Poland) 12–13 juin 2025 : DevLille - Lille (France) 24 juin 2025 : WAX 2025 - Aix-en-Provence (France) 26–27 juin 2025 : Sunny Tech - Montpellier (France) 1–4 juillet 2025 : Open edX Conference - 2025 - Palaiseau (France) 18–19 septembre 2025 : API Platform Conference - Lille (France) & Online 6–10 octobre 2025 : Devoxx Belgium - Antwerp (Belgium) 9–10 octobre 2025 : Volcamp - Clermont-Ferrand (France) 16–17 octobre 2025 : DevFest Nantes - Nantes (France) 23–25 avril 2026 : Devoxx Greece - Athens (Greece) 17 juin 2026 : Devoxx Poland - Krakow (Poland) 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/

    Fri, 08 Nov 2024 - 1h 23min
  • 318 - LCC 317 - les nouvelles paramétriques

    De Java 23 à WebAssembly, en passant par l’IA et les design patterns, on a tout passé au crible #java #swift #webassembly #wordpress #webcomponents #llm #mongodb #keycloak #fairsource

    Enregistré le 18 octobre 2024

    Téléchargement de l’épisode LesCastCodeurs-Episode–317.mp3

    News Langages

    Java 23 est sorti ! InfoQ liste toutes les JEPs intégrées à la nouvelle version https://www.infoq.com/news/2024/09/java23-released/ Et FooJay plonge dans le détail https://foojay.io/today/java–23-has-arrived-and-it-brings-a-truckload-of-changes/

    JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview) JEP 466: Class-File API (Second Preview) JEP 467: Markdown Documentation Comments JEP 469: Vector API (Eighth Incubator) JEP 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal JEP 473: Stream Gatherers (Second Preview) JEP 474: ZGC: Generational Mode by Default JEP 476: Module Import Declarations (Preview) JEP 477: Implicitly Declared Classes and Instance Main Methods (Third Preview) JEP 480: Structured Concurrency (Third Preview) JEP 481: Scoped Values (Third Preview) JEP 482: Flexible Constructor Bodies (Second Preview) StringTemplate s’en va

    Un article sur l’API ClassFile qui sera un standard dans le JDK pour manipuler des classes (ala ASM) https://www.unlogged.io/post/class-file-api-not-your-everyday-java-api

    article long mais qui revient sur les raisons notamment parce que ASM est dans le JDK et qu’ils sont un problème de poule et d’oeuf et sur la forme de l’API a des exemples d’usage tout cela reste en preview dans le JDK des optimisation comme le lazy parsing et le constant pool sharing (en gros faire de la reference sur ce qui n’a pas changé

    Tip and Tail is back: cette fois une JEP https://openjdk.org/jeps/14

    plus qu’une keynote provocative au language summit maintenant une JEP dite informative le language est un pu flou sur l’objectif entre regarder tip and tail pour vos librairies c’est bien et adoptons tous le meme tip du JDK jusqu’aux stack applicatives

    Apple annonce la sortie de son language Swift en version 6 https://www.swift.org/blog/announcing-swift–6/

    Nouvelles plateformes : Swift 6 s’étend à de nouvelles plateformes (tous les grands OS déjà supportés), y compris les systèmes embarqués (sous ARM et Risc V). Swift Testing : Swift 6 introduit Swift Testing, une nouvelle bibliothèque de tests conçue pour Swift. Concurrence : Détection de data race en tant qu’erreur de compilation.

    Apple annonce travailler sur l’interopérabilité Swift / Java https://github.com/swiftlang/swift-java

    comme jextract mais dans l’autre sens

    The news Java https://www.infoq.com/news/2024/10/java-news-roundup-oct07–2024/

    JDK 24 : Un calendrier pour la sortie de JDK 24 a été proposé. La première phase de réduction des fonctionnalités commencera le 5 décembre 2024. La version finale sera disponible le 18 mars 2025. JDK 24 introduira des mises à jour avec deux nouvelles API. La Vector API (JEP 489) facilitera les opérations sur des vecteurs, tandis que la Class-File API (JEP 484) permettra une manipulation plus efficace des fichiers de classes Java. Un changement de sécurité important est proposé avec JEP 486. Il prévoit de désactiver définitivement le Security Manager, qui a été déprécié. Cette décision signifie que cette fonctionnalité ne sera plus disponible dans les futures versions, car elle est considérée comme obsolète. Apache Tomcat et Cassandra : Les nouvelles versions de Tomcat (11.0.0) et de Cassandra (5.0.0) sont sorties. Elles incluent des améliorations et des corrections de bogues. Spring Framework : Des mises à jour pour Spring Framework (versions 3.4.0-M2, 3.3.3 et 3.2.8) ont été publiées. Elles intègrent le support d’une nouvelle API qui aide à la gestion de la mémoire. Quarkus : Red Hat a sorti la version 3.15 de Quarkus, qui apporte des corrections et des améliorations. Une nouvelle version, la 3.16, est prévue pour la fin octobre. Commonhaus Foundation : Une nouvelle organisation, la Commonhaus Foundation, a été créée pour aider les projets open source à être durables. Quarkus a rejoint cette fondation. Cassandra, Camel, Lamgchain, Micronaut, OpenLibery, JHipster, Ktor etc.

    Design patterns revisited: https://www.youtube.com/watch?v=kE5M6bwruhw

    Design and design patterns. Optional: patterns and anti-patterns. Iterator pattern. Lightweight Strategy. Factory Method using default methods. Laziness using Lambda Expressions. Decorator using Lambda Expressions. Creating Fluent interfaces. Execute Around Method Pattern. Creating a Closed Hierarchy with sealed classes.

    Popularité des langages de programmation https://www.techspot.com/news/105157-python-most-popular-coding-language-but-challengers-gaining.html

    Python reste le langage de programmation le plus populaire, surtout dans des domaines comme la science des données et le développement web. Il est apprécié pour sa simplicité et le grand nombre de bibliothèques disponibles, ce qui le rend facile à apprendre et à utiliser. De nombreuses entreprises, y compris des startups, utilisent Python pour diverses applications. Malgré sa dominance, d’autres langages comme JavaScript, Java et Go gagnent en popularité et pourraient défier la position de leader de Python. (Java est monté du poste 4 au 3, en 1 an) Les développeurs qui codent occasionnellement préfèrent Python, montrant ainsi son attrait au-delà des programmeurs professionnels. L’émergence d’outils comme ChatGPT facilite l’accès à la programmation, ce qui pourrait influencer les tendances futures en matière de langages de programmation. Librairies

    Paramétrer ses tests JUnit 5 avec @CsvSource https://mikemybytes.com/2021/10/19/parameterize-like-a-pro-with-junit–5-csvsource/

    l’annotation permet d’avoir ses données de test au plus près de la méthode on écrit les données de test sous forme de CSV (éventuellement avec des délimiteurs de son choix pour plus de lisibilité, pour bien séparer les valeurs) par exemple -> ou maps to les valeurs peut être les paramètres de la method mai aussi les valeur de description du test Infrastructure

    Turbocharged Development: The Speed and Efficiency of WebAssembly par Danielle Lancashire https://devsummit.infoq.com/presentation/munich2024/turbocharged-development-speed-and-efficiency-webassembly

    L’utilisation de WebAssembly avec Serverless. Faire tourner des applications plus facilement dans le cloud.WebAssembly est rapide et sûr pour exécuter du code. Cela aide à déployer les applications plus rapidement et à utiliser moins de ressources. De nombreuses entreprises utilisent WebAssembly pour des tâches comme le traitement d’images et de données. Des plateformes comme Cloudflare Workers et AWS Lambda. La communauté autour de WebAssembly granèit. De nouveaux outils et bibliothèques sont créés. Cependant, il y a encore des défis à relever, comme la compatibilité et les performances. Malgré cela, l’avenir de WebAssembly est prometteur. Web

    C’est la guerre chez Wordpress https://techcrunch.com/2024/09/26/wordpress-vs-wp-engine-drama-explained/

    une boite nommée WP Engine fait du hosting de WordPress mais ne contribue pas Automatic, les gens derrière WordPress leur onbt demandé de résoudre ce probleme, soit en payant des droits de trademark soit en contribuant de l’engineering upstream à auteur de 8% de leurs revenus WP Engine dit non Automatic coupe l’accès aux mises a jours de thèmes et de plugins à WP Engine mettant des sites à risque (securité) WP Engine dit que c’est un abus de position du CEO d’Automatic sur les accès WordPress.org Bref c’est le drame le CEO d’automatic propose à ses employés 6 mois de salaire si ils ne sont pas d’accord avec la stratégie https://www.cio.com/article/3550331/one-twelfth-of-automattic-staff-leave-over-wordpress-wp-engine-spat.html 8% ont pris l’offre

    Les WebComposants ne sont pas le fuitur https://dev.to/ryansolid/web-components-are-not-the-future–48bh

    un article d’un auteur proéminent de framework JavaScript Discute les avantages et les inconvenients de la standardisation qui permet d’élever le débat mais aussi bloque des avenues d’optimisations beaucoup d’exemples d’inovations en frameworks JS qui auraient été bloqués Les commentaires apres l’article sont interessants aussi (en contre perspective) mais tout le monde n’est pas d’accord avec cet article https://www.abeautifulsite.net/posts/web-components-are-not-the-future-they-re-the-present/ Data et Intelligence Artificielle

    Conseils et bonnes pratiques lors de l’intégration de LLM dans une application https://glaforge.dev/posts/2024/09/23/some-good-practices-when-integrating-an-llm-in-your-application/

    management de prompt effectif versionnage et externalisation des prompts fixer la version des modèles optimisation et caching mettre en place des rails de sécurité évaluer et monitorer le comportement et la performance prioriser la sécurité des données privées

    Encore une nouvelle version de LangChain4j, avec la version 0.35 ! Guillaume couvre les nouveautés côté Gemini et Google Cloud https://glaforge.dev/posts/2024/09/29/lots-of-new-cool-gemini-stuff-in-langchain4j/

    Support des toutes nouvelles versions de Gemini 1.5 (version 002) Un “document loader” pour charger des documents à partir de Google Cloud Storage Un “scoring model” qui permet de faire du “reranking” de résultat, pour trouver les résultats les plus pertinents pour une requête donnée Support de nouveaux paramètres des embedding models (choix de la dimensionalité des vecteurs, du troncage des textes en entrée) Ajout d’un “embedding model” pour le module Google AI Gemini Un estimateur de token pour Google AI Gemini Support des chat listeners Support des enums pour la sortie structurée JSON Et plein de mise à jour de la documentation pour refleter tous ces changements et aditions

    Self Correction Algo LLM https://www.infoq.com/news/2024/10/google-deepmind-score/

    Google DeepMind a récemment publié SCoRe, une nouvelle méthode d’auto-correction pour les modèles de langage (LLM). Elle améliore la capacité des LLM à corriger leurs erreurs lorsqu’ils résolvent des problèmes de mathématiques ou de programmation. Contrairement aux méthodes antérieures, SCoRe utilise des données générées par le modèle lui-même pour créer des dialogues d’auto-correction. Cela permet au modèle de s’améliorer via un processus d’apprentissage par renforcement (RL) en deux étapes. Les modèles ajustés avec cette technique ont montré des améliorations significatives, surpassant les performances des modèles de base. Cette méthode pourrait ouvrir de nouvelles pistes pour rendre les LLM plus précis et robustes dans leurs réponses.

    MongoDB 8 est sorti https://www.mongodb.com/products/updates/version-release

    La version 8.0 est plus rapide, avec des lectures plus rapides, une meilleure gestion des mises à jour et des agrégations de séries temporelles jusqu’à 60 % plus rapides. De nouvelles fonctionnalités incluent le support des Query pour les données chiffrées, rendant le traitement des données sensibles plus facile. Beaucoup d’ameliorations pour la performance et scalabilité

    Guillaume explore les techniques avancées de Retrieval Augmented Generation pour améliorer la qualité des résultats de recherche dans ses propres documents, avec les LLMs https://glaforge.dev/talks/2024/10/14/advanced-rag-techniques/

    Présentations et vidéos données lors de la conférence Devoxx Belgique Code des exemples disponibles sur Github Techniques de chunking : sliding window, hypothetical questions, semantic chunking, context retrieval chunking Techniques de retrieval : hypothetical document embedding, query compression, metadata filtering Outillage

    Article sur les cache alias en Infinispan https://infinispan.org/blog/2024/10/07/cache-aliases-redis-databases

    Explique comment on peut utiliser Infinispan pour remplacer Redis Explique la différence entre les database de Redis et les caches d’Infinispan Explique l’utilité des alias en général Explique comment on peut avoir un mapping des databases de Redis vers des caches d’Infinispan Sécurité

    Keycloak 26 est sorti: https://www.keycloak.org/2024/10/keycloak–2600-released

    Organizations feature: permet aux administrateurs de créer et gérer des structures organisationnelles, facilitant la gestion des rôles et des permissions. Persistent user sessions: Les sessions des utilisateurs sont maintenant stockées par default dans la base de donnée ce qui améliore la cohérence, surtout avec plusieurs instances. Login Theme: Offre un design plus propre et une option de mode sombre qui s’adapte aux préférences des utilisateurs. L’amélioration du déploiement multi-sites renforce la fiabilité et réduit le temps d’arrêt lors des demandes des utilisateurs. Admin recovery: une méthode simple pour récupérer l’accès administrateur si tous les comptes sont bloqués, en créant un compte temporaire via des variables d’environnement. Pour les utilisateurs qui migrent vers cette version, il est important de prêter attention aux changements liés à la gestion des caches et aux sessions persistantes. Loi, société et organisation

    Introduction des licences fair source https://techcrunch.com/2024/09/22/some-startups-are-going-fair-source-to-avoid-the-pitfalls-of-open-source-licensing/

    Certaines startups utilisent des licences “fair source” pour partager leur code tout en protégeant leurs intérêts commerciaux. Les licences FSL (Functional Source License) et BUSL (Business Source License) permettent d’ouvrir le code après 2 ou 4 ans. Ces licences empêchent les concurrents de vendre des produits similaires tout de suite, offrant une protection temporaire. Certains critiques pensent que ces licences sont compliquées et pourraient limiter l’innovation, car elles ne sont pas totalement ouvertes. Le “fair source” est encore un concept nouveau, mais il pourrait devenir un bon compromis entre open source et logiciel privé. definition de fair source: code lisible publique, peut etre utilise et modifié avec des “restrictions minimales” pour proteger le business modele du producteur ; et devient open source de maniere deferée “any purpose other than a Competing Use. A Competing Use means use of the Software in or for a commercial product or service that competes with the Software or any other product or service we offer using the Software as of the date we make the Software available” Outils de l’épisode

    Un petit outil sympa pour les utilisateurs de Macs avec un écran “wide”, pour partager un écran virtuel : https://github.com/Stengo/DeskPad

    les écrans larges sont partagés entierement et ceui fait un rendu 16:9 pour les gens qui le voient cet écran acte comme un écran mais il est virtuel et on peut mettre les applications que l’on veut dedans on ne l’a pas testé Conférences

    La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

    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) 30–31 octobre 2024 : Agile Tour Bordeaux 2024 - Bordeaux (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) 16–17 novembre 2024 : Capitole Du Libre - Toulouse (France) 20–22 novembre 2024 : Agile Grenoble 2024 - Grenoble (France) 21 novembre 2024 : DevFest Strasbourg - Strasbourg (France) 21 novembre 2024 : Codeurs en Seine - Rouen (France) 27–28 novembre 2024 : Cloud Expo Europe - Paris (France) 28 novembre 2024 : Who Run The Tech ? - Rennes (France) 2–3 décembre 2024 : Tech Rocks Summit - Paris (France) 3 décembre 2024 : Generation AI - Paris (France) 3–5 décembre 2024 : APIdays Paris - Paris (France) 4–5 décembre 2024 : DevOpsRex - Paris (France) 4–5 décembre 2024 : Open Source Experience - Paris (France) 5 décembre 2024 : GraphQL Day Europe - Paris (France) 6 décembre 2024 : DevFest Dijon - Dijon (France) 22–25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 30 janvier 2025 : DevOps D-Day #9 - Marseille (France) 6–7 février 2025 : Touraine Tech - Tours (France) 25 mars 2025 : ParisTestConf - Paris (France) 3 avril 2025 : DotJS - Paris (France) 10–12 avril 2025 : Devoxx Greece - Athens (Greece) 16–18 avril 2025 : Devoxx France - Paris (France) 7–9 mai 2025 : Devoxx UK - London (UK) 12–13 juin 2025 : DevLille - Lille (France) 24 juin 2025 : WAX 2025 - Aix-en-Provence (France) 18–19 septembre 2025 : API Platform Conference - Lille (France) & Online 9–10 octobre 2025 : Volcamp - Clermont-Ferrand (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/

    Mon, 21 Oct 2024 - 1h 21min
  • 317 - LCC 316 - Devoxx Belgique 2024 - On rase gratis
    Sun, 13 Oct 2024 - 55min
  • 316 - LCC 315 - les températures ne sont pas déterministes

    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/

    Pour faire varier la prédictibilité ou la créativité des LLMs, certains hyperparamètres peuvent être ajustés, comme la température, le top-k et le top-p. Mais est-ce que vous savez vraiment comment fonctionnent ces paramètres ? Deux articles très clairs et intuitifs expliquent leur fonctionnement : https://medium.com/google-cloud/is-a-zero-temperature-deterministic-c4a7faef4d20 https://medium.com/google-cloud/beyond-temperature-tuning-llm-output-with-top-k-and-top-p–24c2de5c3b16

    la tempoerature va ecraser la probabilite du prochain token mais il reste des variables: approximnation des calculs flottants, stacks differentes effectuants ces choix differemment, que faire en cas d’egalité de probabilité entre deux tokens mais il y a d’atures apporoches de configuiration des reaction du LLM: top-k (qui evite les tokens peu frequents), top-p pour avoir les n des tokens qui totalient p% des probabilités temperature d’abord puis top-k puis top-p explique quoi utiliser quand

    OSI propose une definition de l’IA open source https://www.technologyreview.com/2024/08/22/1097224/we-finally-have-a-definition-for-open-source-ai/

    gros debats ces derniers mois utilisable pour tous usages sans besoin de permission chercheurs peuvent inspecter les components et etudier comment le system fonctionne systeme modifiable pour tout objectif y compris chager son comportement et paratger avec d’autres avec ou sans modification quelque soit l’usage Definit des niveaux de transparence (donnees d’entranement, code source, poids)

    Une longue rétrospective de PostgreSQL a des volumes de malades et les problèmes de lock https://ardentperf.com/2024/03/03/postgres-indexes-partitioning-and-lwlocklockmanager-scalability/

    un article pour vous rassurer que vous n’aurez probablement jamais le problème histoire sous forme de post mortem des conseils pour éviter ces falaises Outillage

    Un premier coup d’oeil à la future notation déclarative de Gradle https://blog.gradle.org/declarative-gradle-first-eap

    un article qui explique à quoi ressemble cette nouvelle syntaxe déclarative de Gradle (en plus de Groovy et Kotlin) Quelques vidéos montrent le support dans Android Studio, pour le moment, ainsi que dans un outil expérimental, en attendant le support dans tous les IDEs L’idée est d’éviter le scripting et d’avoir vraiment qu’une description de son build Cela devrait améliorer la prise en charge de Gradle dans les IDEs et permettre d’avoir de la complétion rapide, etc c’est moi on on a Maven là?

    Support de Firefox dans Puppeteer https://hacks.mozilla.org/2024/08/puppeteer-support-for-firefox/

    Puppeteer, la bibliothèque d’automatisation de navigateur, supporte désormais officiellement Firefox dès la version 23. Cette avancée permet aux développeurs d’écrire des scripts d’automatisation et d’effectuer des tests de bout en bout sur Chrome et Firefox de manière interchangeable. L’intégration de Firefox dans Puppeteer repose sur WebDriver BiDi, un protocole inter-navigateurs en cours de standardisation au W3C. WebDriver BiDi facilite la prise en charge de plusieurs navigateurs et ouvre la voie à une automatisation plus simple et plus efficace. Les principales fonctionnalités de Puppeteer, telles que la capture de journaux, l’émulation de périphériques, l’interception réseau et le préchargement de scripts, sont désormais disponibles pour Firefox. Mozilla considère WebDriver BiDi comme une étape importante vers une meilleure expérience de test inter-navigateurs. La prise en charge expérimentale de CDP (Chrome DevTools Protocol) dans Firefox sera supprimée fin 2024 au profit de WebDriver BiDi. Bien que Firefox soit officiellement pris en charge, certaines API restent non prises en charge et feront l’objet de travaux futurs.

    Guillaume a créé une annotation @Retry pour JUnit 5, pour retenter l’exécution d’un test qui est “flaky” https://glaforge.dev/posts/2024/09/01/a-retryable-junit–5-extension/

    Guillaume n’avait pas trouvé d’extension par défaut dans JUnit 5 pour remplacer les Retry rules de JUnit 4 Mais sur les réseaux sociaux, une discussion intéressante s’ensuit avec des liens sur des extensions qui implémentent cette approche Comme JUnit Pioneer qui propose plein d’extensions utiles https://junit-pioneer.org/docs/retrying-test/ Ou l’extension rerunner https://github.com/artsok/rerunner-jupiter Arnaud a aussi suggéré la configuration de Maven Surefire pour relancer automatiquement les tests qui ont échoué https://maven.apache.org/surefire/maven-surefire-plugin/examples/rerun-failing-tests.html la question philosophique est: est-ce que c’est tolerable les tests qui ecouent de façon intermitente Architecture

    Un ancien fan de GraphQL en a fini avec la technologie GraphQL et réfléchit aux alternatives https://bessey.dev/blog/2024/05/24/why-im-over-graphql/

    Problèmes de GraphQL: Sécurité: Attaques d’autorisation Difficulté de limitation de débit Analyse de requêtes malveillantes Performance: Problème N+1 (récupération de données et autorisation) Impact sur la mémoire lors de l’analyse de requêtes invalides Complexité accrue: Couplage entre logique métier et couche de transport Difficulté de maintenance et de tests Solutions envisagées: Adoption d’API REST conformes à OpenAPI 3.0+ Meilleure documentation et sécurité des types Outils pour générer du code client/serveur typé Deux approches de mise en œuvre d’OpenAPI: “Implementation first” (génération de la spécification à partir du code) “Specification first” (génération du code à partir de la spécification) retour interessant de quelqu’un qui n’utilise pas GraphQL au quotidien. C’était des problemes qui devaient etre corrigés avec la maturité de l’ecosysteme et des outils mais ca a montré ces limites pour cette personne.

    Prensentation de Grace Hoper en 1980 sur le future des ordinateurs. https://youtu.be/AW7ZHpKuqZg?si=w_o5_DtqllVTYZwt

    c’est fou la modernité de ce qu’elle décrit Des problèmes qu’on a encore aujourd’hui positive leadership Elle décrit l’avantage de systèmes fait de plusieurs ordinateurs récemment declassifié

    Leader election avec les conditional writes sur les buckets S3/GCS/Azure https://www.morling.dev/blog/leader-election-with-s3-conditional-writes/

    L’élection de leader est le processus de choisir un nœud parmi plusieurs pour effectuer une tâche. Traditionnellement, l’élection de leader se fait avec un service de verrouillage distribué comme ZooKeeper. Amazon S3 a récemment ajouté le support des écritures conditionnelles, ce qui permet l’élection de leader sans service séparé. L’algorithme d’élection de leader fonctionne en faisant concourir les nœuds pour créer un fichier de verrouillage dans S3. Le fichier de verrouillage inclut un numéro d’époque, qui est incrémenté à chaque fois qu’un nouveau leader est élu. Les nœuds peuvent déterminer s’ils sont le leader en listant les fichiers de verrouillage et en vérifiant le numéro d’époque. attention il peut y avoir plusieurs leaders élus (horloges qui ont dérivé) donc c’est à gérer aussi Méthodologies

    Guillaume Laforge interviewé par Sfeir, où il parle de l’importance de la curiosité, du partage, de l’importance de la qualité du code, et parsemé de quelques photos des Cast Codeurs ! https://www.sfeir.dev/success-story/guillaume-laforge-maestro-de-java-et-esthete-du-code-propre/

    Sécurité

    Comment crowdstrike met a genoux windows et de nombreuses entreprises https://next.ink/144464/crowdstrike-donne-des-details-techniques-sur-son-fiasco/

    l’incident vient de la mise à jour de la configuration de Falcon l’EDR de crowdstrike https://www.crowdstrike.com/blog/falcon-update-for-windows-hosts-technical-details/ qu’est ce qu’un EDR? Un système Endpoint Detection and Response a pour but de surveiller votre machine ( access réseaux, logs, …) pour detecter des usages non habituels. Cet espion doit interagir avec les couches basses du système (réseau, sockets, logs systems) et se greffe donc au niveau du noyau du système d’exploitation. Il remonte les informations en live à une plateforme qui peut ensuite adapter les réponse en live si l’incident a duré moins de 1h30 coté crowdstrike plus de 8 millions de machines se sont retrouvées hors service bloquées sur le Blue Screen Of Death selon Microsoft https://blogs.microsoft.com/blog/2024/07/20/helping-our-customers-through-the-crowdstrike-outage/ cela n’est pas la première fois et était déjà arrivé il y a quelques mois sur Linux. Comme il s’agissait d’une incompatibilité de kernel il avait été moins important car les services ITs gèrent mieux ces problèmes sous Linux https://stackdiary.com/crowdstrike-took-down-debian-and-rocky-linux-a-few-months-ago-and-no-one-noticed/

    Les benchmarks CIS, un pilier pour la sécurité de nos environnements cloud, et pas que ! (Katia HIMEUR TALHI) https://blog.cockpitio.com/security/cis-benchmarks/

    Le CIS est un organisme à but non lucratif qui élabore des normes pour améliorer la cybersécurité. Les référentiels CIS sont un ensemble de recommandations et de bonnes pratiques pour sécuriser les systèmes informatiques. Ils peuvent être utilisés pour renforcer la sécurité, se conformer aux réglementations et normaliser les pratiques. Loi, société et organisation

    Microsoft signe un accord avec OVHCloud pour qu’il arretent leur plaine d’antitrust https://www.politico.eu/article/microsoft-signs-antitrust-truce-with-ovhcloud/

    la plainte était en Europe mermet a des clients de plus facilement deployer les solutions Microsoft dans le fournisseur de cloud de leur choix la plainte avait ete posé à l’été 2021 ca rendait faire tourner les solutions MS plus cheres et non competitives vs MS

    ElasticSearch et Kibana sont de nouveau Open Source, en ajoutant la license AGPL à ses autres licences existantes https://www.elastic.co/fr/blog/elasticsearch-is-open-source-again

    le marché d’il y a trois ans et maintenant a changé AWS est une bon partenaire le flou Elasticsearch vs le produit d’AWS s’est clarifié donc retour a l’open source via AGPL Affero GPL Elastic n’a jamais cessé de croire en l’open source d’après Shay Banon son fondateur Le changement vers l’AGPL est une option supplémentaire, pas un remplacement d’une des autres licences existantes et juste apres, Elastic annonce des resultants decevants faisant plonger l’action de 25% https://siliconangle.com/2024/08/29/elastic-shares-plunge–25-lower-revenue-projections-amid-slower-customer-commitments/ https://unrollnow.com/status/1832187019235397785 et https://www.elastic.co/pricing/faq/licensing pour un résumé des licenses chez elastic Outils de l’épisode

    MailMate un client email Markdown et qui gere beaucoup d’emails https://medium.com/@nicfab/mailmate-a-powerful-client-email-for-macos-markdown-integrated-email-composition-e218fe2accf3

    Emmanuel l’utilise sur les boites email secondaires un peu lent a demarrer (synchro) et le reste est rapide boites virtuelles (par requete) SpamSieve Que macOS je crois

    Trippy, un analyseur de réseau https://github.com/fujiapple852/trippy

    Il regroupe dans une CLI traceroute et ping Conférences

    La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

    17 septembre 2024 : We Love Speed - Nantes (France) 17–18 septembre 2024 : Agile en Seine 2024 - Issy-les-Moulineaux (France) 19–20 septembre 2024 : API Platform Conference - Lille (France) & Online 20–21 septembre 2024 : Toulouse Game Dev - Toulouse (France) 25–26 septembre 2024 : PyData Paris - Paris (France) 26 septembre 2024 : Agile Tour Sophia-Antipolis 2024 - Biot (France) 2–4 octobre 2024 : Devoxx Morocco - Marrakech (Morocco) 3 octobre 2024 : VMUG Montpellier - Montpellier (France) 7–11 octobre 2024 : Devoxx Belgium - Antwerp (Belgium) 8 octobre 2024 : Red Hat Summit: Connect 2024 - Paris (France) 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) 15–16 octobre 2024 : Malt Tech Days 2024 - Paris (France) 16 octobre 2024 : DotPy - Paris (France) 16–17 octobre 2024 : NoCode Summit 2024 - 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) 30–31 octobre 2024 : Agile Tour Bordeaux 2024 - Bordeaux (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) 16–17 novembre 2024 : Capitole Du Libre - Toulouse (France) 20–22 novembre 2024 : Agile Grenoble 2024 - Grenoble (France) 21 novembre 2024 : DevFest Strasbourg - Strasbourg (France) 21 novembre 2024 : Codeurs en Seine - Rouen (France) 27–28 novembre 2024 : Cloud Expo Europe - Paris (France) 28 novembre 2024 : Who Run The Tech ? - Rennes (France) 2–3 décembre 2024 : Tech Rocks Summit - Paris (France) 3 décembre 2024 : Generation AI - Paris (France) 3–5 décembre 2024 : APIdays Paris - Paris (France) 4–5 décembre 2024 : DevOpsRex - Paris (France) 4–5 décembre 2024 : Open Source Experience - Paris (France) 5 décembre 2024 : GraphQL Day Europe - Paris (France) 6 décembre 2024 : DevFest Dijon - Dijon (France) 22–25 janvier 2025 : SnowCamp 2025 - Grenoble (France) 30 janvier 2025 : DevOps D-Day #9 - Marseille (France) 6–7 février 2025 : Touraine Tech - Tours (France) 3 avril 2025 : DotJS - Paris (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/

    Tue, 17 Sep 2024 - 1h 50min
  • 315 - LCC 314 - 1000 fois 1000 dépendances

    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 pour generer les chiffres, prends le secret, le temps et hash le tout, prendre 4 bytes et les convertir le chiffres typiquement le serveur genere les deux d’avant, les deux d’apres et le courant pour comparer Loi, société et organisation

    L’équipe Apache Maven gagne le troisième prix BlueHats https://nlnet.nl/bluehatsprize/2024/3.html

    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.

    La clause de congés illimités en Europe

    https://www.osborneclarke.com/insights/why-your-unlimited-vacation-policy-may-be-of-limited-use-in-europe

    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

    https://support.opendns.com/hc/en-us/articles/27951404269204-OpenDNS-Service-Not-Available-To-Users-In-France-and-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 !

    Conférences

    La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs :

    6 septembre 2024 : JUG Summer Camp - La Rochelle (France) 6-7 septembre 2024 : Agile Pays Basque - Bidart (France) 17 septembre 2024 : We Love Speed - Nantes (France) 17-18 septembre 2024 : Agile en Seine 2024 - Issy-les-Moulineaux (France) 19-20 septembre 2024 : API Platform Conference - Lille (France) & Online 25-26 septembre 2024 : PyData Paris - Paris (France) 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) 8 octobre 2024 : Red Hat Summit: Connect 2024 - Paris (France) 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) 16-17 octobre 2024 : NoCode Summit 2024 - 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) 30-31 octobre 2024 : Agile Tour Bordeaux 2024 - Bordeaux (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) 20-22 novembre 2024 : Agile Grenoble 2024 - Grenoble (France) 21 novembre 2024 : DevFest Strasbourg - Strasbourg (France) 21 novembre 2024 : Codeurs en Seine - Rouen (France) 27-28 novembre 2024 : Cloud Expo Europe - Paris (France) 28 novembre 2024 : Who Run The Tech ? - Rennes (France) 3-5 décembre 2024 : APIdays Paris - Paris (France) 4-5 décembre 2024 : DevOpsRex - Paris (France) 4-5 décembre 2024 : Open Source Experience - Paris (France) 6 décembre 2024 : DevFest Dijon - Dijon (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/

    Tue, 16 Jul 2024 - 1h 23min
Afficher plus d'épisodes