Au menu ce mois-ci :
📠✨ Uncovering the Seams in Mainframes for Incremental Modernisation
🛒 C’est la fin d’Amazon Fresh et de son paiement “Just Walk Out”
powered by AI📡 Thoughtworks Technology Radar - le volume 30 est sorti !
📝📐[Auto-promo] Diagrammes d'architecture 'as-code' avec C4Model : comment ça marche ?
📝📐Build abstractions, not illusions (Gregor Hohpe)
🧠🎥🎤 Microsoft VASA-1 : ces personnes qui parlent n’existent (toujours) pas
🔍 A commentary on (re)defining observability
😵 A decade and a half of instability: The history of Google messaging apps
🎴🌔Grafana x la lune x le Japon
🦠️☣️What we know about the xz Utils backdoor that almost infected the world
🎁 Bonus links
📠✨ Uncovering the Seams in Mainframes for Incremental Modernisation
Dans ma carrière, je suis intervenu sur 2 projets qui avaient l’ambition de “sortir du mainframe”.
C’est un sacré défi de refactorer une base de millions de lignes de code initiée il y a près d’un demi-siècle, où la connaissance métier est (presque totalement) perdue, où les évolutions sont difficiles à réaliser, où les incidents sont nombreux, et la compétence technique sur le marché est de plus en plus rare (et donc chère)
Thoughtworks nous propose un retour d’expérience sur l’accompagnement d’un de leurs clients pour sortir du mainframe: on parle ici de 7 millions de lignes de code accumulées pendant 40 ans à migrer vers le Cloud.
#ArchitectureModernization #DualRun #DarkLaunching #CanaryRelease #LegacySeam
🛒 C’est la fin d’Amazon Fresh et de son paiement “Just Walk Out” powered by AI
🎥 C’est la fin d’Amazon Fresh et de son paiement “Just Walk Out”, avec une centaine de caméras par magasin pour détecter les produits pris en rayon par chaque client et effectuer automatiquement le paiement à la sortie
📉Manifestement, Amazon n’a jamais réussi à construire un modèle de computer vision suffisamment satisfaisant. Et le nombre d’annotateurs qui ne faisait que croître (presque) linéairement avec le nombre de transactions n’a pas aidé 📈
L’article qui suit mentionne un pic atteint de 1000 annotateurs localisés en Inde en 2022, qui ne faisaient pas que des annotations mais aussi du rattrapage sur les erreurs commises par le modèle … au point de remplacer manuellement le modèle en fin de compte
#AI #Amazon #FakeItTillYouStopIt #Toil #AnnotatorPool #Shopping #BuyFirstPayMaybe #MechanicalTurk
📡 Thoughtworks Technology Radar - vol. 30
La 30e édition du Tech radar bi-annuel de Thoughtworks est paru ce mois-ci
C’est un radar que j’ai pris l’habitude de consulter pour
la variété des sujets couverts (logiciel, ops, IA, …),
l’évolution des tendances affichées
Une mention Hold | Assess | Trial | Adopt appliquées à des Techniques, Tools, Platforms ou Languages & Frameworks
et la contextualisation de ces tendances dans des blips.
Les 45 pages de PDF se balaient assez vite, voici les thèmes affichés dans les premières pages :
Open-ish source licenses
Ce qui m’évoque nécessairement le récent rachat d’HashiCorp par IBM
Ou le changement de licence soudain de Redis le mois dernier
AI-assisted software development teams
Emerging architecture patterns for LLMs
Dragging PRs closer to proper CI
Et voici ce qui m’a marqué en lisant ce radar, en vrac :
J’ai trouvé ce radar très marqué IA, le volet des techniques parle beaucoup de la place que prennent (prendront ?) les LLMs et la GenAI dans le travail de développeur et d’ops
Ceux qui souffrent de LLM fatigue apprécieront de voir en statut Hold des items tels que
Overenthusiastic LLM use
ou encore Rush to fine-tune LLMs
CloudEvents passe (sans surprise) en Adopt
C’est intriguant de voir les RAG passer si vite de Trial à Adopt, en l’espace d’1 an
Les RAG, c’est la hype du moment, mais dans le même temps ce passage en Adopt témoigne d’une certaine maturité de la technique
Intrigué aussi de voir que Pulumi est toujours en Trial depuis 2021 malgré la maturité que le produit a pris ces dernières années.
Et vous, qu’est-ce qui vous a marqué dans cette édition ?
#TechRadar #Thoughtworks #AI #LLM #OpenSource #InfrastructureAsCode
📝📐[Auto-promo] Diagrammes d'architecture 'as-code' avec C4Model : comment ça marche ?
Il y a quelques années, j'ai découvert le C4 Model au détour d'un projet sur lequel je suis intervenu
💡 Si de prime abord, je trouvais l'idée de documenter des diagrammes d'architecture avec du code et non pas des slides farfelu, j'y ai vite trouvé des avantages en termes de collaboration et de versionning, et je m'en sers souvent désormais, peu importe ma casquette projet : développeur, ops, architecte, data* …
😵 Quand j'ai voulu en faire sur mon projet suivant, j'étais surpris : il y a plusieurs outils qui existent pour en faire, et je ne savais pas lequel utiliser
Du coup, j'en ai testé quelques-uns et je vous partage ce que j'en ai tiré dans ces 2 articles que j’ai rédigé sur le blog d’OCTO Technology, si cela peut vous donner envie de tenter l'expérience diagrams-as-code et vous aider à mettre le pied à l'étrier 🐴
📝📐Diagrammes d'architecture as-code avec C4Model : comment ça marche ? (partie 1)
📝📐Diagrammes d'architecture as-code avec C4 model : dans la pratique (partie 2)
🧰 #LivingDocumentation #Structurizr #C4PlantUML #MermaidJS 🧜♀️
📝📐Build abstractions, not Illusions
Ce mois-ci, j’ai enfin pris le temps de regarder ce talk de Gregor Hohpe, qu’il a joué plusieurs fois cette année d’ailleurs, intitulé avec une très belle punchline : Build abstractions, not Illusions.
Un titre qui m’évoque nécessairement la punchline de Sandi Metz : prefer duplication over the wrong abstraction.
C’est un talk assez haut-niveau qui traite :
de ce qu’est une “bonne” abstraction, une “mauvaise” abstraction, une fuite d’abstraction (leaky),
On peut résoudre tous les problèmes d’informatique en ajoutant un niveau d’abstraction … sauf le problème d’avoir trop d’abstractions ! — David Wheeler
d’architecture, d’abstractions et de construction de plateformes dans le cloud (mais pas que)
le tout avec analogies de la vraie vie (prises électrique, monde de l’automobile, …)
#Architecture #Abstractions #Illusions #Platform #Engineering
🧠🎥👁👄👁🎤 Microsoft VASA-1 : ces personnes qui parlent n’existent (toujours) pas
En 2018, Nvidia proposait StyleGAN : un Generative Adversarial Network capable de générer des visages de personnes qui n’existent pas
Il y a 2 mois (février 2024), Alibaba frappait fort en proposant à son tour EMO (Emote Portrait Alive), un modèle de diffusion capable de générer une vidéo à partir d’une seule image de référence (d’une personne qui existe, ou non) et d’un fichier audio
![url_upload_662279345ec60.mp4 [video-to-gif output image] url_upload_662279345ec60.mp4 [video-to-gif output image]](https://substackcdn.com/image/fetch/$s_!l0WI!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccb9fbeb-1a31-478c-9c7f-034b64b6a2f9_320x180.gif)
C’est désormais au tour de Microsoft de proposer son nouveau modèle : VASA-1 (Visual Affective Skills) qui revendique, toujours avec une seule image et un fichier audio en entrée : plus de débit vidéo, plus de FPS, plus de réalisme, plus de contrôle aussi sur la génération (orientation du regard, du visage, choix des expressions, …)
![url_upload_662278a11bdb0.mp4 [video-to-gif output image] url_upload_662278a11bdb0.mp4 [video-to-gif output image]](https://substackcdn.com/image/fetch/$s_!jXct!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86f12e67-5e99-4086-a15d-a03e744db706_600x150.gif)
🧑🎤🎤 Avec ça, il y a de quoi faire rapper Mona Lisa, mais il y a aussi de quoi créer des deep fakes de plus en plus difficile à discerner de la réalité™️ … en tout cas, Microsoft en est conscient (voir la fin du lien qui suit sur VASA-1, partie “Risks and responsible AI considerations”)
🧠🎥👁👄👁🎤 VASA-1: Lifelike Audio-Driven Talking Faces Generated in Real Time (Microsoft)
#GAN #diffusionModel #image2Video #audio2Video #lifelike #lipSync #holisticFacialDynamics #DisentangledFaceLatentSpace #AnneHathawayDidItBetter
🔍 A commentary on (re)defining observability
Cela fait quelques mois que j’ai commencé une lecture collaborative du livre Observability Engineering avec des collègues chez OCTO. Ce livre est une bonne référence pour ceux désirant de comprendre les (fameuses) différences entre monitoring et observabilité
Pour poser une définition de l’observabilité, ce livre repart de fondamentaux théoriques en citant Rudolf Kalman (aux filtres éponymes) qui disait déjà en 1960 :
In control theory, observability is defined as a measure of how well internal states of a system can be inferred from knowledge of its external outputs1
Les auteurs proposent ensuite leur définition :
Our definition of “observability” for software systems is a measure of how well you can understand and explain any state your system can get into, no matter how novel or bizarre … without shipping any new custom code to handle it2
Pour rebondir sur ces définitions, je suis tombé ce mois-ci sur un poste assez intéressant d’Hazel Weakly qui partage ses frustrations sur la définition originale de l’observabilité de Kalman et qui propose la sienne dans ce court essai Redefining Observability sur son blog personnel
Observability is the process through which one develops the ability to ask meaningful questions, get useful answers, and act effectively on what you learn3
Une définition qui suscite de l’intérêt puisque cet article a eu droit à une réponse sous la forme d’un autre article, sur le blog personnel de Fred Hebert qui travaille chez Honeycomb, une solution d’observabilité
#Observability #Definition #MeaningfulQuestions #UsefulAnswers #SocioTechnicalSystems
😵 A decade and a half of instability: The history of Google messaging apps
Ce mois-ci, j’ai lu le dernier livre de Gergely Orosz : The Software Engineer’s Guidebook. Un livre fort intéressant qui aborde des sujets tels que :
que signifie faire carrière dans le monde de l’informatique,
en quoi consiste l’engineering management,
des différences entre software developer et software engineer,
…
Il aborde notamment le travers qu’ont certaines Big Tech Companies à donner dans le promotion-driven development : c’est-à-dire conditionner une promotion par le développement d’une solution non triviale impliquant la coordination de plusieurs équipes.
On créé alors un cadre où on s’intéresse moins à l’enjeu business ou l’expérience utilisateur et plus à faire la course au développement de la solution la plus complexe pour faire ses preuves. On élude la question du build vs buy, on enchaîne les MVPs et leur mise à mort, idéalement quand les utilisateurs ont commencé à s’habituer au produit 👹
Pour illustrer son propos, l’auteur cite cet article en référence : A decade and a half of instability: The history of Google messaging apps qui décrit comment Google s’est retrouvé à développer … 20 produits de messagerie différents, souvent en parallèle, sur une période de 16 ans 🤯
🧑🦳 Un article avec des captures d’écran qui ne nous rajeunissent pas, qui retrace l’histoire des applications de messagerie de Google et de certains protocoles de communications
📜 A decade and a half of instability: The history of Google messaging apps (Ron Amadeo, ArsTechnica)
#Google #MessagingApps #PromotionDrivenDevelopment #CustomBuild #CustomRebuild #BuildVsBuy #AccidentalComplexity #MVP #XMPP #KilledByGoogle
🎴🌔Grafana x la lune x le Japon
Encore de l’observabilité ici : ce mois-ci s’est tenu la GrafanaCon 2024 à Londres. Le replay n’est pas encore totalement disponible sur Youtube au moment d'écrire ces lignes (edit: elles le sont désormais), mais j’ai assez hâte de voir le talk associé à cet article qui explique comment l’agence spatiale japonaise s’est servi de Grafana pour monitorer SLIM (Smart Lander for Investigating Moon), un appareil envoyé sur la lune !

🗺🔍Si on peut monitorer des appareils envoyés sur la lune avec Grafana, ça devrait suffire pour monitorer nos serveurs backend sur Terre, non ? :)
#Observability #Grafana #Conference #OpenSource #SLIM #Japan #Space #Moon #InfluxDB #Python
🦠️☣️What we know about the xz Utils backdoor that almost infected the world
Début avril, un salarié de Microsoft découvrait la faille “xz Utils” (de son petit nom technique CVE-2024-3094) utilisée comme backdoor dans les communications en SSH
C’est une faille de sécurité intéressante sous plusieurs aspects :
sa criticité et son échelle : score CVSS de 10, sur une librairie bas-niveau utilisée par … presque tous les appareils connectés à un réseau sur la planète,
son origine : c’est une attaque par supply-chain, le code malicieux à été introduit manifestement volontairement dans une pull request sur un repo open-source,
sa découverte : le développeur réalisait des benchmarks qu’il trouvait un peu long sur une base de données, quand soudain …
C’est une faille assez complexe à expliquer comme à exploiter, et je n’ai pas la prétention de pouvoir la résumer simplement ici, voici donc un article et une infographie qui m’ont permis de mieux la comprendre :

#XZUtils #SSH #Backdoor #Security #CVSS10 #SupplyChain
🎁 Bonus links
Encore plus de veille, pour les plus impatients :)
🗓⚒️🧠 Le prochain Meetup Crafting Datascience aura lieu le 25 juin à Paris !
📝🧠 2024 AI Index Report (Stanford)
📝🧠 Leave no context behind: Efficient infinite context transformers with infini-attention (Google)
🎥🧠 Debunking Devin: "First AI Software Engineer" Upwork lie exposed! (Internet of Bugs, Youtube)
Et vous, vous avez lu quoi ce mois-ci ?
@ dans 1 mois 👋