Présentation de TinyJS, un framework pour créer des applications de bureau à partir de HTML, CSS et JavaScript en s’appuyant sur la WebView du système et un pont vers txiki.js. Son principal atout est la taille réduite des exécutables, autour de 6 Mo, bien inférieure à Electron. L’auteur montre le fonctionnement du scaffold, l’accès aux API système et un exemple avec AlpineJS qui transforme un flux RSS en HTML en utilisant tiny.fetch pour contourner les limitations CORS du navigateur.
Un handler postMessage d’iframe ne doit pas faire confiance aux messages reçus par défaut. L’article montre trois attaques concrètes : origine incorrecte, mauvaise fenêtre malgré la bonne origine, et données valides mais dangereuses. Il recommande de vérifier strictement event.origin, de comparer event.source avec le contentWindow attendu, puis de valider et borner le payload avant toute action. Côté émission, il conseille aussi d’éviter '*' et de cibler une origine précise.
Guide pratique pour comprendre et diagnostiquer la boucle d’événements JavaScript en suivant précisément la pile d’appels, les microtâches et les files de tâches. Il montre pourquoi les promesses s’exécutent avant setTimeout, comment repérer une « microtask starvation », et compare le fonctionnement des navigateurs avec celui de Node.js. L’article propose aussi une méthode de traçage pas à pas et des techniques de débogage avec Chrome DevTools, l’inspecteur Node et async_hooks.
Panorama pratique des réflexes essentiels pour réduire les risques de cyberattaque, aussi bien chez les particuliers que dans un homelab : mots de passe uniques, gestionnaire de mots de passe, authentification à deux facteurs, mises à jour régulières, sauvegardes testées et vigilance face au phishing. L’article insiste aussi sur le principe du moindre privilège, la limitation des services exposés sur Internet et les précautions à prendre lorsque des outils d’IA disposent d’accès techniques à des machines ou à des données sensibles.
Présentation de John the Ripper comme outil d’audit de mots de passe et rappel du principe des attaques hors ligne : tester des candidats, calculer leur empreinte puis la comparer au hash volé. L’article explique pourquoi les fonctions rapides comme MD5, SHA-1 ou SHA-256 sont inadaptées au stockage des mots de passe, contrairement à bcrypt, scrypt ou Argon2id avec sel. Il insiste aussi sur la longueur des mots de passe, la double authentification et l’usage strictement autorisé de ce type d’outil.
Gee critique, sous forme de BD satirique, les raisonnements qui proposent des solutions individuelles à des problèmes structurels. Il illustre notamment son propos avec la formation professionnelle, les bas salaires et les arrêts maladie, en montrant que des mesures présentées comme pragmatiques peuvent produire des effets opposés à l’échelle collective. Le billet vise plus largement l’incapacité supposée des décideurs économiques à raisonner en termes systémiques et macroéconomiques.
Un script Python de veille en lecture seule surveille deux fois par jour un serveur Linux et ses conteneurs Docker, sans appliquer automatiquement de mise à jour. Il contrôle APT, les images Docker, WordPress, les sauvegardes et systemd, n’alerte qu’en cas de changement et évite les doublons grâce à une empreinte SHA-256. L’article détaille aussi trois pièges rencontrés : le coût caché de docker ps --format '{{json .}}', les CVE manquées dans les dépôts tiers et une syntaxe OnCalendar systemd trompeuse.
Retour d’expérience sur la modernisation en deux jours d’une application Node.js/Express vieille de dix ans avec Kiro et AWS Transform Custom. L’équipe automatise l’analyse du code, la montée de Node.js 14 à 22, la correction de failles, la migration MD5 vers bcrypt, le passage à async/await, la conteneurisation et l’infrastructure Terraform. Le bilan met en avant une forte réduction du coût et du délai, tout en conservant validation humaine, traçabilité et documentation.
Retour sur la deuxième journée de ParisWeb 2026 autour de l’accessibilité, du design et des pratiques de développement. Les conférences abordent le coût réel de l’accessibilité, les effets de standardisation des design systems, l’usage de la méthode scientifique pour diagnostiquer les bugs et les apports de l’IA pour compenser certains handicaps. Le fil conducteur : inscrire l’accessibilité dans la durée par la formation, la mesure des progrès et une responsabilité partagée.
Retour sur la première partie de ParisWeb 2026, centrée sur un Web plus inclusif et responsable : prise en compte des différences culturelles dès la conception, évolution du RGAA vers WCAG 2.2 et extension aux applications mobiles et documents, bonnes pratiques CSS pour la typographie, mais aussi réflexion sur les exclusions systémiques que la seule conformité technique ne suffit pas à corriger. L’ensemble rappelle que l’accessibilité suppose autant des choix techniques que de l’attention aux usages réels.
Lea Verou propose de traiter les icônes d’interface comme des design tokens gérés en CSS, plutôt que de multiplier les SVG inline dans le HTML. Son approche repose sur des variables personnalisées, des pseudo-éléments et des masques CSS, avec des propriétés comme --icon, --icon-start ou --icon-end. Elle met en avant une meilleure cohérence, moins de boilerplate, des adaptations réactives aux états, thèmes et media queries, tout en conservant une solution de repli pour les navigateurs plus anciens.
Sous Ubuntu 26.04, le profil AppArmor de wg-quick peut empêcher l’activation d’un tunnel WireGuard, notamment lorsque la configuration se trouve dans le répertoire personnel. L’article montre comment diagnostiquer le blocage via dmesg, recommande de placer les fichiers dans /etc/wireguard/, et propose, pour les phases de test, d’assouplir le profil AppArmor afin d’autoriser la lecture depuis le home. Il rappelle aussi qu’il faut désormais lancer wg-quick avec sudo explicitement.
Le pont sert à créer un contraste dans la seconde moitié d’une chanson, à éviter la lassitude et à renforcer l’impact du refrain final. L’article montre comment varier le tempo, l’instrumentation ou la mélodie, puis détaille trois techniques harmoniques : utiliser des accords de la tonalité encore absents, emprunter ponctuellement un accord à une autre tonalité, ou moduler vers une nouvelle tonalité. Chaque méthode est illustrée par des exemples de chansons connues et de compositions originales.
Vue 3 peut laisser des watchers orphelins lorsqu’ils sont créés après un await dans un composable ou un setup() asynchrone, car ils ne sont alors plus rattachés automatiquement au scope du composant. L’article explique comment éviter ces fuites mémoire : créer les watchers synchroniquement, utiliser le top-level await de <script setup>, conserver puis arrêter explicitement les watchers différés, et s’appuyer sur onScopeDispose ou effectScope hors contexte composant. Il recommande aussi de tester les cycles montage/démontage pour détecter les effets réactifs persistants.
Référence pratique sur l’attribut SameSite des cookies et ses modes Strict, Lax et None, avec les implications pour l’authentification, la navigation cross-site et la protection contre les attaques CSRF. L’article rappelle la différence entre same-site et same-origin, détaille les contraintes liées à HTTPS et aux attributs Secure/HttpOnly, puis propose un tableau de décision, des exemples pour Express, Next.js et Django, ainsi qu’une checklist de débogage dans les DevTools.
Tutoriel pas à pas pour ajouter une authentification à double facteur dans une application Symfony. L’implémentation repose sur Google2FA pour générer et vérifier les codes TOTP, et BaconQrCode pour afficher le QR code de configuration. L’auteur montre comment intégrer un second authenticator Symfony, conserver la clé secrète en session, attribuer un rôle après validation du code et utiliser un EventSubscriber pour empêcher l’accès aux routes protégées tant que la 2FA n’a pas été validée.
L’auteur soutient que les mauvais résultats d’un agent de code ne viennent pas toujours du modèle : une architecture ambiguë lui fournit aussi de mauvais repères. À partir d’un exemple Symfony, il montre qu’une séparation claire entre domaine, application, infrastructure et interface, complétée par du DDD, des tests et des règles de dépendances vérifiables, réduit les choix implicites. L’objectif n’est pas de sur-architecturer, mais de rendre les responsabilités et contraintes suffisamment explicites pour les humains comme pour l’IA.
Réflexion sur la place respective de l’oreille et de la théorie musicale dans la composition et l’improvisation. L’auteur montre, à travers Gainsbourg, Prokofiev, Thelonious Monk, Irving Berlin ou Debussy, que les « fausses notes » et les écarts aux règles peuvent devenir de puissants ressorts expressifs lorsqu’ils servent l’écoute et la surprise. La théorie permet d’analyser et de formaliser après coup, mais elle ne remplace pas le jugement musical : si cela sonne juste, cela peut être bon.
Un très beau texte d'une personne ayant perdu son père
À partir de l’événement de Carrington de 1859 et de la panne électrique du Québec en 1989, l’auteur montre comment la recherche scientifique permet de comprendre et d’anticiper des phénomènes naturels capables d’affecter nos infrastructures. Il défend le financement de la recherche, notamment spatiale, en rappelant qu’elle améliore la prévention des catastrophes et produit de nombreuses innovations utiles au quotidien. Réduire ces budgets revient donc, selon lui, à sacrifier sécurité, connaissance et progrès futurs.