L'article introduit la commande Linux tc (traffic control), utilisée pour simuler et contrôler le trafic réseau. L’article montre comment ajouter un délai de 500 ms aux paquets avec tc qdisc add dev wlp3s0 root netem delay 500ms, puis supprimer cette règle avec tc qdisc del. L’outil netem permet aussi de perdre, dupliquer ou corrompre des paquets, idéal pour tester des conditions réseau difficiles. L’autrice mentionne qu’avec un routeur Linux, on peut même ralentir le trafic d’autres utilisateurs (comme celui d’un frère), et invite à explorer tc qdisc show pour voir les règles actuelles. Le zine complet et d’autres comics sont disponibles via abonnement ou sur le site.
L'article explique comment utiliser la commande ss (socket statistics) sous Linux pour identifier et gérer les processus utilisant un port réseau. L’article montre comment ss -tunapl permet de lister les serveurs en cours d’exécution et d’afficher les PID des processus, utile pour libérer un port occupé (comme le 8080). Les options comme -n (affichage des ports en numérique), -p (affichage des PID), et d’autres (-l, -t, -u) sont détaillées pour filtrer les sockets TCP, UDP ou Unix. L’autrice recommande ss plutôt que netstat, plus ancien et complexe, pour une utilisation plus simple et efficace. Le zine complet et d’autres ressources sont disponibles via abonnement ou sur le site.
Cet article explique la commande Linux ip, utilisée pour visualiser et modifier la configuration réseau. L’article détaille quelques sous-commandes utiles comme ip addr list (affiche les adresses IP des interfaces), ip route list (affiche la table de routage), et montre comment changer une adresse MAC pour contourner des restrictions réseau (par exemple dans les cafés). D’autres options comme ip link (gestion des interfaces), ip neigh (table ARP), et ip xfrm (pour IPsec) sont mentionnées, ainsi que des astuces comme l’utilisation de --color pour une sortie colorée ou --brief pour un résumé. Le zine complet et d’autres comics sont disponibles via un abonnement à la newsletter ou sur le site de l’autrice.
Dans ce billet, Lea Verou explore l’idée que le succès d’un produit dépend de la manière dont il gère l’effort demandé à l’utilisateur en fonction de la complexité des cas d’usage. Elle illustre ce principe avec plusieurs exemples : Google Calendar, qui optimise les cas simples tout en permettant les cas complexes avec un effort supplémentaire ; l’élément HTML <video>, où la personnalisation des contrôles devient soudainement très coûteuse en effort ; l’éditeur Instagram, qui sépare les filtres prédéfinis des réglages avancés ; et Coda, qui intègre intelligemment des formules générées automatiquement pour faciliter la transition entre simplicité et complexité. Elle souligne aussi l’importance de concevoir des interfaces qui minimisent l’effort utilisateur, même si cela complique l’implémentation, comme le montre l’exemple des robinets ou des bornes de train d’Oslo. L’article plaide pour une courbe d’effort progressive, évitant les « falaises d’utilisabilité » où un petit besoin supplémentaire exige un effort démesuré. En résumé, un bon design doit être une « bonne affaire » pour l’utilisateur, pas une arnaque.
Le positionnement par ancre (anchor positioning) est une nouvelle fonctionnalité CSS qui permet de positionner visuellement un élément par rapport à un autre, indépendamment de leur place dans le DOM. Idéal pour les info-bulles, menus contextuels ou modales, il utilise anchor-name pour définir une ancre et position-anchor pour l’associer à un élément positionné (en absolute ou fixed). Le placement s’effectue via anchor() ou position-area, tandis que anchor-size() permet d’adapter les dimensions de l’élément en fonction de l’ancre. La propriété position-try gère les débordements en proposant des solutions de repli. Compatible avec les navigateurs modernes, cette technique offre une alternative flexible aux méthodes traditionnelles, tout en nécessitant une attention particulière à l’accessibilité. Des outils comme Anchor Tool et des démos pratiques illustrent son potentiel.
L’article aborde les enjeux d’accessibilité et d’UX liés au défilement horizontal sur le web, un choix de design souvent esthétique mais problématique pour de nombreux utilisateurs (personnes naviguant au clavier, avec des troubles moteurs ou visuels, etc.). Bien que populaire (carrousels, galeries, etc.), ce modèle pose des défis majeurs : contenu manqué, navigation complexe, gestes difficiles, perte de repères, et incompatibilités selon les appareils. Le RGAA et les WCAG encadrent ces pratiques en France, rappelant que l’accessibilité améliore l’expérience pour tous et favorise l’inclusion. Si le défilement horizontal est parfois incontournable, des bonnes pratiques existent (balises ARIA, contrôles clairs, navigation clavier, gestion du focus) pour limiter ses impacts négatifs. L’article conclut en encourageant à privilégier la clarté, la simplicité et l’inclusion plutôt que les tendances visuelles, soulignant que les carrousels, par exemple, sont souvent peu efficaces et mal perçus par les utilisateurs. Une réflexion utile pour repenser les interfaces de manière plus universelle.
Le projet MicroStack, un rack modulaire imprimé en 3D pour organiser des mini-PC en homelab, s’enrichit désormais avec la compatibilité des HP EliteDesk/ProDesk et Lenovo ThinkCentre Tiny, en plus des Dell OptiPlex Micro déjà supportés. L’auteur a répondu aux demandes de la communauté en développant des modules dédiés pour chaque marque, tous inter-compatibles et empilables, permettant de mixer les appareils dans un même rack. La collection comprend aussi des modules de stockage et un "chapeau" pour une finition propre. Le design utilise un motif honeycomb pour une bonne ventilation et il est recommandé d’imprimer en PETG pour une meilleure résistance thermique. Le projet, open source et disponible sur MakerWorld, a reçu un accueil positif, avec des retours d’utilisateurs montrant des installations mixtes. L’auteur invite à proposer d’autres modèles de mini-PC à intégrer et encourage les retours et partages pour faire évoluer le projet.
L’article explique où et comment se procurer de la musique pour alimenter un cloud musical autohébergé, en privilégiant les solutions qui soutiennent directement les artistes. L’auteur recommande Bandcamp pour son approche éthique et ses formats audio libres (FLAC), ainsi que Qobuz pour son catalogue varié, malgré des restrictions techniques. Il mentionne aussi les plateformes de musique libre comme Jamendo et Dogmazic, ainsi que l’achat de CD lors de concerts ou en occasion. En dernier recours, il évoque des solutions alternatives pour les musiques introuvables ailleurs. L’objectif est de minimiser les intermédiaires et de favoriser les artistes, tout en partageant des découvertes et des astuces pour enrichir sa bibliothèque musicale. Une liste de ressources et de plateformes complémentaires est également proposée pour aller plus loin.
Zoxide est un outil moderne qui remplace avantageusement la commande cd traditionnelle en ligne de commande. Il mémorise les répertoires fréquemment visités et permet d’y accéder rapidement via des raccourcis ou une interface interactive (notamment avec fzf). Compatible avec Bash, Zsh, Fish et d’autres shells, il s’installe facilement via les dépôts officiels, Cargo ou Homebrew. Une fois configuré (via zoxide init), il offre des commandes comme z pour sauter vers un répertoire en quelques caractères, ou zi pour une sélection interactive. Zoxide se distingue par sa rapidité (écrit en Rust), son algorithme de classement intelligent et son intégration transparente, pouvant même remplacer cd via un alias ou l’option --cmd cd. Idéal pour les développeurs ou administrateurs système, il simplifie la navigation dans des arborescences complexes et propose des fonctionnalités avancées comme la gestion manuelle de sa base de données ou des intégrations avec des éditeurs de code. Une alternative performante et maintenue à des outils comme autojump ou z.sh.
L’autrice partage une réflexion sur la fatigue cognitive, souvent négligée contrairement à la fatigue physique. Elle explique comment, après un accident, elle a pris conscience que le cerveau, comme le corps, peut s’épuiser à force d’être sollicité sans relâche, surtout lorsqu’on compense des difficultés invisibles (comme son ADHD et sa surdité). Elle réalise que ses efforts constants pour suivre les conversations ou gérer le quotidien ont un coût, et que la surcharge cognitive chronique peut aggraver les conséquences d’un traumatisme crânien ou d’autres problèmes de santé. Elle évoque la nécessité de mieux gérer son « budget cérébral », en apprenant à relâcher la pression et à prioriser ses efforts, tout comme on le ferait pour préserver son corps. Une prise de conscience qui l’amène à repenser son rapport au travail et à l’effort mental.
Cet article explique comment construire une API puissante avec Symfony et l’intégrer à une application frontend moderne (comme React). L’article détaille les étapes clés : installation de Symfony 7.3, création d’un endpoint API simple retournant des données JSON (ici, une liste de produits), puis développement d’une application React avec Vite pour consommer ces données. Il aborde aussi la gestion des problèmes CORS via un proxy de développement et souligne l’importance d’une architecture API-first. Des statistiques récentes (2024) et des conseils pratiques (comme l’utilisation de Swagger pour la documentation) complètent le guide, qui se veut accessible même pour les débutants. L’auteur encourage à passer ensuite à une API dynamique avec Doctrine et MySQL. Idéal pour ceux qui veulent démarrer rapidement avec Symfony et React.
L’article propose une approche innovante des design systems : les considérer comme des langues vivantes, capables de développer des « dialectes » pour s’adapter à des contextes spécifiques sans perdre leur cohérence fondamentale. L’auteur, Michel Ferreira, illustre cette idée avec des exemples concrets, comme l’adaptation du design system Polaris de Shopify pour des utilisateurs en entrepôt (écrans sombres, cibles tactiles agrandies, langage simplifié), ce qui a permis de passer de 0 % à 100 % de réussite des tâches. Plutôt que de chercher une uniformité rigide, il prône une flexibilité structurée via un « Flexibility Framework » (niveaux de personnalisation) et une gouvernance collaborative. L’objectif ? Privilégier l’efficacité utilisateur sur la conformité visuelle, en documentant chaque adaptation et en intégrant les solutions validées dans le système principal. Une lecture essentielle pour repenser les design systems comme des outils évolutifs, au service des besoins réels plutôt que des règles figées.
John Rhea explique comment il a recréé l’animation du bouton Google Gemini de Gmail en utilisant uniquement du CSS, notamment la fonction shape() et des animations. L’animation originale montre une étoile à quatre branches qui tourne et une forme extérieure se transformant entre plusieurs formes (fleur, cylindre, hexagone, cercle) tout en tournant. Rhea détaille sa méthode : il a dessiné les cinq formes dans un logiciel vectoriel, veillant à ce qu’elles aient le même nombre de points d’ancrage pour permettre une interpolation fluide entre elles. Il a ensuite converti ces formes en syntaxe CSS shape(), défini des variables CSS pour chaque forme, et utilisé des transitions et des @keyframes pour animer la rotation, le changement de couleur et la morphose entre les formes. Le résultat final reproduit fidèlement l’effet visuel du bouton Gmail, avec une approche purement CSS et sans JavaScript. Un projet ludique qui met en lumière les possibilités créatives des nouvelles fonctionnalités CSS.
L’article explique comment transformer des prompts AI efficaces en assistants personnalisés et réutilisables, évitant ainsi de retaper ou copier-coller les mêmes instructions. L’auteur présente les avantages des assistants AI sur mesure (comme les CustomGPTs, Agents ou Gems) : gain de temps, cohérence, adaptation au contexte spécifique d’une équipe, et capitalisation de l’expertise. Il détaille aussi quand ne pas en créer (tâches ponctuelles, données sensibles, processus complexes, etc.).
Le processus MATCH (Map, Add knowledge, Tailor, Check, Hand off) est proposé pour concevoir un assistant, illustré par l’exemple d’un outil analysant des retours clients. L’article souligne l’importance de partir des besoins utilisateurs, d’ajouter des fichiers de connaissance, et de tester rigoureusement. Enfin, il encourage à créer ses propres assistants plutôt que d’utiliser des modèles publics, pour une meilleure adéquation avec ses workflows et son ton. Une lecture utile pour les équipes souhaitant optimiser leur usage de l’IA au quotidien.
Ploum partage ses réflexions sur la survalorisation des "grandes idées" et la négation de l’expérience dans la création et l’innovation. À travers des exemples tirés du cinéma (Glass Onion), de l’écriture (Bikepunk), de l’architecture ou du développement logiciel, il rappelle qu’une idée seule ne vaut rien : c’est l’accumulation de décisions, d’adaptations et de compromis qui transforme une étincelle en projet abouti. Il critique aussi l’illusion que les IA pourraient remplacer le travail humain, soulignant que l’expérience, la prise de décision et le "panache" sont irremplaçables. Il évoque enfin sa participation au festival Hypermondes à Mérignac, où il côtoiera des auteurs qu’il admire, non pour échanger des idées, mais pour s’imprégner de leurs parcours et de leur créativité. Un plaidoyer pour le travail, l’apprentissage et l’humilité face à la complexité des projets.
Rodolphe Breard propose une configuration sécurisée pour OpenSSH, en insistant sur l’utilisation exclusive de l’algorithme Ed25519 pour les clés (serveur et client) et en désactivant RSA et ECDSA, jugés moins sûrs. Pour l’échange de clés, il recommande l’algorithme post-quantique hybride mlkem768x25519-sha256 (basé sur ML-KEM et X25519), disponible depuis OpenSSH 9.9, et suggère de bannir les anciennes versions ne supportant pas ces algorithmes. Côté chiffrement, seuls les algorithmes AEAD (comme chacha20-poly1305@openssh.com ou aes256-gcm@openssh.com) sont conservés, avec des MAC en mode encrypt-then-mac. L’authentification par mot de passe est désactivée, ainsi que les options comme UsePAM, AllowTcpForwarding ou X11Forwarding, tout en limitant les tentatives de connexion et en renforçant les permissions. La configuration est modulaire, avec des fichiers séparés pour les paramètres génériques et les utilisateurs autorisés. Enfin, l’outil ssh-audit est conseillé pour vérifier la robustesse de la configuration. Une approche pragmatique pour se prémunir contre les attaques, y compris celles liées à l’informatique quantique future.
Obsidian explique comment ils minimisent les risques d’attaques par la chaîne d’approvisionnement (supply chain attacks) en limitant au maximum ses dépendances externes. L’application privilégie le développement en interne (comme pour les fonctionnalités Bases et Canvas), évite les bibliothèques tierces quand c’est possible, et utilise des versions figées et vérifiées pour les dépendances inévitables (comme Electron ou CodeMirror). Les mises à jour sont rares, méticuleusement testées et espacées dans le temps, avec une revue approfondie des changements et des sous-dépendances. Cette approche réduit la surface d’attaque et permet de détecter rapidement d’éventuels problèmes avant qu’ils n’affectent les utilisateurs. Une stratégie qui combine minimalisme, contrôle strict et prudence pour garantir un environnement sécurisé et privé.
Linear explique dans cet article pourquoi l’entreprise a adopté une politique « zéro bug » : chaque bug signalé est corrigé rapidement (sous 48h pour les priorités hautes, 7 jours pour les autres), sans accumulation dans un backlog. L’idée est née après qu’un bug signalé dans une autre application ait mis cinq ans à être résolu, illustrant l’inutilité de faire attendre les utilisateurs. Pour y parvenir, Linear a d’abord nettoyé son backlog existant (175 bugs en trois semaines), puis mis en place des processus stricts : chaque bug est soit corrigé immédiatement, soit marqué comme « ne sera pas corrigé ». Un tableau de bord permet de suivre les bugs ouverts et de rééquilibrer la charge entre les équipes. Cette approche améliore la qualité du produit, renforce la confiance des utilisateurs (qui voient leurs signalements résolus en un temps record) et influence la culture d’ingénierie, incitant à éviter les bugs dès le développement. Résultat : plus de 2 000 bugs corrigés en un an, et une relation client transformée en collaboration positive. Une politique devenue une valeur centrale, que personne ne souhaite abandonner.
L’article présente Warpgate, un outil open source qui simplifie la gestion des accès sécurisés (SSH, PostgreSQL, MySQL, HTTP) en agissant comme un bastion moderne. Facile à déployer (binaire ou Docker), il centralise l’authentification (avec support SSO), offre une connexion transparente et un audit en temps réel des sessions. L’auteur souligne sa simplicité, sa sécurité renforcée et son interface intuitive, idéale pour remplacer les solutions complexes de machines de rebond. Un exemple de déploiement avec Docker Compose est fourni, illustrant la rapidité de mise en place. Une pépite pour les administrateurs système en quête d’efficacité et de traçabilité.
Ce billet explique comment résoudre en DNS les noms de conteneurs Docker sous le domaine local .docker en utilisant systemd-resolved plutôt que dnsmasq, une solution plus simple et performante depuis systemd 258. L’auteur utilise toujours dnsdock pour gérer la résolution DNS, mais délègue désormais la zone .docker à ce service via un fichier de configuration /etc/systemd/dns-delegate.d/docker.dns-delegate. Après avoir lancé dnsdock et configuré resolved, il devient possible de résoudre les noms des conteneurs (basés sur leur nom, alias ou étiquettes) directement depuis la machine hôte, facilitant ainsi la gestion de plusieurs services comme PostgreSQL sans conflit de ports. Une mise à jour pratique pour les utilisateurs de Docker et systemd.