Les Cast Codeurs Podcast: LCC 301 - Minoritaire ou majoritaire, là est la question!

10/23/23 - Episode Page - 1h 46m - PDF Transcript

Les Cascodeurs podcast, épisode 301. Minoritaire ou majoritaire, là est la question.

Registrez le 20 octobre 2023.

Pour soutenir les Cascodeurs, allez sur patreon.com slash les Cascodeurs.

Bonjour et bienvenue au Cascodeur épisode 301 et nous sommes le 20 octobre 2023.

Et je suis avec mon ami Guillaume.

Et cet épisode a été généré par intelligence artificielle parce que la plupart des Cascodeurs sont malades en ce moment.

On a du mal à réunir.

C'est pour ça que vous entendez un son un peu nasillard de Guillaume.

C'est l'intelligence artificielle.

Elle n'a pas tout à fait bien reproduit ma voix.

Ou alors je l'ai préparé et entraîné le modèle comme je devais être déjà enrhumé.

J'espère que vous n'entendrez pas trop de bruit de mouchoir et autres.

Je vais faire un effort pour me muter si ça devait arriver.

Alors bon, vous connaissez la chanson.

On démarre par le bas des stacks et puis on ouvre jusqu'à l'humain.

Et au niveau des langages, on a déjà parlé.

Il y a même eu l'interview autour de Java 21.

Donc c'est un peu la suite un peu de ça.

Et notamment, il y a un article de foot.js sur comment installer les différentes versions du JDK.

Avec SDKman.

On a sûrement déjà dû parler.

Mais c'est un petit article qui vous fait un petit pique de rappel si vous ne l'utilisez toujours pas.

Ouais.

Et alors après, il y a d'autres outils.

Il n'y a pas que celui-là.

Mais en tout cas, moi j'aime bien aussi SDKman.

D'ailleurs, pour la petite histoire, c'était quelqu'un, celui qui a créé ça.

Ce qui était dans la communauté Groovy.

Oui, parce qu'à la base, il y avait 10 secondes Groovy.

Et puis après, ça s'est ouvert.

Ouais.

Et ça s'est ouvert à plein plein plein de SDK.

Donc il y a des SDK pour Wattmiltruc dont Java.

Et c'est vraiment super simple à utiliser.

Et moi j'utilise tout le temps.

Donc voilà, si je vais faire SDK install Groovy.

Ça va m'installer la dernière version de Groovy.

Install Java, Poff.

On a le choix parmi...

D'ailleurs, en plus, on a un grand grand choix.

Parce que je pense qu'il y a à peu près toutes les distributions de tous les vendeurs, je pense.

Je ne dis pas de bêtises.

Je ne sais pas s'il y a au Rack.

Il y a au Rack.

Il me semble que si...

Attends, je pourrais lancer la commande là, mais j'ai la flemme.

Il me semble qu'au Rack...

J'avoue que sur l'interface utilisateur, c'est un peu comme Git.

Ils ont...

Ouais.

Rétrospectivement, ils auraient pu faire une V2.

Mais bon, après, tu casses.

J'arrive jamais à me dire, bon, comment est-ce que je vois la liste des trucs disponibles

vers s'installer, vers l'objet d'aller goûler.

Mais après, ça me fait mon installation.

Tu fais juste SDK.

Tu fais juste SDK et t'affiches le help.

Et tu te rappelles.

Ah oui, il y a la liste.

C'est ça.

C'est facile.

Ouais.

Et surtout, maintenant, ce n'est pas que Java.

Donc si vous utilisez les frameworks modernes à Quarkus, Micronaut, Cisprigmoot, ils

ont une ligne de commande.

Mais ça doit être le cas.

Voilà.

Il y a ces supports là aussi.

Du coup, c'est assez utile.

Du coup, c'est super pratique parce que c'est vrai que tu veux tester les dernières features

de Java 21.

Oui.

Sur ton projet ou au boulot.

Non.

On est encore quand, j'espère, en 8, mais 11 ou 17.

Donc comme ça, tu peux quand même switcher facilement sans toucher.

Il y a eu de vraiment bien top depuis Java 5, car moi, je suis toujours sur le site.

Les annotations, je n'ai pas trouvé ce qu'il s'est passé.

Ouais.

Après, déjà les Gilerics.

Bonjour.

Après tout le reste.

Moi, c'était ça.

C'était cette version.

Les Gilerics.

Mais les Gilerics.

Oui.

C'est là.

Comme les Gilerics.

Oui.

Enfin moi, je trouve ça bien, notamment J-Bank, Quarkus, etc.

Je ne m'embête pas à me dire, c'est ce que j'ai de la dernière version, etc.

Tant, tant SDGaman updates.

Oui.

Et puis ça me dit, tiens, il y a la nouvelle version, tu la veux.

Yes.

Paf, paf.

C'est cool.

C'est clair.

Et en parlant des différentes versions de Java, j'ai remis.

J'ai dit bien remis, parce que je pense que je l'ai déjà partagé, mais un super article

par l'anglophone, je crois, qui liste tous les changements de Java 8 à Java 21.

Et donc, il le met à jour, cet article, à chaque fois qu'il y a une nouvelle version

majeure qui est sortie.

Et j'aime bien, parce que c'est super condensé, enfin, ce n'est pas, genre, dix paragraphes

pour expliquer ça avec chaque feature, c'est vraiment juste.

C'est condensé, mais il faut quand même 24 minutes de lecture tellement il y a de

coups de pieds.

Oui, mais attend, depuis Java 8, quand même, de VJVK8, donc, et puis avec des petits libellés

pour bien montrer les couleurs, est-ce que c'est un changement au niveau de la syntaxe,

est-ce que c'est un changement au niveau des librairies, etc.

Donc, on peut voir un petit peu par catégorie, par version et tout, tout ce qui a été

changé.

Et vraiment, par exemple, il y a un exemple de code, c'est vraiment, voilà, tu as deux

trois lignes de code qui te montrent comment utiliser cette fonctionnalité-là et tu comprends

tout de suite ce à quoi ça sert.

Donc, du coup, même de temps en temps, ça m'arrive de retomber sur cet article.

Ah oui, c'était quoi déjà la syntaxe ? Enfin, je veux dire, n'importe quoi, la syntaxe

pour les records.

Ah oui, c'est comme ça.

Oui, c'est pour ça.

La qualité.

Il y a eu les bétales et les priviléaux.

Oui.

C'est vrai.

Et il y a un petit graphe, des JEP, donc, en fait, il n'y a plus de fonctionnalité

dans le JDK à part des JEP, et du coup, là, il monte, c'est quand même assez linére,

en fait, du coup, depuis qu'ils sont partis sur ce modèle-là.

Ouais.

Il y a encore une courbe avec un nombre assez constant de nouvelles JEP intégrées par

version JDK.

JEP.

D'ailleurs, c'est ce qui est rigolo, c'est quand est-ce qu'ils se sont mis à en faire

tous les six mois-là ?

Alors, attends, parce qu'au départ, c'était vu qu'après, ça allait être tous les deux

trois ans.

Oui, depuis...

Non, attends.

C'est si, parce que je le vois sur le graphe.

Donc, depuis la dix, et du coup, il met quand même le JDK à neuf avant, qui était la

dernière d'avant, mais qui dansait de...

Ah bah non, c'est JDK, non, non, c'est pareil.

C'est depuis que c'est là, au rythme des six mois, son graphe.

Ouais.

Bon, bref, c'est pas très visuel tout ce qu'on veut, mais du coup, on va passer à la suite.

Yes.

Il y a eu un petit brouhaha, ouais, sur Temurine ou Temurin, comme on dit en bon français.

Donc, l'équipe Temurin, c'est l'ancien Adopt Open JDK qui passait chez Eclipse.

Voilà, Adoption qui passait chez Eclipse.

Donc, ils l'ont nommé pour, je ne sais pas quelle raison, légale.

Et puis, Eclipse Temurin, il voulait réaliser Java 21 comme tout le monde, sauf que visiblement

il y a une nouvelle licence avec un nouveau contrat, des choses à revoir au dernier moment

par Oracle.

Comme Oracle, en fait, ils font leur test, ils réalisent et après, ils offrent.

Ça y est, vous pouvez avoir le TCK, ils ne livrent pas le TCK en avance, les autres

sont obligés de suivre.

Et donc là, ils étaient un petit peu énervés les gens d'Eclipse, en disant, ben voilà,

il y a une nouvelle licence, il faut qu'on la liste quand même par nos avocats pour

savoir si on donne notre amour diable un peu plus qu'avant.

Et du coup, voilà, il y a eu un petit retard à l'allumage et la mise à jour du TCK,

du coup, il arrivait le 9 octobre et après, ils ont réalisé.

Mais Microsoft par exemple, a réalisé très vite, donc il doit avoir des avocats super

rapide.

Alors, j'ai eu un autre petit écho là récemment, ça se trouve en fait, c'est peut-être aussi

Eclipse qui n'a pas vu qu'il y avait justement des changements par rapport au terme et qui

du coup n'ont pas forcément discuté avec leurs avocats, peut-être assez rapidement.

En avance.

Il y a peut-être aussi ça.

Donc, est-ce que c'est vraiment Oracle qui l'a fait au tout dernier moment et ou aussi

peut-être Eclipse qui n'a pas bien regardé au bon moment ? Enfin, c'est difficile à

savoir, je ne sais pas si on saura la vraie, vraie liste.

En tout cas, c'était un bloc qui avait l'an un peu quand même, tu vois, ce n'était

pas vrai.

On va passer à l'intelligence artificielle, je ne suis pas sûr que ça soit très bien

ordonné tout ce qu'on a fait là, mais on fait un petit passage par l'intelligence

artificielle.

Oui.

Le financial times.

Super article de financial times avec plein de, donc, ce genre d'article, vous savez où

il y a des belles animations où on scroll et puis on voit petit à petit les animations

apparaître et tout.

Et ce que j'aime bien, donc, c'est que c'est un article à propos de comment fonctionnent

finalement tous ces nouveaux réseaux de neurones, les large language models à base de réseaux

de neurones, de transformers et tout et pour essayer de comprendre un petit peu comment

fonctionne dans l'architecture des transformers, il y a cette notion d'attention, c'est-à-dire

d'être capable de reconnaître les liens qui peut y avoir entre différents mots, même

des mots qui sont espacés, beaucoup d'autres mots voire de phrases.

Par exemple, quand on dit, je ne sais pas moi, Emmanuel est parti promener son chien,

il l'a oublié de prendre ses clés, en général on sait que le il correspond à Emmanuel et

pas à son chien par exemple, en fonction du contexte, mais après, on ne sait pas forcément

Non mais l'autre exemple, c'est Emmanuel a promené son chien, il a remué la queue et

ben là on sait que c'est le chien, non mais en l'occurrence, le LLM, il dit, ok alors

vu que la queue en général c'est plutôt associé au chien, là le il correspond globalement

au chien, enfin, c'est pas qu'il le comprend et qu'il l'inferme, mais au niveau de sa

génération il va avoir tendance à l'associer au bon sujet et pas au mauvais sujet.

Et pareil, il y a des petites animations qui montrent le cas des mots, alors il y avait

un mot, c'était le mot, donc je te le rends en anglais bien sûr, mais c'est du financial

times, le mot interest, un intérêt, même en français d'ailleurs ça marche de toute façon,

on va parler des taux d'intérêt, les intérêts de la banque etc. mais on va dire, à moi j'ai

un intérêt pour la programmation fonctionnelle, je ne sais pas quoi, mais ce ne sont pas,

donc ce sont des homonymes, mais intérêt suivant le contexte, les mots qui entourent,

s'il y a banque qui n'est pas loin, s'il y a prêts qui n'est pas loin, on se doute bien que ça

va être le intérêt d'un prêts et non pas le intérêt, ça m'intéresse, c'est un sujet qui me

plaît, donc il montre bien aussi avec des petites animations que, ah ouais ce mot là, il peut utiliser,

je crois qu'il y a aussi le mot work qui est associé dans plein plein plein de contextes différents

et du coup il les associe et montre, ah oui non, ça c'est tel contexte,

