Revue de presse - Aout 2026

Une personne assise en tailleur travaille devant un bureau en bois rempli de livres, de plantes et d’un écran, avec une vue nocturne sur une ville futuriste illuminée, tandis qu’un panda roux dort paisiblement au premier plan et un petit robot l’observe, le tout baigné d’une lumière chaude et automnale.

Frontend🔗

docs: add v23 release and change to yearly release cycle by thesmiler · Pull Request #69817 · angular/angular · GitHub🔗

#Angular #Frontend

La version 22 d'Angular est sortie début juin 2026, la version 23 sortira en juin 2027. À partir de maintenant il y aura 1 seule version majeure d'Angular chaque année, suivi de 4 à 6 versions mineures.

Allonger le cycle de release va permettre à l'équipe Angular d'avoir plus de temps pour développer certaines fonctionnalités tout en permettant aux utilisateurs d'Angular de moins subir les breaking changes aussi souvent (quand bien même c'était pas vraiment un sujet à mon sens, vu que le CLI encaisse presque tous les breaking-changes tout en ayant un framework rétro compatible très fortement donc on était même pas obligé de basculer).

Je pense que l'effet secondaire qu'on risque d'observer c'est que certains projets vont mettre encore plus de temps à faire les migrations majeures par contre…

GitHub - tokio-rs/topcoat: A batteries-included framework for building web apps · GitHub🔗

#Rust #Web #Frontend #Backend

