Vue lecture

Le vieux Pixel de votre tiroir vaut peut-être mieux qu'un serveur

Des chercheurs de l'université de Californie à San Diego, épaulés par Google, viennent de prouver un truc contre-intuitif : un Pixel mis au rebut il y a trois ans tient encore tête à un serveur professionnel sur certains calculs, au point qu'on peut en assembler un vrai data center au lieu de le foutre à la poubelle.

L'idée a été posée sur le blog de recherche de Google . Une fois l'appareil ouvert, les chercheurs retirent tout ce qui ne sert plus, l'écran, la batterie au lithium, les caméras et la coque, jusqu'à ne garder que la carte mère et sa puce, ce qu'on appelle un SoC, le processeur qui faisait tourner Android avant qu'on le bascule sur une distribution Linux des plus classiques.

Ce système, le même qui anime déjà l'immense majorité des serveurs de la planète, libère la puce des limites pensées pour un mobile, à commencer par ce bridage qui met les applications en pause dès qu'elles passent à l'arrière-plan. Ensuite, il suffit de relier ces cartes mères entre elles via Kubernetes, l'outil que les géants du web emploient déjà pour piloter les milliers de machines de leurs centres de données comme un seul gros ordinateur.

Le plus déroutant arrive là. Sur la plupart des tests ne mobilisant qu'un seul cœur, un Pixel Fold de 2023 dépasse un serveur ASUS RS720A-E11 pourtant équipé de deux gros processeurs AMD, le genre de bête qu'on retrouve dans les baies des entreprises.

Le serveur empile bien plus de cœurs en parallèle, si bien qu'il faut réunir entre 25 et 50 téléphones pour rivaliser avec son débit total. Mais bon. Dès lors que vous ramassez ces appareils gratuitement au lieu d'acheter du silicium neuf, l'équation se renverse.

Le vrai argument est écologique, puisque près de la moitié des émissions de carbone d'un smartphone sur toute sa vie part dans sa seule fabrication, surtout dans l'assemblage de la carte mère et du processeur, ce fameux carbone gris déjà cramé avant même que l'appareil ne s'allume.

On change pourtant de mobile tous les trois ou quatre ans, en balançant une puissance de calcul encore largement bonne à servir, pendant que les entreprises font fabriquer des serveurs flambant neufs pour les mêmes tâches. Le gâchis est énorme.

L'équipe a pour l'instant fait tourner une grappe de 20 téléphones, qui a encaissé sans broncher le pic de rendu des devoirs d'une classe de plus de 75 étudiants avec une latence plus basse que les services cloud du commerce. Elle prépare déjà un cluster d'environ 2 000 Pixel pour la rentrée, capable d'absorber une centaine de cours d'informatique en même temps pour une fraction du prix du cloud habituel.

Reste à rester lucide. Ces puces ont peu de mémoire, donc on les cantonne aux tâches légères, la correction automatisée ou les carnets de code, loin de l'entraînement d'un gros modèle d'IA.

Mais voir une montagne d'e-déchets se muer en salle de classe numérique, ça donne sacrément envie d'y croire. Surtout vu le nombre de Pixel qui dorment au fond de nos tiroirs, même moi j'en ai deux qui traînent pour tout vous dire.

Source : Techspot

  •  

GhostDesk - Un bureau Linux complet pour votre agent IA

GhostDesk , c'est un serveur MCP open source qui file à votre agent IA un bureau Linux complet tournant dans Docker. L'agent voit l'écran, clique, tape, lance des applis, comme un humain. Bref, c'est pas juste un browser à la Playwright, puisque grâce à lui, n'importe quelle interface graphique devient pilotable. Yoann Vanitou son créateur m'a pitché son projet par email, et comme j'ai trouvé ça cool, je vous emmène faire un petit tour du propriétaire.

Le principe c'est un conteneur Docker qui tourne avec un bureau Linux minimal, Firefox, un terminal, un éditeur de texte, une calculatrice, et un serveur MCP en frontal. Votre agent IA préféré se connecte alors sur http://localhost:3000/mcp, demande un screenshot, identifie ce qui est à l'écran, puis envoie des commandes souris et clavier via les douze outils exposés (click, drag, scroll, type, key press, copy/paste, launch app, etc.).