ça c'est tel contexte, donc tout ça avec des petites animations et puis aussi il y a l'aspect,

donc ils expliquent qu'en fait ces termes, ces tokens ou même des phrases ou des entités plus grosses,

on a ce qu'on appelle des embeddings, des textes embeddings ou vector embeddings qui

représentent ces notions là et en fait c'est qu'au sous modo, un tableau de flottes et c'est aussi ce

qui passe dans le réseau de neurones, c'est des méga tableaux de flottes aussi finalement et ils

montrent par exemple, c'est un truc assez classique que l'embedding, le tableau qui

représente un roi, c'est un peu comme homme plus le fait d'être roi mais une reine c'est le fait

d'être une femme plus avoir ce titre de roiothèque et donc si par exemple on fait, alors je sais plus

que c'est genre l'équation, c'est roi moins homme plus femme, en fait on voit que le vecteur,

l'embedding est proche de reine finalement et c'est comme ça qu'on arrive à faire aussi ce

qu'on appelle le grounding, c'est à dire quand on implémente le pattern retrieval augmented

generation, on aide les large language model en donnant des vecteurs similaires, on arrive à

trouver, à faire des recherches en quelque sorte sémantique, en trouvant des concepts dans une

base vectorielle dans laquelle on stockerait tous ces tokens, toutes ces phrases etc et on est

capable de les comparer et se dire tiens ces termes là, cette phrase là, cette requête là

correspond à ce bout de texte que moi j'avais dans ma base de données vectorielle, donc ça c'est

le grounding et ce qui permet aussi souvent d'éviter quand même pas mal tout ce qui est

hallucination, malheureusement les L&M hallucinent beaucoup et on en parle des hallucinations mais

la plupart du temps les gens, enfin on a l'impression que c'est tellement magique comme

technologie et tout mais les hallucinations il y en a tout le temps, 80, 90% du temps, moi j'en vois

tout le temps donc j'ai l'impression d'écouter des fois sur Twitter, c'est fantastique,

regardez ce que ça fait mais ils oublient de montrer tous les cas où ça n'a pas marché ou toutes

les générations où ça a foiré ou c'est pas exact ou tout ça. Ce qui nous surprend aujourd'hui

c'est qu'on a appris, j'espère les générations d'après à sentir quand quelqu'un raconte quelque

chose, il y a un truc louche en fait et ça ne vient pas que des faits et des mots qui sont

donnés, il y a aussi il peut y avoir le ton de la phrase mais il peut y avoir une façon de dire

alors qu'un L&M il ne s'appuie pas, il n'y a pas cette association là donc c'est un peu plus

subtil, en fait il y a une assurance calme et posée, tu ne vas pas forcément avoir avec quelqu'un

qui est un peu trop assertif et que sur quel toit du coup tu vas pas lui dire je ne vais pas le

croire mais tu vas dire ok je vais prendre un petit peu de pincette par rapport à ce qu'il est donc

c'est plus, ça nous déjoue un peu nos moteurs de filtrant. C'est vrai, c'est vrai, c'est

tout à fait. Alors un petit article, il vaut le coup franchement et il est super ce que je le fais.

L'article c'est le minimum absolu à savoir que tout programmeur devrait savoir à propos de

unicode en 2023 parce que ça change d'unicode, c'est un des trucs dans l'article, c'est qu'un

truc qui affichait un truc à un moment va afficher potentiellement autre chose parce qu'ils

font des mises à jour qui ne sont pas forcément backwarp compatibles. Et puis les nouveaux émogis

quand même aussi. Oui c'est pour ça qu'ils ont une nouvelle version mais c'est un super article

qui explique tout ceux qui se demandaient mais pourquoi il y a UTF-8, UTF-16, UTF-32 et

tout ça c'est expliqué, ça explique que UTF-32 c'est la version non-tie-fix des codes.

Non, 32 c'est tie-fix justement. 32 c'est tie-fix voilà. Il y a une subtilité sur les

code points etc mais on va dire que du caractère pour l'instant mais c'est pas vraiment le caractère.

UTF-16 c'était ça mais avec deux bytes minimum et UTF-8 ils ont optimisé en gros pour les

caractères européens ou on peut avoir qu'un seul byte pour ça et qui n'est pas compatible avec ASCII.

Voilà donc ça c'est et donc l'unicode c'est le concept et l'UTF c'est l'encodage de UTF-8,

16, 32 ou ce que vous voulez. Commencer l'écrit sur des octets quoi. Ouais donc l'unicode ça

va pire entre un chiffre et un caractère ou en tout cas un ensemble de chiffres et un caractère

et il y en a c'est assez rigolo, on peut en faire 1,1 million au total la plage qui a été alouée

et il y en a que 15% qui sont définis et 11% qui peuvent être à usage privé. Donc il y a un exemple

qui donnait c'est que l'Apple en fait dans leur fonte il rajoute dans la catégorie d'usage privé

un des codes qui est le logo de l'Apple. Voilà donc on peut faire des usages comme ça. Les emojis

ça prend pas de temps de place que ça donc on peut encore rajouter. Enfin quoi qu'après avec les

emojis qui est intéressant du coup dans les dernières évolutions quand même du standard c'est

justement les compositions qu'on peut faire donc par exemple rajouter un skin tone, un ton de

peau différent donc on va pouvoir assembler un emoji avec d'autres choses pour le personnaliser on va

dire. Ouais on va parler du grapheme et ça c'est grâce à ça justement qu'on fait ça. Donc

l'UTF 8 il y a un truc rigolo c'est qu'il détecte un peu les erreurs parce qu'en fait c'est jamais

c'est pas forcément un seul byte ça peut être deux ou trois etc ça varie et puis même une fois

qu'on a ça ça peut être plusieurs code points qui vont faire un caractère et tout ça ça se

détecte un peu grâce à l'UTF 8 en fait il a un encolage qui fait qu'il y a un peu de redondance

enfin en tout cas on sait où on est au niveau de la chaîne de parsing et on peut se récupérer

les se retrouver sur ses pattes quand vous voyez un carré avec un point d'interrogation c'est

typiquement un point de dehors de parsing. Vous avez mal coupé ou ? Ouais c'est ça parce qu'en fait

on en parle là mais quand on coupe les chaînes des caractères au milieu et en fait on a coupé

au milieu d'un code point le suite d'après il est là et bien et la suite et la suite voilà donc

un caractère en fait qu'au sens que nous on connaît est accent aigu un emoji etc donc c'est en

fait c'est un grapheme qui est fait de plusieurs code points c'est le fameux ces caractères c'est

le fameux e plus plus 0065 qui est le numéro tel qu'il écrit dans la table de l'unicode justement

donc ça c'est e et si on dit e plus accent aigu en chainé ça c'est le grapheme qui fait

et accent aigu en fait donc il y a la notion de décomposition et donc les skintons c'est ça c'est

un smiley avec un ton de peau bien défini et donc on fait de la composition comme ça comme

c'est comme des adjectifs en fait qu'on rajoute un smiley qui pleure voilà et sachant qu'en plus

donc il y a certains de ces caractères par exemple et justement comme tu me disais il existe aussi

également en version enfin un caractère un peu quand tu parlais déjà de décomposition mais non

seulement il y a composition décomposition mais effectivement même certains caractères ont déjà

un caractère pour eux alors qu'ils auraient pu n'exister éventuellement que sous forme

composée alors quand on parle des caractères c'est un peu compliqué avec la même normalisation

même décomposition alors il y a des algorithmes différents soit on décompose dans le minimum le

truc le plus petit soit le truc le plus agrégé voilà mais en tout cas faut le même et d'ailleurs

vous avez dit il y a des code points qui correspond à des bites enfin un ou plusieurs bites font

un code point ça c'est utf 8 qui fait ça et ensuite un ou plusieurs code points font un

caractère un grapheme et donc quand on fait un face palm avec un skin tone différent en java c'est

la longueur de 7 en rust c'est 17 je veux voir et en swift c'est un et donc le gars explique en

fait la plupart des langages du coup en l'occurrence là par swift gère mal la longueur des chaînes de

caractères parce qu'ils correspondent au code point ils n'ont pas au caractère au sens humain du

terme voilà du coup ça pose un peu des des enfin c'est un peu naïf en fait ça marche très bien

tant qu'on est dans les caractères latin et quand on commence à les toucher les caractères

plus évolués plus avancés asiatique smile etc on part un peu en sucette donc utiliser non

pas la string str length par exemple on sait mais utiliser des librairies dont c'est le boulot

notamment je crois que c'est ice qui est une librairie qui est pensée dans plusieurs langages

mais en fait c'est ça qui est marrant c'est que les points qu'on a justement dans notre petit

sur l'article mais en java par exemple ce qui était donc même si effectivement il retourne pas la

bonne longueur il y avait quand même historiquement je dirais des classes comme java texte break

iterator qui était capable de faire l'iterration autour de ses grapheme de ses grapheme cluster

et le problème c'est que break iterator lui a pas suivi la norme unicode et donc on a une

part en ce qui est ben ouais mais du coup je pense ça break iterator je sais que ça existe depuis

15 ans en facile c'est pas plus ce que je me souviens de l'avoir utilisé moi dans un projet et lui par

compte autant c'est bizarre parce que tu vois ils suivent quand même la norme unicode pour le reste

on va dire mais par exemple break iterator bah ils auraient pu quand même le mettre à jour pour

suivre la norme et les dernières recommandations parce que donc le unicode c'est pas effectivement

juste la table des caractères mais c'est comme tu disais les règles de composition de

décomposition et des fois entre version et bien et des petites subtilités qui évoluent et du

coup on va pas compter les caractères d'une même manière ou ce genre de choses là donc c'est un

petit peu un petit peu compliqué quoi bon il y a d'autres choses encore rigolote mais on va

pas faire tout l'article donc nous encourage à le lire c'est un bon rappel pour se rappeler un peu

tous ces fondamentaux notamment les deux couches d'abstraction qui existent et juste un petit mot

aussi il y avait donc j'avais vu sur les réseaux sociaux ok horseman là qui mentionnait le fait

qu'aujourd'hui finalement il y a aucun enfin à part vraiment si on est nous-mêmes implémentaires

d'une librairie unicode ou je ne sais quoi sinon il n'y a pas de raison pour qu'on s'embête aujourd'hui

avec les caractères les code points etc il a plus peur de temps on voudrait mieux juste utiliser la

clastring et faire des substrings de faire des des régex aussi marche bien pour dire voilà

regroupé par grapheme ce genre de choses là ça fonctionne très bien donc il n'y a pas besoin de

essayer de s'embêter à faire des isitérations calculer le nombre de caractères et des choses

comme ça c'est ça aurait aucun sens et on a toutes les chances de se planter finalement d'ailleurs

typiquement nouvelle version d'unicode nouvelle bypass d'ios ou d'android donc c'est un problème

difficile ok un petit rapide j-bang permet d'appeler java depuis piton maintenant donc en fait on a

un petit script piton qui va et dans lequel on va mettre en fait un bout de code java et ce bout de

code java il va s'exécuter grâce à j-bang donc va aller installer java installer j-bang et puis

faire tourner donc évidemment c'est dans un process séparé ça peut être intéressant pour faire

un petit bundling dans d'un notebook Jupiter ou ce genre de choses voilà une petite expérimentation

de l'équipe enfin je dis l'équipe mais c'est un one man show mais l'équipe j-bang ouais ça

c'est son petit sub-papre voilà allez on va passer au bibliothèque ou librairie en bon français

quarkus 3.4 est sorti avec avec une cve alors en fait il y a eu pas mal de cve je sais pas si

vous êtes un peu touché à la sécurité là mais il y en a eu une là il y en a eu une autour de

http non pardon et c'est ça http2 bon je sais plus on a l'article sur http2 ou pas non je vais

passer ah d'accord les choses passer bah si tu vas y si t'as un peu de contexte alors en fait donc

on peut pipeline les appels http2 mais du coup je pense que c'est aussi quand on n'attend pas les

réponses donc ils font exprès d'ouvrir plein de connexions parallèles http2 donc ça fait une

sorte de flooding d'un seul coup qui n'est pas la bonne manière normale en tout cas d'utiliser

