Vue normale

Reçu hier — 27 septembre 2025
Reçu avant avant-hier

ertdfgcvb - Du Live Coding 100% ASCII

Par :Korben
23 septembre 2025 à 15:42

Alors si vous cherchez un truc pour procrastiner intelligemment ce soir ou demain, j’ai exactement ce qu’il vous faut. Play.ertdfgcvb.xyz , c’est un terrain de jeu ASCII interactif où vous pouvez coder des animations directement dans votre navigateur. Et c’est hyper hypnotisant, vous allez voir !

Derrière ce nom imprononçable “ertdfgcvb” se cache Andreas Gysin , un artiste suisse basé à Lugano qui fait du code et du design et son playground ASCII, c’est une interface épurée au maximum composée d’un éditeur de code à gauche, d’une fenêtre de prévisualisation à droite, et c’est tout. Pas de fioritures, pas de boutons partout, juste l’essentiel. Vous tapez Cmd+Enter (ou Ctrl+Enter sur PC) et votre code s’exécute en temps réel.

Le principe de son code en live est inspiré des fragment shaders GLSL , sauf qu’au lieu de pixels colorés, vous manipulez des caractères. Vous avez accès à des fonctions spécifiques telle que boot() qui s’exécute une fois au démarrage, pre() pour préparer vos données, main() qui est appelée pour chaque cellule de l’écran, et post() pour les modifications finales.

Voici un exemple simple en javascript pour comprendre le délire :

export function main(coord, context){ return String.fromCharCode((coord.y + coord.x) % 32 + 65) }

Ce bout de code génère un pattern de lettres qui change selon la position X et Y sur l’écran. C’est tout con mais c’est beau.

Le playground propose également des dizaines d’exemples triés par catégorie. Vous avez les basiques pour apprendre, des démos plus complexes comme “Doom Flame” qui recrée l’effet de flamme du jeu Doom en ASCII, ou encore “Donut” qui fait tourner un donut en 3D avec juste des caractères. Y’a même une section “camera” où vous pouvez manipuler votre webcam et la transformer en ASCII art en temps réel.

D’après le GitHub du projet , Andreas a créé ça comme un hommage à tous les artistes, poètes et designers qui utilisent le texte comme medium. C’est un projet minimaliste, avec presque pas d’interface, juste le code et le résultat. Même les marges et les numéros de ligne ont été virés.

Et tout ça tourne de manière fluide dans le navigateur et pour les dev qui veulent comprendre comment ça marche sous le capot, tout le code source est sur GitHub, et vous pouvez vraiment faire des trucs de ouf avec, par exemple des fractales, des simulations de fluides…etc. C’est complètement barré.

Mais pour commencer, le plus simple c’est d’explorer les exemples. Le classique “10 PRINT” recrée le fameux one-liner du Commodore 64 qui génère un labyrinthe infini. Les exemples SDF (Signed Distance Fields) montrent comment faire de la 3D avec des maths et des caractères. Et si vous êtes chaud, vous pouvez lui envoyer vos propres créations qui rejoindront la section “contributed”.

Andreas enseigne ces techniques dans ses cours, et apparemment les étudiants adorent. C’est vrai que c’est une approche super pédagogique du creative coding où on se prend pas la tête avec du WebGL ou des frameworks complexes… Non, faut juste pondre du code simple qui produit des résultats visuels immédiats.

Bref, play.ertdfgcvb.xyz c’est le genre de site qu’on bookmark et qu’on ressort quand on veut se vider la tête en codant des trucs rigolos. C’est gratuit, c’est open source, et c’est une belle démonstration que l’art et le code peuvent cohabiter sans avoir besoin de millions de polygones et de shaders complexes.

Un grand merci à Lorenper pour m’avoir fait découvrir cette pépite !

Datastar

23 septembre 2025 à 13:25
Sous le coude : Un framework javascript *léger* (~10 ko) qui s'accomode de divers backends (Python, php, GO...). Et ça supporte même SSE (Server-Side Events) et donc permet de faire des pages très dynamiques sans se coltiner des usines à gaz en Javascript. Le but, c'est vraiment de faire des applications très dynamiques, mais de faire le gros du boulot côté serveur.

