Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Prelude of the Chambered Reborn - Le jeu de Notch est de retour dans le navigateur

Vous vous souvenez de Notch, le créateur de Minecraft ?

Avant de devenir milliardaire dépressif à temps plein en vendant son jeu à Microsoft, le bonhomme participait à des game jams et pondait des petits jeux en moins de 48 heures. Et Prelude of the Chambered c’était justement l’un de ces projets, créé lors de la Ludum Dare 21 en août 2011 avec le thème “Escape”. Un dungeon crawler à l’ancienne façon Dungeon Master ou Eye of the Beholder, codé en Java.

Hé bien, Angelo Lima vient de le ressusciter en TypeScript et ça tourne direct dans votre navigateur . Qu’il est fort !!

Le projet s’appelle Prelude of the Chambered: Reborn et c’est donc une réécriture complète du code original. Aux chiottes le Java, et bonjour le TypeScript moderne avec Vite pour le build. Le rendu 3D utilise uniquement le Canvas 2D et du raycasting software pur, sans WebGL ni accélération GPU. Bref, tout se fait à l’ancienne, comme dans le jeu original, mais en version web accessible depuis n’importe quel appareil.

Le truc cool avec le jeu de Notch, c’est son système de level design. Les niveaux sont définis par des images PNG où chaque couleur de pixel représente un élément du jeu : mur, porte, ennemi, objet… C’est du “data-driven” avant l’heure, et ça permet à n’importe qui de créer ses propres niveaux sans toucher au code. Angelo a bien sûr conservé ce système dans sa version modernisée.

Côté contenu, vous avez six niveaux à explorer : Prison, Dungeons, Overworld, Crypt, Temple et Ice Cave. Y’a des ennemis plutôt variés comme des chauves-souris, des ogres, des yeux flottants, Jordan Bardella et des fantômes (un intrus s’est glissé dans cette liste), plus des versions boss. Votre objectif c’est donc de collecter quatre clés pour vous échapper, tout en ramassant des power-ups comme le Power Glove, un pistolet, des palmes pour nager et des patins à glace. Le jeu se finit en 20-30 minutes, mais attention !!!! Si vous mourrez, vous recommencez tout depuis le début.

D’ailleurs, petit fun fact, certaines textures d’objets de Prelude of the Chambered ont été réutilisées par Notch dans Minecraft lui-même, notamment pour les armures en cuir, en fer et les épées. Quand on vous dit que le mec recyclait tout, même les pots de yaourts…

Les contrôles c’est du classique… WASD ou les flèches pour bouger, Q/E pour tourner, Espace pour taper ou utiliser des objets, touches de 1 à 8 pour l’inventaire et y’a même un mode plein écran avec la touche F pour les puristes qui veulent l’expérience immersive complète.

Voilà, si vous voulez découvrir un petit bout d’histoire du jeu vidéo indé et voir ce que Notch était capable de pondre en 48 heures bien avant que Minecraft ne devienne le mastodonte qu’on connaît, foncez jouer à Prelude of the Chambered: Reborn .

Merci à Angelo d’avoir partagé sa création lors de mon live sur Twitch .

ChronoFrame - Reprenez le contrôle de vos photos

Bon, si vous me lisez depuis loooongtemps, vous connaissez forcément le risque que représentent les métadonnées contenues dans les images que vous partagez en ligne. Oui, je parle bien des fameux EXIFs qui contiennent aussi bien le modèle d’appareil photo utilisé, l’heure précise à la seconde près où vous avez pris le cliché, les réglages de l’objectif, parfois même l’altitude, et surtout les coordonnées GPS exactes de l’endroit où vous étiez.

Et toutes ces données, si vous mettez vos photos en ligne par exemple, chez Google ou Apple, et bien eux les récupèrent et les utilisent. C’est dommage, surtout que ce sont des données qui sont quand même utiles pour peu qu’on garde ça en local sur sa machine.

Alors que faire ?

Hé bien, il existe un logiciel open source sous licence MIT qui s’appelle ChronoFrame . C’est une galerie photo que vous pouvez héberger vous-même, qui va parser automatiquement toutes les données exif de vos clichés, extraire la géolocalisation, faire du reverse géocoding pour identifier le lieu exact et afficher tout ça sur une espèce de carte interactive sur laquelle vous pouvez naviguer pour revoir vos souvenirs de voyage.

En gros c’est comme Google Photo sauf que c’est vous qui gérez vos données et vous contrôlez qui accède à quoi.