http2 et c'est quand on essaie de t'attaquer en fait et qu'on essaie de t'attaquer mais je veux dire

on appuisant effectivement le voilà des nids de service on est on appuisant le le protopole et

normalement une utilisation classique ne devrait pas faire ça mais justement bah voilà ils essaient

de le faire pour pour essayer de mais c'est les méchants ils font pas les trucs classiques

c'est bizarre c'est bizarre mais sont créatifs quoi voilà en tout cas pour revenir à carcuse

donc avec 3.4 il y avait une cv autre mais qui a été réglé le support de rallye 7.2 plus de

granularité sur des activés fly web parce qu'en fait on a amélioré l'expérience utilisateur par

défaut mais les coups par défaut c'est activé mais à transparente quand on détecte les bonnes

choses mais les fois c'est pas ce qu'on veut du coup là maintenant il y a plus d'options pour

désactiver ce comportement par défaut dans des cas spécifiques ou sur des bases de données

spécifiques surtout voilà un petit rabel quarkus update pour vous aider dans votre migration

en parlant de quarkus encore il y a eu une série de au moins trois trois 3 blogs de cléments sur

les estres les shreds de les virtual thread dont on a eu la la version la rangée à 21 et puis avec

des exemples avec quarkus mais bah voilà comment est-ce qu'on testait si un shred virtuel est

piné parce que en fait quand un shred virtuel est piné ça devient plus un shred virtuel parce qu'en

fait on l'attache à un shred physique et puis il reste attaché là dessus donc c'est comme

équivalent d'utiliser un shred plutôt classique c'est des choses qu'on essaie d'éviter mais du

coup des fois faut le détecter ça et donc comment est-ce qu'on peut faire des tests pour détecter

du coup comment parce que donc dans la plupart des cas normalement java s'en rend compte et du

coup c'est dans quel cas que java ne peut pas s'en rendre compte et que vous vous le faites parce

que normalement il y a par exemple l'utilisation de synchronise des choses comme ça est-ce que

vous vous arrivez à détecter ça parce que je sais qu'il y a plusieurs cas de figure où justement

ils disent donc il y a tout ce qui appelle de mémoire parce que j'ai pas lu cette série d'articles

mais de mémoire il y a plusieurs cas de figure par exemple quand on utilise le mot classique

synchronised quand on fait un appel à une méthode qui est native et par exemple attend c'était

quoi il y a encore un autre ongles deux autres cas je sais plus mais par exemple quand tu sais

que le gdk tu vois le gdk détecte par exemple quand tu fais le laio bloquant lui il est capable

de voir que c'est le cas du coup il va enlever ton shred virtuel du shred carrier porteur je dirais

en français peut-être le shred porteur qui fait tourner ton shred virtuel et du coup hop il le

met ailleurs donc ton shred est à nouveau libre mais c'est vrai qu'il y a des cas donc voilà synchronise

de appel native etc ou bah il peut pas il peut rien faire donc pour ça du coup c'était curieux si

parkus faisait des choses en plus de détection en fait la reverser la logique c'est genre moi je code

ce truc là et moi dans mon test normalement ça ne devrait pas pinner donc tu fais un test et tu

la note une note pin et le test va détecter à bah en fait oui j'en ai toujours le même

thread ou pas en fait du coup il analyse la stack trafin il dame la stack ras il l'apprend il te dit

bah non en fait ça pinne donc il a dû d'accord c'est cool ça faut que j'aille faut que j'aille faire

quelque chose voilà ah long chain 4j long chain 4j donc j'ai écrit un article sur long chain 4j

qui est une nouvelle librairie java donc est assez récente qui a été sorti à moins de six mois

je crois quatre mois six mois comme tout là elle est l'intelligence artificielle et du coup long chain

4j c'est inspiré en fait du projet long chain qui est plus connu mais surtout plus connu des

développeurs piton et nous on est plutôt quand même des développeurs java il y a ce qui paraît

quand même et donc quand on veut faire donc long chain juste pour rappeler un petit peu ce que c'est

quand même avant de rentrer dans les détails donc c'est ce qu'on appelle un orchestrateur de large

language model donc on sait un framework qui permet de simplifier l'orchestration de plusieurs

choses ben effectivement donc du choix d'un modèle qu'on veut utiliser qui peut orchestrer aussi

l'interaction avec les bases de données vectorielles qui a aussi des classes qui permettent quand on

utilise justement des bases vectorielles de prendre des documents de différentes sources

possibles sur le web sur google drive quand on a des connecteurs etc aussi de parcer ces documents

et de les découper en petits morceaux pour créer des vectors embeddings les mettre dans les

vectorielles établies et tout ça et il y a ça donc il y a des notions d'agent des notions de

qu'est ce qu'on a encore et donc les les ce qui est sympa aussi c'est les notions de chaîne où en

fait on peut imbriquer ou chainer des appels ou en tout cas implémenter un pattern grâce à cette

chaîne là donc par exemple le pattern qu'on a évoqué retrouvelmenté generation quand on parlait

de l'article du financial times qui permet justement de dire pour éviter les hallucinations et pas

les problèmes de diction pardon de permettre de récupérer dans une base de vectorielles des

bouts de texte qui correspondent à la requête qui match la requête en entrée donc par exemple

tout ça c'est un petit peu des patterns qui sont proposées par l'anxi donc ça existe en piton

et il y a beaucoup de data scientist qui sont des pitonista mais aujourd'hui les développeurs

java qu'est ce qu'ils ont est ce qu'il faut qu'ils se mettent à petit on comment ils peuvent

intégrer ça dans leur produit d'entreprise puis surtout pour moi ça bouge de c'est plus des

data scientist là on parle de en fait je vais intérer du lm à une appui donc c'est des pour les

développeurs applicatifs donc il y en a en piton mais il y en a en rust en gros en java etc pour moi

ce que j'aime en tout cas c'est pour ça que je me faut qu'il y ait pas mal sur ce sujet en ce moment

sur les llm c'est que moi je vois deux shift qui se sont opéré llm de juin juin claire le premier

comment rester sérieux le premier shift c'est évidemment qu'on a réussi à mettre dans les

mains des utilisateurs ces intelligences artificielles là c'est-à-dire aujourd'hui quand je fais

mes présentations là j'en ai fait une hier au ai camp paris forcément tu poses la question qui a

utilisé chat du pt dans la salle les trois quarts l'ont utilisé après je demande qui a utilisé

barbe malheureusement il y en a un peu moins il y a genre deux à trois fois moins dans mes gère marqué

parce que barbe est sorti après et moi moi quand même encore je vais faire ce moment comme on dit

et ouais mais on a pas mal quand même contesté et donc s'il y a cette première aspect cette

première aspect du shift mais le deuxième aspect pour moi c'est clairement que c'est une api les

api des développeurs ils peuvent les appeler malheureusement jusqu'à présent bah c'était

plutôt appelable en piton ou alors mon certain llm propose des fois des sdk java ou alors tu te

fais du vu que c'est une api reste derrière tu te fais du marchaling de marchaling avec ton

framework préféré ça passe crème mais voilà ce deuxième shift en tout cas il est là c'est à

dire que outre ou le peu importe le limite le langage que tu utilises mais ça veut dire que

beaucoup de cas d'utilisation de l'intelligence artificielle avant t'aurait été obligé d'être un

data scientist maîtrisant piton et les librairies tensor flow pit torch etc pour et avoir la connaissance

de savoir quel genre de modèle il faut que j'entraîne comment je vais l'entraîner sur

quelle donnée quels sont les paramètres enfin c'était quelque chose d'assez compliqué alors

que aujourd'hui les larges language modèles sont capables de couvrir je sais pas 90 90% des

cas d'utilisation standard pour lesquels avant on entraînait des modèles de machine learning

aujourd'hui on peut utiliser llm pour faire je sais pas de la classification de données pour faire

de la traduction pour faire sentiment analysis pour faire l'extraction de données à partir de

texte non structuré par exemple des emails des clients des chats avec des clients etc et

clairement aujourd'hui les développeurs peuvent intégrer ça sans être des data scientist donc

pour moi c'est un grand un grand changement est ce que pourquoi moi j'ai parlé dans mon article

de long chain forge et je l'ai utilisé aussi dans les démos de métaux que j'ai rajouté aussi

le lien pour la vidéo qui avait été enregistrée à des vox belgique parce que j'aime bien c'est

que moi je suis développeur java et je vais pouvoir faire tout ça avec les llm sans avoir

utilisé piton parce que je n'ai pas envie de me complexifier la vie je fais du java je ne vais pas

tout remplacer mettre du piton partout je vais pas tout réécrire ou de même je ne vais pas m'embêter

alors même si là on voyait avec jbongle on arrive à faire du java et du piton en même temps et tout

là la vraie ça a l'air compliqué de même de mixer les deux je vais pas mixer et java et

piton dans mon application donc moi je suis un développeur java j'ai besoin de machine learning

je vais utiliser les larges language modèles et bah il y a les frameworks comme long chain forge

inspiré de long chain qui permettent de faire tout toutes ces choses là aujourd'hui en java donc je

vous invite vraiment à regarder ce projet il ya plein d'intégration avec des llm que ce soit

palm chez google que ce soit gpt 3 4 etc d'open ai ou d'azur il ya vraiment plein de bases

de données vectorielles des chroma où il y a 8 qui au dron tu peux essayer enfin il y en a pas

mal c'est il est vraiment déjà bien avancé donc moi j'ai eu la chance aussi de rencontrer le

fondateur à dévox belgique et deux des des comiteurs et passer un moment avec eux et discuter

avec eux et honnêtement j'ai commencé à regarder le code parce que je voudrais contribuer

quelques petits trucs ils sont très réactifs le code est de super qualité super lisible si

vous intéresse de voir comment ce genre de fraymoire qui est fait c'est un vrai plaisir de regarder

le code donc meilleur code piton jamais écrit non mais sérieux leur code java est vraiment très

beau très clair pas surcomplexifié à mort et bien commenté où il faut bien espacé où il faut aussi

tu sais avec pas mal d'interface qu'en fait quand on implemente des chaînes là cette notion de

chaîne où on va impliquer différentes choses des lm des vectors store etc en fait des fois tu

dis ah ouais mais attends parce qu'en fait ce que j'aime bien c'est que c'est fait je veux dire

juste on va définir le modèle qu'on veut utiliser la deuxième ligne c'est hop j'appelle le modèle

et j'ai ma réponse et c'est genre je passe une string il me retourne une string donc en deux

lignes tu peux interagir avec un lm mais par contre des fois toi tu peux avoir des besoins un petit

peu plus compliqué complexe pardon et là comme tout est fait avec des interfaces il y a des

builders qui permettent de construire des trucs par défauts de les paramétrer mais tu peux aussi

passer du coup tes propres interfaces frapper des trucs existants pour pouvoir te plugger à

l'intérieur enfin c'est programmé proprement pour être extensible quand tu as besoin de faire

des choses plus compliquées même si le projet que ce soit en piton ou en java avec la chaîne forger

même s'ils essaient de faire des choses les plus simples possible les choses plus compliquées

restent faisables sans que ce soit très compliqué notamment un contexte conversationnel telle

que vous le comprenez dans chial jp t ça c'est pas de base dans un dans la payée llm

en mentin et donc il y a la notion de mémoire qui est gérée automatiquement donc l'échange

entre l'assistant et l'utilisateur tout ça c'est géré automatiquement et moi par exemple

dans une de mes démo vu que je faisais du server less et qu'il n'y a pas de détail de maintien

d'état du coup c'est state less donc où est ce que je vais récupérer par exemple mon chat

donc je peux le récupérer parce que je suis capable de de ploguer la mémoire de manière

différente etc donc c'est bien bien pensé super bien pensé donc vas-y monsieur journaux

non en fait tout ce qu'on décrit là c'est du prompt engineering en fait ouais et cette librairie

elle vous aide notamment dans toute cette phase de prompt engineering mais comme elle est elle vous

guide avec des concepts plus haut niveau des concepts de plus haut niveau en fait de fait du

prompt engineering sans sans le savoir en tout cas vous êtes guidé avec des des patrons des

patterns communs aujourd'hui qui vont sûrement évoluer mais voilà allez on va passer l'infrastructure