Des frameworks web fullstack y'en à la pelle. Là je retrouve plein de bonnes idées à mon sens :

  • c'est basé sur Tokio (LA lib rust la plus puissante pour gérer de l'asynchrone en Rust, pile le truc le plus utile pour faire un moteur de serveur web) ;
  • y'a du templating pseudo-JSX mais compilé strictement par le compilateur Rust ;
  • y'a un système de Signal ;
  • SSR par défaut sauf si on utilise des éléments de réactivité ;
  • compilation en JavaScript au besoin des bribes de templates ;
  • basé sur des annotations (#[component], #[page("/")], #[tokio::main] par exemples) ;
  • bundling automatique des assets ;

On sent des inspirations prises à droite et à gauche pour construire Topcoat ! Par contre c'est encore indiqué comme :

Early-stage and experimental. Expect breaking changes.

Donc il faut suivre. On peut jouer avec, mais attention si vous voulez aller en production !

The Website Specification🔗

#Web #Frontend

A platform-agnostic specification of all the technical details that matter for a website, from <title> to /.well-known/security.txt to WCAG contrast. Written for humans and agents.

Et vraiment je pense qu'on est pas loin de retrouver tout ce qui est important 😯

IA🔗

GitHub - kyutai-labs/pocket-tts: A TTS that fits in your CPU (and pocket) · GitHub🔗

#IA #Text-To-Speech

Si je suis souvent critique envers l'IA c'est principalement pour deux choses : le bullshit qui l'entoure et l'absurde taille des modèles (particulièrement vrai avec les LLMs). Là c'est l'opposé : un modèle tout petit, qui ne dépend pas du tout d'une carte graphique (ça tourne avec PyTorch CPU) et qui fait du TTS (Text To Speech) facilement et rapidement.

Je suis pas anti-IA, je suis pour de l'IA raisonnée, réfléchit, et pensé pour être utilisé par le plus grand nombre.

Mon rapport si ambigu à Claude – Chez Bodul🔗

#IA #Métier-de-dev

Ludovic nous donne son ressenti de comment il utilise mais aussi comment il ressent l'IA aujourd'hui. Le changement du métier de dev. La manière dont les devs qu'il qualifie de plutôt "artisan" (partisan de faire à la main, proprement et durablement quitte à y passer un peu plus de temps) se sentent de moins en moins en phase avec le métier.

Article qui n'apporte aucune solution (ce n'est pas le but, ici Ludovic donne son ressenti rien et c'est très bien), mais c'est intéressant à lire. Personnellement je vois de plus en plus de retour du style, que ce soit en ligne ou dans les gens que je croise. Et de mon côté je n'oublie pas non plus qu'il existe encore des devs qui n'utilisent pas du tout l'IA au quotidien car pas les outils à dispo au boulot et qui sont donc complètement en dehors de tout ça

Vibe Coder vs Software Engineer | Yusuf Aytas🔗

#IA #Métier-de-dev

Je cite 3 extraits :

Use vibe coding where the cost of being wrong is low, and use engineering discipline where the cost of being wrong belongs to customers, teams, or the business.

Engineering requires some level of apprenticeship. Vibe coding tempts you into working alone. People work and learn in teams. Software engineers improve their craft by working with others. The job is not just code. The job is judgment, not output. A software engineer has judgment about what's risky and what's not. That judgment is built through contact with the system and people.

A software engineer is needed when the main cost is ownership. They control what enters the system, how it is reviewed, how it is secured, how it is tested, how it is operated, and how it will be changed later. The distinction is operational. It is also not a fixed identity. The same person should vibe code in discovery and switch into engineering for delivery. The skill is knowing which mode you are in, and not letting the habits of one leak into the other. Vibe coding can help you learn faster. Software engineering helps you avoid paying for that learning forever.

Vraiment un article important à lire. Il correspond à mon sens assez bien à ma vision : l'IA pour le code c'est un outil de plus pour nous aider à produire le code ; le code c'est presque la brique la moins importante du métier, ce qui compte c'est le produit et l'appropriation du code qui constitue le produit ; si vous générez le code en fermant les yeux, sans aucune validation, sans aucune bonne pratique (y'a rien de nouveau derrière ça, les bonnes pratiques de dev existent depuis plusieurs décennies pour certaines, et y'a des noms plus récents qui ont écrit des bouquins entiers dessus : Robert Cecil Martin, Martin Fowler, etc.) ce que vous produisez c'est juste une soupe impossible à maintenir, impossible à déployer avec confiance, c'est juste un machin semble être un produit mais n'en est pas un.

Sécurité🔗

Wichtige Information - ZEGO Textilveredelungszentrum🔗

#Sécurité

Pour faire court : une boîte de textile allemande se place en insolvabilité pour tenter de redresser la barre à la suite d'une cyberattaque qui a mis à l'arrêt toute la boîte pendant 3 semaines en mars/avril… La cybersécurité ça coûte toujours trop cher, jusqu'à ce que ça plombe la boîte, peut-être pour la dernière fois…

C'est un exemple parmi tant d'autres de boîte qui n'a rien de tech mais qui s'est pris une claque à cause d'un trou sans sécurité. Je pense que c'est important d'en parler !

Je pose là une traduction Google Translate pour ceux qui comme moi parle couramment l'allemand :

Déclaration d'insolvabilité – Et pourquoi nous continuons à aller de l'avant

Mesdames, Messieurs, Chers partenaires commerciaux,

Nous nous adressons à vous aujourd'hui pour vous communiquer une nouvelle qu'il nous est personnellement très difficile d'annoncer.

La société ZEGO Textilveredelungszentrum GmbH a déposé une déclaration d'insolvabilité.

Cette décision a constitué l'une des étapes les plus difficiles des 37 années d'existence de notre entreprise. Elle n'a pas été prise à la légère ; elle intervient après que nous avons examiné et épuisé toutes les options à notre disposition.

Ces derniers mois, nous nous sommes battus de toutes nos forces pour notre entreprise, nos employés, nos clients et nos fournisseurs. Notre objectif a toujours été de maintenir l'activité et de ramener ZEGO sur une trajectoire stable.

Cependant, la cyberattaque du 29 mars 2026 a frappé notre entreprise avec une telle violence que, malgré tous nos efforts, nous n'avons pas réussi à nous en relever complètement. Ses conséquences ont notamment entraîné un arrêt de la production de près de six semaines et de lourdes difficultés financières. En fin de compte, ces répercussions ont compromis notre situation financière au point de rendre nécessaire le dépôt de bilan.

Cette démarche est pour nous extrêmement douloureuse.

Depuis de nombreuses années, ZEGO est synonyme de fiabilité, de qualité et de partenariats constructifs. Bon nombre de nos clients et fournisseurs nous accompagnent depuis longtemps. Nos relations commerciales ont souvent évolué vers des partenariats fondés sur la confiance — voire vers de véritables amitiés — pour lesquels nous vous sommes infiniment reconnaissants.

C'est précisément pour cette raison qu'il nous tient à cœur de partager ce qui suit avec vous aujourd'hui :

L'insolvabilité ne signifie pas nécessairement la fin d'une entreprise.

Au contraire, cette procédure offre l'opportunité de restructurer et de repositionner l'entreprise, ainsi que de stabiliser sa situation économique. Nous sommes pleinement déterminés à atteindre cet objectif.

Nous continuons à nous battre pour la survie de ZEGO Textilveredelungszentrum GmbH.

Notre but est de collaborer avec toutes les parties prenantes pour élaborer des solutions viables, préserver les emplois, maintenir nos relations avec les clients et assurer l'avenir de notre entreprise. À cet égard, nous continuons de compter sur le soutien et la confiance de nos partenaires commerciaux.

Nous vous demandons donc instamment de rester à nos côtés durant cette période difficile. Chaque forme de soutien, chaque effort de collaboration et chaque marque de confiance contribuent à jeter les bases de la pérennité de l'entreprise. Nous tenons à vous remercier chaleureusement pour votre soutien, votre fidélité et la confiance que vous nous avez témoignée jusqu'à présent.

Nous vous tiendrons informés en toute transparence de l'évolution de la situation et restons à votre entière disposition pour toute question.

Œuvrons ensemble pour que cette période difficile ne marque pas la fin, mais un nouveau départ pour ZEGO.

Cordialement,

Johannes Zenglein ZEGO Textilveredelungszentrum GmbH

Comprendre l’authentification avec Github (OAuth) - Code-Garage🔗

#Github #OAuth2 #Sécurité

Je cite directement le résumé final qui indique bien ce que vous explique l'article et le mode de fonctionnement d'une authentification avec Github :

  1. Votre application redirige l'utilisateur vers GitHub.
  2. GitHub vérifie son identité et renvoie un code temporaire.
  3. Votre serveur échange ce code contre un token, récupère l'adresse email de l'utilisateur, puis génère son propre JWT.
  4. Au final, GitHub ne fait qu'une seule chose : confirmer l'identité de l'utilisateur.

Pour le reste je vous invite à lire l'article, c'est simple, c'est bien expliqué, ça peut s'adapter à pas mal de cas d'authentification via une source externe.

7 ministres français espionnés par le Maroc : voici ce que révèle la nouvelle enquête Pegasus🔗

#Sécurité #Vie-privée

Résumé : on sait que 7 ministres ou anciens ministres ont été espionnés par le Maroc entre 2019 et 2020 via l'utilisation de Pegasus (outils d'espionage numérique par intrusion / exploitation de faille zero-days non divulgués vendu par la société NSO). À priori ce serait via des failles zero-clic, donc sans aucune action de l'utilisateur. On a aucune idée de ce que le Maroc a obtenu comme information et si les prises de position aligné sur le Maroc de la France depuis sont liés.