L’intérêt de ChronoFrame, c’est qu’il rend visible l’invisible. Vous uploadez une image, ChronoFrame lit les métadonnées, extrait les coordonnées GPS si elles existent, et lance un appel à l’API Mapbox ou MapLibre pour faire du reverse geocoding. Ça, ça veut dire transformer des coordonnées GPS (48.8584, 2.2945) en adresse lisible (“Tour Eiffel, Paris, France”).

Et surtout, ChronoFrame supporte les Live Photos d’Apple ET les Motion Photos de Google. La génération de miniatures, quand à elle, utilise ThumbHash , un algorithme de placeholder ultra-compact créé par Evan Wallace (cofondateur de Figma). Ainsi au lieu de générer plusieurs tailles de miniatures (100x100, 200x200, 400x400…etc), ThumbHash encode une version floue de l’image dans moins de 100 bytes et comme ça, les vignettes se chargent instantanément, et l’affichage est ensuite progressif (flou -> net) jusqu’à ce que l’image full résolution arrive.

L’interface est bien sûr responsive, supporte le touch et la navigation par gestes, et donne une expérience proche d’une app native. Pour la déployer, vous devez créer un fichier .env avec vos variables d’environnement (email admin, mot de passe, provider de stockage, token Mapbox…etc), vous lancez docker pull ghcr.io/hoshinosuzumi/chronoframe:latest, et hop, ça tourne direct.

Le guide de démarrage détaille tout le process et ça vous prendra 5 minutes chrono.

Voici un exemple de configuration minimale :

[email protected]
CFRAME_ADMIN_PASSWORD=VotreMotDePasse
NUXT_PUBLIC_MAP_PROVIDER=maplibre
NUXT_PUBLIC_MAP_MAPLIBRE_TOKEN=votre_token_maptiler
NUXT_STORAGE_PROVIDER=local
NUXT_PROVIDER_LOCAL_PATH=/app/data/storage
NUXT_SESSION_PASSWORD=$(openssl rand -base64 32)

Vous pouvez aussi utiliser S3 au lieu du stockage local :

NUXT_STORAGE_PROVIDER=s3
NUXT_PROVIDER_S3_ENDPOINT=https://s3.amazonaws.com
NUXT_PROVIDER_S3_BUCKET=votre-bucket
NUXT_PROVIDER_S3_REGION=eu-west-1
NUXT_PROVIDER_S3_ACCESS_KEY_ID=votre_key
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=votre_secret

Une fois lancé, vous accédez à l’interface web, vous vous loggez avec votre email/password (ou via GitHub OAuth si configuré), vous allez dans /dashboard, et vous uploadez vos photos.

Voilà, j’ai trouvé ça cool parce que reprendre le contrôle de ses photos, ça veut pas forcément dire supprimer les métadonnées comme je l’ai souvent conseillé. Ça peut aussi vouloir dire décider de qui a accès à ces métadonnées. Car ça reste des informations précieuses et c’est quand même dommage de s’en priver donc autant héberger soi-même ses photos, comme ça vous pouvez les exploiter comme bon vous semble.

Notez que ChronoFrame ne vous aidera pas à supprimer vos EXIFs, mais il existe des outils pour faire ça comme ExifTool ou mat2 . Vous pouvez aussi scripter ça avant d’uploader quoique ce soit sur les réseaux sociaux mais la plupart des gens ne le font pas parce qu’ils ne savent même pas que les données sont là. Je sais aussi que des sites comme X.com retirent certaines des méta données avant de diffuser votre photo publiquement mais ça ne veut pas dire qu’eux ne les exploitent pas en amont pour vous balancer de la pub par exemple…

Voilà, si vous voulez voir ce que ça donne, il y a un site de démo où vous pouvez voir l’interface en action !

Merci à Lorenper pour le partage de cette appli !

Handy - Un outil de reconnaissance vocale incroyable (et open source)

Je suis dégoûté parce que je viens de payer un abonnement pour un logiciel qui fait exactement ça, sauf que bah là, Handy , c’est gratuit. L’idée derrière ce logiciel, c’est un outil de speech to text qui fonctionne uniquement en local. Pas d’abonnement, tout est gratuit, et pas de cloud… il faut juste configurer un raccourci clavier. Et ensuite vous parlez et le texte apparaît comme par magie.

A la base, l’idée de cet outil est venue d’un accident. CJ se casse le doigt et il est plâtré pendant six semaines. Du coup il lui est impossible de taper normalement. Il cherche alors des outils de transcription vocale.