du tour vous rappelez terraform qui est passé de licence open source à faux pen source comme on

dit c'est à dire open source mais dans trois ans trois ans après le comit donc ça c'est hachi

corp qui qui est passé comme ça et du coup il ya un collectif qui s'est créé qui s'appelait open

tf comme open terraform et qui maintenant s'appelle open tofu et la ligne j'aurais dit open

tfou tu vois c'est vrai tfou tu fous toi et oui et pardon et du coup qui sont dans la Linux

fondation ils ont été rejoint là avec l'objectif d'aller dans la cncf évidemment le CEO de hachi

corp disait que c'était tragique il faut trouver un autre modèle pour les projets open source

sinon il n'y aura plus d'open source dans la cicon valet et c'est un extra fin de poser

sa petite larmes voilà après il ya des vrais problèmes sous jacens mais voilà du coup c'était

je sais pas si s'y attendait pas hachi corp de ces mouvements là mais en tout cas aujourd'hui voilà

il ya un fork qui arrive dans la la linux fondation à voir si l'investissement est fait et que ça

perdure aussi les choses vont être différentes après c'est vrai que c'est tout un écosystème

donc c'est un peu compliqué d'avoir un fork qui soit si tu te mets à casser les interfaces de

base j'attends l'écosystème il n'est pas très content mais effectivement si tu te mets à évoluer

là dessus des nouvelles fonctionnalités que tu utilises donc c'est un truc qu'on n'a pas trop vu

je crois entre open open search et elastic on n'a pas trop entendu de haciens ça y est on est plus

compatibles machin en tout cas moi qui ne regarde pas tous les jours j'en ai pas entendu parler on

verra au niveau terraform mais c'est vrai que la valeur de l'écosystème c'est tous les points

d'intégration qui ont été faits par tous les providers en fait allez on va passer de parler

de docker et spécifiquement des docker files qui sont pas dans le standard donc ça marche que

sur docker ça marche pas sur les alternatives à la pon man mais je sais pas si vous vous rappelez

quand on veut éviter de faire trop de lailleurs de couches voilà en fait il y a un anti pattern

qui dit au run enfin genre lance l'installation de tel truc lance l'installation de tel autre

etc etc chaque run en fait est un layer au niveau de votre image de conteneurs et du coup le moyen

d'éviter ça c'était de faire run la commande 1 et la commande 2 et la commande 3 donc on lance

tout en un seul niveau et du coup c'est capturé en un seul niveau si il permet d'avoir une couche

et des conteneurs des images de conteneurs plus courtes mais ça c'était un peu pénif fallait

faire anti slash passer à la ligne un peu et je sais pas si vous connaissez si vous avez

déjà envoyé des mails par la ligne de commande ou des choses comme ça il y a une syntaxe avec

ouvrir chevron ouvrir chevron un off file qui permet après d'écrire ce qu'on veut jusqu'à ce qu'on

arrive à la au token de fin qui est euf et du coup là c'est ce que permet le nouveau modèle de

docker file c'est qu'on ouvre cet cet échappatoire et on écrit proprement son code genre son pas son

bâche mais c'est son ensemble de commande et puis on ferme avec le token de fermeture et ça

ça ne fera qu'un seul niveau donc ça ça rend le code plus lisible et plus facilement editable

aussi donc ça c'est un petit avantage c'est dommage que ce soit pas standard et utilisé

ailleurs que du coup au début quand j'ai vu ça ah ouais c'est cool ça je vais utiliser ça puis

après je me suis ah oui mais spécifique docker donc je vais peut-être pas l'utiliser exactement

exactement en parlant de docker ils annoncent un nouveau protocole qu'ils ont fait avec je sais

qui six temps non contre six temps avec bastion 0 bastion 0 donc docker annonce avec bastion

0 un nouveau protocole pour signer ces images et il s'appelle open pub qui est pareil donc tout le

monde donne tout à la linux fondation si vous voulez donner votre voiture à la linux fondation

possible qui l'annonce et là ils ont fait pas mal d'itération sur le protocole de ce

que ce qu'on voit et ça se compare pas mal à six terres sauf que bah c'est plus simple en fait

il y a vraiment juste besoin d'un noy d'un serveur on le dit provider au idc de genre

github google google account etc etc sauf que ça fait un petit peu moins de choses donc les gens de

six temps enfin une des personnes de six temps notamment a détaillé un peu ce que faisait

open open pub qui est ce que ne faisait pas open pub qui donc il s'appuie sur au idc pour

l'identité c'est à dire vous vous logez genre émanuelle émanuelle à gmail.com donc ça ça va

être mon identité il n'y a pas de il n'y a pas de notion de tiers de confiance en fait en dehors

de l'oie dc provider contrairement à six store où il y a quand même des qui a le le serveur six store

et enfin les quelques composants là qui correspondent à six store le trim de log etc qui sont

un espèce de tiers de confiance que vous avez donc l'oie dc lit l'identité à une clé

de chiffrement via une extension du heidi token un hack un peu un peu clever un peu intelligent là

dessus et du coup le l'oie dc devient la preuve de la possession en fait de la de la du système

et c'est purement en fait le six store en fait mais la compte enfin les clients sont très simples

on appelle deux commandes et c'est fait et du coup la complexité est dans les différentes

boucles six store dans le cas de j'aurais jamais rappelé son nom au cas de open pub qui ce qui

se passe c'est que le client est intelligent avec pas mal de complexité ce qui fait que le en fait

il n'y a pas de parti serveur la partie serveur c'est juste le l'oie dc qui vous permet de vérifier

fin de vérifier de la validité de l'identité donc en fait juste pour ceux qui connaissent

au idc un peu en avant il y a un moment il y a un once qui est passé qui est typiquement un truc

aléatoire qu'on qui est envoyé par le client qui est récupéré transformé par le serveur et

après ça garantit ça me permet d'initier une interaction sécurisée sans enfin en le

faisant en plaintexte comme on dit enfin pas en plaintexte mais en visible et du coup et eux

ils utilisent le nonce pour non seulement utiliser ce côté random mais aussi rajouter cette

fameuse clé suffra enfin le des choses spécifiques alors à leur protocole donc en fait ils font

un peu un site channel du de ce qui du protocole en lui même donc il n'y a plus d'éléments

centrales comme le transparent cilogue et l'autorité de certification dont je parlais

qui était dans quel cas dans six store donc ça c'est une simplification et six store ils ont

pas utilisé cette architecture là parce que la en fait en cas de la la le côté privé des

identités n'existe plus en fait il est associé à votre au idc si vous faites du renommage etc vous

pouvez en fait chaîne et récupérer tout l'historique qui n'est pas forcément le cas avec six store

et pareil la rotation des clés de l'oidc provider et pas et pas géré du coup en théories pour faire

fonctionner open pub qui il faudrait se connecter à l'oidc provider assez régulièrement pour avoir

toujours la l'historique des clés qui l'utilisent parce que c'est pas fourni de base on a toujours

juste la dernière clé puisque l'oidc c'est un côté fmr dans les tokens qui sont générés

donc ça c'est pas expliqué par le protocole donc c'est un point c'est un point ouvert

donc la complexité du côté client et pas du côté serveur dont on parlait

voilà c'était plus confus que ce que j'aurais espéré j'espère que en tout cas si ça vous

intéresse l'idée à la base c'est de donc de chiffrer les plutôt de signer les les images

de conteneurs qui sont qui sont générées comme six store permet de générer de signer des

artefacts de code donc ça c'est ça l'objectif et donc open pub qui est plus léger mais pas

forcément avec certains points noirs et des certaines faiblesses et six store qui est le

truc classique sur un autour de quel un certain nombre de sociétés se sont mis voilà allez on

va passer au cloud et bizarrement on va pas parler d'amazon ni de google ni d'ami baba on va parler

d'horreur mais après le moi moi c'est réussi un jour je suis un os je lui l'appelais le

pas mêle s'apprépame l'os tu vois là c'est gralos donc on aura que le cloud rajoute ce qu'ils

appellent graal os basé sur graal vm qui est en fait une en gros une plateforme serverless qui

n'appuie pas sur les conteneurs mais sur la compilation native de différents langages

interprétables par graal vm et du coup qui exécute ça de manière pas chère voilà on sait

pas beaucoup plus il y a plus une annonce que le détail là dessus mais en tout cas bon assez

pour le coup en fait j'ai l'impression que c'est juste une fin des en quelque sorte des remote

procédure call c'est enfin tu tu lances un process sur un os quoi en quelque sorte qui a plus ni vm

dit quoi que ce soit c'est du cg après comment est-ce qu'ils l'ont ouais et comment ils l'ont

sans de boxer pour être sûr qu'il n'y ait pas de soucis je sais pas mais affaire à suivre c'est

intéressant c'est une bonne question sur le sens de boxing moi je sais pas si c'est graal vm qui fait

le sens de boxing en lui-même ou si c'est en dessous comme vous vous aviez fait avec je peux

qu'elle libère moi je pense que oui avec jiva isor donc je pense que c'est je pense que c'est

en dessous mais peut-être d'ailleurs ça peut très bien utiliser jiva isor ça peut utiliser

même à l'exe ou autre fin tu sais quand tu es des lieurs de systèmes etc tout est possible je

sais pas aucune idée c'est vrai qu'il n'y a pas beaucoup j'ai pas assez grand chose au niveau

détail allez on va parler de web et de baby web même ouais des fois en fait on voudrait donc

ma tendance quand même toujours à voir des quand on fait les conteneurs des conteneurs qui font des

dizaines des centaines de méga voir quelques gigas et donc là il y avait quelqu'un qui se

demandait mais bon est ce que je pourrais arriver à faire le plus petit compte d'heure qui soit

capable de servir du contenu statique et donc il explique un petit peu tout le process les étapes

en travers duquel il est passé et donc là il utilisait des images buzzy box et il a réussi à voir

du coup des images enfin des images qui font 150 cas plus après je crois qu'il faut rajouter quand

même le contenu statique évidemment et voilà après avoir avec tout ce qui est niveau scalabilité

parce que ça veut pas dire que c'est un serveur qui accepte 1000 requêtes en 30 et après au niveau

des cve parce que je ne sais plus que c'est qu'à rajouter ça ou qu'il disait ça les buzzy box souvent

il y avait pas mal de cv et cv qui était qui était déclaré souvent sur sur ces bases là donc

effectivement avoir c'est un peu comme quand on fait du shading dans du shadowing de genre du

coup c'est à toi d'être responsable de savoir s'il y avait cv du côté de ce que tu importes du

coup de leur générer ta livrairie mais c'est marrant comme petit exercice je trouve c'est les

gens de synologie qui utilisait buzzy box avant comme l'heure oui ouais dans l'évm on l'enlite

ouais c'est vrai enfin pas leur linux mais leur on semble des composants et en fait ils sont passés

à un truc plus déjà les processeurs en grossis la mémoire à grossis mais ensuite il y avait

quand même pas mal de l'imitation bizarre genre t'avais via et pas vim tu vois de mémoire

un truc historique d'ailleurs je ne sais plus on l'avait mentionné le décès de brun de molinar le

créateur de vim qui est paru il n'y a pas très très longtemps une petite pensée à lui après

je sais plus combien d'années ça faisait qu'il bossait là dessus mais c'était quand même assez

énorme donc à un grand monsieur qui malheureusement nous a quitté on va peut-être passer sur des

trucs plus drôles le state of web assembly en 2023 donc il y avait une alors c'est sur un site qui

s'appelle donc c'est une je crois que c'est une société de genre consulting ou un truc comme ça

américaine qui s'appelle scott logic et moi je suis abonné à leur leur flu rss ils ont toujours

plein plein de bons articles super intéressant je trouve et bien détaillé bien expliqué bien

technique et tout et je crois que c'est là que j'ai dû le voir le j'ai dû le voir passer à ce moment

là et donc ils avaient fait donc une de tout le monde dit en français il s'en veille d'une étude

une sondage un sondage ou est ce quoi que sondage ça va plus loin que sondage c'est plus un rapport

tu as une étude une on se trouve pas le mot enfin vous voyez l'idée et dans les grandes lignes

