LCC 306 - Alors tu squash ou tu pointes ?

Published: Feb. 13, 2024, 8:24 a.m.

Dans cet \xe9pisode, Katia, Emmanuel et Arnaud explorent de nouvelles approches du Builder pattern en Java, l\u2019introduction du Pattern Matching Primitives dans Java, et les d\xe9boires de l\u2019intelligence artificielle avec des attaques de la cha\xeene d\u2019approvisionnement sur Pytorch. Ils abordent aussi les licenciements dans diverses entreprises technologiques, l\u2019\xe9volution du trafic de Stackoverflow et donnent de conseils pratiques pour les d\xe9veloppeurs, notamment sur les commits conventionnels, la mise \xe0 jour de d\xe9pendances avec Dependabot, Renovate et le d\xe9boggage des programmes Java. Ils terminent avec leur retour d\u2019exp\xe9rience sur la relecture des sujets de Devoxx France 2024.

Enregistr\xe9 le 9 f\xe9vrier 2024

T\xe9l\xe9chargement de l\u2019\xe9pisode LesCastCodeurs-Episode-306.mp3

Votre avis compte \xe9norm\xe9ment pour nous ! \U0001f3a7 Nous voulons rendre Les Cast Codeurs encore plus genial, et c\u2019est l\xe0 que vous intervenez. \U0001f31f Aidez-nous en partageant vos id\xe9es, suggestions et souhaits pour 2024, dans notre tout nouveau formulaire de retour. C\u2019est rapide, facile et \xe7a ne prend que 2 minutes.

News Langages

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

  • Les builders, surtout quand ils sont imbriqu\xe9s les uns dans les autres, peuvent devenir un peu verbeux \xe0 lire
  • Est-ce qu\u2019on peut prendre une nouvelle approche ? Oui, en tirant parti des lambdas, avec des m\xe9thodes de mutation qui retournent des lambda qui effectuent la mutation
  • On retrouve le plaisir de pouvoir construire une instance \xe0 l\u2019aide d\u2019un constructeur, plut\xf4t qu\u2019un builder
  • En recherchant le sujet, Guillaume est aussi tomb\xe9 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\xe9ment\xe9e sous forme d\u2019annotation processor dans le petit projet open source Jilt)

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

  • Uniformit\xe9 autorisant le pattern de type pour tous les types, qu\u2019ils soient primitifs ou de r\xe9f\xe9rence et s\xe9curit\xe9 dans la conversion de types et \xe9viter les erreurs runtime pour les conversions de type. Plus de robustesse

  • Ca l\u2019explique 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\u2026 plein d\u2019outils
  • Keycloak
  • Langchain
  • Lire les d\xe9tails dans l\u2019article d\u2019InfoQ
  • etc.
Data et Intelligence Artificielle

Une attaque de supply chain sur Pytorch et l\u2019IA 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\xe9 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\xe9
  • et ils ont chopp\xe9 les tokens pour plus tard publier les binaires dans les repos officiels
  • et personne n\u2019a rien vu

Support du mod\xe8le de g\xe9n\xe9ration d\u2019image Imagen dans LangChain4j rajout\xe9 dans la derni\xe8re version du project https://glaforge.dev/posts/2024/02/01/image-generation-with-imagen-and-langchain4j/

  • contribu\xe9 par Guillaume
  • on peut g\xe9n\xe9rer des images, mais aussi les \xe9diter

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

  • int\xe9gration avec Vertex.ai et d\u2019autres services Google
  • Facilite deploy dans le cloud google et l\u2019int\xe9gration avec Kubernetes

Guillaume a \xe9crit un article et d\xe9velopp\xe9 une application pour visualiser les tokens g\xe9n\xe9r\xe9s par les large language models d\xe9riv\xe9s du mod\xe8le PaLM https://glaforge.dev/posts/2024/02/05/visualize-palm-based-llm-tokens/

Outillage

Stackoverflow voit son traffic diminuer doucement depuis quelques ann\xe9es, mais depuis l\u2019av\xe8nement de ChatGPT et consort, la chute s\u2019acc\xe9l\xe8re https://twitter.com/swyx/status/1753122780709871834

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

M\xe9thodologies

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

  • Convention pouss\xe9e par l\u2019\xe9quipe Angular, \xe0 la base
  • Pour standardiser et clarifier les messages de commits
  • Mais aussi pratique pour les outils comme JReleaser pour automatiser les release notes d\u2019un projet
Loi, soci\xe9t\xe9 et organisation

Google vire encore des ing\xe9nieurs dans la division mat\xe9rielle pixel, et dans les ing\xe9nieurs c\u0153ur 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\u2019autres. Tout \xe7a juste en janvier.

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

  • Quoi \xe0 dire de plus que le temps passe vite \u2026 #old
Rubrique d\xe9butant

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\u2019air bloqu\xe9s. Vous pouvez effectuer un thread dump dans un autre terminal en r\xe9cup\xe9rant 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\xe9rences

Dans les coulisses du Call for Paper de Devoxx France 2024

La liste des conf\xe9rences provenant de Developers Conferences Agenda/List par Aur\xe9lie Vache et contributeurs :

Nous contacter

Pour r\xe9agir \xe0 cet \xe9pisode, 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 \xe9pisodes et toutes les infos sur https://lescastcodeurs.com/