On ne sait pas par contre si d'autres ministres ont été espionnés par Pegasus, ni si le Président a été espionné, ou même qui que ce soit d'autres. Ne pas avoir trouvé de trace, ne signifie pas qu'il n'y a pas eu d'espionnage, ça peut-être aussi une attaque légèrement différente ou via une faille qui ne laisse pas de trace ou des traces plus discrètes.

Avec ce genre d'outils : on ne sait rien, ça compromet la sécurité et la vie privée de n'importe qui…

uBlock Origin n'est pas un adblocker — MiddleEarth🔗

#Sécurité #Vie-privée #Malware #Navigateur

Les pubs diffusent des malwares (et des arnaques), de plus en plus, et du coup bloquer les pubs devient une mesure de sécurité en plus de la protection de la vie privée (les bandeaux pub traquent les utilisateurs de site en site) et de l'économie de bande passante qui est obtenue au passage…

Avec uBlock Origin vous aurez un blocage propre et efficace de nombreux trucs !

AdBlock Plus deal avec les boîtes de pubs pour qu'une partie des pubs restent en ligne quand bien même vous avez AdBlock Plus depuis de nombreuses années. Chrome / Chromium et ses dérivés ne permettent plus que les Web Extension Manifest v3 ce qui dans le moteur de Chrome implique de facto que vous ne pouvez plus avoir un blocage de pub pertinent (je passe les détails techniques largement diffusés en ligne).

Note : si vous vous demandez pourquoi Chrome et ses dérivés n'aiment pas les bloqueurs de pub, rappelez-vous que c'est développé par Google et qu'une grosse part de leurs revenues vient des pubs.

Bref : installez uBlock Origin, sur Firefox, vous aurez un vrai navigateur et un vrai bloqueur de publicité.

Ce qu'il faut savoir sur le retrait de OnePlus en Europe (mises à jour, suivi, support client)🔗

#Smartphone #Tech #Android #Oneplus #Oppo #Sécurité

Si comme moi vous avez un Oneplus (j'utilise un Oneplus 11 depuis sa sortie début 2023, ce dernier avait remplacé un Oneplus 6 que j'avais aussi depuis sa sortie), vous allez voir des changements prochainement : la marque Oneplus sort définitivement de tous les marchés excepté la Chine…