Par exemple, Dragon NaturallySpeaking, mais bon, 100 balles, ça fait chier. Google Docs aussi propose ce genre de fonctionnalités, mais uniquement en ligne. Et ça envoie tout dans le cloud, donc bonjour à confidentialité. Quant à Windows Speech Recognition, c’est bugué et assez limité. Bref, toutes les alternatives qu’il a trouvées étaient soit payantes, soit nécessité une connexion permanente vers des serveurs tiers.

Alors CJ a fait ce que font les devs quand un problème les agace. Non pas aller sur Reddit pour dire de la merde random sur moi, mais plutôt coder une solution qui fonctionne super bien !

Et au lieu de la garder pour lui ou de la rendre payante lui il a décidé de tout mettre en open source avec une licence MIT.

Et ce que vous êtes en train de lire précisément maintenant, et bien je suis en train de le dicter. Et ça marche dans les emails, les formulaires web, les éditeurs de texte, peu importe. Et comme je vous le disais, toute la transcription se fait localement sur votre machine. Et tout ça grâce à quoi ? Et bien grâce à Whisper d’OpenAI, dont je vous ai déjà parlé beaucoup de fois.

Handy est codé en Rust pour la performance et la sécurité et surtout cross plateforme, c’est-à-dire qu’il marche ou Linux, macOS et Windows. Et au niveau de la config, il y a quelques options comme le choix de la langue ou le mode d’enregistrement avec le raccourci clavier, soit vous faites du push to talk, soit vous faites une écoute en continu.

Ce truc est génial aussi bien pour l’accessibilité que pour la reconnaissance vocale en elle-même qui est plutôt utile dans la vie de tous les jours. D’ailleurs, il y a plusieurs modèles IA disponibles, comme tous les modèles Whisper, mais aussi un modèle que je ne connaissais pas, qui s’appelle Parakeet et qui franchement fonctionne très bien. C’est celui que j’utilise actuellement.

Testez si ce truc fonctionne bien sur votre vieux PC mais moi en tout cas sur mon Mac de dernière génération c’est encore plus rapide que ce que j’avais avec un modèle Whisper sur mon outil payant.

Voilà, si vous cherchiez un outil de reconnaissance vocale, vous pouvez vous arrêter là parce que vous venez de trouver. Et non pas parce qu’il est parfait, mais parce que comme c’est open source, vous pouvez vous-même le rendre parfait pour vos usages (Le code est sur GitHub ).

Merci à Lilian pour le partage de ce projet absolument génial !

Article dictée intégralement à l’aide de Handy (et corrigé manuellement pour les quelques erreurs de transcription)

Scramjet - Le missiles anti-censure du lycéen

Si vous êtes comme moi, que vous êtes parent et que vous pensez que le contrôle parental de votre box internet protège Junior des méchants sites du web, hé bien j’ai une mauvaise nouvelle. Car pendant que vous réglez minutieusement vos filtres, des ados développent des proxys web tellement sophistiqués que même les admins réseau en sueur n’arrivent plus à suivre.

Prenez Scramjet par exemple… c’est le dernier né de cette course à l’armement, et c’est vraiment bien fichu. Développé par Toshit pendant le Hack Club Summer of Making , Scramjet n’est pas juste un énième proxy pour regarder YouTube en cours de maths. Non non, c’est un véritable système d’interception basé sur JavaScript et WebAssembly qui réécrit le code des sites web à la volée.

Cela signifie que le proxy intercepte littéralement le JavaScript des sites, le modifie en temps réel pour contourner les restrictions, puis vous le sert tout chaud sans blocage. Techniquement, c’est brillant, je trouve.

Scramjet est en réalité le successeur officiel d’ Ultraviolet , un autre proxy que vous avez peut-être croisé si vous traînez dans les forums étudiants, mais celui-ci est désormais considéré comme obsolète. Pour sa part, Scramjet est encore maintenu, beaucoup plus moderne et surtout, son architecture est plus robuste. Il fonctionne déjà avec Google, YouTube, Discord, Reddit et quelques autres site. je l’ai testé avec mon site, ça passe aussi, même si c’est pas encore parfait. En tout cas, ça progresse vite.

Au temps jadis, où j’étais encore étudiant, on utilisait des proxys tout moisis qui affichaient les sites sans style et plantaient à la moindre iframe. Et aujourd’hui, des gamins développent des outils en WebAssembly et utilisent des Service Workers. MercuryWorkshop , le collectif derrière Scramjet, a en tout cas créé un outil technique impressionnant qui rivalise même avec certaines solutions commerciales.

