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 chaine d’approvisionnement sur XZ. Et nous commençons notre rubrique Ask Me Anything. N’hésitez pas à nous soumettre vos questions 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 déjà parlé des gatherers qui permettent de faire des opérateurs intermédiaires custom par rapport à ce qu’offre le JDK.
  • Ici Gunnar montre 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 Eclipse.
  • Support de ARM64 pour Linux et macOS.
  • Dark mode !
  • Des améliorations de performance.
  • Support GraalVM native image.
  • Nouvel 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

  • Évite 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 quelle 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 développeur.
  • Wiz server side rendering first est streamé, ce qui élimine le javascript dans le chemin de charge initial.
  • Des fonctions comme deferred views sont venus vers Angular et signals sont venus à wiz.
  • Vont merger au fur et à 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 intérêt 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 une source available license (donc pas open source) et SSPL n’est pas reconnue 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 providers en cause du problème, ils font de l’argent et commoditisent Redis sans redonner du revenu aux développeurs de Redis.
  • Est-ce que les gens seront ok de continuer à coder pour du code pas open, juste disponible ?
  • Et évidemment ça 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-fine-tuné, donc pas très utilisable en l’état (il faut le fine-tuner 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 compétition avec l’extension officielle et historique Java faite par Microsoft et Red Hat.
  • Oracle estime l’extension pas trés bonne, car basée sur le compilateur Eclipse.
  • 33M de téléchargements quand même.
  • La nouvelle s’appuie sur javac donc proche de la vérité par définition et en avance par définition de la facon dont Oracle release quand il veut.
  • Aligné sur 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’habitude, pour les side channels attaques de ce type, c’est sur un autre process qui peut tourner sur la machine et être adversaire.
  • Lié à 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 à des pointeurs vers des données contrôlées et on peut en déduire la clé 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/@rusty@piaille.fr/112190942187106096

Les impacts de laisser trainer son client secret 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 raisons 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ée).
  • Si ça 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étails, pas sûr 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 une 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/