dans ce modo donc on voit la popularité grandir de rust et de jerescript comme langage de plus

haut niveau qui cible web assemblée aux hommes au niveau des cas d'utilisation donc mais ça reste

quand même beaucoup utilisé pour tout ce qui est développement web par exemple il n'y a pas très

longtemps il y avait une enquête un surveil en cas de sondage par exemple à doble qui avait sorti son

photoshop et qui devait utiliser certainement j'espère pas dire de bêtises mais qui utilise web

assemblée pour arriver à ce que ça tombe dans le navigateur donc ça reste quand même le gros des

use case mais le deuxième use case le plus important c'est tout ce qui est serverless donc

comment arriver à faire tourner très rapidement et démarrer très rapidement sans call start du

web assemblée ça se fait beaucoup plus facilement que de lancer des gros run time de différents

langages et aussi dernier use case assez commun donc vu que c'est on va dire un son de boxe et

vous sécuriser par défaut pour tout ce qui est extension de système système de plug-in etc donc par

exemple on peut faire des plug-in pour envoy ou autre système équivalent côté oasis donc toutes

les propositions surtout ce qui tourne autour des aio donc par exemple http file system socket

etc ça a l'air d'être un truc qui n'en voudrait pas je voulais faire l'autre point mais c'est pas

là qui qui reste un truc un sujet qui vraiment est très demandé par les par les développeurs alors

que ben il y avait alors du coup je sais plus qui c'est ceux qui font wasmer qui avait fait la

proposition wasix je crois je dis peut-être une bêtise ou ceux qui font wastime je ne suis plus

lesquelles qui était justement une proposition pour continuer d'étendre wasi avec le support

http file system socket etc mais alors ils avaient déjà eu des petits soucis avec la communauté du

couleur proposition à eux en sont un peu flond upon comment tu dirais ça un petit peu dénigré

ou laissé sur le côté justement parce que ça vient de la communauté là c'est pas ça mais

c'était fait en fait ils veulent aller vite c'est les startups ils veulent aller vite donc ils

n'attendent pas la standardisation que tout le monde soit d'alcor le design by committee

peut-être la bonne image pour pour toi c'est pas le exemple et c'est comme quelqu'un qui a une

fois absolument les génériques en java et puis l'équipe java qui vous attendez on a déjà pensé

mille fois plus que vous mais en gros faut prendre le temps maturé regarder les impacts de tout le

reste voilà donc c'est une approche méthodique et lente versus en inov on casse des oeufs et on

est en itère quoi mais après voilà c'est pas forcément antinomique c'est-à-dire même ceux

concrets wasix ils disent donc voilà nous on a fait ça on a avancé après si on arrive à standard

disait ça on utilisera le le standard mais moi ils proposent déjà leur communauté ces choses

là donc c'est et ce qui est intéressant en fait avec ça c'est que l'idée c'est de pouvoir continuer à

utiliser des langages de plus haut niveau des russes et autres pour être capable de mapper ce

que tu fais en russe pour accéder au http au file système au socket et que ça se traduise de manière

trans par plus ou moins transparente avec wasi mais ce qui n'est pas forcément le cas aujourd'hui

et du coup l'étude montrait aussi que les développeurs ils sont intéressés aussi par tout ce qui est

le donc il y a différentes propositions et qui sont en cours des études pour les assemblées donc

il y a le le support justement de tout ce qui est thread ce qu'aujourd'hui comme en javascript

c'est de quelle origine c'était juste pour tourner sur les navigateurs c'est mollo sredé donc le

support des threads donc par exemple si on utilise du go pour faire des go routine si on

utilise du rust utiliser le truc équivalent etc donc les threads garbage collection donc

quand on fait des langages de plus haut niveau je ne sais pas du java en web assemblée aujourd'hui

ça reste un petit peu compliqué parce que même si il y a plusieurs initiatives qui travaillent sur

le sujet il faut un garbage collector alors souvent ce genre de langage là vient avec son propre

le garbage collector qui est implémenté en web assemblée quoi enfin donc ça lourdit forcément

le le binaire web assemblée une fois qu'il est qu'il est compilé vu que d'autres ça rajoute plein de

choses donc j'ai dit ouais garbage collection et aussi donc il y a un nouveau modèle de composants

d'où est le spécification qui arrive qui permet de faire des choses un petit peu plus modulaires de

défilé à des dépendances entre composants etc ça c'est les choses que les utilisateurs de web

assemblée attendent avec impatience voilà on va passer à donner et intelligence artificielle

c'est la nouvelle rubrique en fait on a dit qu'on allait prendre deux et on en a enfin deux thèmes

et une seule rubrique donner intelligence artificielle puisque sans donner l'intelligence n'est rien

comme a dit un grand philosophe comme a dit un grand philosophe comment ça se passe quand tu

mets une citation sur quelqu'un mais ça vient pas de lui c'est apocryphes comme ça c'est comme

Mark Twain tu sais qui a écrit la moitié de trucs dont la moitié sur internet et je suis

cherché la référence à AWS on se demandait un petit peu ce qu'ils allaient faire dans la

généative AI puisque google est à fond ms c'est à fond via open air et open air il est à fond

Google et à fond pardon Facebook et à fond mais avec une approche open source avec l'AMA2 etc et

ils t'aimaient et à ramazon qu'est ce qu'ils font par Amazon qu'est ce qu'ils font et bah ils sortent

le portefeuille d'investisse 4 milliards d'anthropie qui est à l'aise l'aise c'est les gens qui font

Claude le madame l'aime un moment Claude qui fait cent mille tokens donc c'est une des où là le

contexte le plus large que qu'on voit parce que souvent je sais pas barre par exemple c'est

d'où il y a la dernière version de palme un contexte de 32 cas donc on va dire qu'il

est le deuxième plus grand après Claude quoi d'accord ça rappelle les ordinateurs ouais ça

va être jeune même si après dans le monde open source il y en a qui ont étendu l'amadeux

etc pour pouvoir avoir des contextes plus grands donc il y en a il y en a d'autres mais en tout cas

dans ce disponible on va dire dans le cloud comme ça il n'y en a pas beaucoup avec des

grands grandes fenêtres comme ça donc 4 milliards mais en vrai c'est un peu triché parce qu'ils

mettent j'imagine qu'ils ont mis de l'argent pour investir dans la boîte mais ils ont surtout

dit bah on va vous donner des ressources cloud à hauteur de x milliards comme ce qu'a fait

microsoft avec open air d'ailleurs donc c'est probablement bien pour anthropique et puis c'est

bien pour amazon du coup ils développent pas leur propre technologie mais il s'appuie sur

anthropique et ce qui sera au catalogue d'amazon un truc qui s'appelle amazon bedrock et les

entreprises pourront personnaliser à finir ces modèles là donc sur rdw vs disque la

gouvernance d'anthropique reste un changé même en étant majoritaire du coup ils sont pas

majoritaire c'est une participation minoritaire ah pardon j'ai tout à l'heure et non attend bah

faudra le corriger parce que dans le dans le lien enfin dans l'article t'as mis majoritaire

en fait j'ai copié collé alors c'est ce que j'allais dire après mais j'ai copié collé diji

raq qui parlait sur twitter donc c'est une bonne référence mais ça n'empêche pas tu vois c'est

comme les trucs générés par les larges anglais de modèles faut quand même vérifier même si

quelqu'un qui l'a mis sur internet ça veut pas dire que c'est vrai mais c'est un extrait bon et

bah du coup je sais pas si c'est majoritaire ou minoritaire c'est à bon pour 4 milliards

du coup bah dis ta didier qui fait pas son boulot en tout cas merci didier parce que

j'aurais pas été creusé cette nouvelle il a fait une analyse en fait donc c'était sympa

d'ailleurs juste en parlant de didier il ya sphère et we envision du cabinet conseil qui

dépend de sphère ils font les comment ils s'appellent ça les gérés tvi tech waves je crois j'oublie le

titre et en fait tous les à je sais plus à quelle période ils cités c'est tous les trimestres

tous les mois ils font un petit pdf qui qui rappelle un petit peu les enjeux etc de tout ce

que les gérés tvi et c'est intéressant si vous voulez vous tenir un petit peu courant de ce qui

se fait d'avoir un petit point de vue critique sur avantage inconvénient les challenges et autres

c'est sympa ce qu'ils font très bonne très bonne qualité je trouve ça toujours pénible à lire

les pdf ah ouais mais là c'est bien fait font tu sais c'est assez court c'est condensé et tout

donc c'est pas c'est pas chiant à lire c'est pas un white paper non plus ça c'est là tu pique le

lien puis ouais ça a été échargé oui oui c'est vrai c'est vrai allez un petit article d'opinion

sur les bases de données vectoriel alors c'est quoi déjà un petit rappel d'une minute toi qui

un expert oh là là c'est dit après pourquoi de façon ça sert à rien de réfléchir à ça

parce que ça n'aura plus dans pas longtemps donc le truc c'est que donc vous connaissez

tous les types de bases de données classiques que ce soit les sgbd que soit les bases de données

orienté documents orienté time series qu'est ce qu'on a enfin les clés valeurs les modèles

plus orienté colonne à la cassandra et tout et là il y en a un autre qu'on a vu émerger

bah c'est depuis un ou deux ans enfin vraiment ces start-up là on parle par exemple à une

conne mille vœux ou il y a vieille queue de rente etc c'est vraiment il y a un an que ça a évolué

même si le support de vecteur et je vais l'expliquer ce que c'est le spectre support de vecteur

existait éventuellement déjà sous différentes formes sous d'autres bases existantes par exemple

même si l'usine c'est pas vraiment une partie de données en soi su su portait déjà la notion

de de vecteur par exemple l'usine c'est un index vectoriel quoi en gros c'est une base d'index

vectoriel voilà et du coup enfin ça existait même avant son candidat ce soit une base de données

victoire et c'est ce que je voulais dire donc pourquoi c'est important c'est parce qu'en fait

aujourd'hui tout à l'heure on a parlé par exemple l'article du financial times qui parle des

des victoire embedding des texte embedding on arrive vu que ça utilise des des réseaux de

neurones qui finalement les raisons de rente c'est quoi c'est des méga tableaux de de flottes de

valeurs numériques mais qui représentent des concepts des mots des tokens des phrases etc et

donc un mot va s'encoder finalement dans un grand vecteur de 768 1536 cas avec des dons flottants

et c'est utilisé donc avec les larges language modèles pour pouvoir faire ce qu'on appelé le

pattern ritual augmented generation c'est à dire l'utilisateur à une requête par exemple je

voudrais savoir quels sont les projets open source sur lesquels émanuel bernard a travaillé c'est

une requête et peut-être qu'il va trouver dans la base de données vectorielle plein de petits

extraits qui va dire ah tiens là j'ai la bio d'émanuel bernard tiens ça parle de bernet ça

parle de ceci ça parle de cela peut-être que ce bout de documents va être le plus relevant

le plus proche en tout cas de la requête qui a été faite et du coup je vais retourner ça

donc voilà si je vais retourner ça ou je vais amener du contexte la permet de llm de

ramener quelque chose qui a plus de sens ouais quand même pas le lm parce que c'est l'intégration

que tu en fais avec le lm c'est à dire quand tu as utilisé des projets comme long chaine etc

c'est à dire tu vas combiner llm base de données vectorielle recherche etc donc c'est pas le llm en

lui même mais effectivement on va créer un prompt qui va contenir la requête qui va contenir

les éléments de texte qui sont qui se rapproche le plus de la requête et on va dire au llm bah

étant donné que tu as ce contexte là la requête ces extraits et c'est de me générer une réponse

qui s'inspire de ces informations là pour la question qui a été posée donc après c'est le llm

avec ce contexte dans sa dans sa fenêtre de contexte là de 30 de cas 100 cas ou autre on peut lui donner

quand même pas mal de contexte du coup qui va justement à préférer la synthèse de la réponse

grâce à ces informations là et du coup bah des projets des produits comme pinecon milieus

oui et tout ça c'est des nouvelles bases de données du coup attend je double zoom là dessus

c'est qu'en fait de ce que j'avais compris moi justement de la présentation long chaine c'est