Et vous pouvez même regarder l'agent bosser en direct depuis votre navigateur sur le port 6080, via noVNC. C'est assez satisfaisant de voir l'IA cliquer toute seule dans Firefox, je dois bien le reconnaitre !

Là où Playwright et consorts sont coincés dans le browser, GhostDesk fonctionne ainsi sur n'importe quelle fenêtre. Un workflow automatisé qui mélange plusieurs applis , un ERP legacy, LibreOffice, un IDE, un client mail, peu importe.... Ça évite les bidouilles à base sélecteurs CSS ou code custom puisque l'agent interprète l'écran directement à partir des captures écran qu'il fait.

Et comme le serveur est pensé pour tourner avec des modèles locaux comme Qwen sur une workstation GPU, y'a vraiment aucune donnée qui sort de votre réseau et aucun coût API. Puis surtout, des cas d'usage sensibles (genre avec des données de santé, de la compta, du SI interne..etc) deviennent parfaitement envisageables. Claude et ChatGPT marchent aussi, mais avec les compromis habituels sur la latence et la confidentialité.

Pour tester, une seule commande Docker suffit :

docker run -d --shm-size 2g -p 3000:3000 -p 6080:6080 ghcr.io/yv17labs/ghostdesk:latest

Vous branchez ensuite votre client MCP sur localhost:3000/mcp, vous ouvrez localhost:6080 dans un onglet pour observer, et hop ! Pour la prod, y'a aussi un mode TLS plus bearer token qui chiffre le transport, parce qu'exposer un bureau Linux en clair sur le réseau, c'est pas l'idée du siècle, c'est vrai ^^.

Les applis pré-installées restent sobres, mais rien n'empêche de builder votre propre image avec d'autres logiciels.

Maintenant, le projet est très jeune et son développement repose quasi uniquement sur Yoann, donc je pense qu'il ne sera pas contre un petit coup de main. A voir avec lui.

Après côté licence, c'est une license non-concurrentielle qui interdit l'usage commercial rival pendant une période fixée avant bascule vers une licence ouverte classique.

Bref, GhostDesk c'est une idée sympa et je pense que si vous faites de l'automation d'applis desktop ou que vous voulez brancher un agent local sur un bureau virtuel sans payer d'API, ça mérite le coup d'œil !

Bravo à Yoann !

  •  

OpenCloud - L'alternative à Nextcloud en Go et sans base de données

Si vous avez déjà installé Nextcloud sur un serveur, vous savez que c'est pas une partie de plaisir ! La stack PHP + MySQL, les mises à jour qui cassent tout, les performances qui s'effondrent dès que vous dépassez 50 utilisateurs... Relouuu.

Mais c'est là qu' OpenCloud débarque avec une approche radicalement différente puisque tout est écrit en Go, y'a zéro base de données, et l'installation se fait en deux commandes sur n'importe quel serveur à 5 balles par mois.

OpenCloud, en fait, c'est un fork d'ownCloud Infinite Scale (OCIS). Les développeurs du projet original chez Heinlein Group ont quitté ownCloud, forké le code, et relancé le tout sous licence Apache 2.0. Du coup, c'est pas un projet qui part de zéro mais une réécriture déjà très mature qui tourne en prod.

Là où Nextcloud utilise une base MySQL ou PostgreSQL pour stocker les métadonnées, OpenCloud balance donc tout dans le système de fichiers. Pas de SGBD ce qui veut dire pas de migration de base à gérer ni de tables corrompues après un crash. Tout atterrit dans le dossier $HOME/.opencloud/ et c'est réglé. Donc si vous savez faire un rsync, vous savez aussi faire une sauvegarde complète de votre instance. Oui la vie est belle !

Côté fonctionnalités, on retrouve donc le partage de fichiers, la collaboration en temps réel avec une suite bureautique intégrée, le chiffrement, le versioning (pratique contre les ransomwares), l'authentification via OpenID Connect... bref tout le classique d'un cloud privé correct.

