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 des Primitives en 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ébogage 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.
- Ça 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)
- Avant
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.
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.
- Ça leur a permis de faire tourner la CI automatiquement quand ils poussent la PR.
- Soumis une PR qui curl fetch un gist qui tournait sur un runner auto-hébergé.
- 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 le 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
- Mais apparemment, ce graphique ne serait pas correct selon StackOverflow, qui n’aurait perdu que 5% par rapport à l’année dernière.
- https://stackoverflow.blog/2023/08/08/insights-into-stack-overflows-traffic/.
- StackOverflow a changé l’utilisation de Google Analytics, ce qui expliquerait en grande partie la tendance de ce graphe qui porte à confusion.
Amélie Benoit - Dependabot Visual way https://twitter.com/AmelieBenoit33/status/1754397434812203455
- Un outil visuel pour dependabot, tout est dans l’image !
- Différences entre les bots Renovate et Dependabot: https://docs.renovatebot.com/bot-comparison/.
- Tableau comparatif intéressant
Méthodologies
Le pouvoir des “conventional commits” par Julien Ponge 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
- Kevin Bourrillon, connu entre autre pour Guava, fait partie des virés.
Okta vire 400 personnes dont Matt Raible https://techcrunch.com/2024/02/01/okta-layoffs-400-employees/
- Cela suit Microsoft (gaming), eBay, SAP, RIOT Games (League of Legends), Google, Amazon (Prime, Audible), Unity et plein 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, 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
Java Thread Dump - VisualVM, jstack
, kill -3
, jcmd
https://www.digitalocean.com/community/tutorials/java-thread-dump-visualvm-jstack-kill-3-jcmd
- 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
.
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 :
- 8-9 février 2024 : Touraine Tech - Tours (France)
- 15-16 février 2024 : Scala.IO - Nantes (France)
- 6-7 mars 2024 : FlowCon 2024 - Paris (France)
- 14-15 mars 2024 : pgDayParis - Paris (France)
- 17-18 mars 2024 : Cloud Native Rejekts EU 2024 - Paris (France)
- 19 mars 2024 : AppDeveloperCon - Paris (France)
- 19 mars 2024 : ArgoCon - Paris (France)
- 19 mars 2024 : BackstageCon - Paris (France)
- 19 mars 2024 : Cilium + eBPF Day - Paris (France)
- 19 mars 2024 : Cloud Native AI Day Europe - Paris (France)
- 19 mars 2024 : Cloud Native StartupFest Europe - Paris (France)
- 19 mars 2024 : Cloud Native Wasm Day Europe - Paris (France)
- 19 mars 2024 : Data on Kubernetes Day - Paris (France)
- 19 mars 2024 : Istio Day Europe - Paris (France)
- 19 mars 2024 : Kubeflow Summit Europe - Paris (France)
- 19 mars 2024 : Kubernetes on Edge Day Europe - Paris (France)
- 19 mars 2024 : Multi-Tenancy Con - Paris (France)
- 19 mars 2024 : Observabiity Day Europe - Paris (France)
- 19 mars 2024 : OpenTofu Day Europe - Paris (France)
- 19 mars 2024 : Platform Engineering Day - Paris (France)
- 19 mars 2024 : ThanosCon Europe - Paris (France)
- 19 mars 2024 : Cloud Native Startup Fest Europe - Paris (France)
-
19 mars 2024 : [PaaS Forward by OVHcloud Rancher by SUSE](https://kccnceu2024.sched.com/event/1Z1yp) - Paris (France) - 19-21 mars 2024 : CloudNativeHacks - Paris (France)
- 19-21 mars 2024 : IT & Cybersecurity Meetings - Paris (France)
- 19-22 mars 2024 : KubeCon + CloudNativeCon Europe 2024 - Paris (France)
- 21 mars 2024 : IA & Data Day Strasbourg - Strasbourg (France)
- 22-23 mars 2024 : Agile Games France - Valence (France)
- 26-28 mars 2024 : Forum INCYBER Europe - Lille (France)
- 28-29 mars 2024 : SymfonyLive Paris 2024 - Paris (France)
- 28-30 mars 2024 : DrupalCamp Roazhon - Rennes (France)
- 4 avril 2024 : SoCraTes Rennes 2024 - Rennes (France)
- 4-6 avril 2024 : Toulouse Hacking Convention - Toulouse (France)
- 17-19 avril 2024 : Devoxx France - Paris (France)
- 18-20 avril 2024 : Devoxx Greece - Athens (Greece)
- 22 avril 2024 : React Connection 2024 - Paris (France)
- 23 avril 2024 : React Native Connection 2024 - Paris (France)
- 25-26 avril 2024 : MiXiT - Lyon (France)
- 25-26 avril 2024 : Android Makers - Paris (France)
- 3-4 mai 2024 : Faiseuses Du Web 3 - Dinan (France)
- 8-10 mai 2024 : Devoxx UK - London (UK)
- 16-17 mai 2024 : Newcrafts Paris - Paris (France)
- 22-25 mai 2024 : Viva Tech - Paris (France)
- 24 mai 2024 : AFUP Day Nancy - Nancy (France)
- 24 mai 2024 : AFUP Day Poitiers - Poitiers (France)
- 24 mai 2024 : AFUP Day Lille - Lille (France)
- 24 mai 2024 : AFUP Day Lyon - Lyon (France)
- 28-29 mai 2024 : Symfony Live Paris - Paris (France)
- 2 juin 2024 : PolyCloud - Montpellier (France)
- 6-7 juin 2024 : DevFest Lille - Lille (France)
- 6-7 juin 2024 : Alpes Craft - Grenoble (France)
- 7 juin 2024 : Fork it! Community - Rouen (France)
- 11-12 juin 2024 : OW2con - Paris (France)
- 12-14 juin 2024 : Rencontres R - Vannes (France)
- 13-14 juin 2024 : Agile Tour Toulouse - Toulouse (France)
- 14 juin 2024 : DevQuest - Niort (France)
- 19-20 juin 2024 : AI_dev: Open Source GenAI & ML Summit Europe - Paris (France)
- 27-28 juin 2024 : Agi Lille - Lille (France)
- 4-5 juillet 2024 : Sunny Tech - Montpellier (France)
- 8-10 juillet 2024 : Riviera DEV - Sophia Antipolis (France)
- 6 septembre 2024 : JUG Summer Camp - La Rochelle (France)
- 19-20 septembre 2024 : API Platform Conference - Lille (France) & Online
- 7-11 octobre 2024 : Devoxx Belgium - Antwerp (Belgium)
- 10 octobre 2024 : Cloud Nord - Lille (France)
- 10-11 octobre 2024 : Volcamp - Clermont-Ferrand (France)
- 10-11 octobre 2024 : Forum PHP - Marne-la-Vallée (France)
- 17-18 octobre 2024 : DevFest Nantes - Nantes (France)
- 6 novembre 2024 : Master Dev De France - Paris (France)
Nous contacter
Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs
Contactez-nous via twitter https://twitter.com/lescastcodeurs
Faire un crowdcast ou une crowdquestion
Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs
Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/