que effectivement donc le quelqu'un t'as plus une requête dans ton chat jpta toi ouais cette requête

tu dis oh je sais qui parle du contexte qui est par exemple les projets open source du coup j'ai

une base vectorielle de tous les blogs de tous les gens qui ont fait des projets open source donc

je vais faire cette ferme ma requête vectorielle qui va me ramener des morceaux qui ont du sens

par rapport à cette requête et notamment bah certains morceaux des blogs de émanuel bernard

et il va mettre ça dans le contexte du prompt et il va remettre la question en elle même qui

est je vois quelle sont les listes des projets sur lequel émanuel a fait des trucs et de ce

prompt là le lm est-ce qui doit est-ce qui puise entre guillemets sa réponse parce que la question

est mieux formulée grâce au contexte mais est-ce que la réponse est dans la question de formuler

ou est-ce qu'elle vient quand même de l'indexation initiale qu'il a fait alors donc il y a plusieurs

choses que dans la manière dont tu l'expliques on a la pression qui sait qu'il doit aller chercher

dans telle base ce qui n'est pas forcément le cas c'est à dire potentiellement de toute façon il

va toujours chercher dans une base que soit la question mais par exemple côté tout ça

va le aller on va dire le le llm en lui même mais en fait c'est le système qui utilise le llm

ok parce que donc moi par exemple là j'ai fait une dans une de mes dans un de mes projets c'est

un llm qui peut poser des questions sur la documentation de groovy moi je sais que je suis

dans le contexte de cette discussion là donc je vais toujours chercher dans ma base vectorielle

des extraits de la documentation donc à chaque fois je le fais mais toi dans la

manière dont tu le formulez et ce que je voulais dire c'est que chat gpt par exemple à une notion de

plugins ou d'extensions qui permet en fait de llm en lui même de comprendre qu'il faut en fait

utiliser un outil pour aller chercher au bon endroit la bonne information donc si tu par exemple

tu demandes d'embardes d'embardes ils ont ajouté des extensions aussi par exemple une extension pour

accéder à je sais plus google maps pour pouvoir réserver des restaurants à un autre truc pour

réserver des hôtels par exemple tiens je voulais faire un voyage à tel endroit qu'est ce qu'il y a

comme vol il va chercher au bon endroit automatiquement d'accord donc il y a aussi effectivement des

systèmes où on peut avoir des plugins pour aller chercher au bon endroit et ça va même plus loin

puisque là c'est même pas forcément les bases de la vectorielle c'est-à-dire qu'il est capable

on peut avec chat gpt en tout cas c'est fait comme ça le système d'extension on est capable de enfin

on lui donne finalement l'open API de la pays à appeler avec des bonnes descriptions textuelles du

end point et lui il est capable de dire à vue la question on dirait qu'il faudrait peut-être que

j'appelle cette API là et est capable de générer un appel à la pays qui est décrit par l'open

API je trouve qu'elle est assez assez forte ouais mais une fois qu'il a le résultat de cette API c'est

pas la c'est pas la réponse ça c'est donc là je reviens je m'en focalise plus sur l'aspect purement

ritual over l'augmenté generation qui utilise les bases de données victorielle donc là tout ce qui

ce qui se passe c'est que donc je reprends j'ai ma requête qui vient de mon nu... non je reviens

même encore plus loin c'est à dire dès le départ je sais que j'ai une base de documentaire qui va

être utilisée pour répondre à toutes les questions là on oublie les systèmes d'extension

plugin etc là par exemple cas de je cherche dans la documentation de grouilles c'est forcément des

questions sur ce sujet là je prends toute la documentation de grouilles je la explique en

petits morceaux petits extraits je vais calculer les embedding pour chacune de ces sections je vais

les mettre dans ma base de données victorielle et j'associe du coup le texte et le vecteur ça c'est une

première étape à faire en amont dans un deuxième temps on a un utilisateur qui arrive qui va

discuter avec notre interface de chat et tiens est-ce que en grouilles on peut créer des récordes

réponse est oui bien sûr et donc qu'est ce qui va faire le système qui intègre le llm donc moi

j'utilise long chain 4j dans mon application au moins il va regarder dans la base vectorielle

d'abord il va prendre la requête de l'utilisateur il va calculer un embedding donc il a un vecteur

et il va long chain 4j dans mon cas va appeler la base de données vectorielle retourne-moi tous les

vecteurs qui sont les plus similaires au vecteur de la requête ça va me retourner par exemple 3

vecteurs et en fait le orchestrateur de llm long chain 4j laba index et autres qu'est ce qu'ils

vont faire ils vont récupérer ces vecteurs donc quand je dis récupérer les vecteurs c'est

le vecteur et évidemment le l'extrait de texte qui est stocké avec et du coup dans le prompt il va

y avoir écrit voilà t'as un expert en langage grouilles mon utilisateur a posé la question

suivante comment est-ce que on peut implémenter des récords en grouilles et pour t'aider à

répondre à cet utilisateur tu vas utiliser les extraits de la documentation ci-dessous et tu

les mets verbatim dans ton prompt que tu passes au llm et le llm il aura tout le contexte il aura

la requête il sait que c'est un expert en grouilles etc il aura les bouts de documentation qui devraient

contenir la réponse normalement à la requête donc il va y avoir des bout de code avec récords il

va y avoir vous pouvez créer des récords dans grouilles en faisant ci il va y avoir des choses

comme ça et le llm lui va synthétiser une réponse parce qu'il a tous les éléments il a les extraits

de documentation ce que c'est plus clair ouais du coup du coup c'est là que je veux dire ou là

c'est peut-être pas si bien il y avait le temps de réponse puis il y avait le temps d'appuyer sur

le bouton à mute non du coup que c'est il n'y avait pas vraiment de source dans le lm enfin c'est

très éloigné mais c'est un peu comme si tu rajoutais fait la question faisait partie de la source

de que tise le llm pour vendre les choses la question la question normalement bah c'est les formés

avec un point d'interrogation à la fin de la phrase mais en vrai comment implémenter un

récord en grouilles bah moi dans ma documentation il y aura certainement un paragraphe pour

implémenter un récord il faut faire ceci cela donc ça ressemble donc il n'y a pas le mot comment

il y a peut-être il faut faire ci mais en tout cas ça donnera des vecteurs qui sont assez similaires

d'accord proche et ce que je veux dire c'est imaginons que le llm a été indexé sur tout le

web sauf groovy il connaît rien groovy mais que tu fasses ça ouais ce que tu dis c'est que là il

va être capable de répondre à la question oui parce que moi ce que je pensais c'est que le contexte

que tu mettais là le le le l'embedding que tu mettais dans ton prompt permettait en gros de mettre le

bon contexte non mais on parle pas de hibernate des ours on parle de hibernate du langage de

programmation du coup quand tu mets plus de contexte ça permet au llm de moins tromper de

moins halluciner du coup tu vois alors en fait c'est bon parce que là dans ta manière de reformuler

t'as expliqué en fait il y a plein de sujets connex qui sont super intéressants donc déjà

reformuler correctement le contexte ou la question ça c'est effectivement un pattern qui va permettre

d'améliorer l'efficacité des systèmes à base de rague ritual augmented generation parce qu'en

fait ce qu'on voit et c'est un problème par exemple dans ma propre démo et qu'il faut que j'implémente

d'ailleurs c'est que on prend la requête de l'utilisateur et on va la comparer à la base

vectorielle mais le problème c'est que la requête ça va être issu quand même d'un dialogue et par

exemple dans le dialogue ça va être tiens est ce que groovy supporte les récords oui et après

ta prochaine question qu'on va comparer à la base vectorielle ça peut être du coup montre-moi

un exemple mais si je cherche montre-moi un exemple il va te sortir des vecteurs un peu bidot qui

parlent d'exemple mais tu sais pas si ça va être les bons exemples et du coup et du coup l'idée

c'est en fait pour améliorer ça tu peux demander dans une première étape au LLM de reformuler la

question de manière synthétique c'est à dire s'il voit qu'il y a plusieurs questions qui sont

liées par le contexte bah là on parle des récords il sait que les deux trois dernières questions

c'est sur les récords il va pouvoir te refaire une nouvelle question comme si l'utilisateur avait

posé la question de synthèse sur vu que en groovy on peut implémenter les récords montre-moi

un exemple d'implémentation de récords tu vois il va reformuler ça ça c'est un pattern qui existe

pour améliorer et l'autre truc c'était attend ce que t'avais dit ça et aussi pour améliorer

rague ah oui dans ses par rapport tu sais tu disais oui t'as LLM qui est entraîné sur tout internet

sauf groovy et du coup avec rague et bah c'est cool parce que tu lui donnes sa connaissance qu'il

n'a pas donc ça c'est vrai mais alors ce qui est intéressant et du coup le take wave là de

oui en vision et sphère dont j'ai parlé tout à l'heure mentionné ça et j'ai une petite

discussion avec avec Didier sur le sujet parce qu'il y avait un petit point que je trouvais pas clair

et qui disait justement ouais ça nécessite d'utiliser des plus petits modèles pour avoir des

résultats plus pertinents enfin je paratrase un peu ce que je me rappelle plus exactement

quel était le libélé je me disais mais non justement alors utiliser des petits modèles ça

d'autres avantages des coups moindres etc mais surtout il me dit bah ouais mais si le modèle

est plus balèze ça sera mieux mais par contre le problème est que moi j'ai justement un deuxième

problème que j'ai avec mon système à moi et qu'il faut que j'essaye d'améliorer c'est qu'en

fait la paye palme ou tu vas utiliser gpt4 etc en fait ils connaissent déjà groovy et ils vont

essayer de synthétiser une réponse mais le problème c'est qu'il va falloir quand même bien les

guider les donc c'est là ils appellent ça stirrability en anglais il va falloir bien guider

ton llm pour lui dire utilise ce contexte pour formuler ta réponse voire même n'utilise que

ce contexte là parce que sinon des fois il va être généré quelque chose qui quelque chose qui va

peut-être être il va parler de hostile powers entre éventuellement entre ce qui connaissait

déjà et ce qui voit dans le contexte etc donc des fois d'utiliser un plus petit modèle qui

n'est pas entraîné sur ce sujet là pourquoi du prompt est plus fort en proportion et du coup

il va utiliser que ce que tu lui donnes dans le contexte vu qu'il connaît rien sur le sujet du

coup tu peux avoir des fois des choses plus pertinent et c'est pour ça qu'il y a donc il y a des papiers

de recherche etc qui explique que des fois de d'entraîner un plus petit modèle éventuellement

avec l'aide d'un gros modèle pour des jeux de données etc mais que tu utilises soit du fine

tuning soit du des prompt avec des few shots des pleins d'exemples etc des fois des fois ça peut

te donner avec un plus petit modèle des meilleurs résultats qu'avec un gros modèle encore plus

généraliste donc voilà il y a plein de problématiques sur sur ces sujets là c'est c'est pas le recrut on

est à peu près à la moitié de l'épisode et il ne reste 7 minutes donc on va essayer d'être un peu

plus rapide pour la suite juste jp t à intégrer la voie et l'image notamment pour poser des

questions enfin c'est c'est un article d'assez haut niveau qui explique comment en fait il veut

pas être multimodal mais ouais à enchaîner un peu les différents choses pour vous aider dans la

vie quotidienne donc à voir ce que ça sortira sortir ces grands ces grands modèles là ils vont

vraiment rajouter la multimodalité pour que pour faire en sorte qu'une image d'un chat ça c'est

le même vecteur équivalent ou texte un chat tu vois ça c'est super important pour pouvoir comparer

l'argument c'est que jp t 4 c'est déjà multimodal c'est-à-dire c'est genre 8 jp t 3.5

il y a alors un article de tomz hardware qui dit que l'intelligence artificielle en gros n'est

pas rentable donc après ça a été nié par microsoft il dit copilote en gros des coûts

20 dollars par utilisateur en moyenne il est facturé 10 donc il va falloir rationaliser après

l'acquisition des utilisateurs faire un peu de rationalisation soit en augmentant le prix soit en

mettant des limites plus restrictives dans ce qu'on peut faire soit en optimisant mais alors jusqu'à

présent on optimise en mettant des modèles de plus en plus gros mais évidemment ça fait plus de

