Hebdomadaire Shaarli

Tous les liens d'un semaine sur une page.

Semaine 11 (March 10, 2025)

Laravel France - Gérez l'interruption de vos commandes Artisan avec les signaux

Tout est dans le titre

NixOS : Guide sur cette distribution déclarative - Wiki - Wiki

Tout est dans le titre

Log Strategy For A Symfony/PHP Project | by laurentmn | Feb, 2025 | Medium

L'auteur explore 3 catégories de log : log depuis l'application (avec Monolog), depuis le langage de programmation (PHP) et depuis le serveur web (Nginx)

Pimentez vos progressions d’accords avec les notes pédales

Tout est dans le titre

Optimisation des Coding Agents : Choisir son modèle (1/2)

L'article explore les défis et les considérations pour sélectionner le bon modèle de Coding Agent afin d'optimiser les projets de développement. Il souligne que bien que les Coding Agents accélèrent les projets, il est crucial de comprendre leurs implications sur la qualité et les coûts. L'auteur discute des différents modèles disponibles, comme Claude Sonnet 3.7 et Deepseek R1, en mettant en lumière leurs performances et leurs limitations respectives. Il insiste sur l'importance de métriques telles que le nombre de tokens, la taille de la fenêtre de contexte, le coût par token, et la latence pour faire un choix éclairé. Enfin, il mentionne l'importance de la communauté et des "vibes" dans la sélection d'un modèle, tout en soulignant que la maîtrise des outils associés est essentielle pour une utilisation optimale des Coding Agents.

Open Source API Testing Tools: RestAssured, Bruno, SoapUI

L'article présente une liste d'outils open source pour le test d'API, essentiels dans les architectures modernes basées sur les microservices. Il explique les différents protocoles comme SOAP, REST et GraphQL, et les critères techniques pour choisir un outil de test d'API. Parmi les outils mentionnés, on trouve Airborne, APIAuto, Apickli, ArexTest, Bruno, Dredd, Firecamp, Frisby, Insomnia, mountebank, RestAssured, Schemathesis, SoapUI, SuperTest et Tavern. Chaque outil a ses propres caractéristiques et avantages, comme la facilité d'utilisation, la compatibilité avec divers langages de programmation, et l'intégration avec les processus de développement et de livraison de logiciels.

Les tests automatisés à eux seuls ne garantissent pas le bon fonctionnement de vos applications

Tout est dans le titre

Après photorec - LinuxFr.org

Après avoir récupéré 432 Go de données avec Photorec suite à un formatage accidentel, l'auteur a trié et réduit les 150 159 fichiers récupérés en supprimant les fichiers de programmation, les miniatures JPEG, et les fichiers redondants, tout en identifiant les fichiers récents pour faciliter la recherche des données importantes, concluant que Photorec est un outil précieux mais nécessitant un tri minutieux des fichiers récupérés.

