C'est une liste de ressources pour customiser l'apparence de Linux : on parle de 'ricing'
Il s'agit d'un outil cli pour afficher des infos sur votre configuration matérielle et logicielle : distribution, version du noyau, etc. Il est hautement personnalisable
Il s'agit d'un annuaire d'outils en auto hébergement
Ce guide pratique détaille 5 étapes essentielles pour sécuriser un serveur Ubuntu : création d’un utilisateur dédié avec droits sudo, configuration de l’authentification SSH par clé (et désactivation de l’accès root et des mots de passe), verrouillage du compte root, personnalisation du hostname et du message d’accueil (MOTD). Il explique aussi comment désactiver les messages système indésirables et propose des bonnes pratiques supplémentaires comme l’utilisation d’un firewall (ufw), l’installation de fail2ban, et la surveillance des logs. L’objectif est de réduire les risques d’intrusion en adoptant une configuration robuste dès l’installation. Idéal pour les administrateurs système souhaitant renforcer la sécurité de base de leur serveur.
L’article de Stack Overflow souligne que le rôle d’un architecte logiciel ne se limite pas à écrire du code, mais consiste surtout à déployer des idées dans des systèmes humains : convaincre, aligner et faire collaborer des équipes aux perspectives variées. Pour cela, le principal outil de l’architecte n’est pas un langage de programmation, mais la rédaction de documents clairs et structurés.
Points clés :
- La documentation comme levier : Les architectes utilisent des documents (Confluence, Google Docs, Notion, etc.) pour formaliser des propositions, des designs techniques ou des analyses, et ainsi obtenir l’adhésion des parties prenantes.
- Principe de base : Privilégier la simplicité (bullet points, titres clairs) et l’utilité immédiate plutôt que la perfection formelle. Un document doit permettre à chacun de trouver rapidement l’information dont il a besoin.
- Types de documents impactants :
- Architecture overview : Schéma ou description des composants d’un système pour faciliter la compréhension et l’onboarding.
- Dev design : Détail des modifications prévues pour recueillir des feedbacks avant de coder.
- Project proposal : Argumentaire pour justifier l’allocation de ressources à un projet.
- Developer forecast : Alerte sur les risques potentiels d’une décision technique.
- Technology menu : Guide pour standardiser les choix technologiques.
- Problem statement : Cadre pour résoudre un problème complexe en équipe.
- Postmortem : Analyse blameless d’un incident pour éviter sa répétition.
Méthode recommandée :
- Organisation chronologique : Classer les documents par sprint/année plutôt que par thème, car la recherche textuelle est plus efficace que la navigation par dossiers.
- Culture de la documentation : Encourager l’écriture rapide et itérative, avec des relectures ciblées, plutôt que des mises à jour constantes.
- Objectif : Rendre les idées accessibles, actionnables et pérennes, même si le document devient obsolète.
En résumé, un architecte excelle moins par sa maîtrise technique que par sa capacité à structurer et communiquer des idées pour faire avancer les projets, en transformant les blocages humains en processus collaboratifs. Une compétence clé pour ceux qui veulent rester techniques tout en élargissant leur impact.
C'est le meilleur résumé de la situation actuelle... et c'est terrifiant
L’auteur partage son passage de BorgBackup à Restic pour ses sauvegardes personnelles sous Archlinux, séduit par sa simplicité, sa documentation claire et sa compatibilité avec SFTP. Il détaille une configuration minimaliste : sauvegardes incrémentales vers un serveur distant, planification via systemd (2x/jour en semaine), gestion des rétentions (3 mois de sauvegardes hebdomadaires), et montage des instantanés en local. Restic s’intègre même comme backend pour Déjà Dup (GNOME 49). Un outil efficace, moderne, et respectueux du principe 3-2-1.
C'est tellement vrai... et triste
L'auteur raconte son utilisation de l'impression 3D pour intégrer de manière esthétique un PC "moche" dans son environnement familial. Pour ce faire, il a imprimé un chassis et des portes adaptées à son meuble... et le tour était joué
L’article du blog Ippon explique comment personnaliser GitHub Copilot dans VS Code grâce aux custom instructions, afin d’adapter ses suggestions à vos conventions de code, frameworks et besoins spécifiques. Ces instructions, définies via des fichiers Markdown (comme .github/copilot-instructions.md
), permettent de guider Copilot sur le style de code, les bibliothèques à utiliser, la structure des livrables, ou encore le niveau de détail des réponses. Trois types de règles existent : personnelles (globales), par dépôt (spécifiques à un projet), et organisationnelles (pour uniformiser les standards d’une équipe). L’article illustre l’impact de ces règles avec un exemple concret de widget Flutter, montrant comment Copilot génère un code plus aligné avec les attentes (design, localisation, gestion d’état) lorsqu’il est bien configuré. Il détaille aussi l’utilisation des prompt files pour des actions récurrentes et le mode Agent de Copilot, capable de modifier plusieurs fichiers ou d’exécuter des tâches complexes. Enfin, des bonnes pratiques et outils (comme la génération automatique de règles via VS Code) sont présentés pour optimiser l’intégration de Copilot dans un workflow, en évitant les contradictions et en maximisant la pertinence des suggestions. Une ressource utile pour transformer Copilot en un véritable partenaire de développement.
Ce guide pratique explique comment maîtriser les migrations de base de données avec Symfony 7 et Doctrine. Il couvre l'installation d'un projet Symfony, la création d'entités, la génération et l'application des migrations, ainsi que leur réversion. L'article détaille aussi la personnalisation des migrations (méthodes preUp
, postUp
, preDown
, postDown
, gestion des transactions, etc.), l'évolution des propriétés d'entités, et propose une solution pour éviter l'erreur récurrente de création du schéma public
avec PostgreSQL. Un template personnalisé pour les migrations et un listener Doctrine sont présentés pour optimiser le workflow. Enfin, une cheatsheet récapitule les commandes utiles pour gérer les migrations efficacement. Idéal pour les développeurs souhaitant approfondir la gestion des schémas de base de données dans Symfony.
Microbox est un outil open source permettant de créer des environnements d'exécution légers et isolés (sandbox) sur Linux, en exploitant des fonctionnalités du noyau comme les namespaces, cgroups, seccomp et les capabilities. Il offre une isolation par défaut maximale (processus, réseau, système de fichiers, IPC, utilisateurs) et permet de configurer des limites de ressources (CPU, mémoire, stockage) ainsi que des options de montage de systèmes de fichiers (rootfs personnalisé, tmpfs, ou accès partiel au système hôte). Microbox supporte plusieurs modes réseau (aucun, bridge, hôte) et permet de contrôler finement les appels système autorisés et les capabilities Linux.
Conçu à des fins éducatives pour comprendre la sécurité des sandbox non basées sur des machines virtuelles, il se distingue des solutions comme runc
ou Podman
par son approche axée sur l'isolation plutôt que l'équilibre entre sécurité et utilisabilité. Il est idéal pour exécuter des applications de manière sécurisée et éphémère, avec des options avancées comme la gestion des variables d'environnement, des DNS personnalisés, ou encore des profils de sécurité. Attention : nécessite des privilèges root et ne supporte pas encore les profils AppArmor/SELinux ni les images OCI.
Andy Clarke explique comment rendre les SVGs encore plus adaptatifs en utilisant les éléments <symbol>
et <use>
combinés aux Media Queries CSS, afin d’optimiser leur affichage selon les tailles d’écran. Plutôt que de se contenter du redimensionnement classique, il propose une méthode pour repositionner et redimensionner les éléments internes d’un SVG sans dupliquer le code ni alourdir la page. En définissant chaque élément graphique une seule fois dans une bibliothèque de <symbol>
, puis en les réutilisant via <use>
dans différentes mises en page (par exemple, une version portrait pour mobile et une version paysage pour desktop), il parvient à créer des SVGs qui s’adaptent intelligemment. Cette approche évite de charger plusieurs versions du même SVG et permet même d’animer des parties spécifiques. La technique repose sur l’utilisation astucieuse des attributs transform
et des sélecteurs CSS pour cibler les éléments à animer, tout en gardant une structure légère et maintenable. Un exemple concret est donné avec une illustration inspirée de Quick Draw McGraw, démontrant comment basculer entre deux dispositions selon la taille de l’écran, le tout sans JavaScript. Une solution élégante pour des SVGs à la fois performants et flexibles.
L’article explore les possibilités créatives offertes par la propriété CSS shape-outside
, qui permet de faire épouser le flux de texte aux contours d’une image ou d’une forme personnalisée, au lieu de se limiter à un rectangle classique. L’auteur illustre son propos avec des exemples concrets, comme un site web pour une artiste de country fictive, Patty Meltt. Il montre comment utiliser shape-outside
pour créer des mises en page dynamiques et immersives : text wrapping autour de portraits, d’instruments de musique, ou même de montages photo, en jouant avec les canaux alpha des images ou des clip-path
. L’article détaille aussi des astuces pour simuler un centrage d’image ou contourner les limites des rotations CSS. L’objectif ? Rendre les longs contenus visuellement plus engageants et moins statiques, en intégrant images et texte dans une composition harmonieuse. Des exemples interactifs sont disponibles dans un lab en ligne pour expérimenter ces techniques. Une lecture inspirante pour les designers et développeurs web cherchant à ajouter du mouvement et de la personnalité à leurs layouts.
Scott H. Young partage 102 leçons tirées de 102 livres lus en un an, couvrant des thèmes variés comme la forme physique, la productivité, l’argent, l’alimentation, le sommeil, les relations et l’altruisme. Parmi les points marquants : l’exercice régulier réduit le risque de mort précoce de 40 % et améliore la santé mentale ; la productivité dépend davantage du bonheur et d’un sentiment de progression que du stress ; il est impossible de battre le marché boursier à long terme, et l’épargne automatique est la clé d’une retraite sereine ; les régimes alimentaires ne fonctionnent que si on les adopte à vie ; la solitude est aussi nocive que le tabac ; et donner à des associations efficaces peut sauver des vies pour quelques milliers de dollars. L’auteur insiste aussi sur l’importance de la qualité du sommeil, de la gestion des distractions et de la rationalité dans l’altruisme. Une synthèse riche et pratique, idéale pour qui cherche à optimiser sa vie quotidienne.
L’article explique deux approches pour gérer plusieurs environnements (développement, staging, production) avec Docker : une approche inspirée de Rails, utilisant des Dockerfiles séparés (ex: Dockerfile.dev, Dockerfile.prod), et une approche idiomatique Docker basée sur les multi-stage builds. La première méthode offre une séparation claire, mais peut entraîner de la duplication de code, tandis que la seconde permet de centraliser la configuration dans un seul fichier, réduisant la redondance et facilitant la maintenance, bien qu’elle puisse devenir complexe à mesure que les builds se sophistiquent. L’auteur souligne que le choix dépend de la complexité des environnements et de l’expérience de l’équipe avec Docker.
L'auteur, dessinateur de métier, partage son avis humoristique et critique sur l'art généré par intelligence artificielle. À travers des illustrations et des commentaires percutants, il aborde les limites, les paradoxes et les questions éthiques soulevées par l'utilisation de l'IA pour créer de l'art, tout en soulignant l'importance du travail humain et de la créativité authentique. Un regard décalé et provocateur sur un sujet d'actualité.
Cet article explique comment créer des décorateurs Python acceptant des arguments, en utilisant une structure à trois niveaux : une fonction externe pour les paramètres, une fonction intermédiaire pour le décorateur, et une fonction interne pour l'exécution. L'article illustre ce concept avec des exemples concrets comme un décorateur de logging configurable, un système de réessai, une validation de plage, et une limitation de débit. Il montre aussi comment gérer les arguments optionnels et comment implémenter des décorateurs sous forme de classes. L'idée clé est que les décorateurs avec arguments agissent comme des "fabriques de décorateurs", permettant une personnalisation fine du comportement des fonctions décorées. Une lecture utile pour maîtriser l'abstraction et la configuration avancée en Python.
Cet article de Clever Cloud explore comment passer d’un prototype fragile à un serveur MCP (Model-Compute-Provider) fiable et sécurisé en production. L’auteur partage des leçons tirées de projets concrets, comme RAGmonsters, et insiste sur l’importance de concevoir des serveurs spécifiques au domaine plutôt que génériques pour garantir sécurité et prévisibilité. Les principes clés incluent la définition d’outils étroits et bien nommés, l’utilisation de types d’entrée/sortie stables, un comportement déterministe, le principe du moindre privilège, et une explicabilité intégrée. La sécurité, l’observabilité et l’évaluation continue sont présentées comme des piliers essentiels pour transformer une démonstration en infrastructure robuste, adaptée à un client aussi imprévisible qu’un LLM. L’article détaille aussi comment structurer les capacités (outils, ressources, prompts), sécuriser les accès, et surveiller les performances pour une intégration réussie en production. Une lecture indispensable pour qui souhaite industrialiser l’usage des agents LLM.
Diomidis Spinellis explique pourquoi il privilégie l’email aux messageries instantanées : une boîte unifiée (plus besoin de jongler entre Teams, WhatsApp, Slack, etc.), un archivage pérenne (ses emails remontent à 1986 !), des fonctionnalités avancées (filtrage, étiquetage, recherche), une communication asynchrone préservant la concentration, et une maîtrise totale de ses données (protocoles ouverts, stockage local, confidentialité). Contrairement aux plateformes propriétaires, l’email offre liberté, interopérabilité et protection contre la publicité ou l’obsolescence. Un plaidoyer pour un outil intemporel, productif et respectueux de la vie privée.