puissance de calcul y compris pour j'imagine générer les réponses du coup faire des modèles

plus petits plus simples pour être une solution du coup c'est une loi de mours un peu différente la

loi de mours c'est genre avec le même prix on arrive à multiplier le nombre de choses qu'on peut

faire et là c'est plutôt on essaie d'avoir des cpu les plus gros mais bon écoute plus cher du coup

qu'est ce qu'on fait après microsoft a dit que non ce chiffre était faux mais ils ont pas dit

ce que c'était le chiffre donc on sait pas trop si ils sont quand même pas rentables quand même

rentables j'ai vu que tu euchais de la tête semi négativement pendant que je parlais non non mais

ben effectivement enfin on donne pas enfin personne ne donne finalement c'est même le prix des

entraînements des gros modèles on sait que c'est des dizaines de millions de dollars voire plus

mais personne n'en parle personne n'en parle c'est un peu tabou quoi et du coup bah là c'est pareil

c'est donc qu'est ce qu'on veut quand même utiliser puisqu'en fait il faut aussi gagner le marché

pour moi je me dis c'est quand même un investissement c'est à dire si effectivement aujourd'hui ça coûte

effectivement peut-être 20 ou 15 dollars ou 12 dollars et qui se sait peut-être effectivement

pas rentable aujourd'hui mais il y aura des gpu encore plus puissant il y aura des tpu comme chez

google encore plus puissant et du coup le coût même si ces nouveaux processeurs coûtent plus cher

ils vont quand même être capables de gérer beaucoup plus de choses encore en parallèle et

les coûts vont naturellement diminuer et du coup vaut mieux peut-être investir aujourd'hui et que

ça nous coûte un petit peu quelque chose par utilisateur mais qu'au final bah t'as gagné le

marché et puis en fait tu deviens un bénéficiaire rapidement grâce aux économies d'échelle et avec

plus de puissance de calcul quoi ouais pas c'est un désargument de l'article mais voilà ouais

alors en outillage on vous avait parlé de figues qui était un espèce de terminal qui

était avant et qui avait intégré l'intelligence artificielle générative pour faire des auto

complétions les trucs trop bien donc voilà pas racheter par amazon il y a test container qui a

sorti un desktop donc un petit outil niveau desktop donc c'est comme docker desktop mais comme

d'autres des portes conteneurs donc c'était ça faisait partie de leur offre d'appli propriaux et

maintenant elle est elle est disponible notamment des petites fonctionnalités notamment figer les

ports de des bugs des conteneurs plutôt que des ports aléatoires qui sont figés les ports

points de pour pouvoir débuguer et voir voir les choses donc ça c'est plus facile à débuguer le gel

des conteneurs pour bah qui soit pas éteint à la fin du test mais on le gèle on regarde un peu

ce qui se passe et on continue on parait tout ça c'est le débug et le support de conteneurs de

moteurs de conteneurs alternatifs donc pas que docker engine mais podman et puis ils ont cité

d'autres dont je ne connaissais pas le histoire mais bon voilà jq 1.7 est sorti après des années

de cime qui n'est pas eu de jq et seulement donc vous connaissez c'est le petit outil en ligne de

commande qui permet de lire d'examiner voire même de modifier des documents json donc ils ont

le grep plus plus plus et puis vous vous rappelez du x pass en x et bel bah là c'est un peu le

comme comme json passe mais amélioré pour faire vraiment plein de choses avec du json donc par

exemple il y a meilleur support des nombres décimaux parce qu'en fait dans ces calculs tu

pouvais avoir une perte de précision donc là ils auraient eu lieu ça ils ont ajouté des nouvelles

fonctions de qui permet de faire des projections c'est à dire pour avoir juste un sous ensemble qui

nous intéresse des champs c'est à dire au lieu d'avoir des champs d'options entiers un sous ensemble

tu donc au lieu d'avoir tous les détails de émanuelle bernard en peut-être que tu t'intéresses

juste à son nom par exemple il n'est pas son adresse etc qu'est ce qu'il y avait d'autres après

des d'autres petites fonctionnalités du debug pour voir ce qui se passe sur stdr une petite fonction

mathématique pour calculer les valeurs absolues qu'il n'y avait pas puis voilà plein d'autres

petites petits correctifs et petits raffinements voilà bon c'est pas un grand grand changement mais

en tout cas c'est c'est bien ça assista quand même un petit article sur comment github

utilise github et du coup fait du dog fooding pour apprendre les choses notamment sur le github

action donc on fait les valeurs très très vite parce qu'en fait la valeur même entre un sec

du l'article n'était pas fondamentale et vu qu'on est un peu tard mais c'est là où ils ont

découvert qu'ils voulaient des runneurs plus larges pour accéder à des ressources privées

via un système de gateway avec un token au idc donc votre action peut aller taper un

derrière avec pas un vpn mais parce que c'est via une gateway mais un truc un peu équivalent

les workflow réutilisables ça venait de là et le cache d'ailleurs les 6 le guide id est le même

le workflow enfin le résultat de l'exécution est réutilisable et chaînable avec un cache un peu

comme basel grave le cache c'est le même même principe après moi le nombre de cias où j'ai

dû relancer le même truc jusqu'à ce que ça marche je sais pas si c'est une bonne bonne idée mais

bon voilà sinon test container a fait une enquête de leur communauté donc test container c'est

bon bah nous on le connaît pour java d'ailleurs c'est des historiques de java mais c'est pour plus

de 10 langages maintenant d'abord les bases de données c'est ce qu'il y a de plus populaire puis les

message broker de type kafka et etc puis les bases de données nos SQL c'est vraiment la majorité

des usages donc pas complètement logique mais c'est toujours intéressant de voir mais pas que

il y a des gens qui émulent un serveur web émuler même un cloud entier là j'ai pu il y a des gens

qu'on fait un équivalent d'Astac Amazon en local là voilà donc faire tourner ces trucs là ou voir

émuler votre microservice interne donc faire un c'est pas vraiment un moque mais c'est un gros

faire tourner une version de votre truc mais tout ça dans sur une seule machine voilà 40%

des utilisateurs utilisent autre chose que docker desktop soit docker engine pur soit

podman ranger etc donc c'est intéressant c'est on voit que docker quand ils sont passés à docker

desktop payant voilà ça a ouvert ça a ouvert des champs bon il reste il reste 60% majoritaire

qui doivent pas être malheureux chez le coeur mais mais voilà c'est intéressant de voir l'évolution

et test container c'est aussi au moment du dev et pas que pour les tests donc c'est ce qu'on a vu

avec quarkus les dev services qui ont été repris ailleurs mais et on a vu là les les tests

de débugage c'est que l'utilise aussi pour débugger en local s'en appli c'est pas vraiment juste

pour faire tourner les tests unitaires on va passer à l'architecture avec une question

t'es plutôt log ou t'es plutôt tracing tu tires au 2 points ouais et du coup je sais plus parce

qu'on en avait déjà parlé aussi il y en avait un ouais l'on qui disait il faut absolument faire du

tracing voilà et donc là c'est un autre qui un peu dans la même veine voilà qui démontre

que le tracing c'est mieux que le logging parce qu'il y a un contexte en fait l'imprécation des tracks

permet d'avoir plus d'infos que de corrélés en pliant les yeux et en scrollant très vite les

logs qu'il y a la notion de durée et pas que les timestames voilà dans la question de de de

liens et de voilà de contextualisation plus plus facile et il dit ben là où les logs vous mettez

du contexte vous pouvez le rajouter des des attrits au travers de traces pour les rendre plus

facilement requétable après il y a la question parce que les systèmes de traces il y en a qui font

du sampling etc donc là il faut désactiver le sampling si on utilise ces modes là ouais et alors

ça c'était peut-être plutôt dans l'autre article où il parlait aussi par exemple de je sais plus

comment s'appelle mais tu peux même si t'as des systèmes complètement décorée les passer

le le le l'id contexte par an pour faire en sorte que par exemple kavka utilise le même id par

an pour que une fois que tu collectes toutes tes traces au même endroit tu peux essayer d'être

capable de savoir que bah cet appel de micro service là et ces traces kavka ça c'est vraiment la

même requête à la base mais ça c'est de l'autre trafic de tracing inter système c'est ça à la

base il faut passer le même identifiant dans l'autre et tout le travail de notamment open

telemetry ça a été de standardiser ça pour que tout le monde parle de la même langue que les

librairies ou les frameworks face à cette transfert par exemple micro note gm est quasi sur

au quark etc ils vont garder le header http où il y a cet identifiant et le passer dans l'appel de la

base de données ou l'appel kavka voilà c'est comme ça aller méthodologie un article de Earthly dev

qui est enfin qui voulait faire une la système d'intégration continue du futur et en fait c'est

un article intéressant sur l'itération des au niveau startup en disant bah des fois on a de la

valeur sur un truc et on dit que c'est notre étape intermédiaire pour faire après l'outil magique

et à un moment il y a un truc qui marche pas qui dit eux ils ont un outil de ccd pour éviter de

répéter les tâches et donc en tant que startup ils ont fait en plusieurs étages pour réaliser

quelque chose qui fonctionnait qu'il y avait de la valeur et ensuite construire par dessus pour

toujours valider à chaque chaque étape chaque fonctionnalité et tu peux attirer des gens si

tu as un truc qui est vraiment unique qui est dix fois mieux que la compétition sur un domaine

donné et ils vont accepter toutes les choses que tu n'as pas encore implémenté donc et ensuite

tu investis et tu es temps et tu répètes donc ça jusqu'à ça tout ça c'est pas logique mais c'est

une bonne pratique et mais ce qui dit c'est que si on voit que le différenciateur et la

tire personne rajouter des fonctionnalités par dessus en disant bah non c'est parce qu'il manquait

ceci il manquait cela en fait c'est c'est un peu là l'équivalent du suncos fallacy cs quoi j'ai

déjà investi je vais investir un peu plus pour réussir voilà donc c'est un peu lui dit si vous

voyez que ça marche pas vous tuer le vous tuer l'idée vous passez à autre chose en fait c'est

votre système de validation court donc ils avaient construit leur plan de domination sous ces

approches là et les premiers produits étaient gratuits et ils savaient qu'ils n'allaient pas

cannibaliser les étapes secondes parce qu'ils adressaient des problèmes différents donc le

premier produit a été super adopté le deuxième qui s'appelle les remote workers qui est la

version cloud du premier produit a aussi été adopté les gens étaient contents d'avoir une

offre manager là dessus et puis quand ils ont construit un système entier de l'intégration

continue là ils se sont mis à déjà c'est pas les gens qui vont aller voir en disant j'adore

est ce que je peux vous acheter votre truc c'est il devait aller voir les clients et les clients

on disait mais j'en ai déjà une de si et moi donc en quoi vous êtes meilleur et là et là c'était

difficile parce que en fait leur outil est très fort c'est au niveau du bill il essaie d'optimiser

là l'optimisation des cages dont on a parlé et ça tu peux l'intégrer dans ton intégration continue

mais si tu veux faire une intégration continue elle-même tu te faut que tu remplace j'ai qui

une sous guitte d'action ces gens sous les guitte d'action et ça c'est beaucoup plus difficile à

dire parce qu'il ya une notion de migration donc il y a une notion de coup juste pour essayer ton

produit donc la population c'était pas des fans en fait c'était plus des fans et donc ils ont

essayé essayé et et pas réussi donc là ils ont décidé de tuer cette idée là et de se

concentrer sur l'étage numéro 2 et de se motiver là dessus donc si vous voulez réfléchir à

niveau de business model c'est intéressant alors horcrux alors c'est pas du c'est plutôt dans les

outils ça mais bon rêve horcrux c'est un truc pour chiffrer un fichier en plusieurs morceaux

c'est à dire vous mettons que vous voulez si il faut qu'il y ait minimum trois des n

cascodes qui soient là pour pouvoir je sais pas moi réaliser un nouvel épisode vous allez avoir un

fichier découpé en morceaux et avec l'information pour réaliser un épisode qui est caché dedans

moi j'ai un morceau guillaume un morceau katia un morceau etc et il faudra au minimum katia