Je me garde ici quelques liens en rapport :
https://archive.fosdem.org/2025/schedule/event/fosdem-2025-6316-push-based-hypermedia-with-datastar/
Comparé à htmx : https://chrismalek.me/posts/data-star-first-impressions/
https://medium.com/@ianster/using-datastar-da1984a6cc77
(Permalink)

Scramjet - Le missiles anti-censure du lycéen

Par :Korben
20 septembre 2025 à 08:23

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 !

How to delete tags in bulk? - Zotero Forums

18 septembre 2025 à 09:47

Script à ajouter dans l'extension Actions & Tags de Zotero permettant de supprimer les marqueurs tout en conservant certains d'entre eux

Astuce : en commentant les 2 lignes qui affichent une fenêtre pendant la suppression, cela évite de devoir cliquer des centaines, voire des milliers de fois sur OK.

// Delete tags, based on Replace tags
// This script removes all tags from the specified Zotero items, except those in the ignore list.
// add tags you wish to keep to `ignoreTags` list, the list is prefilled with two examples

(async () => {

const ignoreTags = ['#GoldSet', '#ClinicalTrials.gov', '#Cochrane Central', '#Embase', '#Medline', '#Proquest', '#Web of Science', '#WHO ICTRP'];

// ^^^^^ Add tag names here to ignore. ^^^^^^^

// Initialize `targetItems` to the array of `items`, or if `items` is undefined,
// use the single `item` wrapped in an array. If neither exists, default to an empty array.
let targetItems = items || (item ? [item] : []);

// Show an alert message
// await Zotero.alert(null, "Delete all tags except ignored ones");

// Iterate over each item in the `targetItems` array.
for (const currentItem of targetItems) {

// Retrieve all tags associated with the current item.
// Use `.getTags()` to get tag objects, and map to their `tag` property to get tag names.
const tags = currentItem.getTags().map(tag => tag.tag);

// Iterate over each tag in the list of tag names.
for (const tag of tags) {

// Check if the tag is in the ignore list.
if (ignoreTags.includes(tag)) {

// Alert the user that the tag is being skipped.
// await Zotero.alert(null, `Tag "${tag}" is in the ignore list and will not be deleted.`);
continue;
}

// Remove the tag from the current item using `.removeTag()`.
await currentItem.removeTag(tag);
}
}

// The script finishes here.
})(); 

Permalien

Apprendre la programmation sans se décourager : 5 stratégies efficaces

Se lancer dans la programmation peut sembler intimidant. Beaucoup ouvrent un tutoriel et pensent : « Je n’y comprends rien ». La bonne nouvelle ? Avec quelques choix intelligents et des méthodes adaptées, l’apprentissage peut devenir plus fluide et même agréable. Voici comment. 1. Choisir un langage accessible pour débuter Commencer avec un langage à […]

L’article Apprendre la programmation sans se décourager : 5 stratégies efficaces est apparu en premier sur BlogNT : le Blog des Nouvelles Technologies.

Spooky tales to scare your JavaScript developers

14 septembre 2025 à 08:01

Focus sur quelques bizarreries historique de JavaScript. Heureusement le mode strict et les linters existent 😅

Peut-être qu'un jour un nettoyage du language sera fait, mais quelque part c'est une belle preuve de rétrocompatibilité même si en l'occurrence elle est plus négative que positive.


Permalink

Spooky tales to scare your JavaScript developers

14 septembre 2025 à 08:01

Focus sur quelques bizarreries historique de JavaScript. Heureusement le mode strict et les linters existent 😅

Peut-être qu'un jour un nettoyage du language sera fait, mais quelque part c'est une belle preuve de rétrocompatibilité même si en l'occurrence elle est plus négative que positive.


Permalink

sindresorhus/ow: Function argument validation for humans

13 septembre 2025 à 07:07

Une librairie qui permet de valider les arguments d'une fonction de manière assez concise.

La même chose est cependant faisable avec les validateurs traditionnels type Zod, mais requierera de réassigner les arguments à des variables pour bénéficier du type narrowing là où ow le fait à la volée.


Permalink

sindresorhus/ow: Function argument validation for humans

13 septembre 2025 à 07:07

Une librairie qui permet de valider les arguments d'une fonction de manière assez concise.

La même chose est cependant faisable avec les validateurs traditionnels type Zod, mais requierera de réassigner les arguments à des variables pour bénéficier du type narrowing là où ow le fait à la volée.


Permalink
❌