
Sur des réseaux payants, Rust et Wasm risc tout pour contrer PowerPoint
Durée: None
Date de sortie: 24/11/2023
Voir sur Youtube
Animé par Jean-Baptiste KAISER - @ArendSylavec la participation de : - Guillaume ASSIER : @GuillaumeAssier- Eloi DEMOLIS : @Wonshtrum- Sylvain WALLEZ : @bluxte
Épisode enregistré le 7 novembre 2023
👋 Venez discuter avec nous sur @clever_cloudFR pour nous dire ce que vous avez pensé de ce nouvel épisode.
➡️ Pour découvrir ou réécouter d’anciens épisodes c’est par ici !
Chapitrage et liens
00:01:52 Google/YouTube et la pubhttps://andadinosaur.com/youtube-s-anti-adblock-and-ublock-originet https://www.theverge.com/2023/10/27/23934961/google-antitrust-trial-defaults-search-deal-26-3-billion
00:10:43 Facebook et Instagram payants en Europe ?https://about.fb.com/news/2023/10/facebook-and-instagram-to-offer-subscription-for-no-ads-in-europe/https://www.linkedin.com/pulse/meta-et-rgpd-pourquoi-labonnement-payant-%C3%A0-facebook-pose-champeau-cp2le
00:14:26 Emulation Risc V sur Linux avec Scratch https://www.hackster.io/news/linux-on-scratch-is-proven-possible-thanks-to-this-clever-risc-v-emulator-project-815bf0937ec7
00:17:30 Une machine de Turing sous PowerPointhttps://www.youtube.com/watch?v=deswvXZ0SjcOn The Turing Completeness of PowerPoint (SIGBOVIK)
00:20:20 Brainfuck latexhttps://www.youtube.com/watch?v=deswvXZ0Sjc[DEVFEST Toulouse 2019] Applications de Brainfuck, langage minimaliste mais Turing-complet
00:22:28 Async traits merged in masterhttps://twitter.com/compiler_errors/status/1713338363460321763https://releases.rs/docs/1.75.0/
00:25:30 Linux v6.6 avec du nouveau sur eBPFhttps://twitter.com/pchaigno/status/1719024426774069701
00:29:17 WebAssembly pour passer du Rust en doucehttps://twitter.com/bluxte/status/1717233980485914986
00:38:12 WebAssembly GC dans Chromehttps://developer.chrome.com/blog/wasmgc/
00:49:10 Rust certifié pour les systèmes critiqueshttps://ferrous-systems.com/blog/ferrocene-open-source/
00:58:10 Tailspin, un petit outil en Rust pour lire des logs coloriséshttps://github.com/bensadeh/tailspin
01:03:23 : Musique de fin : Måneskin - HONEY (ARE U COMING?)https://www.youtube.com/watch?v=ds18Ozzp8h0
Bonjour à tous et bienvenue dans ce nouvel épisode de Messages à Caractère Informatique,
épisode n°96. Nous sommes le 7 novembre 2023 et aujourd'hui je suis accompagné de
un éleveil éveilé tel que Guillaume Asier. Bonjour Guillaume Asier. Bonjour. Qui es-tu et que fais-tu ?
Alors je m'appelle Guillaume Asier, je suis citré d'habitude d'Ingenir chez CleverCloud et je fais partie
de l'équipe trafic, ma gueule on fait du load balancing, des jouets d'ageboard graffana et plein
de trucs pour vos applications, soit connecté à internet. Magnifique. Et pour connecter tous
à internet, on accueille également Heloi Demolie. Bonjour, je suis Heloi Demolie, je
suis travaillé effectivement à CleverCloud également dans la team trafic de Guillaume Asier et on
utilise Sosu, donc notre propre reverse proxy, qui sert de load balancer pour le balancer vos
applications. Qui est Open Source ? Tout à fait. Et on accueille, et on accueille
The Last But Not List, Sylvain Valais. Sylvain, bonjour, qui es-tu et que fais-tu ? Alors je
travaille chez Elastique où je suis Techlead dans l'équipe des librairies SDK clients et avant ça
j'ai passé quatre ans dans l'équipe Cloud où on brassait des clusters elastic search
à l'an plus finir, mais voilà j'ai commencé ma carrière professionnelle au siècle dernier.
Très probablement. Potentiellement ouais. Et en parlant de choses qui datent du siècle
dernier, on va parler un peu de publicité. Tu avais un lien à nous proposer à propos de Google,
YouTube et leur publicité. Ouais, alors il y a deux choses qui sont arrivées récemment. Donc d'une
part j'ai trouvé sur l'article qui disait que Google avait publié en gros le montant de ce qui
dépense pour être le moteur de recherche par défaut dans tout un temps d'environnement et je crois
que c'est 23 milliards de dollars chaque année. Ce qui est assez dingue, ça veut dire que ça leur
rapporte beaucoup beaucoup beaucoup beaucoup plus que ça. Pour l'appliquer histoire, j'avais
discuté avec des gens de chez Mozilla, je leur disais mais d'où il vient votre pognon quoi.
Bah disais bah c'est en fait c'est Google qui nous finance pour qu'on soit le moteur de recherche
par défaut. Alors ça s'il y a quelques années, je crois que la situation est évoluée et que Mozilla
a diversifié ses revenus en mettant des moteurs de recherche différents selon les pays. Typiquement
des pays comme la Russie, c'est plutôt du Yandex, du Baidu en Chine, des trucs comme ça. Donc ils ont
diversifié leurs ressources de revenus mais c'est surprenant de voir les montants financiers
que représente le simple fait d'être le moteur de recherche par défaut dans un navigateur. Donc ça
c'est pour la partie Google Search et puis en ce moment je sais pas si vous vous avez eu à subir
ça mais il y a une espèce de jeu de chat de la souris entre YouTube et Adblock. Depuis très longtemps
moi j'ai donc Hubblock origine sur ma Firefox puisque j'utilise Firefox comme navigateur par
défaut aussi bien sur mon ordic, sur mon mobile avec Hubblock sur Android aussi ça marche nickel.
Et il s'est mis à me dire attention vous utilisez un Adblocker c'est pas bien.
Et puis ça a été attention vous utilisez un Adblocker il vous reste trois vidéos à voir.
Et là on se dit merde. Fondamentalement je ne suis pas contre le fait qu'on rémunère les
créateurs de contenu parce qu'il y a des contenus de très grande qualité sur YouTube mais il y a eu
je trouve une dérive récemment dans les pubs YouTube. C'est insupportable parce qu'on a les
prérolles les midrolles les machins enfin on a de la pub en permanence et surtout c'est des pubs
qui sont inintéressantes quoi. Alors c'est peut-être parce que je n'ai pas éduqué YouTube et que
je n'ai jamais cliqué sur les pubs. Ça m'intéresse pas non plus d'aller cliquer sur leurs pubs.
Et donc je me disais merde mon Hubblock il marche plus. Enfin je me fasciste les pubs sur YouTube
alors j'ai commencé à bidouiller en voyant qu'en étant sur un profil non connecté les pubs
les pubs, enfin le Hubblock marchait encore et j'en suis arrivé à la conclusion que en
gardant entre mes différents comptes YouTube et des profils privés etc. finalement il en
arrivait à marquer certains comptes c'est à dire qu'il laissait passer Hubblock sur certains
comptes ou aussi des gens non connectés et par contre des gens qui lui avaient dû probablement
identifier comme étant des gens qui regardaient souvent YouTube là, Hubblockait. Donc je me suis
dit bon bah s'il faut je regarderais YouTube en compte sur des sur des sur des sur des on
en connectait des trucs comme ça mais à ce moment là c'est un peu pénis parce qu'on perd
aussi la gestion des playlists les interactions des interactions avec l'onté. Et donc j'ai été
fouillé un petit peu sur qu'est ce qui pouvait bien se passer si il y avait une conviction je me
suis dit je suis certainement pas le seul à avoir le problème et je suis tombé sur l'article intéressant
que je vous ai lié là où en gros il décrive un petit peu le jeu des chats et de la souris entre
Hubblock et YouTube et il y a des choses intéressantes que j'avais pas envisagé sur le
fonctionnement de Hubblock c'est que pour moi Hubblock c'était essentiellement un énorme paquet
de reg exp sur les url et qui bloque certaines expressions régulières dans le cas de YouTube
ils vont plus loin que ça parce qu'en fait ce qu'ils font c'est qu'ils interceptent la
requête du player YouTube vers le système de pub et ils retirent les identifiants de
vidéos de pub de la réponse c'est à dire que en gros YouTube dit file moi des pubs à regarder
dans un tel contexte YouTube lui renvoie un certain nombre de vidéos candidat et ce que fait
Hubblock c'est que bah il renvoie un tableau vide en lieu de renvoyer un tableau d'identifiants de
vidéos alors là où il y a un jeu de chat et de la souris c'est que YouTube régulièrement change
le rl voilà donc le truc c'est que c'est pas dit que que Hubblock va gagner là dedans parce que
bah YouTube il contrôle il contrôle ce qu'ils envoient dans le navigateur donc donc il y a
probablement un jour ils vont dire on arrête les frais alors encore une fois que les créateurs de
contenu de qualité sont rémunérés c'est bien par contre la pub moi me gape et surtout le YouTube
premium c'est quand même cher quoi 14 euros je crois par mois pour aller voir des vidéos YouTube
alors si on s'en sert comme plateforme vraiment pour aller chercher du contenu on apprend des
choses etc pourquoi pas si on va regarder des vidéos de chat parce que on a trouvé le lien sur
sur twitter ou je sais pas quoi j'ai pas envie de payer 14 balles par mois quoi ça c'est donc
donc voilà c'est c'est le petit jeu de chat et de la souris et cet article là montre un petit peu le
dessous des cartes c'est intéressant effectivement c'est sur la rémunération justement des créateurs
de contenu sur YouTube c'est une vraie problématique parce qu'en fait YouTube aujourd'hui l'argent il le
gagne par les évos et les chaînes musicales en fait il gagne il y a très peu de revenus qui
apporté par les créateurs et les créateurs servent plus de produits d'appel pour derrière ensuite
envoyer vers les chaînes musicales et les créateurs de contenu en réalité gagnent assez peu d'argent
parce que YouTube étant partenaire des chaînes musicales lorsqu'un créateur de contenu au titre
du droit local utilise une musique un extrait ou quelque chose qui relève du ferrius typiquement
pour de la critique ciné ou autre ou autre chose derrière le label peut venir bloquer la vidéo
et toutes les pubs appartiennent du coup enfin tout l'argent du revenu des publicités reviennent
reviennent au label et donc la question de la publicité en fait malheureusement aujourd'hui
YouTube rémunère mal ou très peu ces créateurs de contenu et donc forcément le le fait d'accentuer
de la publicité en fait au final ou de la bloquer va avoir un impact alors certes non
négligeable à une certaine échelle mais sur la rémunération des créateurs de contenu qui aujourd'hui
se rémunèrent beaucoup plus par des pubs internes à leur part exactement et donc moi je suis
enfin je suis beaucoup plus avec une attitude beaucoup plus positive par rapport au sponsoring
parce que alors hormis quand c'est du nord vpn parce que ça on n'en peut plus arrêter avec ça
on n'en peut plus mais souvent les les sponsors ring sont quand même sur la thématique de la
chaîne donc là on va dire c'est de la pub qui qui a plus de sens dans le contexte du contenu
toujours de la pub l'intérêt aussi de la pub sponsoring c'est que bah on peut appuyer sur le
curseur exactement la déplacer et la déplacer un peu les appels quoi c'est ça et il y a des
rues du revenu revient aussi au 100% du revenu de la publicité revient au créateur contrairement
une publicité youtube donc une bonne partie revient à youtube en réalité en parlant de
nos vpn j'avais lu un article qui a longtemps qui qui expliquait qu'en fait le business modèle de
nord vpn n'est pas tant sur la vente de vpn que sur la vente de proxy anonymisier résidentiel
c'est à dire qu'il y a une autre boîte et une autre boîte à côté en gros où ils vendent du proxy
en disant c'est des attraies super résidentielles et c'est simplement qu'ils utilisent les tunnels
de nord vpn qui vendent à des gens qui font du scraping et des trucs comme ça donc c'est
intéressant de voir qu'il y a tout un shadow business en fait associé à ça et que la mise en
avant de la protection de la vie privée machin etc va en fait c'est juste pour pouvoir vous
faire votre bande pas de pas se rendre quoi donc ils utilisent en fait les clients
ils utilisent le client nord vpn que tu installes sur ta machine pour récupérer
une cité tendra cp présidentielle pour pour router du scrapping c'est ça ok j'ai déjà vu d'autres
d'autres boîtes le faire je savais pas je mettais beaucoup posé la question je me suis toujours
demandé si nord vpn c'était pas contrôlé par genre la cya ou une boîte comme ça notamment
parce que tu peux faire du gros manille de mida sur toutes les enfin tout ce qui se passe quoi
alors il y a de la chtps il y a des mécanismes en dessous quand même qui protège un peu mais je
me suis toujours demandé si c'était pas disait plutôt pour de l'espionnage plus que pour
pour le prix d'épenne mais je comprends mieux comme une finance à propos justement de
financement et et de fait de deux payés pour pour des choses parfois d'une nécessité
discutable c'est instagram et facebook qui deviennent ou qui sont supposés devenir payants
d'ici à l'horizon de 2024 en europe ouais donc c'est moi encore qui a ramené ce lien là donc
c'est c'est en gros dans la dans la guéguerre entre entre facebook et consort et le value rgpd
finalement la protection des données personnelles en gros les collectes de données personnelles
que fait facebook est illégale par certains aspects et ce qu'a dit facebook c'est alors à une
époque ils ont dit si c'est comme ça on se retire de l'europe en fait ils peuvent pas
parce qu'il est tellement de revenus qui revient de là dessus qu'ils peuvent pas c'est stirrille
balle l'empier et donc ils ont sorti un truc en disant bon bah voilà on va proposer un truc à
deux vitesses les gens pourront s'abonner à facebook et instagram à ce moment ils auront
pas de pub et si ça ne bonne pas ils auront de la pub et à ce moment là on fera la collègue de
données pour faire du ciblage alors ceci étant dit donc là le lien c'est c'est une déclaration de
de métage je sais plus quelle prise annonce 8 euros par mois si c'est rigolo 6 euros par mois sur le
web et 8 euros par mois sur eos et android donc tu es sur mobile tu payes plus cher les fameux 30%
répercuté le markup alors le truc c'est que je pense que ça doit être lié à l'endroit d'où
tu prends l'abonnement puisque en gros si tu prends l'abonnement depuis le mobile les plateformes android
et après le markup par contre je crois qu'il y a déjà confé des analyses de ce qu'il disait et
qu'il n'est pas très clair en fait que même avec un abonnement payant la collègue de données
qui annonce vouloir faire malgré tout soit quand même conforme au hgp donc d'accord ils sont sans
arrêt sur le borderline et est ce qu'on voit aussi c'est que quand il y a des actions juridiques qui
sont intentées contre facebook et compagnie en gros ils vont jusqu'au bout du bout et puis tac ils
changent d'un truc juste avant de se faire condamner souvent alors des fois ils se font condamner
quand même mais c'est un peu l'encore retrouve le jeu du chat et de la souris sauf que là c'est une
grosse grosse souris et le chat européen il faut qu'il quitte à la dernière ça c'est un peu ça oui
mais effectivement ça pose la la question sur la question de la base légale du de l'abonnement
payant est ce que ce serait pas justement de dire bah en fait c'est l'exécution d'un contrat
quelque part de de de de de s'abonner au service et donc aller siffonner les données alors c'est
bon en marx je sais pas si le fait de cliquer j'accepte les conditions générales sur un
service gratuit ne constitue pas une forme de contrat c'est un ce qui est pour qui est
contrat je sais pas ça ça fait par si une bonne question je crois que le consentement en réalité
le côté bannière de cookie c'est un gros abus et une interprétation très très on va dire
libérale de l'urgpd mais mais potentiellement c'est peut-être ça qui sert de justification aux
gens qui ont des bannières de cookie pour dire justement il accepte quelque part il signe un contrat
avec nous de se faire piquer ces données effectivement effectivement mais c'est vrai que du
coup on voit l'impact concret on va dire des mesures qui sont prises sur en Europe sur la question
des données et même potentiellement les effets du dsa et autres règlements européens directives
et règlements européens sur sur les grandes plateformes mais d'ailleurs en parlant de plateformes
on va changer complètement de type de plateforme mais cette fois ci on va parler d'une plateforme
logicielle puisque c'est un article qui parle d'aller faire du risque 5 et émuler du risque 5
risques v plutôt peut-être sur du linux enfin faire tourner du linux en fait sur un émulateur
xv qui tourne dans scratch voilà ok c'est bien risque 5 en fait risque 5 et donc du coup l'idée
en fait c'est que le donc si vous connaissez pas le langage scratch c'est un langage pour apprendre
à développer donc c'est un langage par bloc si vous avez fait du hardu bloc qui qui permet de faire
de coder sur hardu no avec des blocs c'est un peu le même principe donc c'est c'est qu'on va
avoir des blocs on peut les impliquer quand on a des conditions des choses comme ça et donc
une expression c'est un bloc une instruction est un bloc une condition est un bloc une boucle
est un bloc etc et c'est une introduction à l'algorithmie algorithmie par exemple et donc
il y a quelqu'un qui a eu la bonne idée de décider d'émuler une une architecture de cpu
déjà existante et en l'occurrence la architecture risque du coup et donc l'avantage c'est qu'une
fois qu'on a un émulateur risque capable de supporter l'instruction 7 et bien on peut faire tourner
n'importe quoi dessus et en particulier linux tourne sur risque 5 donc il a fait tourner linux dessus
voilà il y a des malades partout c'est un peu un sacré projet après c'est marrant c'est une
stratégie qu'on retrouve assez souvent en fait c'est si on a si on a un problème pour faire tourner
dans l'environnement qui m'a été conçu pour au lieu de le recoder par exemple à celle de
principe des émulateurs au lieu de si on veut jouer un jeunesse au lieu de recoder jeunesse
nativement pour un système on crée un émulateur et du coup on a gratuitement la totalité des
jeunesses qui marchent dessus et c'est ce système là pour avoir un linux qui tourne un
environnement qui est pas approprié ça avait déjà été fait je me rappelle plus qu'en
dans vert chat ou un utilisateur avait recodé fait qu'encore une fois l'architecture risque risque
5 cette fois dans un pixel shader et du coup il l'odait une version du kernel linux compilé
pour risque 5 dans une texture et il passait cette chiffre là à son pixel shader qui émulait du
coup risque 5 et lui donner du coup pas que permettait de faire tourner à linux dans vert chat
dans le même genre il ya quelques années il y avait quelqu'un qui avait sorti une vidéo
sur youtube où il montrait qu'il avait recodé une machine de touring dans powerpoint et c'est
tu me fais une transition magnifique pour un projet des lois car elle a vu cette vidéo et il est allé
beaucoup plus loin et le reste que tu peux nous parler de ton projet s'il te plaît j'ai effectivement
vu cette exacte vidéo je l'ai trouvé absolument incroyable parce que je suis un fan de pourfait
c'est le premier leci avec lequel je suis familiarisé quand j'étais petit et j'ai toujours essayé de
trouver des moyens de détourner son fonctionnement en faisant des petits jeux des animations dans
et effectivement je me suis dit est ce qu'on pourrait pas pousser le concept qu'il a donné dans
cette vidéo là moi si je me déplaisais dans son approche et qu'on était obligés de déplacer
la souris dans l'écran pour exécuter sa machine de touring et même s'il ya un seul endroit on pouvait
réellement cliquer l'utilisateur était quand même obligé de modifier la position de la souris et
du coup j'ai créé une nouvelle machine de touring où cette fois tout est localisé sur un
soft pixel et du coup il suffit d'avoir un auto clicker on pose la souris et ça déroule la
machine de tour et je suis un lien encore un tout petit peu de l'un parce que la première version
je l'ai fait à la main et en fait powerpoint n'était pas fait pour du coup assez rapidement on se
retrouve à avoir des fichiers pour prendre sont trop lourds c'est trop lent c'est pas stidieux du coup
j'ai fait un petit peu brillant en piton c'est pas le meilleur langage mais à l'époque j'ai vu bien ça
qui a généré en fait des programmatiquement des pour prints et à partir de ça en scripting
du coup je peux définir plus facilement des nouvelles trucs en pour prints et du coup j'ai
recréé une machine de touring qui est beaucoup plus capable que celle que j'ai fait avant et la
dernière création que j'ai fait avec cette librairie c'est un cpu c'est pareil ce que ça
n'a pas encore mais c'est une archi cpu complète avec un langage ensemble
c'est gens sans fou moi je retiens de ce que t'as vu pour une petite pafée pour ça
qui lui crue je voulais être sûr c'est pas fait pour t'as recodé un powerpoint accéléré
oui c'est aussi marrant parce que du coup je vais retrouver un peu la même problématique que ceux
qui ont montré sur scratch c'est que scratch c'est pas fait pour non plus du coup ça ne tourne
pas dans le moteur initial scratch il faut tourner dans un accélérateur de scratch en fait
il précompile du coup le scratch en fois qu'il utilise j'ai restricte et du coup pour essayer
de gagner plus de performances et j'ai les mêmes problèmes en fait pour pour pour une fois
pour pour ne t'es pas fait pour donc ne serait-ce que pour ouvrir le port point il me faut 30 secondes
à peu près et pour le lancer ça peut faire une chose et du coup j'ai recodé un tout petit
pour pour le point qui ne fait que de l'affichage de façon un petit peu simplifié et du coup qui
permet de l'ouvrir instantanément et de faire tourner je crois entre 100 et une fois plus vite
suivant les slides voilà les gens fout qu'on achète les verres mais ça va très bien parce que
justement ça me rappelle un truc qui a fait mon deuxième fils alors dans l'épisode précédent
je vous ai parlé de mon fils aîné qui est sur web gpu mon deuxième fils actuellement il est
Thésard Alinéria où il fait de la preuve formelle de protocoles cryptographiques voilà c'est trop
bien ça là sur sur mls le protocole de messagerie type signal et un défest tout le monde 2019 il a
fait une petite présentation sur brain fuck et alors quand tu dis tu vas faire un programme qui génère
des slides pour point lui en fait il voulait montrer l'exécution pas à pas d'un programme brain
fuck sur ces slides mais le pas à pas en brain fuck il n'a beaucoup d'épault en fait donc ça
faisait beaucoup de slide qu'est ce qu'il a fait c'est qu'il a fait un interprèteur brain fuck qui
génère des slides dans la tec et donc il avait je sais plus 150 slides tout avait été généré par son
interprèteur brain fuck d'accord je vois effectivement sacré projet et loi tu nous a caché les
calculs de pires en brain fun dans pour point parce que j'aime bien les aise au langues et brain
fuck en fait partie donc je codais un petit peu j'ai codé en un petit peu en brain fuck notamment
effectivement juste un petit programme qui calcule et j'ai également du coup j'ai fait des
twin machine pour point j'ai fait mon petit cpu et j'ai également un interprèteur brain fuck
et du coup j'ai pu faire tourner le calcul de pires dans brain fuck pour point
il y a des moments je me dis il faut qu'il s'arrête mais c'est quand même très rigolo
je trouve mais bientôt risque 5 et il est dans point tu ne fais un émulateur ris 5 en brain fuck
qui tourne le point et puis on est une ex de sud mais un jour tu feras tourner les nukes et ensuite
derrière dedans tu fais tourner un émulateur de non dedans ce que tu fais c'est qu'ensuite tu
fais tourner d'oom et du coup d'oom ron dans point j'ai beaucoup à essayer de faire tourner
un pseudo d'oom dans le point même je pense qu'il va falloir que je recole encore une fois
c'est du piton je vais au début mais il faut que j'y recole en rust pour avoir un minimum de
performance peut-être avec les vues d'ailleurs pour le baccadre je vais dire du web assemblée du
rust voilà tous les bons moquiers qu'il faut aujourd'hui du coup on va avoir d'oom qui tourne
dans un navigateur qui fait tourner power point qui fait tourner un cpu souris 5 qui c'est un jour
peut-être et du coup en parlant de rust et de alors en revenant sur des choses peut-être un petit
peu plus raisonnables dirons nous c'est les async traits qui ont été mergés dans le
compilateur rust et du coup éloi tu voulais nous en parler oui effectivement alors c'est peut-être
un peu plus technique mais j'aime beaucoup du coup rust j'ai découvert en tant à cléberclod
et maintenant je code quasiment plus qu'en rust et rust du coup à tout un système qui a
synchron et pour ceux qui connaissent rust a également un système de traits et c'est vous
avez peut-être déjà arrivé de vouloir créer une fin de marquer une fonction dans un trait comme étant
un synchron et là vous avez une jolie erreur de computation qui vous dit que ce n'est pas
supporté et d'utiliser plutôt une crate qui s'appelle async trait si je ne l'ai pas d'étude
c'était assez frustrant et dans certains cas globalement async trait marche plutôt bien mais
c'était pas l'idéal puisque c'est pas supporté directement par le compilateur et récemment il y a
trois semaines je crois à peu près le la poule request qui avec leur des branches sur
les async trait a été mergé donc c'est accessible à fois que c'est le accessible depuis longtemps
en nightly mais là ils ont vraiment finalisé la poule request et si je dis pas de bêtises je
suis pas familier avec le système de release de rust mais ça devrait être disponible du coup dans
la release 1.75 et il me semble qu'on est à la 1.73 actuellement donc si je dis pas de bêtises
identiques d'ici le 28 décembre donc la fin de l'année ça devrait être disponible sur le
compilateur stable de rust. C'est un beau cadeau de noël dis donc. C'est un vrai disant. Pour la nouvelle
ce serait parfait. Alors oui effectivement ça c'est un truc dans le... Alors il faut ce qu'il faut
savoir c'est que toute la partie async ronde de rust c'est encore en chantier en fait c'est déjà
ça marche très très bien on fait des trucs super avec mais effectivement il y a certaines
imitations qui fait que bah il y a des fois on veut faire un truc et puis bah non non ça
marche pas et le async trait alors c'est intéressant aussi parce que du coup avec le async trait ils
ont aussi travaillé sur la partie générateur qui est cette fois-ci uniquement dans nightly et il y a
des gens de l'équipe du langage qui commencent à discuter sur l'introduction de nouveaux mots clés
qui s'appellera yeld comme on trouve en petit ond pour faire des générateurs parce que d'ailleurs
de façon la mécanique de rust async elle est très très proche des générateurs vu que ça
transforme finalement le code en automates d'état avec la production de valeur successive donc
donc on n'est pas loin des générateurs donc c'est intéressant parce qu'en vrai que le langage
évolue pour se perfectionner quoi avec des fonctions intéressantes. Mais si ma mémoire bonne
yield est déjà un mot clé réservé du langage non ? C'est possible je sais plus. Mais c'est vrai
que c'est le fait d'amener ces bah ces différentes choses ça ça permet de rendre le langage plus
accessible et d'ajouter probablement que les générateurs vont d'ailleurs ajouter des fonctionnalités
nouvelles aussi au langage potentiellement sur la production d'iterateurs etc. Et bien si
si personne n'a quoi que ce soit ajouter sur les async traits on va pouvoir parler de bien
d'autres choses d'un autre langage cette fois ci plus bas niveau et dans le kernel linux c'est
le linux la nouvelle version la nouvelle release du kernel qui a été faite donc on fera un épisode
spécial kernel à un moment et dans la la v6.6 il y a du nouveau sur ebpf et en particulier sur ebpf il y
a un nouveau il y a une nouvelle version de l'aspect ebpf qui permet de faire des nouvelles
choses alors pour le moment c'est c'est des choses relativement basiques mais c'est des choses qui
étaient nécessaires. Typiquement c'est la possibilité d'avoir des des jumps conditionnels en 64 bits c'est
aussi la possibilité de faire des la version 32 bits de ces jumps conditionnels c'est aussi la
possibilité d'avoir des instructions sur des anti-assignés donc des calculs sur des modules
de l'eau des calculs sur des loads des stores des moves etc donc c'est un ensemble d'instructions
supplémentaires qui vont permettre de faire des nouvelles choses en particulier en 32 bits sur
sur du ebpf voilà donc ça rajoute un ensemble de fonctionnalités ça permet de faire beaucoup
de choses et aussi ça permet une grosse montée de version de llvm qui du coup passe en v18
alors qu'il est en v9 avant enfin la dépendance était en v9 et donc du coup le fait de monter en v18 va
porter aussi potentiellement des optimisations importantes au niveau du code bpf derrière
et il y a un comparatif qui est fait entre les les v1 à 3 avec potentiellement des aélus en 32 bits
ou pas sur les différentes versions et donc tester xilium qui est un outil de manipulation de réseau
qui est beaucoup utilisé dans cuvernet s comme backend réseau et donc c'est un système dans lequel
là il y a une comparaison des pailles des programmes en fonction du langage voilà en fonction de la
version plutôt de bpf donc ça rajoute beaucoup de choses côté côté bpf principalement
j'ai pas encore eu trop l'occasion de jouer avec le bpf mais c'est prévu que la cléa on utilise
un peu notamment pour soulager justement les niveaux de balanceurs
et c'est intéressant pour le jeu d'instruction
du coup moi je me disais mais pourquoi est ce qu'on fait pas du voisin sur ebpf
quand il est et j'ai fait une petite recherche rapide et j'ai vu il y a forcément quelqu'un qui a écrit
un traducteur des web assemblies vers ebpf c'est yetta nether standard à ce notre post x quoi
bon maintenant la question c'est est ce qu'on pourra faire tourner power point dans ebpf ça je
sais pas ça c'est alors alors alors alors alors si il faut être un petit je ne sais pas
il ya des projets il se pourrait qu'il y ait des projets de faire tourner enfin d'avoir des
power point compilables en wasm en tout cas du moins la partie gestion des slides etc
mais en parlant de wasm si le vin tu voulais nous parler de de techniques pour faire du rust
quand on aime bien le rust mais qu'on est obligé de bosser avec d'autres langages
c'est ça donc là je vais parler un petit peu de mon boulot donc je m'occupe quand j'ai dit des
librairies client sdk chez élastique donc tout ça est basé sur la génération de code donc on
a l'aspect qu'on n'a pas utilisé d'open API donc là j'ai tout une historique là dessus sur
pourquoi open API marche pas parce que l'élastique sort c'est trop compliqué en fait ça ça
simplement ça rend pas de l'open API et donc on a pris une approche différente notre
spec d'api on l'a défini en type script type script qui est quoi qui est un langage pour définir
des structures de données au-dessous de java script donc jason parfait et la génération de code
comme on part pas de l'ast brut de type script qui est un petit peu un petit peu rdu quand même
donc on a un model intermédiaire qui est beaucoup plus sur la définition de type uniquement limité
à ce dont on a besoin et notre génération de code par de là alors je vous ai dit open API
fonctionne pas mais pour autant les gens qui font la doc chez nous ils nous disent ouais mais on a
des tas d'outils qui partent de open API pour faire de la doc c'est super ensuite on peut avoir des
exemples interactifs et tout ça et là je me suis dit mais en fait open API pour la doc
c'est suffisant on peut pas capturer dans open API toute la finesse de ce qu'il y a dans la
pays elastic search pour générer des clients ergonomiques on supporte lui langage en plus donc
il faut vraiment avoir une information fine mais pour faire de la doc c'est très bien donc notre
schéma en fait on compare des typescript on a notre schéma intermédiaire de là on va
re-générer du open API donc notre chaîne de compilation du type script aujourd'hui était
écrit elle même en type script et je me suis dit finalement la conversion de notre schéma vers
du open API il y a beaucoup de pattern matching de case sur des variants des machins etc de faire
en type script ça marche ça va être chiant je me suis dit il me faut un langage qui s'est
fait du pattern matching correctement tu t'es dit scala c'est parti figure toi que j'ai quand
même un gros gros historique de scala mais je me suis dit c'est le demandant tous les devs de
la touche tout chanes scala ils vont prendre un fusil à pompe ils vont me dégommer donc je me suis
dit tiens si on faisait du jouet avec roste et puis je me suis dit mais comment est ce que je vais
faire pour en gros faire accepter ce truc roste dans cet environnement qui est basé sur une chaîne
de traitement en nod donc au début je me suis dit bon bah on va faire des libraires natives intégrées
dans notre machin etc mais je me suis dit il y en a qui sont sur linux sur max sur windows ça va être
bordel et puis après je me suis dit mais et bah semblis et du coup bah qu'est ce que j'ai fait
j'ai fait donc utiliser la la touche et le basemblie de rust qui est une pure merveille en gros on fait
juste wasm by engine en annotations sur les fonctions qu'on veut exposer au javascript on
compile son code rust avec un outil qui s'appelle wasm pack terminé on se retrouve avec un module
nod qui contient le javascript qui définit des fonctions qui fait la passerelle entre le wasm
et javascript on a même un fichier point d point et est ce qui contient les définitions de type
pour l'environnement à script on a le fichier wasm on le colle dans guide avec le reste ça
fichit source d'une certaine manière et puis terminé voilà et donc finalement ma conversion
de notre langage de schéma vers le open API je l'écodé en rust je me suis fait un grand plaisir
et le reste de l'équipe bah continue à utiliser l'environnement nod type script etc comme
comme le reste alors après je sais que des gens vont dire il est gentil lui mais bon il faut un
langage complètement alien au sein d'une au sein d'une touche qui est écrite en type script
qui de la maintenance il se trouve que dans l'équipe on est plusieurs à être assez excité par rust et
à vouloir commencer à jouer avec avec ça donc c'est l'intérêt d'être dans une équipe où
en gros on a des gens qui qui qui travaillent sur sur huit langages différents qui vont de php
à rust même du perle alors le perle on l'a abandonné quand même le client perle les plus
grand monde qui l'utilise c'est que du coup on a une certaine liberté d'expérimentation autour
des langages et on se dit bon bah là c'est quand même une fonction périphérique c'est pas c'est pas
le centre de notre notre pipeline de compilation de l'aspect des pays donc on va le faire en
rust et puis et puis on va voir quoi donc et je trouve que ça marche nickel alors au passage petit
astuce mon voisin au début il faisait 1 méga 4 pour des trucs qui fait en gros du passe plat entre un
gizon et un autre etc je vous ai un petit peu beaucoup donc j'ai commencé à faire du profiling pour
voir un peu ce qu'il y avait dedans et j'ai trouvé que la craite de reg exp elle bouffe un
méga elle fait un méga compilé en web assemblies donc dans le code il y avait un endroit où j'utilisais
une expression régulière donc j'ai recodé le truc à la main avec des substring des machins de
trucs comme ça parce que c'était un truc pas très compliqué et du coup je suis passé à 400 kilos
ce qui était quand même plus intéressant donc voilà donc c'est c'est intéressant parce que je me suis
dit moi mais web assemblies en fait c'est un putain de cheval de 3 pour arriver à mettre du reste
en peu partout quoi ça c'est donc voilà petite petite expérience et du coup j'ai des collègues
dans le reste d'élastique qui en gros certaines parties de l'élastique cloud notamment à l'origine
était intégralement en ce cas là et avec le passage à cubernatis bah il y a des bouts qui ont été
réécris et de plus en plus de bouts qui sont écris qui sont écrits en gros parce que malgré tout
l'écosystème les outils disponibles quand on commence à faire des opérateurs etc et alors
c'était vrai il y a deux ans maintenant ça évoluait mais ça s'est démocratisé oui
mais c'était plutôt plutôt du go donc déjà qu'on fait du scala vouloir donner de faire du go
clairement ils sont malheureux ah oui oui et donc là ils sont tous jaloux parce que j'ai réussi à
fourrer du reste dans mon projet mais d'ailleurs sur ça les sdk rust pour faire des opérateurs
cubes commence à bien se développer et rust est en train peut-être pas d'être le numéro 2 des
langages mais quasiment derrière go pour être pour être un challenger sur l'écriture d'opérateur
cube et le constat que je fais moi sur l'évolution de rust parce qu'à un moment en fait on mettait
avec go qui était dominant sur le gros sur le tout ce qui était lié au l'infrastructure cloud
l'évolution que je vois maintenant c'est que tout ce qui fait partie du contrôle plain reste beaucoup
heureuse en go par exemple parce que là on est très lié à du cube et trucs comme ça et finalement
la perte et les latences très régulière sont problématiques moindres alors que tout le data
plain en bois maintenant est en train de passer sur rust donc c'est une évolution intéressante
alors maintenant le rust à commencé à bien bouffer le data plain et je pense qu'il va
remonter dans le contrôle plain aussi à nous chez claveur c'est on est un peu dans ce côté là
avec un data plain en rust quasi exclusivement rust aujourd'hui et un contrôle plain fait en
cas là parce que parce que la programmation fonctionnelle c'est bien et que et surtout
aussi ça dépend des que historiquement c'est une boîte qui fait du java et qui est plutôt
orienté jvm donc forcément java ce cas là c'est une translation qui est logique ça marche bien
ensemble et donc on reste souhaitable même d'ailleurs on a beaucoup de restes d'équipe
trafic quasiment tout notre truc sont fait en reste mais côté contrôle plain c'est oui oui
d'accord c'est plutôt de la jvm quand tu as fait du scala et que tu commences à faire du rust
tu t'es content parce que tu trouves rapide très rapidement que oui clairement clairement
clairement sur la dessus à part deux trois détails c'est on s'y retrouve assez bien malheureusement
un des trucs est très pénible c'est qu'on ne peut pas étendre un trait enfin on ne peut pas
implémenter un trait sur une structure qui n'est pas dans la craite en question ça c'est pénible
ouais mais ça évite un petit peu les trucs bizarres qu'on a des fois avec les implicites qui
sortent de ses pas où en voilà oui mais les implicites sont une avération de l'histoire
de l'humanité il ne faut pas en parler mais ce qu'est ce qu'à la trois la dégager et c'est
très bien d'ailleurs tout à fait mais ce qu'à la trois permet je trouve une approche qui est
plutôt pas mal mais qui est très à ce qu'elle y est en fait de enfin je trouve de dire on peut
implémenter un trait sur pour une classe mais effectivement c'est vrai que que rust clairement
pour quelqu'un qui vient du monde fonctionnel ou du scala c'est on s'y perd pas et on est on est
très bien parce que c'est les mêmes la même logique ouais mais du coup en parlant de web
assemblée tu voulais aborder aussi la question de d'un garbage collector dans chrome alors ça fait
aussi la transition non seulement avec web assemblée mais aussi avec ce cas là qui tombe sur la gv
et qui est avec un gbc avec un garbage collector donc là il y a eu l'annonce donc une des évolutions
des extensions de votre assemblée qui est l'introduction des garbage collector maintenant est disponible
en chrome alors pourquoi c'est intéressant ça jusqu'à présent en web assemblée on voyait beaucoup
de rust parce que rust n'a pas de garbage collector les langages à garbage collector
compilé en voisin devait venir avec leur propre garbage collector dans le web assemblée qui
était générée ce qui ce qui représente un surcoût certain donc un overhead certain parce
qu'en gros ils embarquent toute la mécanique du garbage collector dans le fichier voisin qui fait
que ça devient gros plus le fait que ce garbage collector qui tourne dans le web assemblée n'a
aucune connaissance de l'environnement qui autour donc les optimisations qui peuvent être faites
sur l'utilisation de la mémoire les stratégies de déclenchement du garbage collector etc.
étaient très primitives parce qu'en gros on n'a pas une vision holistique globale de ce qui se
passe dans le processus donc il y a une extension garbage collector dans le web assemblée alors
qui façon intéressante va bien plus loin que le simple garbage collector parce que en gros
pour faire un garbage collector il faut pouvoir parcourir les liens qu'il y a entre les objets et
ces liens se font à travers des champs des objets donc en plus de la notion de garbage collector
ce truc là arrive avec des notions de déclaration de structure de façon à ce que un programme en
web assemblée puisse décrire une structure en disant voilà j'ai une structure à cet endroit là j'ai
un champ et ce champ là devrait être géré par le garbage collector donc c'est ce qui pas
mais ensuite au gc d'aller parcourir le lien entre objets pour savoir quels sont les objets vivants
quels sont les objets morts donc chose intéressante c'est que ça ça va ouvrir grand la porte web
assemblée à tous les langages garbage collector qu'on a aujourd'hui j'ai vu récemment d'ailleurs
cote lin que je crois commencer à faire des expérimentations et je crois qu'ils avaient un
garant pèvre deux fois deux sur du web assemblée cote lin entre la version avec un gage garbage
collector en résumé et celle qui qui se base sur le sur le garbage collector de la machine
haute tout ça pourquoi parce que parce que le garbage collector fait mieux son boulot en fait donc
c'est une évolution intéressante alors qui malheureusement je dirais fait que rust devient
moins le langage du web assemblée mais bon il va rester ça c'est évident mais surtout c'est que
ça ouvre la porte à beaucoup plus de choses en web assemblée et ça c'est ça c'est je pense que
c'est une bonne chose clairement clairement ça apporte ça apporte la possibilité de faire rentrer
des langages comme piton comme comme comme java script comme go comme ça comme plein d'autres
langages ça veut dire qu'on va peut-être pouvoir faire de la nestid du nestid web assemblée avec
du coup du web assemblée qui fait tourner du js qui fait tourner du js qui fait tourner du js et
de manière récursive ne le tente pas s'il te plaît je suis un petit peu cette cette feature là
parce que dans le cas du phase de cléver qui est encore sorti mais on veut en fait on a une
archécule unifiée et l'unification se fait par le wasm en gros tu pour tous les langages du moment
que vous pouvez le confiler en wasm donc rust marcherait bien c'est etc. tous les langages
confilés marchent bien go marche un peu près depuis quelques temps mais j'aimerais beaucoup
qu'on puisse supporter les langages à jvm et il y a des choses qui existent avec tvm où il y a des
stratégies qui existent mais c'est loin des tribuels et effectivement cette feature là permet
effectivement d'avoir un support qui est un bien meilleur pour ce genre de langage et j'adresse
ça à la fois avec joie et aussi avec un peu d'affrénation parce que on a notre propre wasm
et du coup il faut que les run time supportent ces features là pour pouvoir refaire tourner des wasm
qui l'utilisent la feature quand tu dis on a notre propre run time il a été développer l'interne
il est développé en interne ici il utilise des briques qui sont au point de source donc on n'a pas
tout refait on n'a pas réinventé la roue mais il y a pas mal de choses en fait qu'on a
redéveloppé pour les besoins de cléba vous êtes un peu fou chez cléba quand même ça
on a des projets intéressants on parle quand même de quelqu'un qui refait du power point
des cpu d'empower point donc refaire un run time wasm c'est le plus incroyable
on a des jeux incroyables qui touchent assez trop
effectivement ça c'est facile une fois que tu as fait du power point à ce niveau là
pour retrouver des spécialités dans certains de mes projets
mais mais wasm je trouve que aujourd'hui wasm va apporter un truc super intéressant c'est le
fait d'être une nouvelle interface qui n'est pas posée et qui on peut retrouver partout et qui
standardise des appels entre deux composants et ça peut aussi bien être un navigateur et un
worker dedans que un processus et son nôtre que un module carnel et le reste du carnel et
que un peu près n'importe quoi avec n'importe quoi et je trouve ça extrêmement intéressant comme
comme wasm peut devenir en fait finalement une targette de compilation qui permet d'avoir un
nouveau standard qui soit pas une archi posix qui soit pas une archi risque ou autre mais qui soit
quelque chose de portable et de supporter absolument partout alors là dessus il y avait
seulement hikes le gars qui a fait qui a fait docker qui avait tweeté il y a quelque temps
environ maintenant il avait dit un truc du style si web assembly avait existé au moment
que j'ai créé docker docker n'existerait pas oui et je trouve c'est donc déjà dans sa part
c'est pris de perspective intéressante mais mais il a raison au fond en fait c'est à dire que
finalement on remonte les notions d'isolation à un niveau différent alors après est ce qu'on
a les mêmes pertes exactement sur du wasm et sur du conteneur je ça va dépendre des use cases
je pense parce que et surtout la qualité du runtime au wasm qu'on a mais ça permet je pense
une composabilité bien supérieure en web assembly que ce qu'on peut avoir sur des conteneurs où
finalement on se retrouve au niveau du process et il faut remonter sur des rpcs des machins du réseau
etc. c'est d'ailleurs le virage pris par docker maintenant ils ont mis en avant le wb semblée
mais c'est vrai que c'est quelque chose d'assez fou et justement sur le côté conteneurisation
c'est à dire que si le si un jour on arrive à avoir web assembly vers lequel globalement 90%
des soft arrivent à compiler ça veut dire qu'on aura un système dans lequel n'importe quel système
capable de faire tourner web assemblée peut finalement derrière le runtime il peut très bien
reposer sur la virtualisation sur du conteneur sur ce qu'on veut on a un système de packaging
binaire et derrière on peut distribuer vers n'importe quel type d'infrastructure ce qui est ce
qui est une promesse assez alléchante j'ai beaucoup effectivement l'interface ça permet d'exprimer
notamment on revient un petit peu à la façon dont on peut faire rentrer du rust dans d'autres pipeline
là on a pris exemple du reste mais ça aurait pu finalement sur le package là il aurait pu être
écrit en c on peut le wasm ici permet l'interface avec d'autres langages et il me semble qu'il y
a une sa je n'ai pas encore très bien suivi mais la proposition des wasm component où ça
pousse encore plus loin la chose et là il veut le pouvoir faire combiner effectivement plusieurs
vous de wasm qui sont pas forcément qui viennent pas forcément des mêmes langages et pour
interfacer justement n'importe quel langage entre une bière avec n'importe quel langage et avoir
différents composants qui sont écrits en rust en c et en java etc qui parlent tous au sein d'inarchitecture
et d'ailleurs avec les composants web assemblés donc il y a un format idéal donc interface
definition language qui s'appelle wit alors wit ça veut dire web assembly interface le t je
sais pas et en gros les modules les composants les composants wasm viennent avec une description
de leur méthode qui exportent et de leurs attentes par rapport à la runtime autre on
finalement ce truc là déjà une espèce de de contrats de connexion entre composants
enfin entre composants et aussi avec le host en fait donc on arrive à une composabilité
encore une fois par rapport à du docker où toutes les toutes les interconnexions sont
font essentiellement par du raison enfin éventuellement sur la machine locale là on sera
vraiment in process en fait on fait de nos connexions directs et de la pelle fonction et
où du coup quelque part on décale le la problématique de on exprime ce qu'on souhaite obtenir c
à dire une interface entre des systèmes et derrière le runtime va gérer lui même de
de d'interconnecter tout le monde et potentiellement peut faire des optimisations ou pas et lui gg
d'ailleurs il pourrait même faire la distribution d'ailleurs c'est ça exactement il pourrait
distribuer c'est je pensais exactement à ça c'est à dire en fait finalement quelque part
quasiment en fait le rêve d'un modèle acteur c'est à dire le fait de dire on a des
bout de code dans plein langage différent on va les poser on peut les les swap et les mettre
un peu partout et le runtime en dessous s'occupe de distribuer d'envoyer les messages aux
bons endroits et ainsi de suite un exemple dans il y a une foule d'extensions qui sont
un cours de développement sur sur wasm et notamment il y en a une qui est intéressante
qui est wasi wasi nn donc c'est les neural networks en gros c'est tout ce qui est voilà c'est
d'accord et compagnie quoi et on pourrait très bien imaginer par exemple avoir une application
qui est architecturée en composant ou un dirait moi j'ai besoin de wasm proxy donc quelque
chose on va mettre plutôt sur les serveurs proxy front end parce qu'il fait de la logique
de routage de recat http etc mais que malgré tout dans l'application globale ce truc là
se connecte avec un autre service qui lui ça s'appuie sur du wasi nn donc automatiquement
vous pouvez imaginer que le système ira allouer physiquement la partie wasi nn sur une machine
qui a un gros gpu alors que celle qui dépend de l'interface wasm proxy elle sera sur des
serveurs front end connecté avec posé l'internet on peut imaginer exactement ouais c'est une
promesse qui est qui est assez incroyable et qui finalement a la potentielle de un peu révolutionner
la manière dont on fait de la du moins de l'opérationnel et de la gestion d'infrastructure
et donc comment on développe en parallèle de ça alors les 6 admins de l'all school vont
dire mais les où ma vm mais bon il y aura toujours besoin de vm en dessous pour faire tomber
tout ça tout à fait bien sûr nécessairement mais du coup en parlant de du fait d'avoir
des 6 admins qui soient contents et de manière générale de rendre les gens contents c'est
comment on certifie rust et comment on s'assure que dans des systèmes critiques on ne rend
pas que les 6 admins content mais aussi les juristes et donc et donc c'est le rust certifié
pour les systèmes critiques et c'est si le vin qui va nous en parler c'est pas tellement un problème
de juriste c'est plutôt un problème de sécurité parce que comme on en parlait restait beaucoup
utilisé dans les systèmes embarqués maintenant et alors c'est une révolution pour les systèmes
embarqués parce que les systèmes embarqués c'est du c du c plus plus donc avec toutes les
tous les problèmes qui vont avec sachant que quand tu fais quand tu déréférences un point
de vue lancé on sait dans un truc qui est embarqué et battent un système il est craché
les briquets c'est fini voilà donc c'est une problématique qui est qui est super super
importante alors pour l'un petit histoire moi au début de ma carrière j'ai bossé ici à
l'hôse une boîte s'appelait alcatel espace qui fabriquait des satellites enfin qui fabrique
toujours maintenant s'appelle thales où je travaillais sur les centres de contrôle
satellite donc des salles de contrôle avec des écrans partout là qu'on voit et donc bah alors
c'était des trucs qui étaient au sol mais malgré tout ça comment le satellite on ne
faut pas que ça crache si si le satellite on lui envoie une commande lui lisant tu te mets
tourner en spirale c'est fini il est perdu quoi donc on utilisait un langage qui s'appelle
hadda qui est toujours extrêmement utilisé dans les dans les systèmes critiques alors c'est
probablement de ce langage là que vient mon amour pour les langages tipez en hadda comme ça
compile quand le compilateur est content on est à peu près sûr que ça fonctionne sauf si on a
fait des erreurs de logique et quand moi j'ai découvert roste je me suis dit waouh c'est trop
bien le compilateur il me fait chier jusqu'à comment pas de soi correct c'est comme en hadda donc
j'ai retrouvé finalement cette cette tranquillité d'esprit parce que le compilateur en fait me
protège contre moi même alors j'explique ça à des gens qui font du javascript ou du php
ils comprennent pas ce que je dis en fait c'est mais en fait moi je ne me fais pas confiance je ne
me fais pas confiance et le compilateur c'est son taf il sait le faire bref donc pour revenir à roste
en gros roste a commencé à émerger dans les systèmes embarqués et dès qu'on s'attaque à des
systèmes qui sont critiques donc ça peut être dans les transports les systèmes militaires l'énergie
et trucs comme ça en gros il faut que les logiciels soient certifiés donc certifié ça veut dire
qu'on certifie non seulement que le logiciel est correct mais aussi que toute la chaîne qui a
servi à le générer est elle aussi balidée comme quoi le code source d'origine va générer un code
machine qui lui est correct donc c'est souvent des processus qui sont très très lourds parce qu'il
faut tout vérifier tout balider tout tester il ya des bouquins de test comme ça etc et ça marche
que pour une version voilà ça marche que pour une version et donc il y a une boîte une boîte
allemande je crois ferros systèmes qui sont vraiment des grands grands spécialistes de roast
un particulier du roste embarqué qui s'est dit on va faire un partenariat avec une boîte s'appelle
adacor alors adacor il ya ada dans le nom c'est pas pour rien c'est une boîte qui vient du monde de
ada et qui a beaucoup travaillé sur la certification justement de toutes les chaînes de compilation
ada mais aussi c et c plus plus pour l'environnement critique ils se sont mis ensemble pour en gros
prendre une version du compilateur roast tac ils ont dit celle là on va la certifier et ils sont
arrivés en fait à une certification alors faudra avoir l'article il y a tout un tas de choses
qui sont listées mais en particulier ça veut dire que maintenant roast est certifié pour l'automobile
pour les transports et pour certains domaines des applications énergétiques alors ça l'air
de rien mais c'est c'est énorme et je sais que des boîtes comme notamment mercedez et renaut aussi
ils embauchent des tas de gens qui font du roast pour faire l'embarquer donc on disait que roast
est en train de grignoter le data plane côté cloud et maintenant il va grignoter le clc
plus plus qu'on t'est embarqué effectivement ce qui apporte un truc intéressant aussi c'est que
roast est l'un des un langage qui dans le dans le level a une expressivité qui est assez impressionnante
oui parce que tu as des constructions de très haut niveau mais qui qui disparaissent à la
compilation donc là c'est les notions de zéro cost abstraction en fait donc tu peux vraiment
avoir quelque chose qui est très très fortement tippé avec beaucoup de choses qui sont en même
ferme de la programmation par les types dans certains limites évidemment mais tu peux exprimer
beaucoup de choses moi j'utilise beaucoup le ce qu'on appelle le type state programming en gros qui
te quitte qui te qui permet d'avoir des états de ta donnée qui rendent certaines usages impossibles
expliquement quand on commence à coder un décoder de protocoles finalement un protocole il ya un
en tête il ya des choses dans l'entête machin et qui tapis on progresse dans le dans le dans le message
ben finalement on peut porter un état sur un type générique sur un paramètre générique du type
et en gros de rendre certaines opérations accessibles que quand on est sur le bon paramètre
générique du type qui finalement définit un état mais qui cette fois ci définit à la compilation
et non pas au runtime et tout ça disparaît à la compilation donc finalement un logiciel qui est
extrêmement robuste tout est vérifié à la compilation et toutes ces abstractions là disparaissent
au runtime ce qui pour l'embarquer ce qui fait que même le développement embarqué peut avoir des
abstractions de l'histoire j'avais fait ma présentation sur du rust embarqué j'avais fait
donc un petit loupiote qui clignote piloté par une une cd photo électrique je l'avais codé en rust
et en arduino mon code en rust faisait je crois 172 octets en arduino et on faisait 600 donc l'arduino
c'est du c en fait et et pourtant mon code en rust ne pouvait pas ne pas marcher parce que tout était
vérifié à la compilation donc ça je trouve c'est des prouesses qui sont qui sont assez intéressantes
sur les capacités de langage et c'est vrai que sur le système de type justement ça amène à ce que
du coup des des personnes qui font du développement embarqué se retrouvent à pouvoir utiliser à avoir
accès à la palette d'outils que permet le le les langages de haut niveau habituellement dans des
langages de plus bas niveau et donc de rendre les logiciels à la fois plus robustes d'un point de vue
code compilation etc mémoire et tout ce que le rust apporte par rapport au c mais même plus robuste
d'un point de vue logique puisque du coup il y a des structures qui permettent de de représenter
des logiques métiers via des systèmes de type et donc avoir une une plus grande robustesse aussi
là dessus et ce qui est je pense que aussi dans l'embarqué on va avoir une espèce de lutte de
leur l'aurier dans la maîtrise du langage c pour faire des trucs qui fonctionnent et les nouveaux
arrivants qui diront tous les trucs là avec rust on n'a même plus supposé la question donc ça je
pense que dans l'embarqué plus que dans les autres domaines où arrive rust parce qu'on est déjà
habitué à des langages fortement type et il va y avoir une espèce de combat entre les anciens
et les nouveaux sachant qu'anciens nouveaux pas forcément c'est pas forcément lié à l'âge moi je
considère un nouveau là dedans en disant allez virer moi tout se mernir là ça ça passait autre
chose mais qu'un peu la même chose qu'on a vu à des degrés et moindre mais dans le carnet de linux
qu'on reste à commencer à arriver où ça s'est anglais un peu des fois de dire non mais c'est
très bien il n'y a pas besoin d'ailleurs sur sujet là si on revient à go ropike le créateur de
go en fait initialement avec crée ce langage pour remplacer ses plus plus chez google et il y a un
article qu'il avait écrit il expliquait qu'en fait ça n'a pas pris du tout auprès des développeurs
c'est plus plus de google parce que alors il analyse ça sous la c'est plutôt les développeurs
piton rubis etc qu'on était très content de trouver un langage relativement expressif suffisamment
type et très performant pour remplacer pour remplacer leur langage de script et la façon dont
il l'analyse c'est que finalement les développeurs c'est plus plus qu'ont tellement d'efforts à faire
pour acquérir la maîtrise du langage que quand tu leur dis finalement tout ce que t'as appris et
toute la difficulté que tu as eu pour maîtriser le langage tu peux l'oublier et là d'un seul coup
finalement leur univers s'effondre donc ils deviennent un peu les quelques sortes les gardiens du
temps de la complexité qu'ils ont réussi à acquérir et à maîtriser parce que parce qu'il y a un
remet en cause beaucoup de beaucoup de choses quoi
oui c'est toujours la complexité du changement surtout en informatique où où le gatekeeping est
quand même assez présent dans certains domaines on est typiquement là dedans
mais du coup sans parler de gatekeeping mais on va parler de rust toujours et en particulier
d'amélioration des choses puisque rust est un langage qui en plus de bazar des le c le c
plus plus et autres langages bazar d'aussi un paquet de vieux logiciels écréancés les
corutiles etc et là on parle d'un outil qui permet de lire des logs de manière en couleur
tout simplement colorisé ouais alors aujourd'hui je parle de un petit chel qui s'appelle tails spin
l'idée c'est que c'est un petit chel qui finalement ça ne remplace pas tout ce qui est en dessous c'est
quand même l'es qui est utilisé en dessous mais en fait c'est un petit logiciel qui permet d'ouvrir
un fichier de log donc ça nous est toujours arrivé tout s'arriver en fait voilà je peux vous
produisir access log vous voulez regarder le filtré sauf que bah généralement c'est en or
et blanc c'est pas très joli là l'avantage c'est que ça va ajouter toute une colorisation
syntaxique ça va permettre par exemple voilà si on a plusieurs foliems chaine de caractère de
beaucoup mieux naviguer dans un dans un fichier de log ça va être capable aussi donner des couleurs
voilà sur si on a du debug qui est activé les warne les debug tout ça ça se base aussi sur
des comment ça parle c'est aussi capable de avec des regs x de sélectionner les dates les
adresses s'y plait fin toutes les tout tout ce qui peut être vraiment intéressant aussi dans des logs
et moi j'ai commencé à l'utiliser notamment quand je quand je dois manipuler des access log
notamment des fois on fait des petites enquêtes de sécurité des choses comme ça et en fait
bah c'est assez pratique ça permet vraiment de d'avoir beaucoup plus de lisibilité quand on
parcourt un grand fichier parce que voilà quand on parcourt des milliers de lignes quand on a coup d'oeil
on se rend compte qu'une chaîne de caractère est systématiquement la même c'est très plaisant
voilà c'est vraiment un petit logiciel mais c'est très sympa et c'est écrit évidemment en ruste
donc ça va avec le thème un peu du un peu le thème d'aujourd'hui je sais pas si vous connaissiez
alors c'est marrant parce que je devais passer sur twitter et la réponse au tweet il y a un gars qui
a dit il le distri même pas il ne distri plus même pas sous forme binaire il faut le compiler ça
bouffe un giga cinq de sur mon disque c'est voilà et donc là t'as envie de dire écoute coco au lieu de te
plaindre sur twitter tu vas tu vas ouvrir un issue sur le repos github et puis voilà quoi ça c'est
ou même tu vas contribuer à un patch sur la chaîne de ci pour pour générer des exécutifs
natifs ça c'est exactement ça c'est c'est twitter rapide
puis si il utilise harch il pourrait il pourrait publier dans les dépos hors version binaire
très clairement contribuer exactement exactement mais paradoxalement je viens de regarder et le
projet n'utilise pas de libre de parsing n'utilise même pas triciteur ou autre donc je me demande
quelle quelle technologie est utilisée pour aller c'est peut-être les je pense que c'est
ah ouais non j'allais dire bah ça utilise les sans sous mais c'est non c'est juste pour la partie
scroll church parce que tu peux faire des recherches mais pour c'est peut-être quelqu'un
qui a augmenté les expressions régulières avec du power point compilé en x5 interpréter
au bas semblée on sait pas et moi c'est toi telle spin
un petit peu de un petit peu de c'est vu un peu de râme je pense j'ai faim je suis bien
coulore mais non c'est pas moi alors il y a bien des gens qui font des si elle aille en java
alors là si tu utilises graal vm ça marche très bien si on veut faire des si elle aille
en en java donc déjà faut utiliser le graal vm faut pas lancer une gvm une grosse gvm sinon ça
s'arrame et puis il y a cette petite librairie que ça fait picocli qui est très similaire à clap
la version propre macro de clap c'est à dire qu'on définit juste des annotations pour définir
ça si elle est et c'est magnifique c'est super facile alors après quand je vois les gens qui
disent en go ouais c'est super il ya cobra c'est vachement bien pour faire des si elle aille et
tout ça quand je regarde le code du de cobra je dis non c'est bon j'en ai bouchou il est longtemps
j'en ai plus quoi ça c'est ouais mais c'est vrai graal vm pareil apporte énormément là dessus
pour faire des pour faire du codé en java développé en java ou coteline ou en skada et faire des choses
toutes petites qui prennent qui prennent peu de place mais qui il lance pas toute une gvm par contre
la convience graal vm c'est que la production de l'exécutable il faut quand même avoir une bonne
machine et du temps clairement clairement clairement mais je me souviens avoir fait un test à une époque
et quarkus c'était à l'époque où c'était la grande mode de quarkus qui tournait sur graal vm et
129 mecs de rames et ça tenait à consommer rien en mémoire en plus et ça tenait je crois que ça
avait bien tenu les mille connexions concurrentes c'est vraiment bien bien fait comme comme technologie
et dans la gvm aussi maintenant il y a l'arrivée des virtuels frais qui qui change la donne pour
tout ce qui est exécution parallèle donc ça c'est un ça c'est l'oom ça apporte énormément aussi
ça c'est sûr bon sur ce c'est le retour du choix de la musique le dé et le dé du coup à nouveau un
guillaume de 1 à 5 et lois de 6 à 10 si le 21 à 15 et moi même de 16 à 20 on va donc voir que
ça donne et c'est un 2 c'est moi c'est un 2 on n'est pas loin de l'échec critique ça c'est ça c'est
à cause des jeux de rôle ça alors moi je vous propose d'écouter man et skin donc c'est un groupe
qui fait notamment du rock qui est italien qui commence à gagner un peu en popularité et
j'ai bien aimé une de l'ordinaire titres qui s'appelle hony et je crois que c'était le comment
s'appelle je crois que cette va être la musique bonus de leur dernier album moi j'ai bien aimé donc
je vous recommande d'aller écouter ça tout simplement et bien c'est top c'est man skin qui a
gagné le revision il ya deux ans je crois ouais ouais ouais c'est le cas de gagner avec begging rise
et fait une belle reprise avec pas mal d'énergie et puis bon j'ai vu d'autres histoires aux
alentours qu'on fait qu'on a beaucoup parlé exactement c'est c'est c'est c'est là qu'on fait un geste
un petit peu bizarre on s'est demandé si c'est ça c'était pas un petit petit sniff sur la
soirée sur la salle quoi sur la salle mais exactement exactement ouais bien merci à tous et à
toutes les personnes qui sont sur youtube mettent des likes des commentaires abonnez vous
mettez la cloche tout ça tout ça vous connaissez et du coup au revoir à tous et on se retrouve
une prochaine fois pour la suite des massies ciao ciao salut
Les infos glanées
CleverCloud
Tags
Invitation pour l’épisode #100 en live sur Twicth depuis le Palace de Nantes