Maintenant, le problème je trouve, c'est que l'écosystème d'apps est pas forcément au niveau de Nextcloud. Le CalDAV/CardDAV passe par Radicale en conteneur séparé (pas intégré au core), y'a pas d'app Notes ni de client mail intégré. Donc si vous avez besoin de tout ça, Nextcloud reste le bon choix. Mais bon, pour du stockage et de la collaboration pure, c'est clairement plus léger (genre 200 Mo de RAM au lieu de 2 Go pour Nextcloud) et surtout plus rapide.

D'ailleurs, l'architecture microservices en Go fait que ça scale nettement mieux.

Maintenant, pour installer ça, le plus simple c'est Docker Compose. Le repo opencloud-compose vous propose même des configs prêtes à l'emploi. À vrai dire, si vous êtes du genre à auto-héberger vos services , c'est un candidat sérieux pour remplacer votre Nextcloud donc si vous avez surtout besoin de fichiers et de collaboration, ça vaut le test. D'ailleurs, comme OpenCloud utilise OIDC pour l'auth, Pocket ID s'intègre pile poil avec pour du SSO sans mot de passe. Je dis ça, je dis rien ^^.

Bref, si Nextcloud vous gonfle avec sa lourdeur PHP et ses 47 tables MySQL, OpenCloud mérite un bon petit coup d'oeil !

Merci à fredix pour le lien !

  •  

Promptfoo - Fini le doigt mouillé pour tester vos LLM

Si vous utilisez des LLM dans vos projets, vous savez que le plus flippant c'est pas de les faire fonctionner (quoique..lol) mais c'est de vérifier qu'ils ne disent pas n'importe nawak ! Et pour cela, il y a Promptfoo , un outil CLI open source qui permet de tester vos prompts, comparer les modèles et scanner les vulnérabilités de vos apps IA, le tout avec un simple fichier YAML.

Ça s'installe en une commande (npx promptfoo@latest init) et vous voilà avec un fichier promptfooconfig.yaml où vous définissez vos prompts, les modèles à tester et les assertions à vérifier.

Genre, vous voulez que votre traduction contienne bien "Bonjour le monde", Hop, un petit tour dans le YAML, assertion contains, et c'est terminé. Plus besoin de relire 200 outputs à la main en plissant les yeux ! Par contre, attention : le YAML peut vite devenir un plat de spaghetti si vous testez 15 prompts sur 8 modèles en parallèle. Commencez donc petit.

La matrice d'évaluation de promptfoo, sobre mais efficace

L'outil supporte plus de 60 providers différents comme OpenAI, Claude, Gemini, Llama via Ollama, Mistral... vous mettez tout ça dans le même fichier de config et promptfoo les fait tourner côte à côte. Vous voyez alors directement lequel hallucine le moins, lequel répond le plus vite, lequel coûte une blinde pour un résultat bof bof. Le tout avec des assertions typées : contains, llm-rubric (où un autre LLM note la réponse), javascript pour vos critères custom, et même cost et latency pour garder un œil sur la facture.

Après tester si votre chatbot traduit correctement, c'est sympa, mais vérifier qu'il se fait pas jailbreaker par un "ignore toutes tes instructions", c'est quand même plus critique ! Et c'est pourquoi Promptfoo embarque un scanner de vulnérabilités qui couvre plus de 50 types d'attaques : injections de prompts directes et indirectes, fuites de données personnelles, biais, contenu toxique, escalade de privilèges sur les outils...

Il utilise pour cela des techniques comme le Tree of Attacks with Pruning, un algo qui explore plusieurs chemins d'attaque en parallèle pour trouver les failles sans brute force. Si vous voulez creuser le sujet du red teaming LLM, DeepTeam est un bon complément côté Python.

Le dashboard red teaming de promptfoo avec les vulnérabilités détectées

C'est surtout cette intégration CI/CD qui fait la différence. Vous pouvez brancher promptfoo dans votre pipeline GitHub Actions ou GitLab et chaque pull request qui touche un prompt est automatiquement testée. Bah oui, on a des tests unitaires pour le code depuis 30 ans, mais pour les prompts, jusqu'ici c'est même plutôt le far west !

