Ce zine démystifie les permissions Unix de façon visuelle et accessible : chaque fichier a trois droits (lecture, écriture, exécution) pour trois catégories (utilisateur, groupe, autres), affichables via ls -l
. Les permissions sont représentées en binaire (ex. rw-
= 110
= 6
), ce qui permet d’utiliser chmod 644
pour définir rapidement rw-r--r--
. L’autrice explique aussi les bits spéciaux (setuid
, setgid
, sticky
) et leurs effets, comme un exécutable qui s’exécute toujours en tant que root. Pour les dossiers, les droits changent de sens : r
permet de lister, w
de créer, et x
d’y accéder.
Ce zine explique simplement comment surveiller l’utilisation du disque sous Linux avec des commandes essentielles :
du
(avec -s
pour un résumé et -h
pour des tailles lisibles) permet de connaître l’espace occupé par des fichiers ou dossiers, tandis que df
(et son option -h
) affiche l’espace disponible sur chaque partition. L’autrice souligne aussi l’importance de df -i
pour vérifier la consommation d’inodes, dont l’épuisement empêche la création de nouveaux fichiers. Enfin, elle présente ncdu
comme un outil interactif pour visualiser l’espace disque utilisé, et iostat
pour analyser les performances de lecture/écriture en temps réel.
Ce zine explique de façon claire et visuelle comment utiliser la commande ps
sous Linux pour lister les processus en cours. L’autrice recommande d’utiliser ps aux
pour afficher tous les processus avec leur utilisateur, et détaille des options utiles comme w
(pour voir les arguments complets des commandes), e
(pour afficher les variables d’environnement), ou encore f
(pour un arbre ASCII des processus). Elle souligne aussi que ps
supporte trois styles d’arguments (UNIX, BSD, GNU), ce qui peut rendre son utilisation un peu déroutante, et propose des astuces comme ps -eo user,pid,wchan,cmd
pour personnaliser les colonnes affichées. Enfin, elle rappelle que des outils comme pstree
peuvent compléter ps
pour visualiser la hiérarchie des processus.
Ludovic Frank partage plusieurs contrôleurs Stimulus prêts à l’emploi, utilisables aussi bien avec Symfony (via Symfony-UX) qu’avec Ruby on Rails. L’article détaille comment charger ces contrôleurs de manière asynchrone pour optimiser les performances, et propose des exemples concrets : un bouton qui se cache lors de la navigation dans une Turbo Frame, un accordéon avec DaisyUI, une intégration de carte OpenFreeMap (LFMaps) chargée à la demande, et une mise à jour du contrôleur intl-tel-input pour la gestion des numéros de téléphone internationaux. Il souligne aussi l’intérêt de la stack Hotwired (Stimulus + Turbo), commune aux deux frameworks, et mentionne la bibliothèque Stimulus Components pour des composants supplémentaires. Une ressource utile pour enrichir rapidement le front-end de vos applications
L’article partage l’expérience d’un lead développeur qui, submergé par la multiplication des responsabilités, a réalisé que son emploi du temps était aussi mal optimisé qu’un code truffé de bugs. Il propose une méthode inspirée du développement logiciel pour "refactorer" son agenda : diagnostiquer ses tâches (en les listant, évaluant leur importance et leur urgence via une matrice d’Eisenhower adaptée), prioriser en distinguant l’urgent de l’important, et planifier avec le time-blocking (réserver des plages fixes pour les tâches récurrentes et laisser 30% de temps libre pour les imprévus). L’auteur insiste sur l’importance de la weekly review pour ajuster son planning, déléguer davantage (comme en pair programming), et ainsi retrouver du temps pour l’essentiel : développer, faire de la veille, ou animer des ateliers. Une approche pragmatique pour éviter le syndrome de la "fonction qui fait tout" et réduire le stress, avec des outils concrets comme la matrice de priorisation et des créneaux sanctuarisés. À tester surtout quand on passe de dev à lead ou manager !
Une bookmarklet pour créer des URLs avec un fragment de texte sélectionné dans la page - pratique pour aller directement à la zone voulue
L’article s’intéresse à la fonctionnalité CSS la plus décriée selon le State of CSS 2025 : les fonctions trigonométriques, notamment sin()
et cos()
. Pourtant, ces fonctions offrent des usages pratiques et créatifs, comme la création de dispositions circulaires (placer des éléments autour d’un cercle), des layouts ondulés (effets de vagues ou entrelacs), ou encore des animations amorties (mouvements réalistes de ressorts ou de pendules). L’auteur explique leur principe via le cercle unité et montre comment les utiliser en CSS pour des effets visuels dynamiques, sans recourir à des valeurs magiques. L’objectif ? Réconcilier les développeurs avec ces outils souvent perçus comme complexes, mais en réalité puissants et accessibles. Une invitation à explorer leur potentiel au-delà des préjugés !
Logger chaque appel API est essentiel pour le débogage, l’audit et la conformité, mais une mauvaise implémentation peut dégrader les performances (blocage de l’event loop, saturation du disque, latence réseau). La règle d’or : ne jamais faire attendre la réponse API par l’écriture des logs. Pour y parvenir, privilégiez un logger asynchrone (comme Pino), bufferisez les logs en mémoire avant de les flusher par lots, et externalisez leur traitement via des workers ou des files de messages (Redis, Kafka). Masquez les données sensibles, surveillez l’impact sur les performances, et archivez les logs régulièrement. En production, une architecture distribuée (ex : logs envoyés à Kafka puis traités par ELK) permet de scalabiliser sans impact sur les temps de réponse. L’objectif : capturer les infos clés (timestamp, méthode, URL, statut, latence, utilisateur) sans alourdir le traitement des requêtes.
Flozz partage ses premières impressions et l’installation d’Ubuntu 25.04 sur le GPD MicroPC 2, un mini-PC portable ultra-compact (7", 800 g) équipé d’un Intel N250, 16 Go de RAM et un SSD NVMe de 512 Go. L’auteur, nostalgique des netbooks, apprécie sa polyvalence (mode PC/tablette, écran tactile 1080p, connectique complète : 2x USB-A, 2x USB-C, HDMI, Ethernet, Wi-Fi 6, Bluetooth 5.2) et son format nomade, idéal pour le dépannage ou les déplacements. L’installation d’Ubuntu se passe sans encombre, mais nécessite quelques ajustements : correction des boutons du trackpad via une configuration libinput, réactivation du tactile après veille avec un script systemd, et activation de la rotation automatique de l’écran via une extension GNOME. Le clavier QWERTY, compact et optimisé pour une utilisation à deux mains, est surprenant d’agrément, tandis que l’écran offre une bonne qualité. Seuls bémols : le chargeur fourni (format US + adaptateur encombrant) et l’absence de pilote pour le lecteur d’empreintes. Malgré un prix élevé (425 € + taxes) et quelques réglages logiciels, la machine séduit par sa solidité et sa praticité, notamment en mode tablette.
Pascal Martin, Principal Engineer et AWS Hero, explique dans cette conférence que les systèmes distribués — ensembles de services communiquant via le réseau — sont omniprésents dans le web moderne, offrant scalabilité, résilience et flexibilité, mais introduisant aussi des défis majeurs : gestion de la cohérence des données, communication complexe entre services, et résilience face aux pannes inévitables. Il aborde des concepts clés comme le partitionnement des données, les compromis du théorème CAP (cohérence, disponibilité, tolérance aux pannes), les patterns Outbox et Saga pour les transactions, et l’importance de limiter le Blast Radius (impact des pannes) via des time-outs, retries intelligents, et une dégradation gracieuse des services. Son message central : tout peut tomber en panne, il faut donc concevoir des architectures résilientes, s’appuyer sur des outils éprouvés, et accepter que les systèmes distribués fonctionnent toujours dans un état "partiellement dégradé". Une conférence essentielle pour comprendre pourquoi et comment construire des systèmes robustes, avec des exemples concrets tirés de sa pratique chez Bedrock et dans le cloud.
Ce tutoriel explique l’utilité des pseudo-classes fonctionnelles en CSS pour cibler des éléments de manière plus efficace et lisible :
-
:is()
: Permet de regrouper plusieurs sélecteurs (logique OU) pour appliquer les mêmes styles, réduisant la redondance.
Exemple ::is(h1, h2, h3) { color: [#333](https://raphael.salique.fr/liens/./add-tag/333); }
-
:not()
: Exclut un élément d’une sélection, utile pour appliquer des styles à tous sauf à quelques exceptions.
Exemple :li:not(:last-child) { border-bottom: 1px solid [#ccc](https://raphael.salique.fr/liens/./add-tag/ccc); }
-
:where()
: Similaire à:is()
, mais avec une spécificité nulle, idéal pour des styles de base facilement surchargeables.
Exemple ::where(header, main, footer) { margin: 1rem 0; }
-
:has()
: Cible un élément parent en fonction de ses descendants, une nouveauté puissante pour des sélections contextuelles.
Exemple :article:has(img) { border: 2px solid red; }
Ces sélecteurs améliorent la concision et la maintenabilité du code CSS.
Se motiver pour une tâche pénible ? (Ashley Janssen)
L’auteure compare cela à son vélo d’appartement détesté : on redoute avant, on est soulagé·e après. Ses astuces :
- Identifier le blocage (fatigue, peur, ennui) et agir dessus.
- Rendre la tâche moins désagréable : musique, récompense.
- Démarrer petit : 5 minutes suffisent souvent à lancer l’élan.
- Routine > motivation : planifier plutôt qu’attendre l’envie.
"La clé ? Commencer, même mal. Le reste suit."
Dans cet article, Andy Clarke explore le concept d’animations ambiantes : des mouvements subtils et lents qui apportent de la vie à un design sans distraire l’utilisateur. Contrairement aux animations interactives ou narratives, les animations ambiantes se fondent dans l’arrière-plan, créant une atmosphère discrète mais immersive. Clarke illustre son propos en transformant une couverture de comic book statique en une animation CSS/SVG où les éléments (plumes, fumée, expressions) s’animent de manière naturelle et presque imperceptible. L’objectif ? Renforcer la personnalité d’une marque ou d’un projet sans nuire à l’expérience utilisateur, en privilégiant des transitions douces, des boucles fluides et une approche minimaliste.
L’auteur partage des conseils pratiques : privilégier les éléments qui bougeraient naturellement (feuilles, fumée, ombres), éviter les mouvements brusques, et respecter les préférences utilisateur (comme le mode prefers-reduced-motion
). Il insiste sur l’importance de la modération et de la performance, en utilisant des SVG bien structurés et du CSS optimisé. Un exemple concret et un démo CodePen accompagnent l’article, montrant comment ces micro-interactions, bien dosées, ajoutent de la profondeur et du charme à un design.
Josh W. Comeau analyse la nouvelle règle CSS @starting-style
, qui permet d’utiliser des transitions pour animer l’apparition d’éléments (ex: fondu, déplacement), là où on utilisait avant des @keyframes
.
Le piège :
Contrairement aux @keyframes
, les styles définis dans @starting-style
ne sont pas prioritaires et peuvent être écrasés par des sélecteurs plus spécifiques (ID, styles inline). Résultat : l’animation ne se déclenche pas.
Exemple :
Un bouton génère des particules avec une transition sur transform
. Si la position finale est définie en JavaScript (style inline), @starting-style
est ignoré.
Solutions :
- Forcer avec
!important
(peu maintenable), - Utiliser des variables CSS pour égaliser la spécificité,
- Revenir aux
@keyframes
, plus simples et compatibles.
Verdict :
@starting-style
est pratique, mais les @keyframes
restent souvent plus fiables.
Une liste de sites sur lesquels acheter de la musique en haute qualité
L’IA excelle dans les tâches complexes et calculatoires (résoudre des équations, analyser des données), mais peine sur ce qui nous semble intuitif : reconnaître une ironie, plier une chemise, ou gérer l’imprévu. Ce paradoxe, identifié par Hans Moravec dès 1980, s’observe aujourd’hui dans l’automatisation du travail :
- Les métiers cognitifs routiniers (juristes juniors, traducteurs) sont menacés par l’IA, qui prend en charge les tâches répétitives.
- Les métiers manuels et relationnels (artisans, soignants, éducateurs) résistent, car ils reposent sur l’intuition, la motricité fine et le lien humain.
L’enjeu n’est pas de craindre l’IA, mais de l’utiliser comme une prothèse cognitive : automatiser le répétitif pour se recentrer sur la créativité, l’accompagnement et le sens. La vraie valeur du travail humain se déplace vers ce que les machines ne savent pas faire : interpréter, improviser, créer du lien.
Chaque modèle d’IA a ses spécificités : format préféré (XML pour Claude, Markdown pour GPT), sensibilité à la position des informations (les modèles retiennent mieux le début et la fin d’un texte), et une « personnalité » propre (prudence, concision, etc.). Plutôt que de forcer un modèle à sortir de ses biais, mieux vaut adapter ses prompts à ses particularités. Une approche qui optimise performance, coût et conformité, et transforme l’interaction avec l’IA en un véritable artisanat.
Ce guide explique comment monter une partition Windows chiffrée avec BitLocker sous Linux, en utilisant Dislocker ou Cryptsetup. Idéal pour les dual-boot ou la récupération de données.
🔹 Outils : dislocker
, cryptsetup
, ntfs-3g
🔹 Astuce : Désactiver le Fast Startup de Windows pour éviter les problèmes.
🔹 Alternative : Utiliser cryptsetup
(depuis la v2.3.0) si Dislocker pose problème.
Une adaptation des concepts du Clean Code en PHP
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
ProcessVideoChunkMessage
traité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.