Gérer efficacement vos dépôts avec git sparse-checkout - Informatique générale - ShevArezo`Blog

Tout est dans le titre

Hexagonal Architecture. A metapattern. | ITNEXT

L'architecture hexagonale, également connue sous les noms de Ports et Adapters, Onion Architecture, ou Clean Architecture, est un modèle architectural qui vise à protéger le code métier des dépendances externes. Elle utilise des adapteurs pour encapsuler les dépendances externes, permettant ainsi une indépendance totale du code métier. Les avantages incluent la facilité de développement et de test, la protection contre le vendor lock-in, et la possibilité de changer les implémentations externes tardivement. Cependant, cette architecture peut entraîner une phase de conception plus longue et des pertes d'opportunités d'optimisation. Elle est particulièrement adaptée aux modules de taille moyenne ou plus grands, aux projets longs, et aux environnements multiplateformes. Elle est moins adaptée aux petits modules ou aux projets nécessitant un démarrage rapide.

CSS Relative Colors

Les CSS Relative Colors permettent de manipuler dynamiquement les couleurs sans recourir à des préprocesseurs comme Sass. Ils offrent une méthode native pour ajuster l'opacité et créer des variations de couleurs directement en CSS. Cette fonctionnalité est supportée par les principaux navigateurs et permet de simplifier la gestion des couleurs dans les projets web. Les couleurs relatives utilisent des fonctions comme rgb() et hsl() pour modifier les canaux de couleur, facilitant ainsi la création de thèmes et d'effets visuels cohérents. Elles peuvent également être combinées avec color-mix() pour des ajustements plus complexes, offrant une flexibilité accrue dans le design web.

Expansion automatique des alias dans Zsh

Tout est dans le titre

VictoriaLogs

L'article traite de l'agrégation de logs avec VictoriaLogs, une solution de centralisation des logs compatible avec Grafana et Prometheus. L'auteur explique comment il a découvert le problème de consommation de mémoire des processus logmon de Nomad et a cherché une solution plus efficace pour gérer les logs dans un environnement auto-hébergé avec des ressources limitées.

L'article conclut sur une note positive concernant l'efficacité de VictoriaLogs pour la gestion des logs dans un environnement limité en ressources.

SOLID - The Simple Way To Understand - DEV Community

Tout est dans le titre

Filtrage des conteneurs Docker sur Debian avec Firewalld et Salt | Kartzone

L'article explique comment filtrer les conteneurs Docker en entrée et en sortie sur une machine Debian utilisant Firewalld et Salt. Voici un résumé succinct :

  1. Objectif : Filtrer l'accès aux conteneurs Docker en utilisant les "zones" et "policies" de Firewalld.

  2. Problématique : L'intégration de Firewalld avec Docker ne permet pas un filtrage granulaire des conteneurs. La solution proposée est de désactiver l'intégration iptables dans Docker et de configurer Firewalld pour gérer la publication des conteneurs.

  3. Prérequis : Un serveur Salt avec les formules docker-formula et firewalld-formula.

  4. Configuration :

    • Exemple de configuration Salt pour déployer une image Docker de Shaarli et filtrer les accès.
    • Configuration de Firewalld pour gérer les zones et les politiques de filtrage.
  5. Commandes Utiles :

    • Commandes pour lister les zones et politiques Firewalld, ainsi que pour vérifier les configurations de nftables et iptables.

L'article fournit des exemples de configurations et des commandes pour mettre en place ce filtrage.

Installer WSL pour utiliser Linux dans Windows

Tout est dans le titre

WebSocket vs Socket.IO: Real-Time Communication Guide

Un article concis sur les différences entre WebSocket et Socket.IO pour la communication en temps réel

systemctl logs: A Guide to Managing Logs in Linux | Last9

Tout est dans le titre

Flow PHP - Data Processing Framework

Un framework PHP pour le traitement des données (ETL)

Reka UI - Unstyled, fully accessible UI library | Reka UI

Une bibliothèque de composants bas niveau, non stylisés, pour Vue

Making a Browser Based Game With Vanilla JS and CSS – SitePoint

L'article montre comment créer un jeu de "devinez le drapeau" en JS natif et CSS, sans framework ni lib. L'auteur explique pas-à-pas ce qu'il fait... C'est très instructif

10 Secret Git Commands That Will Save You 5+ Hours Every Week - DEV Community

L'article présente dix commandes Git peu connues qui peuvent améliorer l'efficacité des développeurs. Parmi elles, git restore permet d'annuler des modifications ou de déstager des fichiers, tandis que git switch facilite le changement de branches. git sparse-checkout permet de cloner uniquement les fichiers nécessaires dans un dépôt volumineux, et git range-diff compare les différences entre deux séries de commits. git notes ajoute des métadonnées aux commits sans encombrer l'historique, et git worktree permet de travailler sur plusieurs branches simultanément. git bisect aide à identifier les commits à l'origine de bugs, git replace modifie l'historique sans changer les hashs, et git fsck vérifie l'intégrité du dépôt. Enfin, git alias permet de créer des raccourcis pour des commandes fréquentes. Ces commandes peuvent faire gagner du temps et résoudre des problèmes complexes.

benbusby/yeetfile: An encrypted file sharing and vault service for web and CLI

Tout est dans le titre

Le mythe de la neutralité : Pourquoi la tech est politique

L'article explore en quoi la technologie est intrinsèquement politique. Il soutient que la technologie n'est pas neutre, car elle implique des choix qui ont des impacts sociétaux. Par exemple, les algorithmes de reconnaissance faciale ont montré des biais raciaux, et les réseaux sociaux sont utilisés comme des armes politiques. Les décisions de conception technologique, comme l'accessibilité des applications, excluent souvent certaines populations, ce qui est un choix politique. De plus, le financement de la technologie suit des logiques capitalistiques ou politiques, influençant ainsi les innovations qui voient le jour. L'auteur appelle les professionnels de la tech à reconnaître et à discuter des conséquences de leurs choix, car la neutralité est en soi un choix politique.

Alternatives aux apps préinstallées sur la plupart des smartphones Android

Tout est dans le titre

Sauvegarder ses données vers un NAS Synology avec BorgBackup - FLOZz' Blog

Tout est dans le titre

La signification et l'histoire du nom Git

Tout est dans le titre

Connaissez-vous le temps de reboot de vos machines ?

L'article aborde l'importance de connaître le temps de redémarrage des machines et de s'assurer que les équipements et services reprennent correctement après un reboot. Il soulève des questions sur la fréquence des redémarrages et leur impact sur la disponibilité des services. L'article met en avant la nécessité de tester régulièrement les procédures de redémarrage pour garantir la résilience des systèmes et minimiser les interruptions.

Should You Quit? Ask These Four Questions First - Scott H Young

L'article explore la question de savoir quand abandonner un projet ou une activité. Il souligne que, bien que de nombreux conseils se concentrent sur ce qu'il faut entreprendre, il est tout aussi crucial de savoir quand arrêter. Voici les points clés :

  1. Évaluation des coûts futurs :

    • Il est important de considérer uniquement les coûts et bénéfices futurs, en ignorant les investissements passés (coûts irrécupérables). Par exemple, décider de poursuivre un diplôme en comptabilité ou de changer pour l'ingénierie doit se baser sur les efforts futurs nécessaires, pas sur le temps déjà investi.
  2. Planification des points de sortie :

    • Définir à l'avance des moments pour réévaluer l'abandon d'un projet peut aider à éviter les décisions impulsives. Cela permet de prendre des décisions plus rationnelles, en évitant les influences émotionnelles immédiates.
  3. Considérer la réalité des alternatives :

    • Les nouvelles opportunités peuvent sembler plus attrayantes que les projets actuels en raison d'une vision idéalisée. Il est utile de tester brièvement ces alternatives pour en comprendre les défis réels avant de prendre une décision.
  4. Respecter ses valeurs :

    • Établir des règles claires sur ce qui justifie l'abandon, comme lorsque les valeurs personnelles ne sont plus alignées avec le projet. Il est crucial de ne pas persister dans des situations qui vont à l'encontre de ses principes ou qui ont des coûts disproportionnés par rapport aux bénéfices.

L'article conclut que bien que chaque situation soit unique, avoir un processus réfléchi pour décider quand abandonner peut conduire à de meilleures décisions.

Simple Input Validation with Symfony Live Components | by Stefan Pöltl | Mar, 2025 | Medium

Vous créez une application Symfony, et vous avez un petit formulaire. Vous souhaitez ne pas construire un formulaire Symfony (trop lourd). L'auteur montre une fonctionnalité très sympathique des Symfony Live Components : le "ValidatableComponentTrait"

Stop Using URL Versioning: 3 RESTful API Best Practices Top Companies Swear By (With Code) | Javarevisited

L'auteur explique qu'il a récemment dû mettre à jour son API vers une nouvelle version tout en maintenant l'ancienne pour les clients existants. Il a d'abord pensé à utiliser /v1/products pour la version actuelle et /v2/products pour la nouvelle, mais cette approche viole les principes REST et complique la maintenance. Les URL versionnées créent un couplage serré avec les clients, rendant difficile la gestion des versions obsolètes et entraînant une duplication de code. Une alternative RESTful consiste à utiliser les en-têtes HTTP pour négocier les versions, ce qui permet de maintenir des URI stables et de faciliter la compatibilité ascendante. Cependant, cette méthode nécessite que les clients configurent les en-têtes, ce qui peut être non trivial avec certains outils ou bibliothèques.

How Postgres stores data on disk – this one's a page turner | drew's dev blog

L'article explique comment PostgreSQL stocke les données sur le disque. Il commence par introduire les concepts de base des moteurs de bases de données relationnelles et se concentre sur PostgreSQL, en raison de sa popularité parmi les développeurs. L'auteur utilise un exemple pratique pour illustrer la structure des données dans PostgreSQL, en montrant comment les tables et les index sont organisés en segments et en pages. Il mentionne également que PostgreSQL utilise des fichiers de données pour stocker les informations de la base de données, et que ces fichiers peuvent être copiés pour créer des sauvegardes. L'article souligne l'importance de comprendre ces mécanismes internes pour optimiser les performances et la gestion des bases de données .

How To Prevent WordPress SQL Injection Attacks — Smashing Magazine

L'article explique comment protéger les sites WordPress contre les attaques par injection SQL, une méthode couramment utilisée par les hackers pour accéder aux bases de données. Les sites WordPress, représentant 43% des sites web, sont des cibles privilégiées en raison de leur popularité. Une injection SQL peut endommager un site, voler des données et verrouiller l'accès administrateur. Pour se protéger, il est crucial de valider les entrées utilisateur, éviter le SQL dynamique, mettre à jour régulièrement les thèmes et plugins, utiliser un pare-feu, cacher la version de WordPress, personnaliser les messages d'erreur de la base de données, limiter les permissions des rôles utilisateurs, activer l'authentification à deux facteurs, supprimer les fonctions inutiles de la base de données, surveiller l'activité du site et effectuer des sauvegardes régulières. En cas d'attaque, il faut vérifier la base de données, supprimer le code malveillant, restaurer une sauvegarde propre, changer tous les mots de passe et renforcer la sécurité du site.

Aggregates et Eventual Consistency - Ancyr Academy

L'article traite de la modélisation des invariants métiers dans le cadre du Domain-Driven Design (DDD) et de l'importance des agrégats (Aggregates). Il aborde la complexité de maintenir ces invariants, notamment lorsque les règles métiers deviennent plus complexes. L'exemple donné est celui d'une application e-commerce où la quantité de produits par commande est limitée. L'article explore deux approches pour gérer ces invariants : une approche simple où l'invariant est vérifié au niveau de l'objet LineItem, et une approche plus complexe nécessitant la dénormalisation des données pour garantir la cohérence éventuelle (Eventual Consistency). Cette dernière méthode implique de dupliquer certaines informations pour éviter des transactions lourdes et potentiellement bloquantes. L'article souligne également l'importance de la discussion avec les experts métiers pour définir les règles de gestion des invariants et introduit le concept de Job Queue pour assurer la mise à jour asynchrone et robuste des données. En conclusion, la complexité de la solution dépend de la volumétrie des données et des exigences métiers.

Connecter un interrupteur en Zigbee, pour moins de 4€ - ~/quent1.fr

L'article décrit un hack économique pour intégrer des interrupteurs sans fil dans un système domotique Home Assistant en utilisant des capteurs Zigbee bon marché. L'auteur explique comment il a transformé des capteurs d'ouverture Zigbee achetés pour environ 3€ chacun en interrupteurs connectés, évitant ainsi des solutions coûteuses comme le Hue Wall Switch Module de Philips.

L'auteur conclut que ce hack est simple, efficace, et économique, permettant d'éviter des dépenses inutiles pour des solutions plus onéreuses.

Firefox et consoles NOVNC Proxmox, VMware Horizon : corriger le layout clavier azerty - Wiki - Wiki

L'article explique comment résoudre un problème de disposition de clavier (azerty) lors de l'utilisation de consoles NoVNC dans Proxmox ou VMware Horizon via Firefox. Le souci vient des paramètres de sécurité renforcée de Firefox, notamment l'option "ResistFingerprinting".

Deux solutions sont proposées :

  1. Désactiver l'option "ResistFingerprinting" :

    • Aller dans about:config et mettre la clé privacy.resistFingerprinting à false.
  2. Ajouter des exceptions pour certains domaines :

    • Laisser privacy.resistFingerprinting à true et ajouter les domaines problématiques dans privacy.resistFingerprinting.exemptedDomains.

Ces ajustements permettent de conserver la disposition azerty du clavier sans redémarrer Firefox.