Les Cast Codeurs Podcast

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

Restez informes sur les sujets brulants de l industrie Java.

  • 1 hour 15 minutes
    LCC 311 - Tu changes ta licence et tu vends

    Cet épisode news revient sur le rachat de Hashicorp par IBM, sur le changement de license Redis, sur le bug macos 14.4 et Java, sur la faille de de chaine d’approvisionnement sur XZ. Et nous débutons notre subrique Ask Me Anything. N’hésitez pas à nous soumettre vos question sur https://lescastcodeurs.com/ama.

    Enregistré le 26 avril 2024

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

    News Langages

    Attendez peut-être avant d’upgrader macOS à la version 14.4, si vous faites du Java ! Attention le crash ! https://blogs.oracle.com/java/post/java-on-macos-14-4

    Article de Gunnar Morling sur la nouvelle API de “gatherer” de Java 22, pour améliorer les streams, ici en montrant une implémentation d’un “zipper” qui assemble les éléments de 2 streams 2 à 2 https://www.morling.dev/blog/zipping-gatherer/

    • on a parlé des gatherers déjà qui permet de faire de faire des opérateurs intermediaries custom par rapport à ce que je JDK offre
    • ici Gunnar montrer un zipper qui n’est pas présent par défaut

    Julien Ponge est Java champion, félicitations !

    JFR 9 est sorti https://hirt.se/blog/?p=1477

    • peut tourner dans Eclispe
    • Support de arm64 pour Linux et macOS
    • Dark mode !
    • Des améliorations de performance
    • Support graalvm native image
    • Nouveau afficheur de flame graph
    • G1 pause target compliance
    Librairies

    Nouvelle version de Jilt, l’annotation processor qui implémente les builders https://www.endoflineblog.com/jilt-1_5-released

    • Evite les hacks à la Lombok
    • Une nouvelle méthode toBuilder() pour obtenir un builder d’un bean déjà configuré
    • Support des méta-annotations, histoire de pas répéter sur chaque type comment on souhaite définir ses builders
    • Possibilité de mettre l’annotation @Builder sur les constructeurs privés
    • Support agnostique de @Nullable quel que soit l’origine de cette annotation
    Infrastructure

    IBM pourrait racheter Hashicorp https://www.reuters.com/markets/deals/ibm-nearing-buyout-deal-hashicorp-wsj-reports-2024-04-23/

    Web

    Google intègre son framework interne Wiz dans Angular https://blog.angular.io/angular-and-wiz-are-better-together-91e633d8cd5a

    • Wiz est un framework interne à Google utilisé dans des produits comme Google Search ou Photos, très axé sur la performance
    • Wiz va amener plus de performance à Angular, tout en gardant la super interactivité d’Angular
    • Wiz historiquement sur la perf et peu d’interactions utilisateur, angular sur interactions riches et super experience developer
    • Wiz server side rendering first et streamé, ce qui élimine le javascript dans le chemin de charge initial
    • des fonctions comme deferred views sont venu vers angular et signals sont venu a wiz
    • vont merger au fur et a mesure des prochaines années via Angular comme receptacle open
    Data et Intelligence Artificielle

    Redis aussi se met à changer sa licence pour une licence pas tout à fait open source. Un fork nommé Valkey, animé par des mainteneurs de Redis, rejoint la fondation Linux https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community

    • AWS, Google, Oracle, Ericsson et Snap sont nommés dans l’effort
    • Open Source fight back mais via des grands acteurs qui ont un interet dans la version “gratuite” pour le cloud
    • les infos de Redis https://redis.com/blog/redis-adopts-dual-source-available-licensing/
    • En gros releasé sous SSPL (comme MongoDB) ou une license spécifique Redis
    • RSAL est source available license (dont pas open source) et SSPL est pas reconnu comme open source par l’OSI car elle impose des restrictions à l’usage
    • du coup certaines fonctions closed sources deviennent source available
    • Met les cloud provider en cause du problème, ils font de l’argent et commodetize Redis sans redonner du revenu aux développeurs de Redis
    • est-ce que les gens seront ok de continuer a coder pour du code pas open, juste disponible
    • et évidemment ca casse l’écosystème redis ou open source qui voulait utiliser redis en tant qu’open
    • pas autorisé de faire du support sur un produit qui derive de redis sans payer une license si c’est “compétitif”

    Elon Musk tient sa promesse et ouvre son Large Language Model, Grok https://x.ai/blog/grok-os

    • Modèle de 314 milliards de paramètres (Pi !)
    • Architecture MoE (Mixture of Experts) qui fait qu’il n’y a que 25% des neurones actifs à l’inférence (efficace et rapide)
    • C’est un modèle “pre-trained”, de base, non-finetuné, donc pas très utilisable en l’état (il faut le finetuner en mode “instruct” et/ou “chat” pour qu’il soit vraiment utilisable)
    • Le code dans le repo Github, ainsi que les poids du réseau de neurones, sont OSS sous licence Apache 2
    • L’entrainement a été effectué avec JAX et Rust !
    • La cut-off date est Octobre 2023
    Outillage

    Oracle lance son extension VSCode pour Java https://devclass.com/2024/03/19/java-22-is-out-and-oracle-is-pushing-its-own-extension-for-vs-code-over-not-very-good-red-hat-alternative/

    • une extension en competition avec l’extension officielle et historique Java faite par MS et Red Hat
    • Oracle estime l’extension pas tres bonne cafr basée sur le compilateur Eclipse
    • 33M de telechargements quand même
    • La nouvelle s’appuie sur javac donc proche de la verite par definition et en avance par definition de la facon dont Oracle release quand il veut
    • aligné avec le timing de simplification de Java pour les débutants
    Sécurité

    Rémi Forax nous partage cet article sur les puces M1/M2/M3 d’Apple, qui utilisent un nouveau “prefetcher” un peu trop agressif qui permet de leaker les clés utilisées lors des opérations cryptographiques : https://arstechnica.com/security/2024/03/hackers-can-extract-secret-encryption-keys-from-apples-mac-chips/

    • comme d’hab pour les side channels attaques de de type c’est su un autre process peut tourner sur la machine et être adversaire
    • lié a un data dependent memory fetcher
    • dans ce cas, un champ est soit une valeur, soit un pointeur et Appel pre-fetch dans le cas où c’est un pointeur
    • et c’est attaquable en injectant des variables qui ressemblent a des pointeurs vers des données controlées et on peut en déduire la clés secrete si cette variable et la clé ont des opérations
    • mais le code peut désactiver cette optimisation si j’ai bien compris

    L’histoire d’une porte dérobée dans le projet open source XZ qui a failli mettre à mal toutes les connexions sous Open SSH, avec pour tâche de fond la fragilité de projets open source maintenu par des individuels bénévoles à bout de souffle https://uwyn.net/@[email protected]/112190942187106096

    Les impacts de laisser trainer son secret client dans les connections Keycloak https://medium.com/@benjaminbuffet/dis-keycloack-cest-grave-si-je-laisse-tra%C3%AEner-mon-client-secret-d371a0f657ee

    • un article qui explique les raison plutôt que de dire c’est mal car c’est secret
    • quand on utilise un mot de passe du client (et pas un JWT signé ou une clé privé)
    • si ca se perd, c’est l’usurpation de l’identité d’un utilisateur via son usage de client qui est en jeu (donc joué en tant que)
    • ou usurper l’identité client en tant que telle (plus facile)
    • et quelques conseils pour réduire ce risque
    Loi, société et organisation

    JavaOne serait de retour pour de vrai ? https://www.oracle.com/javaone/

    • En mars 2025, c’est dans un an, on a le temps !
    • Ça se déroulera sur le campus d’Oracle dans la Silicon Valley
    • peu d’infos et de détail, pas sur que cela soit le JavaOne de nos souvenirs.

    Des infos concretes sur l’IA souveraine Albert https://x.com/emile_marzolf/status/1783072739630121432

    AMA, Ask Me Anything

    Hamza:

    “Comment être un rockstar dans le domaine, s’il vous plaît une réponse détaillée sur le plan d’action veille, auto formation, side projets …… depuis vos expériences personnelles. Merci d’avance”

    Conférences

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

    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/

    29 April 2024, 6:43 am
  • 52 minutes 46 seconds
    LCC 310 - Les Cast Codeurs à Devoxx France 2024 : sous-titre édition

    La clôture de Devoxx France 2024 avec les cast codeurs. L’année où le sous-titrage était un personnage à part entière de Devoxx France. Vous aurez beaucoup plus de plaisir et de contexte en regardant la vidéo qu’en écoutant cet épisode. Les sous titres jouent un rôle important. Donc pour une fois ne nous écoutez pas, regardez nous :o)

    Enregistré le 19 avril 2024

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

    News

    L’enregistrement en direct de Devoxx France 2024.

    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/

    24 April 2024, 8:24 am
  • 1 hour 14 minutes
    LCC 309 - React a 10 ans

    React a 10 ans. 10 Ans de Révolution dans le Développement Web avec Amélie Benoît (@AmelieBenoit33) et Manuel Cartier (@neolectron).

    Enregistré le 04 mars 2024

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

    React a 10 ans, longue vie à React !

    Dans cet épisode, nous avons comme invités Amelie Benoît et Manuel Cartier. Les deux explorent l’évolution de React au cours de la dernière décennie, mettant en lumière ses principaux principes et son impact sur le développement web. Amélie et Manuel discutent des caractéristiques fondamentales de React, comme la composition des composants et l’utilisation de la virtual DOM, ainsi que des tendances émergentes telles que l’adoption de React Hooks, et les React Server Components. Enfin, nous avons ses conclusions sur l’avenir de React et son rôle continu dans le paysage du développement web.

    Amélie Benoît

    Amélie Benoit est une développeuse web avec une expérience d’environ 10 ans dans le domaine. Son expertise se concentre principalement sur React et React Native, qu’elle maîtrise tant en JavaScript qu’en TypeScript.

    En plus de son travail de développement, Amélie est une entrepreneuse communautaire active. Elle a fondé deux Meetups, dont l’un est dédié à React & React Native, démontrant ainsi son engagement envers la diffusion des connaissances et le développement de la communauté. Elle a également organisé des conférences, notamment lors de l’événement BDX I/O. Elle a aussi été oratrice a Devoxx France parmi d’autres conférences.

    Actuellement, Amélie occupe le poste de tech lead manager chez Busbud, une scale-up canadienne spécialisée dans la comparaison et la vente de billets de bus inter-cités en ligne. Son rôle en tant que leader technique et manager la place au cœur des opérations de développement et de gestion de projet au sein de l’entreprise.

    Grâce à son expertise technique, son engagement communautaire et son leadership, Amélie Benoit apporte une contribution significative au monde du développement web et de la technologie.

    Manuel Cartier

    Manuel est un développeur passionné, initié à l’art du code dès l’âge de 13 ans. Animé par cette passion précoce, il entreprend des études en développement de logiciels et gestion de projets, couronnées par l’obtention d’un BTS. Son parcours exceptionnel le conduit à se distinguer dès 2015 à l’école “42” de Paris, où il se classe premier parmi tous les candidats.

    Avec une solide expertise en C++, Manuel s’investit dans l’encodage vidéo et audio chez Ateme, contribuant ainsi à un transcodeur utilisant des bibliothèques faites maison, équivalentes à x264. Passionné par la diffusion en direct, il partage régulièrement ses connaissances en informatique et donne des cours de développement web sur Twitch et YouTube.

    Toujours avide d’apprendre et de repousser ses limites, Manuel se lance actuellement dans l’exploration de Rust, encouragé par la migration des projets C++ vers Rust chez Facebook. Parallèlement, il explore le développement d’applications mobiles avec Ionic Framework et AngularJS, expérience acquise lors de la création d’une start-up en 2015.

    Son dernier rôle en tant que développeur Fullstack chez SigFox lui permet d’approfondir sa compréhension des mécanismes de l’IoT. Aujourd’hui, son attention se porte sur l’écosystème JavaScript et l’amélioration de l’expérience utilisateur, ainsi que sur le rendu 3D sur le web avec des technologies innovantes telles que Three.js et React-Three-Fiber.

    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/

    4 April 2024, 11:26 am
  • 1 hour 22 minutes
    LCC 308 - Après c'est avant

    Cet épisode discute du retour d’experience Java de Netflix, de jQuery, de gouvernance open source, d’Elon Musk, de Kubernetes, de Mistral (gagnant?), d’attaque des LLMs, de developpement de carrière et de Trouble du Déficit de l’Attention avec ou sans Hyperactivité.

    Enregistré le 15 mars 2024

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

    News

    Les cast codeurs veulent essayer quelque chose de nouveau et le sondage montre que vous aussi. On lance donc une section Ask Me Anything, posez nous une question sur https://lescastcodeurs.com/ama et nous prendrons certaines questions pour donner notre réponse. Lancez-vous, on pense que cette section pourra être sympa :)

    Langages

    Retour d’experience de Netflix sur ZGC https://netflixtechblog.com/bending-pause-times-to-your-will-with-generational-zgc-256629c9386b

    • moins de tail latency ce qui veut dire moins de charge sur le systeme (moins de retry)
    • aussi plus facile de trouver les vrais probleme de latence (plus cachés dans les latences de GC)
    • et sans consommation superieure de CPU pour les memes perfs malgré les barrieres differentes de ZGC
    • pas de tuning explicit de leur part (enfin presque)
    • meme si les pointeurs ne sont pas compresses, l’efficacite du GC compense
    Librairies

    Sortie de Spock 2.4-M2 https://spockframework.org/spock/docs/2.4-M2/release_notes.html

    • Support de plusieurs librairies de mocking
    • Meilleur support dans les IDEs
    • Et plein d’autres petites améliorations

    jQuery 4 est sorti ! jQuery est de retour ! https://www.infoq.com/news/2024/03/jquery-4-beta-release-note/

    • On parle régulièrement du dernier framework JavaScript à la mode, mais jQuery est toujours là
    • Première release majeure depuis 8 ans
    • Suppression de plein de features qui étaient deprecated et maintenant fournie souvent par défaut par les moteurs JavaScript des navigateurs
    • jQuery continue d’être téléchargé de plus en plus au fil du temps, mais peut-être parce qu’il bénéficie du succès des projets qui l’utilisent comme Cypress, WordPress ou Drupal)

    Quarkus sort sa deuxieme LTS https://quarkus.io/blog/quarkus-3-8-released/

    • explique les changements importants depuis la LTS 3.2
    Infrastructure

    Linkerd ou plutôt la boîte derrière va faire payer pour accéder aux builds stable du projet. Cela crée des conversations au sein de la CNCF https://www.techtarget.com/searchitoperations/news/366571035/Linkerd-paywall-prompts-online-debate-CNCF-TOC-review

    • deploy envoy, c’est plus dur
    • Buyoant est le principal contributeur derriere Linkerd
    • et ils ont edcider de mettre les distributions stables derriere un paywall
    • pour les societes de plus de 50 employés ($2000 par cluster)
    • les gens se trouve floués par aider au succces et ensuite de trouver piégé
    • La license reste ASL mais la version stable est derriere un paywall, comme red hat enterprise linuix recemment
    • un autre exemple de projet open source qui vire commercial
    • questionne la gouvernance open source, la CNCF va inestiguer et peut etre durcir ces criteres de graduiation
    • Weavework (FLux) a fermé ces dernieres semaines aussi

    Cloudflare a reecrit un proxy HTTP en rust https://blog.cloudflare.com/how-we-built-pingora-the-proxy-that-connects-cloudflare-to-the-internet/

    • ils ont utilise NGinx pendant longtemps
    • mais le single worker modele ne permetait pas ceratins optims
    • et ils ont des besolins specifiques
    • bref ils ont reecrit en rust, multi threaded et avec work stealing
    • et ils sont content

    Le guide du “hater” sur Kubernetes https://paulbutler.org/2024/the-haters-guide-to-kubernetes/

    • L’auteur se plaint régulièrement de Kubernetes pour sa grande complexité mais reconnait que c’est quand même un grand morceau de technologie
    • A utiliser surtout quand on a besoin de :
      • Exécuter plusieurs processus/serveurs/tâches planifiées.
      • Les exécuter de manière redondante et répartir la charge entre eux.
      • Les configurer, ainsi que les relations entre eux, sous forme de code.
    • L’auteur liste ensuite les fonctionnalités qu’il utilise, qu’il fait attention quand il les utilise, et celles qu’il préfère éviter
      • Utilise : deployments, services, cron jobs, config maps et secrets
      • Attention : stateful set, persistent volume et RBAC
      • Evite : le YAML à la main, les opérateurs et resources customs, Helm, tout ce qui est mesh, les resources ingress, essayer de répliquer la stack K8S complète localement sur sa machine
    Data et Intelligence Artificielle

    Mistral AI et Microsoft font un accord sur le modele le plus puissant de Mistral et certains ne sont pas content https://www.latribune.fr/technos-medias/informatique/l-alliance-entre-mistral-et-micr[…]usion-de-l-independance-technologique-europeenne-991558.html

    • Mistral avancait son approche open source
    • mais son modele le plus puissant ne l’est pas
    • ils ont un partenariat exclusif avec Microsoft pour le distribuer
    • Et MS rentre dans le capital
    • Au revoir l’independance de l’IA européenne
    • Au revoir les modeles open source larges
    • cela va a l’encontre du loby et de son positinnement aupres de la commission europeenne
    • ca fait grincer des dents a bruxelles qui avait alléger les contraintes sur les modeles fondamentaux a la demande de Mistral qui menacait de de voir s’allier avec MS si ce n’était pas le cas.
    • Mistral était un fer de lance des modeles open sources pour eviter les biais
    • ils en garderont masi pas les modeles specialisés ou optimisés
    • cela reste une bonne decisione conomique pour Mistral

    Infinispan 15 est sorti https://infinispan.org/blog/2024/03/13/infinispan-15

    • JDK 17
    • Redis Hot Replacement donnant: multi thread, clustering, replication cross site, diff stores de persistence en disk, avoir des caches differentes en namespace différentes avec des règles appliquées à chaque cas d’usage
    • Recherche Vectorielle et stockage des embeddings
    • Integration avec Langchain (Python), Langchain4j, et Quarkus Langchain
    • Améliorations du search, replication cross site, la console, tracing, l’Operateur Kubernetes …
    • Support du Protobuf 3 avec la release de Protostream 5 et meilleur API
    Outillage

    Ne pas signer ses commits cryptographiquement ? https://blog.glyph.im/2024/01/unsigned-commits.html

    • L’article cite comme seul avantage d’avoir le petit badge vert sur Github indiquant “vérifié”
    • Responsabilité future inconnue et potentiellement illimitée pour les conséquences de l’exécution du code dans un commit que vous avez signé.
    • Renforcement implicite de GitHub en tant qu’autorité de confiance centralisée dans le monde de l’open source.
    • Introduction de problèmes de fiabilité inconnus dans l’infrastructure qui repose sur les signatures de commit.
    • Une violation temporaire de vos identifiants GitHub entraîne désormais des conséquences potentiellement permanentes si quelqu’un parvient à y introduire une nouvelle clé de confiance.
    • Nouveau type de surcharge de processus continu : les clés de signature de commit deviennent une nouvelle infrastructure permanente à gérer, avec de nouvelles questions comme « que faire des clés expirées », « à quelle fréquence dois-je les renouveler », etc.
    • on peut empecher de pousser des commits non signés
    Sécurité

    Des modèles avec des backdoors uploadés sur hugging faces non détecté. https://arstechnica.com/security/2024/03/hugging-face-the-github-of-ai-hosted-code-that-backdoored-user-devices/

    • par les chercheurs de JFrog
    • Une centaine détectés dont 10 malicieux
    • Des tests de chercheurs mais un faisant un reverse ssh
    • S’appuye sur le format de serialisation pickle en python. Populaire mais connu comme dangereux

    Une première side attack channel sur les LLMs https://arstechnica.com/security/2024/03/hackers-can-read-private-ai-assistant-chats-even-though-theyre-encrypted/

    • cela s’appuie sur la taille des packets chiffrés envoyés et leur timing pour détecter la longueur des tokens
    • Ensuite un LLM spécialisé reconstruit la suite de mots la plus probable vu la longueur
    • C’est du à l’UX qui envoie les tokens au fil de l’eau
    • Ć’est facilement corrigeable en rendant les paquets de taille fixe et en ajoutant du hasard de délai d’envoie.
    • Mais c’est rigolo comment les LLMs peuvent amplifier les side channel attacks
    Architecture

    Netflix et Java https://www.infoq.com/presentations/netflix-java/

    • Netflix est un java shop
    • La “stack NEtflix” connue du public a beaucoup evolué
    • Pleins de microservices
    • Gen1: groovy en gateway front end for backend , RxJava et Histrix
    • Gen2: GraphQL et GraphQL federé ; plus de reactif sand dans la gateway
    • Java 17 : 2800 apps java
    • utilisent Azul JDK
    • avait du Java 8 sur du guice et app custom
    • utilisent G1, Java 17 = -20% CPU et Shenandoah pour la gateway Zuul
    • Plans pour Java 21 (ZGC, virtual threads)
    • apres speculatif
    • Ils ont standardisé sur Spring Boot il n’y a pas si longtemps

    Un long article sur les microservices https://mcorbin.fr/posts/2024-02-12-microservice/

    • encore un me direz vous
    • oui amis si vous etre en pleine crise existentielle avec votre equipe c’est du mon materiel
    • il va sur les points importants comme synchrone vs asynchrone, les patterns de communication, la copie de données, comment tester le “monotithe” ou plutot comment ne pas le faire etc
    • c’est un peu long mais ca recadre bien
    Méthodologies

    Opinion: est-ce qu’on peut devenir dev à partir de 40 ans https://www.codemotion.com/magazine/dev-life/can-you-become-a-programmer-after-40/?utm_source=ActiveCampaign&utm_medium=email&utm_content=5+Frontend+Trends+we+Didn+t+See+Coming+in+2024&utm_campaign=NL_EN_240215+%28Copy%29&vgo_ee=sFCRn4bbw8NuvJwlxj4PgXiVS4eICnA1ZPdkH4DGKyhNNwh6NQ%3D%3D%3Au3g96%2Fz3Uf7kZHAF7tezy9Y0ZJ6paAsE

    • programmeur de CSS a 40 ans, je sais pas :stuck_out_tongue_winking_eye:
    • l’auteur regrette les pubs pour devenir ev a 40 ansd facilement
    • developpeur c’est beaucoup de connaissance et de travail et doit etre un choix, pas un choix pas default ou facile
    • ils decrit certains biais comme un 20 ans sans experience est plus pardonné qu’à 40, le temps a y consacré est différent etc
    • compensé par des actes de motivation (GitHub, participation open source, meetups etc)
    • mais le temps d’apprendre de ces erreurs n’as pas vraiment de court circuit
    • bref une fonrmation c’est bien mais aps suffisant

    Navigate your own way https://www.infoq.com/presentations/lessons-opportunities-carrier/

    • IBMer for 21 years. I’m a Java champion
    • Réfléchir à sa carrière en mode time box, chercher sa promotion ? Tu peux décider ton chemin
    • Momentum pandémie ça lui a fait bcp réfléchir sur sa vie et où elle était. Moment où elle quittait IBM pour aller vers RH (cœur se brise)
    • Essentiels pour prendre ton propre chemin
    • Se connaître soit même, reconnaître les différences avec les autres
    • connaître tes valeurs: c’est quoi important pour toi, c’est quoi qui te motive, ce qui te démotive. Écrire des mots
    • Se fixer des objectifs avec l’aide des autres
    • Repusher ses limites, sur des sujets dont tu penses que ce n’est pas possible pour toi
    • Participe activement, entoure toi bien
    • Un talk très personnel et inspirant

    Un article sur le trouble TDAH chez le développeur adulte https://rlemaitre.com/fr/posts/2023/11/hacker-le-tdah-strat%C3%A9gies-pour-le-d%C3%A9veloppeur-moderne/

    • Diagnostiqué à 44 ans
    • Schéma d’inattention et d’hyperactivite/implusivite qui interfere avec le fonctionnement
    • Affecte le fonctionnement social scolaire ou professionnel
    • Non diagnistiqué: burn out anxiété ou depression
      • Souvent non diagnostiqué jusqu’à ce que se propres enfants soient diagnostiqués
    • Mais cela amène du positif: hyperfocus, resolution creative de problèmes, adaptation rapide aux changements qui sont du pain béni
    • Le négatif c’est la gestion du temps, organisation, instabilité
    • Discute ensuite les phénomènes dans le cerveau
    • Et donne des techniques et des pièges à éviter
    • Vous avez sûrement des collègues TDAH ou l’êtes-vous meme
    Conférences

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

    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/

    19 March 2024, 11:48 am
  • 45 minutes 6 seconds
    LCC 307 - Interview sur la passion, la créativité et le fun sur le long terme avec Holly Cummins et Mark Jane

    Enregistré le 27 février 2024

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

    Interview

    Les Cast Codeurs accueillent deux invités spéciaux pour explorer un aspect crucial de la carrière informatique : comment conserver la passion, la créativité et le plaisir au fil du temps.

    Holly Cummins et Mark Jane

    Holly Cummins Mark Jane

    Holly Cummins est dans l’open-source depuis 20 ans. Elle est Java Champion et JavaOne Rock Star. Elle a co-écrit le livre ‘Enterprise OSGi in Action’ chez Manning et a présenté des conférences dans divers événements renommés tels que JavaOne, Devoxx, et JAX London. Elle travaille chez Red Hat en 2024, et contribue principalement sur Quarkus.

    Mark Jane, est un acteur accompli et improvisateur chevronné depuis 1994. Il rejoint la troupe Eux en 2016, jouant dans le spectacle Bio à Paris, et Pilote et Chaos en 2024. Il a écrit le livre “Jeux et enjeux: La boîte à outils de l’improvisation théatrale”.

    Les deux naviguent leur carrière avec passion, créativité et fun depuis +20 ans.

    Naviguer sa carrière professionnelle avec passion, créativité et fun sur le long terme

    Dans ce podcast, Holly et Mark partagent leurs conseils et expériences uniques, découvrant de nombreux points communs malgré l’apparente disparité entre leurs deux professions.

    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/

    4 March 2024, 9:14 am
  • 1 hour 32 minutes
    LCC 306 - Alors tu squash ou tu pointes ?

    Dans cet épisode, Katia, Emmanuel et Arnaud explorent de nouvelles approches du Builder pattern en Java, l’introduction du Pattern Matching Primitives dans Java, et les déboires de l’intelligence artificielle avec des attaques de la chaîne d’approvisionnement sur Pytorch. Ils abordent aussi les licenciements dans diverses entreprises technologiques, l’évolution du trafic de Stackoverflow et donnent de conseils pratiques pour les développeurs, notamment sur les commits conventionnels, la mise à jour de dépendances avec Dependabot, Renovate et le déboggage des programmes Java. Ils terminent avec leur retour d’expérience sur la relecture des sujets de Devoxx France 2024.

    Enregistré le 9 février 2024

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

    Votre avis compte énormément pour nous ! 🎧 Nous voulons rendre Les Cast Codeurs encore plus genial, et c’est là que vous intervenez. 🌟 Aidez-nous en partageant vos idées, suggestions et souhaits pour 2024, dans notre tout nouveau formulaire de retour. C’est rapide, facile et ça ne prend que 2 minutes.

    News Langages

    Une approche différente du Builder pattern en Java, inspirée par ce qui se fait dans la communauté Golang https://glaforge.dev/posts/2024/01/16/java-functional-builder-approach/

    • Les builders, surtout quand ils sont imbriqués les uns dans les autres, peuvent devenir un peu verbeux à lire
    • Est-ce qu’on peut prendre une nouvelle approche ? Oui, en tirant parti des lambdas, avec des méthodes de mutation qui retournent des lambda qui effectuent la mutation
    • On retrouve le plaisir de pouvoir construire une instance à l’aide d’un constructeur, plutôt qu’un builder
    • En recherchant le sujet, Guillaume est aussi tombé sur une approche type safe du builder classique https://www.endoflineblog.com/type-safe-builder-pattern-in-java-and-the-jilt-library (qui est implémentée sous forme d’annotation processor dans le petit projet open source Jilt)

    Pattern Matching Primitives (JEP 455) https://openjdk.org/jeps/455

    • Uniformité autorisant le pattern de type pour tous les types, qu’ils soient primitifs ou de référence et sécurité dans la conversion de types et éviter les erreurs runtime pour les conversions de type. Plus de robustesse

    • Ca l’explique bien ici. Les deux https://www.infoq.com/news/2024/02/java-enhances-pattern-matching/

    • Exemple:

      • Avant

        if (i >= -128 && i <= 127) { byte b = (byte)i; ... b ... }
      • Maintenant

        if (i instanceof byte b) { ... b ... } byte b = 42; b instanceof int; // true (unconditionally exact) int i = 42; i instanceof byte; // true (exact) int i = 1000; i instanceof byte; // false (not exact)

    News Java, le tour https://www.infoq.com/news/2024/02/java-news-roundup-jan29-2024/

    • Open JDK avec preview de Classe File API
    • JDK 22 et 23
    • Glassfish, GraalVM, Spring, Quarkus, Infinispan, Hibernate, Grails, Vert.x… plein d’outils
    • Keycloak
    • Langchain
    • Lire les détails dans l’article d’InfoQ
    • etc.
    Data et Intelligence Artificielle

    Une attaque de supply chain sur Pytorch et l’IA https://johnstawinski.com/2024/01/11/playing-with-fire-how-we-executed-a-critical-supply-chain-attack-on-pytorch/

    • Soumettre une PR avec une correction de typo
    • ca leur a approuvé de faire tourner la CI automatiquement quand ils poussent la PR
    • soumis une PR qui curl fetch un gist qui tournait sur un runner self-hosté
    • et ils ont choppé les tokens pour plus tard publier les binaires dans les repos officiels
    • et personne n’a rien vu

    Support du modèle de génération d’image Imagen dans LangChain4j rajouté dans la dernière version du project https://glaforge.dev/posts/2024/02/01/image-generation-with-imagen-and-langchain4j/

    • contribué par Guillaume
    • on peut générer des images, mais aussi les éditer

    Collab entre Google et Hugging Face https://www.infoq.com/news/2024/01/hugging-face-gcp-ai/

    • intégration avec Vertex.ai et d’autres services Google
    • Facilite deploy dans le cloud google et l’intégration avec Kubernetes

    Guillaume a écrit un article et développé une application pour visualiser les tokens générés par les large language models dérivés du modèle PaLM https://glaforge.dev/posts/2024/02/05/visualize-palm-based-llm-tokens/

    Outillage

    Stackoverflow voit son traffic diminuer doucement depuis quelques années, mais depuis l’avènement de ChatGPT et consort, la chute s’accélère https://twitter.com/swyx/status/1753122780709871834

    Amélie Benoit - Dependant Bot Visual way https://twitter.com/AmelieBenoit33/status/1754397434812203455

    Méthodologies

    Le pouvoir des “conventional commits” par Julien Ponce https://julien.ponge.org/blog/the-power-of-conventional-commits/

    • Convention poussée par l’équipe Angular, à la base
    • Pour standardiser et clarifier les messages de commits
    • Mais aussi pratique pour les outils comme JReleaser pour automatiser les release notes d’un projet
    Loi, société et organisation

    Google vire encore des ingénieurs dans la division matérielle pixel, et dans les ingénieurs cœur https://www.nytimes.com/2024/01/11/technology/google-layoffs.html

    Okta vire 400 personnes dont Matt Raible https://techcrunch.com/2024/02/01/okta-layoffs-400-employees/?guccounter=1&guce_referrer=aHR0cHM6Ly9kdWNrZHVja2dvLmNvbS8&guce_referrer_sig=AQAAANLn7NCOa2yn44ysU3fSCDK5s1hgzVrIQzmKFzBjufCMzQhGfyc8mah4EhiPv1I0eoVrzVWbdKn0q6yOYR6-ctpZ42jc6ic-mz-Cdz8lWGVEDLIzEeqsCCE4PfxnhrsnChPT26DJxixmykS1YfPigsyf4vmqqpbMd5tme_GrMBjA

    • cela suit Microsoft (gaming), eBay, SAP, RIOT Games (League of Legend), Google, Amazon (prime, audible), Unity etc pleins d’autres. Tout ça juste en janvier.

    Facebook fête ses 20 ans https://www.francetvinfo.fr/internet/reseaux-sociaux/facebook/facebook-a-20-ans-de-sit[…]la-lente-mutation-du-doyen-des-reseaux-sociaux_6323610.html https://www.bbc.com/news/technology-68109208

    • Quoi à dire de plus que le temps passe vite … #old
    Rubrique débutant

    Manuel de survie de la femme dans la tech https://www.duchess-france.fr/dossier/women%20in%20tech/alli%C3%A9s/2023/01/15/manuel-survie-femme-tech.html

    Parfois vos programmes Java ont l’air bloqués. Vous pouvez effectuer un thread dump dans un autre terminal en récupérant le PID du process Java et en faisant un kill -3 PID https://www.digitalocean.com/community/tutorials/java-thread-dump-visualvm-jstack-kill-3-jcmd

    Conférences

    Dans les coulisses du Call for Paper de Devoxx France 2024

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

    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/

    13 February 2024, 8:24 am
  • 1 hour 27 minutes
    LCC 305 - Dia critique

    Cet épisode news discute de langages, de bibliothèques, d’intelligence artificielle bien sûr et même de Web. Et puis de challenge Java et même de Père Noël !

    Enregistré le 12 janvier 2024

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

    News

    RIP Niklaus Wirth https://en.wikipedia.org/wiki/Niklaus_Wirth

    • Informaticien Suisse
    • Conception des langages ALGOL, Modula-2 et… Pascal
    • Plusieurs distinctions: Turing 1984, John Von Neumann 1994. Depuis 1987 un prix créé à son honneur
    • Plusieurs livres dont Algorithms + Data Structures = Programs 1976
    • La Loi de Wirth: La beauté d’un programme réside dans la clarté de sa structure. Niklaus Wirth a toujours prôné la simplicité, la lisibilité et la compréhensibilité. Approche pragmatique

    https://recording.zencastr.com/lescastcodeurs/news-305

    Langages

    L’enfer sur terre: equals and hashCode pour les entitées JPA. Tout le monde a un avis, faire le sien est compliqué - https://vladmihalcea.com/hibernate-facts-equals-and-hashcode/ - https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/ - https://vladmihalcea.com/the-best-way-to-implement-equals-hashcode-and-tostring-with-jpa-and-hibernate/ - https://jpa-buddy.com/blog/hopefully-the-final-article-about-equals-and-hashcode-for-jpa-entities-with-db-generated-ids/

    Kotlin va t’il décliné en 2025, faute d’innovation et avec les nouvelles features de Java ? https://shiftmag.dev/kotlin-vs-java-2392/

    • Selon l’auteur, d’autres langages alternatifs pour la JVM ont décliné, comme Groovy et Scala
    • L’auteur pense qu’il y aura de moins en moins de différenciants par rapport à Java, et Kotlin n’a pas rajouté de fonctionnalités significatives depuis un an ou deux

    Comment enlever des accents et autres marques diacritiques dans des chaines de caractères en Java https://glaforge.dev/posts/2024/01/url-slug-or-how-to-remove-accents-in-java/

    • Pour les URLs d’un blog post, par exemple, on souhaite avoir le titre dans l’URL, mais de manière URL-friendly, donc sans accents, en remplaçant les espaces par des tirets, etc
    • Guillaume propose une approche basée sur la normalisation de chaine unicode et les expressions régulières
    • Mais il évoque également la librairie Slugify qui est en plus capable de faire de la translitération (pour transformer aussi des idéogrammes et autre caractères non-ASCII)

    Les “gatherers” de JDK 22 https://blog.soebes.io/posts/2024/01/2024-01-07-jdk-gatherer/

    • Nous avons mentionné récemment le JEP 461 pour Java 22 : Stream Gatherers, qui sera en preview
    • Permet de faire des choses qui étaient un peu compliquées à faire avec l’API stream avant, comme par exemple implémenter des fenêtres glissantes sur les données du stream
    • L’article parle des différentes capacités des gatherers, avec un Integrator, un Initializer et un Finisher, et enfin un Combiner, avec différents exemples de code pour les illustrer
    Librairies

    Le fonds tech souverain d’origine allemande sponsorise le développement de Log4J https://www.sovereigntechfund.de/news/log4j-investment

    • 3 contributeurs pourront bosser dessus à temps plein
    • permet de sécuriser le développement du projet
    • réaction à l’impact de la CVE Log4shell qui avait bien marqué les esprits et fait bosser plein de gens le weekend pour tout patcher !
    Cloud

    Le glossaire de la Cloud Native Foundation a été traduit en Français https://glossary.cncf.io/fr/

    Web

    Sortie de Vue.JS 3.4 https://blog.vuejs.org/posts/vue-3-4

    • le parseur de composants (SFC) est 2x plus rapide
    • amélioration du système de réactivité en particulier pour les propriétés “computed” (recalculées)
    • le namespace JSX deprecated a été supprimé
    • Cédric Exbrayat de NinjaSquad couvre également les nouveautés dans cet article https://blog.ninja-squad.com/2023/12/29/what-is-new-vue-3.4/

    Astro JS 4.1 https://astro.build/blog/astro-410/

    • Découverte de ce FW grâce à Petipois https://medium.com/front-end-weekly/create-a-website-using-astro-in-2024-f5963003c19c
    • Astro est le framework web pour la construction de sites web axés sur le contenu tels que les blogs, le marketing et le commerce électronique. Astro est surtout connu pour être le pionnier d’une nouvelle architecture frontend afin de réduire la surcharge et la complexité de JavaScript par rapport aux autres frameworks
    • Architecture en “Astrot Islands” (interface en composants isolés)
    • SSG et SSR (Static Site Generator ey Server Side Rendering)
    • 0 Javascript si tu veux
    • Tu utilises React, Angular ou Vue pour tes composants
    • Lis plus ici : https://kinsta.com/fr/blog/astro-js/

    React à 10 ans… et là ma découverte de React Server Components https://www.joshwcomeau.com/react/server-components/#introduction-to-react-server-components-3

    • “At a high level, React Server Components is the name for a brand-new paradigm. In this new world, we can create components that run exclusively on the server.”
    • L’idée est de n’est pas faire des composants entiers en react dans le backend, et de n’est pas déléguer aux rendering client pour ces composants

    Prédictions 2024 https://thenewstack.io/2024-predictions-by-javascript-frontend-framework-maintainers/

    • Angular: Optional Zone.JS
    • Next.js (nouveau compilateur, + backend ?)
    • React: adoption de React Server Components, SPA ne suffit pas. React auto-memorizing (useCallback/useMemo deprecate)
    • Solid 2.0 viendra après SolidStart (framework web)
    Data et Intelligence Artificielle

    Retour d’experience sur faire du RAG avec des LLMs https://x.com/taranjeetio/status/1742587923189596531?s=20

    Gunnar Morling a lancé le 1 billion row challenge : https://www.morling.dev/blog/one-billion-row-challenge/

    • L’idée est de calculer le min / max, la moyenne, de températures, indiquées ligne par ligne dans un énorme fichier
    • Il y a énormément de contributions. Les plus rapides ont utilisé des memory mapped files, ou bien des instructions SIMD
    • Le challenge était en pur Java, mais d’autres personnes ont tenté l’expérience avec diverses bases de données ou autres langages de programmation

    Didier Girard parle de Shadow AI https://www.linkedin.com/posts/didiergirard_shadowai-genai-gouvernance-activity-7150031627006464000-IF1G/

    • Comme on a parlé de “shadow IT” à une époque, la nouvelle ombre du jour, c’est l’intelligence artificielle
    • Pour être plus productifs, les employés utilisent l’IA, sans forcément le dire à leur employeur
    • Le problème étant qu’avec certains système d’IA, les données que vous envoyées peuvent être sauvegardées et utilisées pour ré-entrainer l’IA… et potentiellement, l’IA pourrait recracher verbatim du texte provenant de ces données à d’autres utilisateurs. D’où une brèche dans la sécurité des données de l’entreprise

    Appel de fonction avec le LLM Gemini de Google https://glaforge.dev/posts/2023/12/22/gemini-function-calling/

    • Les Large Language Model sont limités par les connaissances qu’ils ont acquises lors de leur entrainement
    • Une approche possible pour se baser sur une base documentaire est d’utiliser l’approche Retrieval Augmented Generation (RAG) où l’on utilise une base de données vectorielle pour récupérer des passages de texte qui correspondent à la requête demandée
    • Mais il existe aussi une approche intéressante qui permet d’appeler des systèmes externes (APIs, service local, etc) en permettant au LLM de savoir qu’il peut répondre à une demande donnée en se basant sur l’appel d’une fonction. Dans cette approche, le LLM répond qu’il faudrait appeler une fonction (par exemple pour connaitre la météo à Paris) et il indique quels paramètres passer (“Paris”). Le développeur ensuite appel cette fonction et retourne le résultat de l’invocation au LLM, qui va ensuite pouvoir générer du texte avec ces données.
    • C’est l’approche “function calling” qui permet d’étendre à un LLM pour lui donner accès à des données live, derrière une API, etc
    Méthodologies

    Une video sur le père Noël et la pensé critique de la Tronce en Biais https://youtu.be/tqlYKO_asFw?si=g1Fq5OfCvQONNb2i

    • Vidéo interessante pour comprendre comment nous, dans la tech, on peut tomber facilement sur des croyances qui sont doutantes si on développe pas l’esprit critique.
    • Le père Noël, véritable complot planétaire des adultes, magasins, médias … d’un mensonge
    • Un enfant qui essaie d’appliquer le procédé épistémologique, il n’a pas d’autre source pour vérifier que le père noël n’existe pas, tous ses sources fiables duquel il apprend le monde (parents, profs, medias, histoires, medias) valident que le père noël existe.
    • Expliquer les incoherences par la magie, c’est quelque chose de complément banal dans l’univers d’un enfant à qui on parle en permanence de magie
    • La découverte de la mensonge aux alentours de 7 ans, l’age de la raison, est une bonne opportunité pour aborder l’esprit critique avec les enfants
    Loi, société et organisation

    EU AI Act cheat sheet https://www.linkedin.com/posts/yann-lecun_eu-ai-act-cheat-sheet-understand-activity-7139980837013331971-TDqI?utm_source=share&utm_medium=member_ios

    • Les entreprises vont avoir 1 ou 2 ans pour s’y conformer
    • Basics: Definition de l’AI, extraterritorialité, exceptions (oss, r&D, mais aussi défense …), classification par niveaux de risks (Prohibited > High Risk > Limited Risk > Minimal Risk)
    • Prohibited: Biometrique, social credit scoring, detection d’emotions, renforcement des lois basées sur l’identification biometrique en public
    • High (des régles sont définies pour controler ces usages: transparence, qualité, risque …): Le matériel médical, les véhicules, l’éducation, les élections, …
    • General: Transparence et information

    ChatGPT n’est pas un super médecin https://x.com/drhughharvey/status/1736308984288563550?s=46&t=C18cckWlfukmsB_Fx0FfxQ

    • ces d’utilisation ChatGPT en copilote
    • Trop de non déterminisme dans les réponses à la même question
    • 41% des réponses dans le consensus médical
    • 7% dangereuse
    • Faire du rag n’a monté que de quelques pourcents 5

    Transcription de la conférence donnée PGConf EU par Laetitia Avrot et Karen Jex (expertes Postgresql): Trying to be Barbie in Ken’s Mojo Dojo Casa House https://karenjex.blogspot.com/2023/12/trying-to-be-barbie-in-kens-mojo-dojo.html

    • Il s’agit d’une conférence en sociologie. En sociologie, il suffit que quelque chose soit vrai pour la majorité des cas pour être considéré comme une vérité, car cela repose sur des statistiques.
    • Sujet donné pour susciter de l’attention sur un problème qui existe bien dans la tech. Elles ont réalisé que la grande majorité de la population n’en était pas consciente (barbie)! Le film Barbie les a fait comprendre qu’elles doivent expliquer ce à quoi les femmes sont confrontées au quotidien, afin que les autres puissent comprendre à quel point cela peut être épuisant.
    • Très bien documenté avec bcp de liens et références au delà de l’expérience personnelle
    • Transcription et slides dans l’article
    • Lien entre film Barbie et la place des femmes dans la tech. Idées non neuves mais cela a été un impact
    • Les biais en général ne sont pas particuliers à un genre, sont globales. Test sur les biais implicites
    • Il existe un déficit de talents technologiques (estimé atteindre de 1,4 million à 3,9 millions de personnes d’ici 2027 dans les pays de l’UE-27), qui pourrait potentiellement être comblé en doublant la proportion de femmes dans le secteur technologique. Cependant, la part des femmes dans les rôles technologiques connaît sa plus basse représentation dans les domaines en pleine croissance tels que DevOps et le cloud.
    • plus de la moitié des femmes quittent l’industrie technologique 10 à 20 ans après le début de leur carrière, soit le double du taux des hommes. (manque d’opportunités, difficultés face aux biais, se sentir comme une outsider etc…)
    • La part des femmes dans les rôles technologiques en Europe risque de diminuer pour atteindre 21% d’ici 2027.
    • Solutions: roles modèles, combattre nos biais (si on ne les reconnait pas, on ne peut pas le combattre), mentoring, faire attention à donner de la voix etc…

    New York Times porte plainte à open ai https://www.bbc.com/news/technology-67826601

    • réclame des billions en copy right, suit aussi Microsoft et Bing qui utilise open ai
    • on peut trouver des extraits des articles avec suscription disponibles
    • Si on demande à chat gpt sur des news actuelles, reprend des explications tirés du NYT sans le mentionner
    • Sur bing on peut trouver aussi des extraits sans citer ni linker la source
    • Conséquences pour NYT: moins d’accès à leur site, moins de consultations, moins des clicks, chute des suscriptions, pertes monétaires importantes
    • Réponse de OpenAI au NYT https://openai.com/blog/openai-and-journalism
      • We collaborate with news organizations and are creating new opportunities
      • Training is fair use, but we provide an opt-out because it’s the right thing to do
      • “Regurgitation” is a rare bug that we are working to drive to zero
      • The New York Times is not telling the full story
    Outils de l’épisode

    Userscripts https://github.com/quoid/userscripts: extension pour changer le CSS et JS des sites dans votre navigateur

    Rubrique débutant

    Guillaume a publié 2 “codelabs” pour démarrer sur LangChain4J, en utilisant le LLM PaLM de Google https://glaforge.dev/posts/2023/12/18/get-hands-on-codelabs-to-dabble-with-llms/

    • Ces 2 tutoriels pratiques permettent de découvrir les deux modèles text et chat de PaLM
    • Différentes tâches sont illustrées pour faire de simples questions/réponses, de simples chat, mais aussi comment extraire des données structurées d’un texte, comment faire de la classification (avec un exemple d’analyse de sentiment)

    Google Summer of Code - appel aux projets https://summerofcode.withgoogle.com/

    Conférences

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

    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/

    15 January 2024, 9:11 am
  • 1 hour 39 minutes
    LCC 304 - Dark punk

    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.

    Enregistré le 15 décembre 2023

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

    News

    Aide Les Cast Codeurs et remplis un petit formulaire pour nous guider l’année prochaine https://lescastcodeurs.com/sondage

    Langages

    Avec JEP 461, arrivée dans en preview dans Java 22 de la notion de “gatherer” pour les streams https://groovy.apache.org/blog/groovy-gatherers

    • 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)
    • long article maisn interessant dans ses retours
    • mais lon je ne suis pas allé au bout :smile:

    Après la disparition de Nashorn dans le JDK, on peut se tourner vers le projet Javet https://www.caoccao.com/Javet/index.html

    • Javet permet d’intégrer JavaScript avec le moteur V8
    • Mais aussi carrément Node.js
    • c’est super comme capacité car on a les deux mielleurs moteurs, par contre le support hors x86 est plus limité (genre arm sous windows c’est non)
    Librairies

    Une partie de l’équipe Spring se fait lourder après le rachat effectif de Broadcom https://x.com/odrotbohm/status/1729231722498425092?s=20

    • peu d’info en vrai à part ce tweet
    • mais l’acquisition Broadcome n’a pas l’air de se faire dans le monde des bisounours

    Marc Wrobel annonce la sortie de JBanking 4.2.0 https://www.marcwrobel.fr/sortie-de-jbanking-4-2-0

    • support de Java 21
    • possibilité de générer aléatoirement des BIC
    • amélioration de la génération d’IBAN
    • jbanking est une bibliotheque pour manipuler des structures typiques des banques comme les IBAN les BIC, les monnaies, les SEPA etc.

    Hibernate Search 7 est sorti https://in.relation.to/2023/12/05/hibernate-search-7-0-0-Final/

    • Support ElasticSearch 8.10-11 et openSearch 2.10-11
    • Rebasé sur Lucerne 9.8
    • support sur Amazon OpenSearch Serverless (experimental)
    • attention sous ensemble de fonctionnalités sur Serverless, c’est un API first search cluster vendu a la lambda
    • En lien aussi sur la version 7.1 alpha1

    Hibernate ORM 6.4 est sorti https://in.relation.to/2023/11/23/orm-640-final/

    • support pour SoftDelete (colonne marquant la suppression)
    • support pour les operations vectorielles (support postgreSQL initialement)
    • les fonctions vectorielles sont particulièrement utilisées par l’IA/ML
    • événement spécifiques JFR

    Intégration de citrus et Quarkus pour les tests d’intégrations de pleins de protocoles et formats de message https://quarkus.io/blog/testing-quarkus-with-citrus/

    • permet de tester les entrees / sorties attendues de systèmes de messages (HTTP, Kafka, serveur mail etc)
    • top pour tester les application Event Driven
    • pas de rapport mais Quarkus 3.7 ciblera Java 17 (~8% des gens utilisaient Java 11 dans les builds qui ont activé les notifications)

    Hibernate Search 7.1 (dev 7.1.0.Alpha1) avec dernière version de Lucene (9.8), Infinispan rajoute le support pour la recherche vectorielle.

    Cloud

    Comment choisir sa region cloud https://blog.scottlogic.com/2023/11/23/conscientious-cloud-pick-your-cloud-region-deliberately.html

    • pas si simple
    • le coût
    • la securité légale de vos données
    • la consommation carbone de la région choisie (la France est top, la Pologne moins)
    • la latence vs où sont vos clients
    • les services supportés
    Web

    Vers une standardisation des Webhooks ? https://www.standardwebhooks.com/

    • Des gens de Zapier, Twilio, Ngrok, Kong, Supabase et autres, se rejoignent pour essayer de standardiser l’approche des Webhooks
    • La spec est open source (Apache) sur Github https://github.com/standard-webhooks/standard-webhooks/blob/main/spec/standard-webhooks.md
    • Les objectifs sont la sécurité, la reliabilité, l’interopérabilité, la simplicité et la compatibilité (ascendante / descendante)
    • sans la spec, chaque webhook est different dans son comportement et donc les clients doivent s’adapter dans la sematique et les erreurs etc
    • la (meta-) structure de la payload, la taille, la securisation via signature (e.g. hmac), les erreurs (via erreurs HTTP), etc
    Data et Intelligence Artificielle

    Google annonce Gemini, son nouveau Large Language Model https://blog.google/technology/ai/google-gemini-ai/#sundar-note

    Avec la sortie de Gemini, Guillaume a écrit sur comment appeler Gemini en Java https://glaforge.dev/posts/2023/12/13/get-started-with-gemini-in-java/

    • Gemini est multimodèle, donc on peut passer aussi bien du texte que des images, ou même de la vidéo
    • Il y a un SDK en Java pour interagir avec l’API de Gemini

    Facebook, Purple Llama https://ai.meta.com/blog/purple-llama-open-trust-safety-generative-ai/

    • Opensource https://ai.meta.com/llama/
    • 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)

    Apple aussi se met aux librairies de Machine Learning https://ml-explore.github.io/mlx/build/html/index.html

    • 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

    Faire tourner Java dans un notebook Jupyter https://www.javaadvent.com/2023/12/jupyter-notebooks-and-java.html

    • Max Andersen explore l’utilisation de Java dans les notebooks Jupyter, au lieu du classique Python
    • il y a des kernels java selon vos besoins
    • mais il faut les installer dans la distro jupyter qu’on utilise
    • et c’est la que jbang installable via pip vient a la rescousse
    • il installe automatiquement ces kernels en quelques lignes
    Outillage

    Sfeir liste des jeux orientés développeurs https://www.sfeir.dev/tendances/notre-selection-de-jeux-de-programmation/

    • parfait pour Noël
    • mais c’est pour ceux qui veulent continuer a challenger leur cerveau après le boulot
    • jeu de logique, jeu de puzzle avec le code comme forme, jeu autour du machine learning, jeu de programmation assembleur

    Les calendriers de l’Avent sont populaires pour les développeurs ! En particulier avec Advent of Code https://adventofcode.com/

    Un super thread de Clara Dealberto sur le thème de la “dataviz” (data visualization) https://twitter.com/claradealberto/status/1729447130228457514

    • 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
    • Bref c’est cool mais c’est long a lire

    Une petite liste d’outils sympas - jc pour convertir la sortie de commandes unix en JSON https://github.com/kellyjonbrazil/jc - AltTab pour macOS pour avoir le même comportement de basculement de fenêtre que sous Windows https://alt-tab-macos.netlify.app/ - gron pour rendre le JSON grep-able, en transformant chaque valeur en ligne ressemblant à du JSONPath https://github.com/tomnomnom/gron - Marker, en Python, pour transformer des PDF en beau Markdown https://github.com/VikParuchuri/marker - n8n un outil de workflow open source https://n8n.io/

    • gron en fait montre des lignes avec des assignments genre jsonpath = value
    • et tu peux ungroner apres pour revenir a du json
    • Marker utilise du machine learning mais il halklucine moins que nougat (nous voilà rassuré)

    Docker acquiert Testcontainers https://techcrunch.com/2023/12/11/docker-acquires-atomicjar-a-testing-startup-that-raised-25m-in-january/

    Architecture

    Comment implémenter la reconnaissance de chanson, comme Shazam https://www.cameronmacleod.com/blog/how-does-shazam-work

    Méthodologies

    Un mémo de chez ThoughtWorks à propos du coding assisté par IA https://martinfowler.com/articles/exploring-gen-ai.html#memo-08

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

    Quelles capacités sont nécessaires pour déployer un projet AI/ML https://blog.scottlogic.com/2023/11/22/capabilities-to-deploy-ai-in-your-organisation.html

    • 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
    • c’est un monde pre LLM

    Vous connaissez les 10 dark patterns de l’UX ? Pour vous inciter à cliquer ici ou là, pour vous faire rester sur le site, et plus encore https://dodonut.com/blog/10-dark-patterns-in-ux-design/

    • Parmi les dark patterns couverts
      • Confirmshaming
      • Fake Urgency and the Fear of Missing Out
      • Nagging
      • Sneaking
      • Disguised Ads
      • Intentional Misdirection
      • The Roach Motel Pattern
      • Preselection
      • Friend Spam
      • Negative Option Billing or Forced Continuity
    • 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

    Comment choisir de belles couleurs pour la visualisation de données ? https://blog.datawrapper.de/beautifulcolors/

    • Plutôt que de penser en RGB, il vaut mieux se positionner dans le mode Hue Saturation Brightness
    • Plein d’exemples montrant comment améliorer certains choix de couleurs
    • Mieux vaut éviter des couleurs trop pures ou des couleurs trop brillantes et saturées
    • Avoir un bon contraste
    • Penser aussi aux daltoniens !
    • j’ai personnellement eu toujours du mal avec saturationm vs brightness
    • faire que les cloueirs en noir et blanc soient separees evant de le remettre (en changeant la brightness de chaque couleur) ca aide les daltoniens
    • eviter les couleurs aux 4 coins amis plutot des couleurs complementaires (proches)
    • rouge orange et jaune (non saturé) et variations de bleu sont pas mal
    • les couleurs saturées sont aggressives et stressent les gens

    Pourquoi vous devriez devenir Engineering Manager? https://charity.wtf/2023/12/15/why-should-you-or-anyone-become-an-engineering-manager/

    • 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.
    Sécurité

    LogoFAIL une faille du bootloader de beaucoup de machines https://arstechnica.com/security/2023/12/just-about-every-windows-and-linux-device-vulnerable-to-new-logofail-firmware-attack/

    • en gros en changeant les eimages qu’on voit au boot
    • permet d’executer du code arbitraire au tout debuit de la securisation du UEFI (le boot le plus utilisé)
    • donc c’est game over parce que ca demarre avant l’OS
    • c’est pas une exploitation a distance, il faut etre sur la machine avec des droits assez elevés deja mais ca peut etre la fin de la chaine d’attaque
    • et comme d’hab un interpreteur d’image est la cause de ces vulnerabilités
    Conférences

    L’IA au secours de conférences tech: rajoute des profile tech femme comme speaker au programme pour passer le test diversité online via des profiles fake. https://twitter.com/GergelyOrosz/status/1728177708608450705 https://www.theregister.com/2023/11/28/devternity_conference_fake_speakers/ https://www.developpez.com/actu/351260/La-conference-DevTernity-sur-la-technologie-s-e[…]s-avoir-cree-de-fausses-oratrices-generees-automatiquement/

    • 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

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

    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/

    18 December 2023, 9:28 am
  • 47 minutes 58 seconds
    LCC 303 - Interview sur Vert.x 4.5 avec Julien Viet

    Ce qui a commencé comme un crowdcast a fini en interview de Julien Viet sur Vert.x 4.5.

    Enregistré le 23 novembre 2023

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

    Interview Ta vie ton oeuvre (présentation de l’interviewé)

    Le site de Julien Viet X (ancien twitter)

    Vert.x 4.5

    Vert.X 4.5 est sorti https://vertx.io/blog/whats-new-in-vert-x-4-5/

    • support des thread virtuels qui permet d’écrire le code synchrone pour des cas complexes et utiliser les thread locaux dans ces cas la. Cela ne remplacement pas le code de process des événements
    • le code put faire des future await qui ne bloqueront pas le thread principal
    • connection SQL dynamique: quand le host change dynamiquement dans l’application
    • support des proxies de niveau 7 pour les clients SQL
    • rotation certificats a chaud
    • des builders (HTTP, SQL connection)
    • extensions pour utiliser les coroutines kotlin
    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/

    4 December 2023, 5:31 pm
  • 1 hour 34 minutes
    LCC 302 - Amour, Gloire et OpenAI

    Dans cet épisode, Emmanuel, Guillaume et Katia abordent les nouveautés Java, le lancement du langage Misty par Douglas Crockford, l’arrivée de WasmGC dans Chrome, la sortie de Spring Framework 6.1, des évolutions dans les bibliothèques comme Vert.x 4.5, et des conseils sur la création de langages de programmation. L’épisode couvre également des actualités dans les domaines de l’infrastructure avec le premier ordinateur cloud commercial par Oxide, des annonces sur les frameworks web comme Angular v17, des réflexions sur les architectures monolithiques versus microservices, et sans oublier le soap Opéra du moins de novembre avec OpenAI en vedette.

    Enregistré le 23 novembre 2023

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

    News Langages

    Recap Javaiste https://www.infoq.com/news/2023/10/java-news-roundup-oct09-2023

    • la JEP 454 sur l’appel a la memoire et les API dites natives passera en target pour JDK 22 avec une façon d’ajouter les appels de méthodes restreintes sans le flag --enable-native-access (via un manifeste dans le JAR)
    • JDK 22 prévu pour mars 2024
    • Spring Framework 6.1 est sorti (RC2)
    • Tomcat a quelques CVE donc mettez à jour

    Douglas Crockford, le papa de JSON, sort un nouveau langage dénommé Misty https://www.crockford.com/misty/

    • Utilise des caractères unicodes pour définir des chaînes de caractères avec des chevrons, ou pour les opérateurs de base (comparison, and/or)
    • Support de programmation concurrente avec les actors

    WasmGC arrive dans Chrome, par l’intermédiaire de v8 https://v8.dev/blog/wasm-gc-porting

    • historiquement il fallait compiler le port du langage lui meme (et donc son GC)
    • Maintenant on peut compiler le code (java) dans des primitives Wasm et WasmGC
    • Java python et co ont des VM qui sont compilées pour toutes les architecture cibles (ARM, x86 etc) y compris le JIT, AOT
    • donc on peut définir comme backend WASM lui meme, c’est l’approche classique
    • WasmGC définit des structs et des array avec des champs dans lesquels on peut créer des instances, lire/écrire les champs, caster dans d’autres types et ces objects sont managés par WasmGC lui meme. on a un système de type du coup et des relations entre ces types
    • Donc on représenterait les objets Java en objets Wasm
    • avantage et inconvenient des deux approches
    • tous les codes de management d’objets ne sont plus nécessaires (y compris malloc) -> gain memoire
    • en mode GC dans le langage les liens object langage <-> objets Wasm sont inefficaces car le lien langage -> wasm définissent l’instance entière Wasm, donc des gros cycles d’objets ne sont pas GCed
    • Wasm sandbox empêche d’inspecter la stack et d’éliminer des objets plus efficacement, et il n’y a pas d’API pour aider donc seul WasmGC peut utiliser cet avantage.
    • un seul GC a des avantages: meilleure gestion de la pression memoire
    • mais on réutilise le GC du web (genre V8) vs celui de Java. (c’est moins un problème pour les autres langages avec des gc moins sophistiqués)
    • fragmentation memoire, est plus proéminent quand on a des modules de type C qui peur garder des gros blocs memoire “quasi vide” (opaque). c’est managé plus finement en WasmGC
    • Sémantiques de langage est plus dur a achevé vu qu’on map en concepts WasmGC, il y a de la transformation.
    • sémantiques chaine de caractère, nombres, etc peuvent être un peu ajusté
    • un port utilisant WasmGC n’est pas une réécriture de tout mais un gros morceau de la VM du langage cible est a réécrire
    • WasmGC peut optimiser comme les patterns en JVM mais en WasmMVP c’est la toolchain avant qui fait le travail d’optimisation (e.g. LLVM)
    • donc avec WasmGC, la toolchain fera les optimisations de langage et WasmGC fera les optimisations low level (inlining, constant propagation, dead code elimination)
    • puis d’autres optimisation specific a WasmGC comme les escape analysis,
    • et ils parlent d’optimisations dans V8 pour approcher les appels dynamique a la Java (pas défini a la compilation)

    Ecrire un langage de programmation… ça prend du temps… beaucoup de temps https://yorickpeterse.com/articles/a-decade-of-developing-a-programming-language/

    • Évitez le gradual typing
    • Évitez le boostrapping de votre compilateur
    • Évitez d’écrire votre propre générateur de code, linker, etc
    • Évitez de tergiverser trop longtemps sur la syntaxe
    • La prise en charge multiplateforme est un défi
    • Les livres sur les compilateurs compilateurs ne valent pas l’argent que vous dépenserez dessus
    • Faire grandir et évoluer un langage de programmation est difficile
    • La meilleure suite de tests est une application réelle
    • Ne privilégiez pas les performances sur les fonctionnalités.
    Librairies

    Spring Boot rajoute le hot reload des certificats SSL pour embedded Netty et Tomcat https://spring.io/blog/2023/11/07/ssl-hot-reload-in-spring-boot-3-2-0

    • utilisez reload-on-update: true
    • et écoute les changements de fichiers
    • pas mal dans les déploiements non immuables (pas comme kubernetes)

    VertX 4.5 est sorti https://vertx.io/blog/whats-new-in-vert-x-4-5/

    • support des thread virtuels qui permet d’écrire le code synchrone pour des cas complexes et utiliser les thread locaux dans ces cas la. Cela ne remplacement pas le code de process des événements
    • le code put faire des future await qui ne bloqueront pas le thread principal
    • connection SQL dynamique: quand le host change dynamiquement dans l’application
    • support des proxies de niveau 7 pour les clients SQL
    • rotation certificats a chaud
    • des builders (HTTP, SQL connection)
    • extensions pour utiliser les coroutines kotlin

    Integration declarative de Langchain4j dans Quarkus https://quarkus.io/blog/quarkus-meets-langchain4j/

    Infrastructure

    Oxide sort le premier ordinateur cloud disponible commercialement https://oxide.computer/blog/the-cloud-computer

    • pas facile de séparer le buzz de la réalité
    • on dirait un ordi purpose built avec l’efficience et le cote compact en tete
    • ils poussent contre le mode location uniquement des cloud providers
    • en gros inspire des cloud providers qui construisent leurs propres ordis (et meme CPUs maintenant !)
    • construit le hardware et le software en co optimisation
    • c’est un rack entier, peu de bruit de ventilateur
    • pas de cable (seul E/S du rack)
    • donc ils ont leurs propres switch
    • compliqué de différencier l’avantage du désavantage

    Les leçons tirées de 20 de Site Reliability Engineering par Google https://sre.google/resources/practices-and-processes/twenty-years-of-sre-lessons-learned/

    • Le risque d’une mitigation doit être proportionné à la gravité de la panne
    • Les mécanismes de récupération doivent être entièrement testés avant une urgence
    • Canarisez tous les changements
    • Avoir un “gros bouton rouge”
    • Les tests unitaires ne suffisent pas, des tests d’intégration sont également nécessaires
    • CANAUX DE COMMUNICATION ! ET CANAUX DE SECOURS !! ET DES SAUVEGARDES POUR CES CANAUX DE SECOURS !!!
    • Modes de dégradation intentionnelle des performances
    • Tester la résilience aux catastrophes
    • Automatisez vos mitigations
    • Réduisez le temps entre les déploiements, afin de diminuer la probabilité que le déploiement tourne mal
    • Une seule version matérielle globale est un point de défaillance unique

    Karpenter une evolution de autoscaler pour les cluster kubernetes https://blog.ippon.fr/2023/11/07/mettez-a-lechelle-vos-clusters-kubernetes-de-maniere-efficace-et-faites-des-economies-avec-karpenter/

    • fonctionne uniquement pour AWS aujourd’hui et un projet AWS donc a voir la portabilité
    • permet d’ajouter ou de supprimer des noeuds au cluster kubernetes en dynamique pour right sizer ses clusters
    • bypass les API kube pour la creation d’instance et utilise les APIs AWS EC2 directement
    • permet des noeuds hétérogènes (pas homogène comme autoscaler)
    • et se right size rapidement (e.g. 30s pour éteindre un noeud)
    • besoin d’applis cloud native par elles vont être baladées
    Web

    Deno! https://www.infoq.com/news/2023/10/deno-jupyter-integration

    • Dev experience, jupyter notebook integration
    • Améliorations sur Visual Studio Code extension (compatible avec NodeJS)
    • Exec native sur Jupyter de javascript et typescript permet d’effectuer des analyses de données, construire des modèles d’apprentissage automatique et générer des rapports interactifs avec Deno
    • Visualisation dynamiques avec D3 dans le notebook
    • Connection à Deno KV
    • Plusieurs améliorations sur le testing, APIs etc

    Lancement du nouveau site angular.dev et de la version v17 du framework https://blog.angular.io/announcing-angular-dev-1e1205fa3039

    Outillage

    Il est possible de signer et notariser des applications pour macOS sur des machines non-Apple https://gregoryszorc.com/blog/2022/08/08/achieving-a-completely-open-source-implementation-of-apple-code-signing-and-notarization/

    • implémenté en Rust
    • pratique pour son pipeline CI/CD basé sur Linux
    • a priori, il y a des outils similaires pour le monde Windows, qui permet de signer sur une machine non-Windows https://github.com/mtrojnar/osslsigncode

    Lors de son Github Universe, Copilot fait le show ! https://github.blog/2023-11-08-universe-2023-copilot-transforms-github-into-the-ai-powered-developer-platform/

    • Copilot Chat sera GA en décembre, il utilise GPT4, il permet de guider le développeur, de générer du code, de détecter des erreurs et aide à les corriger, d’expliquer le code
    • Intégration à venir de Copilot Chat dans les IDEs de JetBrains
    • Copilot Chat va être intégrer sur github.com et dans l’appli mobile aussi
    • Introduction de GitHub Copilot Enterprise pour les sociétés, qui permettra de spécialisé le modèle sur le code de l’entreprise
    • Intégration de Copilot ans Workspace, donc quand on voudra adresser un bug, créer un pull request, Copilot pourra nous aider étape par étape, suggérer un plan d’action
    • Copilot Enterprise permettra de faire des recherches avec le contexte entier du code de l’entreprise, donc idéalement meilleur que le focus sur un repo de Copilot

    Un guide sur OpenRewrite https://feeds.feedblitz.com//819402521/0/baeldungA-Guide-to-OpenRewrite

    • permet de refactorer le code via des règles
    • mise a jour de dependences, enlever usage d’api dépréciées, migration d’une bibliothèque a une autre, etc
    • migration java, migration framework, transformations spécifiques a votre société
    • OpenRewrite vient avec un écosystème de recettes
    • intégration via maven ou gradle
    • la suite montre des examples de migrations
    Architecture

    Article interessant sur Monolithe vs Microservices ! https://www.infoq.com/articles/monolith-versus-microservices/

    • Le débat monolithe vs microservices. Les monolithes reviennent, par exemple spring-modulith https://spring.io/projects/spring-modulith
    • Les microservices sont la solution à la complexité plutôt que la cause de celle-ci. Toutes les applications deviendront complexes ; au-delà d’un certain point, les microservices nous aideront à gérer cette complexité.
    • Les microservices comportent des coûts et des avantages. Si les avantages ne l’emportent pas sur les coûts, vous n’aurez pas une expérience positive avec les microservices.
    • Nous pouvons arrêter notre transition vers les microservices quelque part au milieu du spectre, ce que j’aime appeler le modèle hybride. À ce stade, nous pouvons avoir quelques gros services mélangés à quelques petits services. Nous pouvons avoir le meilleur des deux mondes : la simplicité et la commodité du monolithe combinées à la flexibilité et à la scalabilité des microservices.
    • Il n’y a pas de choix binaire entre monolithique et microservices. En réalité, il existe un spectre de possibilités entre les deux. Si vous vous êtes fixé à l’une des extrémités du spectre, vous passez à côté de la grande variété d’architectures intermédiaires.
    • Nous devrions cesser de parler de monolithe contre microservices et plutôt avoir un débat plus nuancé sur la taille appropriée des services.
    • les microservices mettent sur le devant de la scene la complexification du système, les monolithes le cachent sous le tapis
    • les microservices permette de manager cette complexité
    • automatisation est la clés dans l’adoption des microservices
    • bien aligner son architecture et son domain ou alors la douleur arrive
    Sécurité

    Une explication de la CVE sur HTTP/2 https://quarkus.io/blog/cve-2023-44487/

    • en fonction de l’implémentation, le risque est plus ou moins grand (de plus de CPU a un full DDOS)
    • au cœur du problème est la capacité d’envoyer pleins de requêtes en parallèle sur le meme pipeline HTTP/2
    • les serveurs ont en general une limite au streams en parallèle (genre 100)
    • la CVE est exploitée cote client en ouvrant et fermant rapidement une stream, c’est plus léger sur le client, le serveur a un delai dans sont processing
    • ce qui permet de bypasser la limit et affamer les resources du serveur
    • c’es catastrophique en cas de one thread per request (thread starvation)
    • en event loop, c’est une queue plus grande (donc le cas de quarkus)
    • pour mitiger, quarkus regarde le nombre de stream close requests par seconde pour détecter les abus (200 requêtes de fermeture sur une fetnetre de 30s)
    Data / IA

    Elon Musk annonce son LLM, appelé Grok https://x.ai/

    • Connectivité en temps réel avec Twitter !
    • Fenêtre de contexte de 25k characters
    • Le LLM garderait le contexte de la conversation (au lieu d’avoir à toujours renvoyer toute la discussion dans le contexte, à cause du côté sans état des LLMs habituellement)
    • Le style, la personnalité, du LLM, serait assez humoristique, voire carrément sarcastique, à la Musk… et déjà sur Twitter une personne commentait en disant que c’était le LLM “anti-woke”
    • Grok serait disponible pour les utilisateurs payants de Twitter

    OpenAI fait 4 nouvelles annonces https://openai.com/blog/new-models-and-developer-products-announced-at-devday

    • GPT-4 Turbo : leur dernier et plus puissant LLM. Il offre un contexte de 128k tokens, des prix plus bas et des quotas plus élevés. 128k c’est comme Claude
    • Assistants API : une solution permettant de créer des mini assistants personnalisés et de les exposer via une API. L’objectif est de faciliter l’intégration des solutions GenAI dans les applications, avec des fonctionnalités de gestion des conversations, d’interprétation de code et de RAG.
    • API pour DALL•E 3 : un modèle de 3e génération pour la génération d’images.
    • GPTs : des versions personnalisées de ChatGPT, faciles à développer même sans compétences en programmation. Une place de marché sera disponible pour monétiser ces “GPTs”.
    • Merci Didier et son X de résumer
    • un article plus complet de SFEIR https://www.sfeir.dev/ia/quand-lesprit-de-noel-sinvite-a-lopenai-devday/
    • Protection juridique en cas d’attaque de droits d’auteur
    Loi, société et organisation

    Les acteurs et la IA, deal pour arrêter a grève https://www.bbc.com/news/entertainment-arts-67364587

    • Les acteurs et les grands studios d’Hollywood ont conclu un accord le 8 novembre pour mettre fin à une grève qui a paralysé la production de films et de séries aux États-Unis pendant plusieurs mois.
    • L’accord prévoit une nouvelle convention collective de trois ans pour les acteurs (hormis les vedettes, les acteurs n’arrivent pas à gagner leur vie avec le streaming)
    • Revalorisation importante des salaires minimums ainsi que des des garde-fous contre le IA. Un système de primes pour les rediffusions en streaming.
    • Double mouvement social historique : acteurs sont entrés en grève mi-juillet, les scénaristes depuis début mai. La paralysie du secteur a coûté au moins 6 milliards de dollars.
    • Les acteurs craignaient que les studios utilisent l’IA pour cloner leur voix et leur image, les réutiliser à perpétuité, sans compensation ni consentement. Les conditions entourant les droits des studios sur l’image des acteurs stars après leur mort a été négocié.

    Chute de WeWork, dépôt de bilan https://www.maddyness.com/2023/11/06/wework-impact-coworking-france/

    • La disparition annoncée du géant mondial du coworking marque un tournant pour le secteur, y compris en France.
    • Asphyxié par une dette de près de 3 milliards de dollars
    • Chute interminable entamée en 2019
    • WeWork était le leader mondial du secteur et, de par son statut de pionnier du coworking
    • WeWork propose 15 établissements en France, tous situés à Paris
    • Pourtant la demande pour le coworking ne cesse d’exploser
    • Startups domicilient leur siège (Qonto par exemple) dans un espace de co-working
    • Le modèle du coworking n’est pas remis en cause. WeWork, c’est un phénomène à part. Il y a eu une mauvaise gestion de départ d’une licorne qui croît à toute vitesse, en ne faisant absolument pas attention à son modèle économique de base (dit Clément Alteresco CEO de Morning)
    • Mauvaise publicité pour le marché et les concurrents, mais considèrent qu’ils vont s’en sortir

    Les français, les utilisateurs twitter le plus violents d’Europe? https://www.huffingtonpost.fr/france/article/les-francais-sont-les-utilisateurs-de-twitter-les-plus-violents-d-europe_225331.html#:~:text=2023%2023%3A57-,Les%20Fran%C3%A7ais%20sont%20les%20utilisateurs%20de%20Twitter%20les%20plus%20violents,’Allemagne%20et%20l’Espagne.

    • Les signalements de contenus, suppressions et suspensions pour propos violents et haineux au sein de X sont les plus nombreux en France, loin devant l’Allemagne et l’Espagne.
    • 16.288 suppressions de messages contre 7.160 en Allemagne et 7.743 en Espagne
    • X explique avoir une « équipe internationale et inter-fonctionnelle » de « modérateurs humains », qui travaillent « 24 heures sur 24 avec la capacité de couvrir plusieurs langues ».

    Sam Altman PDG d’OpenAI est débarqué par son conseil de surveillance https://thealgorithmicbridge.substack.com/p/why-openai-fired-sam-altman-and-what

    Les groupes “Responsible AI” chez Google, Microsoft et plus récemment Meta https://www.theverge.com/2023/11/18/23966980/meta-disbanded-responsible-ai-team-artificial-intelligence?utm_source=substack&utm_medium=email sont détruits

    • meme débat chez OpenAI en fait.
    • difficile de comprendre les raisons, à part que la course s’est accélérée
    • l’article site les gouvernements qui veulent réguler mais je ne comprends pas en quoi cela influence
    Conférences

    Retrouvez les conférences sur le site Developers Conferences Agenda/List par Aurélie Vache.

    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/

    27 November 2023, 5:40 pm
  • 1 hour 45 minutes
    LCC 301 - Minoritaire ou majoritaire, là est la question!

    Dans cet épisode, Emmanuel et Guillaume reviennent sur les nouveautés de l’écosystème Java (Java 21, SDKman, Temurin, JBang, Quarkus, LangChain4J, …) mais aussi sur des sujets plus généraux comme Unicode, WebAssembly, les bases de données vectorielles, et bien d’autres sujets orientés IA (LLM, ChatGPT, Anthropic, …).

    Enregistré le 20 octobre 2023

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

    News Langages

    Gérer facilement des versions multiples de Java grâce à SDKman https://foojay.io/today/easily-manage-different-java-versions-on-your-machine-with-sdkman/

    • sdkman support java mais aussi graalVM, jbang, Quarkus, Micronaut etc (les CLIs)
    • la CLI UI est toujours un peu chelou donc cet article est utile pour un rappel

    Tous les changements de Java 8 à Java 21 https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features-since-jdk-8-to-21/

    • Nous avons déjà partagé ce lien par le passé, mais l’article est mis à jour à chaque release majeure de Java pour couvrir les dernières nouveautés. Et en particulier, Java 21 qui vient de sortir.

    Eclipse Temurin ne va pas sortir son Java 21 tout de suite https://adoptium.net/en-GB/blog/2023/09/temurin21-delay/

    • Apparemment, une nouvelle licence pour le TCK (qui valide la compliance) doit être approuvée
    • Oracle semble avoir sorti de nouveaux termes, à quelques jours de la sortie officielle de Java 21
    • la mise a jour du TCK est arrivée le 9 octobre.
    • comment Microsoft a pu sortir le sien avant?

    Le Financial Times propose un bel article avec des animations graphiques expliquant le fonctionnement de l’architecture de réseau de neurones de type transformers, utilisé dans les large language model https://ig.ft.com/generative-ai/

    • LLM via relation entre les mots
    • notion de transformer qui parse les “phrases” entières ce qui capture le contexte
    • discute le beam search vs greedy search pour avoir pas le prochain mot mais l’ensemble de prochains mots
    • parle d’hallucination
    • l’article parle de texte/vector embeddings pour représenter les tokens et leurs relations aux autres
    • il décrit le processus d’attention qui permet aux LLM de comprendre les associations fréquentes entre tokens
    • le sujet des hallucinations est couvert
    • et pour éviter des hallucinations, utilisation du “grounding”

    The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 https://tonsky.me/blog/unicode/

    • Un bel article qui explique Unicode, les encodings comme UTF-8 ou UTF-16, les code points, les graphèmes, les problèmes pour mesurer une chaîne de caractères, les normalisation de graphèmes pour la comparaison de chaîne
    • Si vous voulez mieux comprendre Unicode, c’est l’article à lire !
    • unicode c’est un mapping chiffre - caractère en gros
    • 1,1 millions disponibles dont 15% définis et 11% pour usage privé, il reste de la place. Et non les meojis ne prennent pas beaucoup de place.
    • usage prive est par exemple utilise par apple pour délivrer le logo apple dans les fonts du mac (mais pas ailleurs)
    • UTF est l’encoding du chiffre de l’unicode
    • UTF-32: 4 bytes tout le temps, UTF-8, encodage variable de 1 a 4 bytes (compatible avec ASCII) ; il a aussi un peu de détection d’erreurs (prefix des bytes différents),
    • optimise pour le latin et les textes techniques genre HTML
    • problème principal, on peut pas déterminer la taille en contant les bytes ni aller au milieu d’une chaine directement (variable)
    • UTF-16 utilise 2 ou plus de bytes et est plus sympa pour les caractères asiatiques
    • un caractère c’est en fait un graphème qui peut être fait de plusieurs codepoints : é = e U+0065 + ´ U+0301 ; ☹️ (smiley qui pleure) is U+2639 + U+FE0F
    • D’ailleurs selon le langage “:man-facepalming::skin-tone-3:”.length = 5, 7 (java) ou 17 (rust) ou 1 (swift). Ça dépend de l’encodage de la chaine (UTF-?).
    • ““I know, I’ll use a library to do strlen()!” — nobody, ever.”
    • En java utiliser ICU https://github.com/unicode-org/icu
    • Attention java.text.BreakIterator supporte une vieille version d’unicode donc c’est pas bon.
    • Les règles de graphème change a chaque version majeure d’unicode (tous les ans)
    • certains caractères comme Å ont plusieurs représentations d’encodage, donc il ya de la normalisation: NFD qui éclate en pleins de codepoints ou NDC qui regroupe au max
    • normaliser avant de chercher dans les chaines
    • certains unicode sont représentés différemment selon le LOCALE (c’est la life)
    • et ça continue dans l’article

    JBang permet d’appeler Java depuis Python via un pypi https://jbang.dev/learn/python-with-jbang/

    • c’est particulièrement interessant pour appeler Java de son Jupyter notebook
    • ça fait un appel a un autre process (mais installe jbang et java au besoin)
    Librairies

    Quarkus 3.4 est sorti https://quarkus.io/blog/quarkus-3-4-1-released/

    • un CVE donc mettez a jour vos Quarkus
    • support de Redis 7.2
    • plus de granularité sur la desactivation de flyway globalement ou par data source. Depuis l’activation transparente et automatique en 3.3
    • quarkus update est l’approche recommandée pour mettre à jour.

    Comment tester si un thread virtuel “pin” https://quarkus.io/blog/virtual-threads-3/

    • exemple avec quarkus
    • comment générer la stackstrace
    • et un utilitaire JUnit qui fait échouer le test quand le thread pin
    • une série d’articles de Clements sur les threads virtuels et comment les utiliser dans quarkus https://quarkus.io/blog/virtual-thread-1/

    À la découverte de LangChain4J, l’orchestration pour l’IA générative en Java https://glaforge.dev/posts/2023/09/25/discovering-langchain4j/

    • Guillaume nous parle du jeune projet LangChain4J, inspiré du projet Python LangChain, qui permet d’orchestrer différents composants d’une chaine d’IA générative
    • Grâce à ce projet, les développeurs Java ne sont pas en reste, et n’ont pas besoin de se mettre à coder en Python
    • LangChain4J s’intègre avec différentes bases vectorielles comme Chroma ou WeAviate, ainsi qu’une petite base en mémoire fort pratique
    • LangChain4J supporte l’API PaLM de Google, mais aussi OpenAI
    • Il y a différents composants pour charger / découper des documents et pour calculer les vector embeddings des extraits de ces documents
    • Vidéo enregistrée à Devoxx sur ce thème : https://www.youtube.com/watch?v=ioTPfL9cd9k
    Infrastructure

    OpenTF devient OpenTofu https://www.linuxfoundation.org/press/announcing-opentofu

    Dans les Dockerfiles, on peut utiliser la notation “heredocs”

    23 October 2023, 1:14 pm
  • More Episodes? Get the App
© MoonFM 2024. All rights reserved.