Alors comment ça marche ?

Et bien au lieu de simplement faire du proxy classique (je demande la page pour toi et je te la renvoie), Scramjet intercepte TOUT. Les requêtes JavaScript, les WebSockets, les workers, même les tentatives de détection de proxy. Le code source montre qu’ils utilisent Rust pour compiler en WebAssembly les parties critiques, ce qui donne une performance de furieux. Tout se passe via un mini-navigateur dans votre navigateur qui traduit tout en temps réel pour éviter la détection.

L’installation est ridiculement simple comparée à Ultraviolet. Un pnpm install, un pnpm build, et hop, vous avez votre proxy qui tourne en local. Les développeurs ont même pensé aux noobs avec une UI basique pour tester. Bon, elle est moche, mais c’est pas le but. Le but c’est de bypasser les restrictions, pas de gagner un prix de design. Vous pouvez tester la démo ici !

On a donc des écoles et des entreprises qui dépensent des fortunes en solutions de filtrage web telles que Fortinet, Sophos, tous ces gros machins qui coûtent un bras et promettent de “protéger” les utilisateurs. Et en face, on a des ados brillants qui développent des contre-mesures en quelques mois pendant leurs vacances d’été. C’est beau !

Surtout que ce genre d’outil peut également servir dans des pays où l’information est vraiment censurée.

Bref, Scramjet c’est un super outil, open source, documenté, et accessible à tous et si vous voulez tester (pour la science, évidemment), le code est sur GitHub . Mais attention, l’utiliser pour contourner les règles de votre école ou entreprise, c’est à vos risques et périls.

Moi je vous ai rien dit, je fais juste de la veille tech…

Merci à Lilian pour le partage !

Memflix – Transformez vos données en vidéos MP4 consultables instantanément

Ça va, pas trop chaud ? Alors tant mieux, parce que je vais vous faire avoir une petite suée tellement ce truc est cool ! Ça s’appelle Memflix et c’est une bibliothèque JavaScript qui transforme vos documents texte en… fichiers vidéo MP4 ! Oui, vous avez bien lu. Et le plus fou, c’est que vous pouvez ensuite faire des recherches sémantiques ultra-rapides dans ces vidéos.

L’idée est tellement simple qu’elle en devient géniale car au lieu de stocker vos données dans une base de données traditionnelle, Memflix encode tout dans des QR codes qui sont ensuite intégrés frame par frame dans une vidéo. Résultat ? Un stockage 10 fois plus efficace qu’une base de données classique et des recherches qui prennent moins d’une seconde, même sur des millions de chunks de texte.

LogTape - La bibliothèque de logging qui libère les devs JS

Est-ce que j’ajoute des logs pour faciliter le debug, ou est-ce que je laisse mes utilisateurs se débrouiller dans le noir ?

C’est le dilemme classique du développeur de libs qui peut soit vous imposer une dépendance de logging que personne n’a demandée, soit vous priver de toutes les informations cruciales.

Eh bien, LogTape vient de résoudre ce casse-tête vieux comme le monde (enfin, vieux comme npm) avec une approche qui a la classe, vous allez voir !

Extraire les sous-titres de n'importe quelle vidéo Youtube en Python

Vous en avez marre de réécouter 50 fois la même vidéo YouTube pour prendre des notes, en ratant systématiquement les passages importants ? Alors vous n’êtes manifestement pas au courant qu’il existe un petit outil Python qui extrait automatiquement tous les sous-titres d’une vidéo en 3 lignes de code.

Spoiler : ça marche même avec les sous-titres auto-générés par YouTube (et c’est souvent plus précis que vos grosses oreilles fatiguées).

Enfin un script qui automatise toutes les réparations Windows

Vous connaissez la chanson… Un Windows qui rame, des erreurs mystérieuses qui s’accumulent, et vous qui passez votre week-end à jouer au docteur avec SFC et autres joyeusetés. Grosse flemme, hein ? Eh bien, un développeur a eu la même flemme que nous et a créé un script qui fait tout ça automatiquement. Génial non ?

Cela ne vous aura pas échappé, maintenir un système Windows en forme c’est un peu comme entretenir une voiture ancienne… ça demande de l’attention régulière et pas mal d’huile de coude. Entre les fichiers temporaires qui s’accumulent, les erreurs système qui traînent, et les mises à jour qui foirent, on passe notre temps à bricoler sous le capot. Sauf que quelqu’un a eu la brillante idée de créer l’équivalent d’un garage automatisé pour Windows.

❌