Bon après, faut pas se mentir non plus, écrire des assertions pour du texte non-déterministe, c'est un autre sport que du assertEqual. Le llm-rubric qui utilise un LLM pour juger un autre LLM, c'est pas con mais ça ajoute aussi une couche de "flou" donc à vous de trouver le bon dosage dans vos tests.

L'équipe a annoncé rejoindre OpenAI début mars ce qui est plutôt une bonne nouvelle pour le développement du projet... mais pas forcément pour l'indépendance quand on évalue les modèles OpenAI avec un outil OpenAI (on verra bien hein ^^ lol).

L'orchestration tourne en local sur votre machine (les prompts partent chez les providers pour l'évaluation, mais vos fichiers YAML, vos logs et résultats JSON restent sur votre disque dur), c'est sous licence MIT, et y'a déjà plus de 300 000 utilisateurs, ce qui est quand même pas mal !

Voilà, comme ça plutôt que de croiser les doigts à chaque déploiement, en espérant ne pas vous faire virer, autant tester ses prompts comme on teste son code.

  •  

Jurassic Park dans votre cluster k8s

Le navigateur 3D de Jurassic Park, vous savez, celui avec lequel Lex hackait le parc en 1993 pendant que les vélociraptors grattaient à la porte... bah quelqu'un vient de le recréer, mais pour Kubernetes.

Le projet s'appelle k8s-unix-system et c'est exactement ce que vous imaginez. Vos namespaces deviennent des îles flottantes roses, vos pods des blocs 3D colorés et vous naviguez dans le tout en vue FPS avec WASD + souris. Genre comme Quake, mais pour surveiller vos pods.

Les pods Kubernetes version Jurassic Park ( Source )

Un pod vert c'est un pod qui tourne, jaune c'est en attente, et rouge c'est erreur ou CrashLoopBackOff, bref le truc que personne n'aime voir. Le truc sympa, c'est que la hauteur des blocs augmente avec le nombre de restarts. Du coup, le pod qui galère depuis ce matin, c'est celui qui ressemble à une tour bien haute. Par contre, attention, les pods en erreur tremblent carrément (pas nerveux hein, c'est voulu) et les pods running bougent doucement... c'est plutôt zen je trouve.

Les nodes, eux, ne sont pas mélangés avec les namespaces. Ils ont leur propre île bleu foncé à part, avec des cubes cyan pour ceux qui sont Ready et rouge pour les NotReady. Survolez un node et hop, vous avez son nom, son statut, sa capacité CPU et sa RAM affichées dans un tooltip. Les services, eux, sont visualisés sous forme d'arcs cyan semi-transparents qui connectent les pods entre eux en topologie étoile. Tout fonctionne, suffit de demander, on l'a ! (reeeef ^^)

Les namespaces et nodes, chacun sur leur île ( Source )

Pour lancer le truc, un Docker one-liner suffit (attention quand même, ça monte votre kubeconfig en lecture seule dans le conteneur, donc à réserver au cluster de dev) :

docker run --rm -it -v ~/.kube/config:/root/.kube/config:ro -p 8080:8080 ghcr.io/jlandersen/k8s-unix-system:main

Vous ouvrez localhost:8080 dans Chrome et vous volez à travers votre cluster avec la barre espace pour monter, Ctrl pour descendre, Shift pour accélérer. Tout est en temps réel grâce à la Watch API K8s, du coup si un pod tombe pendant que vous survolez son île, vous le voyez passer au rouge direct. Finalement, c'est kubectl get pods mais en 100 fois plus fun.

C'est codé en Go côté serveur et Three.js pour la 3D dans le navigateur. Le dev derrière bosse chez LEGO (ça ne s'invente pas). Et d'ailleurs si vous êtes du genre à recycler vos smartphones en cluster , ça ferait un combo d'enfer pour frimer devant les collègues.

Bref, vous allez pouvoir enfin lâcher un « Je connais ce système... il fonctionne sous Unix ! » sans mentir.

  •  
❌