Hebdomadaire Shaarli
Semaine 38 (September 15, 2025)
Une adaptation des concepts du Clean Code en PHP
NixOS et Proxmox forment un duo puissant pour créer des serveurs reproductibles, déclaratifs et atomiques :
- Déclaratif : Un seul fichier (
configuration.nix) décrit l’état final du système. - Reproductible : Clonez vos VM à l’identique, sans "flocons de neige".
- Atomique : Mises à jour sans risque, avec rollback instantané en cas d’échec.
L’article propose un tutoriel pratique :
- Téléchargement automatisé de l’ISO NixOS.
- Création d’une VM Proxmox via
qm, avec boot UEFI et montage de l’ISO. - Préparation à l’installation via
configuration.nix.
Idéal pour une infrastructure propre, robuste et facile à maintenir. Une approche moderne pour dire adieu au "ça marche sur ma machine" !
Découvre ce tutoriel pas à pas pour développer un assistant vocal personnalisé en Python, inspiré de Jarvis. L’article détaille comment utiliser des bibliothèques comme speech_recognition, pyttsx3 et wikipedia pour reconnaître la voix, répondre à des commandes et interagir avec ton ordinateur. Idéal pour automatiser des tâches ou s’initier à l’IA conversationnelle.
Lyra Rebane défend l’idée que beaucoup de sites n’ont pas besoin de JS ou de frameworks lourds pour offrir une expérience riche : modernes, HTML et CSS seuls suffisent souvent. L’article montre de nouveaux outils CSS (naming, nesting, pseudo-classes, color mixing, unités viewport dynamiques, etc.), des composants interactifs accessibles (via « \:checked », « \:has », « details/summary », etc.), et des effets visuels performants. L’auteur insiste aussi sur les bénéfices pour la performance, l’accessibilité, la vie privée, et le plaisir de coder léger, esthétique et fonctionnel.
La multi-location (multi-tenancy) en base de données désigne une architecture où une seule instance d’application et d’infrastructure sert plusieurs clients (tenants), tout en garantissant une isolation logique de leurs données. Ce modèle, largement adopté dans le cloud, permet une meilleure scalabilité, une réduction des coûts de maintenance et une optimisation des ressources. L’article détaille quatre approches principales : base unique avec schéma partagé (simple mais risqué en cas d’oubli de filtrage par tenant), base unique avec schémas séparés (meilleure isolation mais complexité accrue), base dédiée par tenant (isolation maximale mais coûteuse en gestion), et plusieurs bases avec tenants partagés (compromis entre coût et performance). Chaque méthode présente des avantages et des inconvénients selon les besoins en sécurité, performance et maintenance
Les verres auto-nettoyants utilisent des revêtements spéciaux, soit hydrophobes (où l’eau perle et emporte la saleté), soit hydrophiles (où l’eau s’étale en fine couche et active un catalyseur comme le dioxyde de titane sous l’effet des UV). Dans les deux cas, la saleté et les bactéries sont éliminées naturellement par l’eau et la lumière, rendant la surface propre et désinfectée sans intervention manuelle. Ces technologies, passives et efficaces, sont aussi utilisées sur certains écrans de smartphones, tout en conservant transparence et fonctionnalité tactile. Une innovation pratique pour vitres, écrans et équipements médicaux !
Problème : Traiter une vidéo en synchrone bloque l’utilisateur et le serveur.
Solution : Découper la vidéo en chunks, traiter chaque morceau en parallèle via des workers Symfony Messenger (RabbitMQ, Redis).
Étapes clés :
- Upload → Envoi d’un message
ProcessVideoMessage. - Découpage en chunks → Messages
ProcessVideoChunkMessagetraités par des workers. - Recomposition finale avec FFmpeg une fois tous les chunks prêts.
Avantages :
✅ Expérience utilisateur fluide (pas d’attente).
✅ Scalable (ajoutez des workers).
✅ Architecture modulaire et tolérante aux pannes.
Cet article explique pourquoi l’utilisation de Math.random() pour générer des mots de passe est dangereuse (prédictibilité, absence de sécurité cryptographique) et propose une solution robuste via l’API Web Crypto et sa méthode crypto.getRandomValues(). Cette dernière utilise des sources d’entropie cryptographiquement sécurisées, évitant les biais de distribution grâce au rejection sampling.
L’article fournit un exemple d’implémentation complète, incluant :
- Une classe
SecurePasswordGeneratorpersonnalisable (longueur, types de caractères, exclusion des caractères ambigus). - Une méthode pour calculer la force du mot de passe généré.
- Des bonnes pratiques : validation côté serveur, gestion mémoire, et compatibilité navigateur (HTTPS requis).
À retenir : Toujours privilégier crypto.getRandomValues() et éviter Math.random() pour toute application sensible. L’API est largement supportée (Chrome, Firefox, Safari) et garantit une sécurité optimale.
Face à l’encombrement du Web actuel (publicités intrusives, trackers, JavaScript omniprésent, données superflues), le protocole Gopher — créé en 1991 — propose une approche radicalement simple : des menus textuels, des requêtes uniques, et une absence totale de scripts ou de cookies. Là où une recette web pèse plusieurs mégaoctets, Gopher se contente de quelques kilooctets, sans pistage ni distraction. Sans sessions ni contenu dynamique, il privilégie l’information pure et la légèreté, au prix d’une expérience dépouillée, idéale pour ceux qui recherchent efficacité et confidentialité. Porté par des communautés comme les Pubnix, Gopher reste une niche pour les amateurs de sobriété numérique, accessible via des clients dédiés (Lagrange, Bombadillo, etc.).
L’article présente Git Much Faster, un script open source conçu pour optimiser drastiquement les temps de clonage des dépôts Git, surtout pour les gros projets (comme Chromium ou le noyau Linux). En combinant des stratégies comme la désactivation de la compression (core.compression=0), l’augmentation de la taille des buffers HTTP (http.postBuffer=1024M), les clones partiels (--filter=blob:none) et les checkouts éparses, il permet de réduire les temps de clone jusqu’à 93% et l’espace disque jusqu’à 98%, sans sacrifier l’accès au code source. Par exemple, le dépôt Chromium (60+ Go) passe de 95 minutes à 6 minutes de clonage. Le script propose aussi des benchmarks comparatifs avec Git Scalar et des configurations sur mesure pour CI/CD ou environnements distants. Idéal pour les équipes confrontées à des dépôts volumineux ou des pipelines lents, il s’installe simplement via un script bash et s’adapte à différents cas d’usage, tout en limitant les impacts sur l’historique ou la complétude des données. Une solution pragmatique pour booster la productivité et réduire les coûts d’infrastructure.
L’article détaille la mise en place d’un pipeline GitLab CI pour un projet Symfony, avec les étapes clés suivantes :
-
Automatisation des tests (unitaires, fonctionnels) à chaque Merge Request ou push, en utilisant SQLite pour les tests (plus léger que PostgreSQL).
-
Configuration du fichier
.gitlab-ci.yml:- Définition des stages (
build,test). - Utilisation d’images Docker (PHP 8.3, Node 21.7) pour exécuter les jobs.
- Installation des dépendances (Composer, npm) et exécution des tests via PHPUnit.
- Gestion des fixtures et du schéma de base de données en environnement de test.
- Build des assets front-end (Webpack Encore) avec partage des artefacts entre jobs.
- Définition des stages (
-
Blocage des merges si les tests échouent, via l’option "Pipelines must succeed" dans les paramètres de GitLab.
-
Bonus : Pistes pour aller plus loin (analyse statique avec phpstan, audit de sécurité, déploiement automatique).
Ce tutoriel de ZoneTuto explique comment configurer le montage automatique d’un volume chiffré avec LUKS (Linux Unified Key Setup) au démarrage du système. Il détaille les étapes clés :
- Préparation du volume chiffré et création d’une clé de déchiffrement dédiée.
- Configuration de
/etc/crypttabet/etc/fstabpour un montage automatique. - Sécurisation de la clé et gestion des permissions.
Idéal pour ceux qui souhaitent allier sécurité et praticité sous Linux.
Dans le cadre de son projet Foundations, l’auteur partage douze croyances qu’il a révisées après une année de recherches approfondies, combinant lecture intensive et mise en pratique. Il souligne d’abord que la valeur de la recherche réside moins dans la découverte de vérités évidentes (comme l’importance du sport ou du sommeil) que dans la capacité à trancher entre des théories plausibles ou à approfondir des sujets pour en faire une priorité durable. Parmi ses changements d’avis marquants : la primauté du cardio sur la musculation pour la santé, l’idée que la productivité découle davantage du bien-être que du stress, ou encore la risque accru des obligations par rapport aux actions sur le long terme. Il nuance aussi des idées reçues, comme la nocivité persistante des graisses saturées, la supériorité des livres papier pour la rétention, ou l’impact vital des liens sociaux sur la longévité. D’autres prises de position surprennent, comme l’efficacité des médicaments contre le TDAH (contrairement aux approches comportementales), les bienfaits d’un léger auto-illusionnement pour l’efficacité personnelle, ou l’avantage d’un désencombrement radical plutôt que progressif. Enfin, il remet en cause des dogmes comme la quête du sommeil parfait (source de contre-productivité) ou le rôle surévalué de l’empathie émotionnelle dans la morale, prônant plutôt la compassion et la raison. Ces ajustements, souvent contre-intuitifs, reflètent une approche pragmatique où la nuance l’emporte sur les certitudes, et où l’action compte autant que la connaissance.
L’article explique pourquoi l’auteur a abandonné Docker pour Podman, mettant en avant plusieurs avantages clés : Podman est sans démon, ce qui améliore la sécurité (moins de vulnérabilités liées à un processus root permanent) et réduit la consommation de ressources. Il s’intègre nativement avec systemd et Kubernetes, facilitant la gestion des conteneurs comme des services système et permettant une transition fluide vers des environnements de production. La migration est simple, car Podman utilise les mêmes commandes et fichiers Dockerfile que Docker, tout en offrant une approche plus sécurisée (mode rootless par défaut) et une meilleure alignement avec les pratiques Linux modernes. L’auteur souligne aussi que Podman encourage une architecture plus propre, comme l’utilisation d’un reverse proxy plutôt que l’exposition directe de ports privilégiés. En résumé, Podman se présente comme une évolution naturelle pour les développeurs cherchant plus de sécurité, de légèreté et de cohérence entre le développement et la production.