Conséquence annoncée :

  • On perd le service client Oneplus au profit de celui d'Oppo (la maison mère de Oneplus depuis pas mal d'année déjà, on sait qu'Oppo est investisseur de Oneplus depuis 2014) ;
  • Prochainement on devra dire adieu à OxygenOS en faveur de ColorOS (soyez patient pour migrer à mon avis…), ou on perdra les mises à jour majeures d'Android et sûrement aussi les patchs de sécurité ;
  • Plus de nouveau smartphone Oneplus à venir chez nous ;

De mon côté je vais rester sur mon Oneplus 11 tant qu'il fonctionnera (à priori) et on verra vers quoi j'irai dans le futur. Avec l'explosion du prix des composants, c'est de toutes façons le pire moment pour changer de matériel 😅

Si vous cherchez un smartphone en ce moment, je vous conseillerais à priori de regarder du côté de Nothing, entreprise fondée par Carl Pei (comme Oneplus) avec une philosophie proche initialement. C'est sûrement chez eux que j'irais si je devais changer dans les prochains mois de mon côté en tout cas

Jeux-videos🔗

The Spine Archive | Custom Nintendo Switch Spines Tool🔗

#Nintendo #Jeux-videos

De base la tranche est rouge uniforme avec juste le nom du jeu en blanc, ce qui n'est pas très beau, pas toujours facile à lire et rend moins visuelle la recherche d'un jeu. Ce site rassemble donc des tranches de jaquette alternatives pour les jeux Nintendo Switch 1 et 2, faites par des indépendants, qu'on peut imprimer gratuitement pour glisser devant la tranche de la jaquette de nos jeux pour rendre plus sympa la tranche de nos jeux.

Je trouve l'idée super cool, mais peu probable que je fasse tous mes jeux switch comme j'en ai plus de 200 😅

Little Writer Desktop Companion on Steam🔗

#Jeux-videos

Your little companion is an ambitious writer with very little discipline. Type, and they'll write too. Every keystroke moves their work forward. In this idle productivity game, help them become a renowned author while you get things done.