moi et guillaume et avec ces trois là on va être capable de reconstruire le fichier c'est un

utilisation assez intéressante du chiffrement en fait et horcrux parce que c'est un peu comme dans

un ripoteur où il faut toutes les horcrux pour qui représente l'âme de ouais

je vais dire celui dont on doit pas prononcer le temps des mâles sécurité tu vas en parler

tu l'as tu l'as vu ouais ouais alors donc un petit peu encore lié aux larges langages modèles mais

il y a des archers honnêtement je sais pas qui est vraiment cette personne qui avait soumis ce CVE

auprès du projet curl mais genre des pseudo chercheurs qui se croient plus intelligents que

tout le monde qui ont qui ont dit à curl et donc j'ai demandé alors du coup attends en plus je

crois que c'est un barred qui demande un barred ouais cherche moi une faille de sécurité dans

curl et en fait il arrive à te pondre une cv mais parce que barred il a vu des tonnes de cv sur le

net donc tu parles de curl et tout et il arrive à te pondre cv pour curl et qui comme ça premier

coup d'oeil ouais ça a l'air d'être du coeur il parle même des bout de code de la méthode qui s'appelle

machin chose et après donc il y a Daniel Zatanberg et puis c'est son équipe celui qui a créé le coeur

qui a très rapidement vu mais c'est quoi c'est quoi ces veuilles de merde genre ils parlent d'une

méthode mais elle n'a même pas la même signature enfin très rapidement ils s'aperçoivent quand même

que c'est quand même que c'est info quoi mais les LLM sont vraiment super créatifs et sont capables de

synthétiser et d'imaginer les cv eux ils sont créatifs ils sont créatifs donc elle n'était pas

vrai juste pour éclair et il était faux il était faux il n'y avait pas d'erreur possible mais ce qui

est dommage tu vois c'est que c'est ces gens qui se croient malin je suis un super chercheur en

sécurité en plus maintenant j'ai utilisé les outils de génération de générité et tout ça pour

faire pour proposer mes cv eux et en fait quand bah enfin pour moi c'est une perte de temps pour les

bâteneurs open source qui reçoit déjà souvent on reçoit des cv eux qui sont un peu tirés par les

cheveux où c'est des des combinaisons de vraiment de cas particuliers de situations particulières qui

fait que potentiellement un truc pourrait être un risque mais là en plus c'est si t'es obligé de

passer du temps et c'est de voir attend déjà est-ce que c'est un vrai cv ou pas ça ça devient un

petit peu pédé quoi c'est donc c'est les gens qui abusent de ces outils là font perdre du temps

précieux au maintenant de projet open source qui bah peut-être ils sont pas forcément payés

toujours pour bosser sur ces projets open source donc c'est vraiment leur faire de perdre du temps

que d'utiliser unia pour générer des trucs qui nia c'est pas une recherche en sécurité quoi et

puis je veux dire le gars il n'a pas fait son boulot je vais aller à la limite c'est d'utiliser

unia pourquoi pas mais qui fait son boulot qui vérifie les conditions de reproduction du problème

si effectivement peut-être ils pourraient imaginer qu'unia arrive à en trouver donc par exemple

tous les assistants les copilotes et autres tu leur dis tient qu'est ce qu'il y a comme problème

dans ce code là des fois il arrive à trouver des bugs dans ton cas donc pourquoi pas peut-être ça

peut en générer mais le gars enfin je veux dire il est irresponsable et puis il n'a pas testé le

problème lui-même il n'a pas vérifié que le marde a lucidé le truc quoi allez on va passer à

la loi société organisation déjà que t'es été remonté là on va ça va être bien allez

rapidement cisco à rachat Splunk pour 28 milliards alors Splunk c'était un gros bébé dans

l'observabilité qui avait des problèmes de rentabilité ces derniers temps donc ça bouge

Cisco encore plus dans le software plutôt que le hardware dans lequel il est venu historiquement

donc c'est évidemment un rachat synergétique donc voilà et l'objectif c'est un grand de

et la sécurité et l'observabilité où on voit qu'il y a quand même des grosses convergences

entre les deux et puis on parlait d'il ya parce que pour faire un rachat à 28 milliards t'es obligé

de parler d'il ya aujourd'hui évidemment faut que ça soit validé par les autorités concurrentielle

donc quelque part en 2024 ça sera fait autre chose plus proche de nous les fondations comme

Eclipse comme la Linux fondation ont un peu peur du cyber resilience acte européen qui

a été prévalidé pas mal et du coup ça a l'air vraiment parti pour pour être ça et donc

il demande une clarification sur les contraintes réglementaires à la base le cyber resilience

acte il dit on va bouger la responsabilité du bug notamment de la faille de sécurité de

l'utilisateur du logiciel au concepteur du logiciel ou au vendeur du logiciel donc c'est le vendeur

qui doit être responsable de annoncer une faille de sécurité dans les 24 heures telle qu'une

fois qu'il l'a trouvé de faire un patch de réaliser ce patch de montrer un certain niveau de

de garantie alors que les logiciels historiquement ils sont fournis aziz c'est à dire sans garantie

quoi que ce soit mais donnez nous quand même de l'argent donc pour les fondations

à pâche eclipse la Linux fondation qui fournissent du code est ce qu'ils sont responsables de ce

code là et qui doivent implémenter le cyber resilience acte ou alors en tant que fournisseur

open source neutre qui fournit pas une une valeur marchande a priori est ce qu'ils en sont exam

et donc c'est aujourd'hui ils en sont pas exempt puisque les seules personnes qui en sont

exempt c'est des individus qui ne font pas d'argent dessus donc si vous faites du consulting sur

une librairie open source vous êtes sous le coup du cyber resilience acte si vous faites une librairie

open source c'est que vous n'avez pas de revenu dessus à ce moment là direct ou indirect vous

êtes pas responsable mais du coup la zone elle est assez assez flou en fait et donc ce que ça doit

faire c'est fourniture de patch l'auditing les mises à jour et après il définissent des classes

de logiciels critiques ou moins critiques donc on doit faire un risque un risque assessment sur

sur les choses donc on doit délivrer 100 bugs de sécurité donc tu peux pas faire une version

tant qu'il n'y a pas de fin si tu sais qu'il ya un peu de sécurité connu ça peut être convié quoi

voilà faut que ça soit sécur par défaut plutôt que genre scott tiger par défaut dans les logins

de mode passe et puis d'avoir cette notion de mise à jour de sécurité et on doit notifier

dans les 24 heures la base de données européenne des vulnérabilités donc ça aussi ça fait grinser

des dents parce qu'on sait pas s'il y avait privé public qui a accès donc on imagine que tous les

états membres enfin les services de contraventionnage des états membres se frottent les mains d'avoir

une base de données qui leur amène des vulnérabilités directement et donc il y a une campagne pour

essayer de faire bouger ça mais on verra on verra où ça va ça part pour le coup assez

mal parti vu l'état d'avancement du du projet qui a une bonne intention mais avec une subtilité au

niveau de l'open source et donc le risque c'est qu'il est moins d'open source beaucoup plus de

charges là dessus sinon il y a des grèves chez métal il on sur l'ouverture du modèle y a où

ils disent attention les modèles avec notamment en donnant leur poids c'est assez facile de bypasser

les restrictions on a vu que open y a ils ont mis pas mal de restrictions pour pas qu'ils soient

biaisés à être pro trump anti trump pro la terre plate on dit la terre plate donc c'est assez

facile à bypasser une fois que t'as le code et les poids et ils disent ben quand c'est derrière une

api on peut toujours éteindre bloquer et modifier quand ça a été fourni en tant que code open

source c'est foutu le chat est sorti de la boîte après les gens qui sont de la vie contraire de

en gros de façon jp t on l'a fait des workarounds assez trivia ou assez vite donc c'est pas vraiment

une vraie protection ça va surtout affecter la protection par l'obscurité pas forcément et pas

le bon modèle ça affectait plutôt les chercheurs indépendants et que ceux qui ont pouvoir avancer

ça va être ceux qui sont dans des labos affilés méta affilée google affilée open air voilà donc

il y a des débats et notamment qu'est ce que c'est que ça veut dire open source ai puisqu'on a

bien vu que open source la définition stricte et on parle d'open ai il y avait des choses un peu

un peu différentes voilà et sinon il ya pause ai point info c'est toi qui l'a mis non c'est pas moi

mais je pense que pas tout récent celui là c'est un moment qu'ils ont parlé de faire une espèce

de moratoire sur l'intelligence artificielle mais après le problème c'est que enfin il y aura ceux

qui s'arrêtent vraiment et ceux qui continueront de tout façon sans le dire et qu'au contraire

vaut mieux continuer de chercher comment améliorer il ya comment améliorer l'explanabilité

la transparence et justement de voir comment implémenter des nouveaux garde-fous etc au

contraire vaut mieux continuer de bien rechercher ces sujets là en particulier pour pouvoir mieux

encadrer justement les modèles ouvert qui vont être disponibles plus tard quoi donc c'est un peu

une fausse bonne idée je trouve du coup je sais pas qui a mis mais c'est peut-être bien moi c'est

qui va y est la course à l'extinction de l'humanité est ce que c'est les guerres le

réchauffement climatique ou l'intelligence artificielle on va pas faire une enquête on va faire un

sondage là pour le coup question de l'épisode vous pensez la fin de l'épreuve guerre échauffant

allez un petit outil de l'épidode un qwerty alger western europe qui a été un qwerty adapté

pour les lettres à accent en fait donc le qwerty américain il est super pratique pour les

développeurs parce que les finalement les symboles utilisés dans les langages que ce soit les les

acolades les squares brackets même pas comment ça se dit en français les crochet voilà merci

etc tout ça ils sont des endroits enfin disons été choisis parce qu'ils ont été dans des

endroits assez pratique dans le clavier us américain et c'est moins le cas des laser t ou du

qwerty même européen du coup il y a pas mal de gens qui prennent du qwerty américain sur leurs

ordinateurs donc c'est mon cas par exemple mais par contre bah pour les accents aigu grave

etc ben soit on décide que le français n'a plus d'accent soit du coup là ce layout donc c'est

un layout sur le le qwerty de base il permet enfin c'est votre qwerty de base us mais il utilise les

méta les clés méta pour avec un mapping assez spécifique pour générer les accents sur les lettres

et c'est beaucoup plus rationalisé qu'un truc à gauche un truc à droite voilà donc alors moi je

l'ai pas installé au final parce que je me dis je suis pas sûr de l'usage voilà mais c'est assez

intéressant j'aimerais bien on a essayé de teaser tomah reclut qui en comparais sur twitter mais

voilà un petit crotte casse un petit retour d'expérience alors voilà mais je pense que en

français ça va je pense que les ceux qu'ont des n till de qui mettent des trémas sur un tiers de

leurs lettres bon bah là il y a dans ces langages là il y a beaucoup plus de valeurs voilà ensuite

devos belgique toutes les vidéos sont disponibles donc youtube.com arobace enfin slash arobace

d'évox forever et puis actoberfest la dixième édition est là donc si vous voulez participer

la fin d'ailleurs c'était on est le 20 octobre du coup il reste 0 il reste 0 minutes donc

voilà bon bah désolé il y a eu actoberfest et j'espère que ça s'est bien passé pour les gens

et il y a plein de conférences mais notre bot a décidé qu'il ne pouvait pas parser les informations

de la liste d'orelli du coup bah vous allez sur le site d'orelli nouvelle version au plus alors

peut-être c'est pour ça en fait casser ça tout cassé ça fait deux fois du coup qu'elle casse les

trucs ça serait cool qu'orelli si tu nous entends la compatibilité des seins absondantes ça serait

super top et bien merci d'avoir suivi j'espère que les petites la petite discussion autour de

lia là sur divers petits sujets j'espère qu'on n'a pas dit trop de conneille et voilà sinon on

accepte les crottes cast d'experts sur le sujet voilà mais dans la bienveillante allez bisous à tous à

la prochaine le thème musical est le thème numéro 3 gracieusement offerts par podcast

le logo a été dessiné par nicolas martignolle alias le tuyur express

www.toyeur-express.fr

Machine-generated transcript that may contain inaccuracies.

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”