LCC 301 - Minoritaire ou majoritaire, là est la question!
Épisode de Les Cast Codeurs Podcast par Emmanuel Bernard, Guillaume, Antonio, Arnaud, Katia · 23 octobre 2023 · 1 h 46 min
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" https://www.docker.com/blog/introduction-to-heredocs-in-dockerfiles/
C'est comme faire un seul RUN avec des commandes séparées par des &&, mais en plus sympa parce que ça ressemble à un script bash classique
Par contre, c'est spécifique Docker et n'est pas portable sur podman ou autre
Docker annonce un nouveau protocole pour signer ses images OpenPubkey https://www.linuxfoundation.org/press/announcing-openpubkey-project
sigstore répond https://blog.sigstore.dev/openpubkey-and-sigstore/
OpenPubkey s'appuie sur OIDC
c'est un repo GitHub pour l'instant
pas de partie de confiance en dehors du OIDC provider.
OIDC lie une identité a une clé de chiffrement via une extension du id token.
OIDC devient une preuve de possession
purement client side via la signature du id token
ils utilisent le nonce pour stocker la clé publique et la signer cryptographiquement
vs Sigstore: plus d'élément central comme le transparency log et l'autorité de certification
pour le projet sigstore, ils n'ont pas utilisé cette architecture parce que la privacy des identités notamment en cas de renommage et sur le long terme n'est pas respecté
la rotation de clés et la partie client side devient beaucoup plus complexe (OIDC quoi) et ouvre des risques de sécurité (bugs d'implémentation)
la clé des OIDC providers est rotaté et ce n'est pas expliqué dans le flow OpenPubkey
la complexité passe de server side a client side (vu que le nonce est la clé du système)
le client notamment va devoir tracker les clés de signature des providers OIDC tout le temps (ou un system devra le faire)
le id token typiquement a plus d'infos qui vont leaké en tant que certificat du truc signé (privacy)
Cloud
Oracle Cloud rajoute GraalOS https://blogs.oracle.com/java/post/introducing-graalos
plateforme serverless sans container
Autres épisodes de « Les Cast Codeurs Podcast »
- LCC 344 - Feature flags - 2^n raisons de ne pas dormir la nuit 20 octobre 2026
- LCC 343 - Trois IA, une seule prise électrique 14 septembre 2026
- LCC 342 - Bun en Rust, TypeScript en Go 21 juillet 2026
- LCC 341 - Endives ou Chicorée ? 22 juin 2026
- LCC 340 - Episode on l'voit on l'voit pas 12 mai 2026
- LCC 339 - Clotûre de Devoxx France 2026 par les cast codeurs 29 avril 2026
- LCC 338 - Le soulèvement des bots de skills 20 mars 2026
- LCC 337 - Datacenters Carrier Class dans l'espace 16 février 2026
- LCC 336 - Interview Kotlin avec Arnaud Giuliani 6 février 2026
- LCC 335 - 200 terminaux en prod vendredi 16 janvier 2026
- LCC 334 - Interview de Muriel Ekovich sur les biais cognitifs 24 décembre 2025
- LCC 333 - A vendre OSS primitif TBE 15 décembre 2025
- LCC 332 - Groquik revient, Emmanuel s'en va 18 novembre 2025
- LCC 331 - Le retour des jackson 5 6 novembre 2025
- LCC 330 - Nano banana l'AI de Julia 15 septembre 2025
À propos du podcast
Les Cast Codeurs : le podcast en français de, par et pour les développeurs. Prenez connaissance des dernières nouvelles de la sphère Java et du développement en général. Plongez sur un sujet précis avec les épisodes interview. Supportez les radotages de vos hôtes : Emmanuel Bernard (ex Red Hat,…
Épisodes similaires
- Acte III: « Tous les policiers sont mobilisés, de la plus petite ville à Paris » assure Agathe Foucault, porte-parole de la police nationale – L'interview politique du week-end
- Récolte, variétés, vente directe : les secrets de La Pommeraie de Charlotte à Cavaillon – Les circuits courts en France
- L’École Française Digitale : un enseignement flexible qui s’adapte | Delphine Ithembela, cofondatrice de l’École Française Digitale – L'invité de PME Radio
- Attentat de Trappes : une idéologie peut-elle facilement conduire à un passage à l’acte – Radical, le podcast de l'Observatoire des radicalités
- Mobilisations : «Je constate une déliquescence de la France, on ne pourra pas revenir en arrière», s'alarme un commercant – Eliot Deval et vous
Tous les épisodes de Les Cast Codeurs Podcast · Plus de podcasts Actualités