C'est plutôt marrant, l'idée c'est d'avoir une petite fenêtre flottante qui montre un petit personnage en train de taper du texte quand vous tapez du texte. Plus vous tapez au clavier (hors du jeu, sur l'activité que vous voulez), plus vous faites progresser votre petit écrivain. J'aime bien l'idée, parce que ça vous donne implicitement des objectifs à vous remplir (taper un certain nombre de mots, taper à une certaine vitesse, etc.), tout étant peu intrusif à l'écran.

Par contre autant c'est gratuit et offline (sur le papier), autant ça veut dire que Little Writer Desktop Companion va intercepter tous vos appuis claviers, donc il a le potentiel d'être un keylogger, donc je suis partagé…

Divers🔗

ReactOS "Open-Source Windows" Project Now Capable Of Running Half-Life 2 - Phoronix🔗

#Open-Source #ReactOS #OS #Open-source #Windows

Encore une étape de franchi pour ReactOS (ré-implémentation de l'api de Windows mais sans le moindre lien avec Microsoft et 100% en open source) qui fait maintenant tourner sans souci Half-Life 2. Ça parait anecdotique mais ça ne l'est pas, il faut un max de truc pour que ça marche les jeux-vidéos !

Dans le billet on voit aussi la première implémentation d'un appel système NT6 (équivalent de Windows Vista) donc ça ouvre une nouvelle porte !

Claviers ASUS ROG et Linux : fuyez ! (ou bricolez dur) – Le blog de Seboss666🔗

#Clavier #Linux #USB

Seboss666 a eu quelques galères avec son clavier ASUS qui envoie des inputs qui mettent les ordis Linux en vrac. Ça sent le non-respect du standard USB cette histoire mais bon…

En tout cas, note pour plus tard : ne jamais acheter de clavier ASUS et rester chez Logitech (MX Keys à date) quand bien même j'aime beaucoup les machines / cartes-mères de marques 😅

The Temper programming language - Temper Programming Language🔗

#Language #OpenSource #Open-Source #Open-source #TypeScript #JavaScript #Java #C# #Rust #Lua

Je cite la première phrase de la doc :

The Temper programming language cross-translates to other programming languages.

Et le premier extrait de code :

export let half(x: Int): Int {
  x / 2
}

La version transpilée en Java :

package com.example.numerics;
public final class NumericsGlobal {
    private NumericsGlobal() {
    }
    public static int half(int x__1) {
        return x__1 / 2;
    }
}

Ou en TypeScript :

const {
  trunc: trunc__1
} = globalThis.Math;
/**
 * @param {number} x_0
 * @returns {number}
 */
export function half(x_0) {
  return trunc__1(x_0 / 2);
};

Ou en Python :

def half(x__1: 'int') -> 'int':
  return x__1 // 2

Y'a aussi C#, Rust et Lua.

Je cite un autre passage parlant :

Most engineering organizations use multiple languages: Python for data science, others for mobile apps, JavaScript on the web, and a different language on the server.

Temper helps break down silos by letting a small team maintain core type definitions and logic to all the other silos.

En résumé, Temper c'est un langage qui se veut assez simple mais expressif, pas dans le but de créer des applications mais de créer des librairies de types et d'utilitaires qui sont partageables facilement à travers toute la stack que vous avez, à moindre effort. Je trouve ça plutôt malin !

SQLite should have (Rust-style) editions - Mort's Ramblings🔗

#SQLite #Rust

Quelques notes sur le fonctionnement par défaut de SQLite. Plutôt des notes négatives pour le coup. Sans dire que SQLite est mauvais (c'est très bien au contraire), ça fait du bien de voir des vrais critiques négatives sur SQLite je trouve

Ce que je retiens :

  • "Bad default #1: Foreign key constraints are ignored by default" : donc définir des clés étrangères ne sert à rien par défaut…
  • "Bad default #2: Columns can store the wrong data type" : donc vous mettez INTEGER commme type sur une colonne, bah ok vous pouvez mettre un INT mais vous pouvez insérer une chaîne de caractère contenant un INT ça va passer aussi (car converti à l'insertion) mais aussi n'importe quoi qui n'est pas un INT ça sera stocké tel quel… Sauf si vous specifiez strict sur chaque définition de table…
  • "Bad default #3: SQLITE_BUSY errors with concurrent writers" : autant de readers de la base qu'on veut en parallèle mais un seul writer, ça fonctionne sans lock / sans timeout (par défaut) donc un second writer qui arrive en parallèle ne va pas attendre, juste échouer directement…
  • "Bad default 4: Performance" : il y a des petites limites de performances facile à corriger (en particulier sur l'écriture des logs) pour un usage serveur, pour le coup l'auteur fait référence à d'autres articles pour ce point

Tout ça c'est corrigeable avec des PRAGMA (règles à définir globalement sur votre instance SQLite) mais ça devrait être par défaut aujourd'hui, je suis d'accord avec l'auteur de l'article.

La proposition de l'auteur serait d'avoir un PRAGMA edition = 2026; (très similaire à ce qu'on retrouve chez Rust) qui serait une configuration implicite pour

PRAGMA foreign_keys = ON;
PRAGMA busy_timeout = 5000;
PRAGMA journal_mode = WAL;
PRAGMA synchronous = NORMAL;

(ligne à ligne : activer la validation des clés étrangères ; s'assurer qu'on ne bloque pas directement les écritures concurrentes ; éviter les problèmes de performance sur l'écriture des logs ; réduire les synchronisations avec le disque pour limiter les problèmes de performance)

Je trouve l'idée plutôt pas mal. Ça ouvre pas mal de porte à des breaking changes en douceur (on peut introduire une config qui par défaut à une valeur qui ne casse rien mais si on spécifie qu'on vise une édition plus récente, ça change la config et on doit suivre la nouvelle règle), ça permet aussi de décorréler la mise à jour de la librairie / l'outil de la mise à jour des pratiques (particulièrement une bonne chose pour la sécurité, car vous pouvez garder une seule branche à corriger dans le temps). C'est quelque chose qui serait profitable à voir un peu partout

Windows cache un identifiant secret que Microsoft file au FBI - Korben🔗

#Microsoft #Vie-privée #OS #Windows

Un hackeur qui se fait avoir parce qu'il utilise Windows 11 derrière sa pile de VPN (sûrement en se disant qu'avoir un WSL c'est largement aussi safe qu'un Linux 🤷‍♂️) parce que Windows vous colle un identifiant unique (GDID = Global Device IDentifier) à l'installation, identifiant qui est leak à droite à gauche, stocké avec votre IP à chaque fois que vous vous connectez à Internet. Évidemment, PatriotAct oblige, si le FBI ou CIA demande à Microsoft ils doivent leur filer les infos associées à votre GDID (votre historique d'IP, de connexion, etc.).

Comment on se débarrasse du GDID ? Vous ne pouvez pas. Comment on change de GDID ? Vous ne pouvez pas. Comment vous pouvez voir votre GDID ? Vous ne pouvez pas.

Merci Microsoft de respecter notre droit à la vie privée 💩

Low Resource Computing🔗

Je cite directement toute la page d'accueil qui correspond parfaitement à ce que je pense (j'ai songé plusieurs fois à plaquer le web pour partir sur cette voie ces dernières années) :

Looking Back, Looking Forward

Computation started as a puzzle. We built national banking systems using 92kIPS microprocessors. We built rendering engines using a PDP-8 and a DAC. We flew to the moon with a 2MHz CPU, a slide rule, and a dream. The resources behind these accomplishments look modest only in hindsight. What is trivial now was enough then.

Somewhere along the way, we lost sight of this goal. Software wastes hardware because it can afford to do so. We use Electron, wrangling the whole Chrome V8 engine, just to edit text; we ask gigawatt data centers what the weather will be tomorrow. It's a competition to see how much compute and money we can throw at our problems before they fix themselves. Exascale datacenters keep growing, gigawatt compute farms keep chugging more electricity, and billion-dollar networks keep asking for more money. It's a race to the bottom, and other than being boring and expensive, it's impossible to keep growing like this forever.

This year, LRC is looking at the past as an inspiration for the future. As mainstream computers hog more and more resources, meaningful computation remains essential at the scale of kilobytes, kilohertz, and nanowatts. This workshop is all about countering the fad of infinite growth, it's about putting processing power back in individuals' hands, and it's about contributing to a more reasonable and sustainable future. How far can today's modest resources really go?

Let's find out.

Par contre c'est dommage, y'a rien en ligne (ou pas trouvé), donc à moins d'avoir un coup de chance et qu'ils viennent des USA pour faire une édition pas loin c'est dead on restera sur l'introduction…

Crédit photo : Générée via Mistral AI avec le prompt suivant :

Une scène chaleureuse et immersive, inspirée par l’esthétique poétique de Studio Ghibli, représentant un bureau de travail en bois clair et vieilli, baigné d’une lumière dorée et tamisée, comme un après-midi d’automne. Au centre, une silhouette stylisée (style anime Ghibli : traits doux, visage non détaillé, vêtements amples et confortables) est assise en tailleur sur un tapis épais, absorbée par la lecture d’un journal tech futuriste. Le journal est ouvert, ses pages légèrement froissées, avec des titres en en-tête calligraphiés à la main : "Frontend", "Backend", "IA", "Sécurité", et "Vie privée". Les pages brillent d’un halo bleu pâle, évoquant des lignes de code et des schémas techniques qui s’animent discrètement, comme par magie. Autour d’elle, des piles de magazines et de carnets s’empilent de manière désordonnée mais harmonieuse. Certains sont ouverts, révélant des extraits d’articles, des croquis de frameworks (représentés par des icônes génériques : un crochet pour le frontend, un engrenage pour le backend, un cerveau pour l’IA, un cadenas pour la sécurité, et un masque pour la vie privée), ou des diagrammes de réseaux de neurones dessinés à la main. Un écran transparent et flottant (style holographique, mais avec un cadre en bois sculpté) affiche des flux d’informations en temps réel : des graphiques de données, des alertes de sécurité, et des extraits de code, le tout dans un style doux et organique, comme intégré à la scène. En arrière-plan, une grande fenêtre donne sur un paysage urbain nocturne style Ghibli : des bâtiments aux formes arrondies, des lanternes suspendues, et des néons bleutés qui reflètent des motifs de code binaire sur les murs. Une tasse de thé fumant et un petit robot de bureau (inspiré des créatures de Ghibli, comme un mélange entre un Totoro miniature et un assistant tech) observent la scène avec curiosité. À droite, un panda roux (ton animal préféré) est lové sur un coussin, les yeux mi-clos, comme s’il écoutait attentivement. Il ne doit pas dépasser le tiers de la hauteur de l’image et est positionné en bas à droite, légèrement tourné vers le centre, avec une queue soyeuse enroulée autour de lui. L’ambiance est à la fois cosy, onirique et high-tech : les couleurs sont douces (beiges, bleus pâles, oranges chauds), avec des contrastes subtils pour mettre en valeur les éléments tech. Les détails sont soignés, avec des textures visibles (grain du bois, tissu du tapis, pelage du panda), et une lumière qui crée des jeux d’ombres chaleureuses. Le tout respire la sérénité et l’inspiration, comme un moment suspendu entre la magie et la technologie.