Mensuel Shaarli

Tous les liens d'un mois sur une page.

May, 2025

How to Build an AI Agent to Help with Daily Tasks - Semaphore

L'article explore la création d'agents autonomes basés sur l'intelligence artificielle pour automatiser des tâches quotidiennes, comme l'analyse des demandes de tirage et la génération de notes de version. Contrairement aux scripts d'automatisation traditionnels, ces agents utilisent des modèles de langage avancés pour interpréter et prendre des décisions contextuelles. L'article détaille les outils clés tels qu'AgentGPT, LangChain, et le Vercel AI SDK, et explique comment les intégrer de manière sécurisée dans des environnements de développement. Enfin, il propose un guide pratique pour mettre en place un agent capable de répondre à des déclencheurs spécifiques et de s'intégrer dans un pipeline CI/CD pour améliorer l'efficacité des développeurs.

Why are 2025/05/28 and 2025-05-28 different days in JavaScript?

L'article explore les subtilités de la gestion des dates en JavaScript, en se concentrant sur les différences de comportement entre les formats de date comme "2025/05/28" et "2025-05-28". Il explique comment ces formats peuvent être interprétés différemment selon qu'ils sont traités en temps local ou en temps universel (UTC), ce qui peut entraîner des résultats inattendus. L'auteur plonge dans l'historique des navigateurs et des spécifications ECMAScript pour expliquer l'évolution de ces comportements, soulignant les inconsistances passées entre les navigateurs. Enfin, il mentionne l'arrivée de l'API Temporal en JavaScript, qui vise à résoudre ces ambiguïtés en offrant une gestion plus robuste et claire des dates et des heures.

A Pragmatic guide to SOLID principles in Symfony | by Roman Huliak | May, 2025 | Medium

L'article explore comment appliquer les principes SOLID dans le cadre du développement avec Symfony. Voici un aperçu des points clés abordés :

  1. Single Responsibility Principle (SRP) : L'article explique comment structurer les classes dans Symfony pour qu'elles aient une seule responsabilité, facilitant ainsi la maintenance et les tests.

  2. Open/Closed Principle (OCP) : Il montre comment concevoir des composants Symfony qui sont ouverts à l'extension mais fermés à la modification, en utilisant des techniques comme l'héritage et les interfaces.

  3. Liskov Substitution Principle (LSP) : L'article discute de l'importance de s'assurer que les objets des sous-classes peuvent remplacer ceux des classes de base sans affecter le comportement du programme, un concept crucial pour la réutilisabilité du code.

  4. Interface Segregation Principle (ISP) : Il met en avant l'avantage d'utiliser plusieurs interfaces spécifiques plutôt qu'une seule interface générale, permettant aux classes de n'implémenter que les méthodes nécessaires.

  5. Dependency Inversion Principle (DIP) : L'article souligne l'importance de dépendre des abstractions plutôt que des implémentations concrètes, en utilisant l'injection de dépendances et les interfaces pour rendre le code plus flexible et réutilisable.

En appliquant ces principes, les développeurs peuvent créer des applications Symfony plus robustes, maintenables et évolutives. L'article fournit des exemples pratiques et des conseils pour intégrer ces principes dans les projets Symfony.

Requêtes HTTP asynchrone avec Symfony - Victor Prudhomme

Lorsque vous avez plusieurs requêtes HTTP à lancer dans une application Symfony, vous pouvez le faire de manière séquentielle (donc lent) ou les paralléliser si vos appels sont indépendants. C'est ce que permet HttpClient via la méthode stream.

You can style alt text like any other text | CSS-Tricks

Une astuce pour donner du style au texte alternatif des images - pratique si celles ci ne se chargent pas

Ma migration de Grub 1 vers Grub 2 // /home/lord

L'article explique comment migrer d'un système utilisant GRUB Legacy vers GRUB2, le chargeur d'amorçage moderne. Il détaille les étapes nécessaires, notamment l'installation de GRUB2, la mise à jour du fichier de configuration et l'installation du chargeur d'amorçage sur le MBR. L'auteur met également en garde contre les erreurs courantes et fournit des conseils pour éviter les problèmes lors de la migration.

Ma configuration Tmux: raccourcis clavier et gestion des sessions

L'auteur commence par expliquer pourquoi il a choisi Tmux. Ensuite, il détaille sa configuration et donne les raisons de ses choix.

Notes persos sur la recherche d'infos sur le net - Warrior du Dimanche

Des astuces pour Google, mais aussi comment faire des recherches à partir d'images et des liens sur l'OSINT

Awesome Docker Compose

Plus de 700 applications en auto-hébergement déployables via Docker Compose

Jacksaur/Gorgeous-GRUB: Collection of decent Community-made GRUB themes. Contributions welcome!

Des thèmes GRUB avec quelques explications pour les customiser

Smashing Animations Part 2: How CSS Masking Can Add An Extra Dimension — Smashing Magazine

L'article explore comment le masquage CSS peut enrichir les animations web, leur donnant une dimension supplémentaire et un aspect plus cinématique. L'auteur, Andy Clarke, utilise des exemples inspirés de dessins animés classiques pour illustrer comment les techniques de masquage peuvent rendre les animations plus fluides et dynamiques. Il explique les concepts de base des masques et des chemins de découpe, et montre comment les appliquer pour créer des effets visuels captivants. L'article inclut également des démonstrations pratiques et des extraits de code pour aider les développeurs à intégrer ces techniques dans leurs projets.

Accueil - FaceAuNucleaire

Il s'agit d'un site d'informations sur le nucléaire donnant des réponses à certaines idées reçues

Défi - Fabriquer un LoadBalancer assisté de l'IA DeepSeek | Blogs

L'article décrit un projet ambitieux visant à apprendre le langage de programmation Rust en développant un LoadBalancer, assisté par l'IA DeepSeek. L'auteur, expérimenté en développement logiciel, détaille les étapes de son apprentissage de Rust, le choix de l'IA DeepSeek pour son assistance, et la construction du LoadBalancer avec ses défis techniques. Malgré des performances initiales décevantes, l'optimisation et l'utilisation de la dernière version du framework "hyper" ont permis d'améliorer significativement le projet. L'expérience a confirmé l'utilité de l'IA dans l'apprentissage d'un nouveau langage, tout en soulignant ses limites et la nécessité de compléter ses réponses avec une documentation approfondie.

La génération de SEO automatisée grâce à l'IA  • Lecodeestdanslepre

L'article explore l'automatisation de la génération de métadonnées SEO à l'aide de l'intelligence artificielle, un processus qui permet d'analyser rapidement le contenu et de créer des titres, descriptions et mots-clés optimisés pour le référencement. Le système, construit sur Symfony, intègre plusieurs composants clés, dont un bundle pour interagir avec des modèles de langage, un système d'événements pour déclencher la génération SEO, et un mécanisme de suivi des coûts pour gérer les dépenses liées aux appels d'API. La configuration du bundle LLM Chain permet de communiquer avec des modèles comme OpenAI, en définissant des paramètres tels que la plateforme, le modèle et un prompt système pour guider la génération de métadonnées. Le cœur du système est le générateur de SEO, qui transforme les réponses de l'IA en métadonnées structurées, tout en vérifiant les limites budgétaires et en enregistrant l'utilisation de l'API pour un suivi précis des coûts. En conclusion, l'article souligne les avantages du système, qui permet de gagner du temps tout en maintenant une qualité de SEO élevée, et offre des conseils pour implémenter un système similaire, en commençant par l'installation du bundle php-llm/llm-chain-bundle et la configuration de l'accès à l'API OpenAI.

🔌 Why Abstraction Isn’t Just for Architects: The Power of Interfaces in PHP 🔑 | by mohamad shahkhajeh | Apr, 2025 | Medium

L'abstraction, souvent perçue comme un concept réservé aux architectes, est en réalité essentielle pour tous les développeurs PHP grâce aux interfaces. Ces dernières permettent de créer un code plus propre, modulaire et flexible en définissant des méthodes sans se soucier des détails d'implémentation sous-jacents. Les interfaces agissent comme des contrats, garantissant que les classes qui les implémentent suivent une structure spécifique, ce qui réduit le couplage et augmente la flexibilité. Elles facilitent également les tests unitaires en permettant de simuler des implémentations et soutiennent les principes SOLID, essentiels pour un code maintenable et évolutif. En adoptant les interfaces, les développeurs PHP peuvent améliorer la modularité, la réutilisabilité et la maintenabilité de leur code.

The Height Enigma • Josh W. Comeau

L'article explore le mystère des hauteurs en pourcentage en CSS, un concept souvent déroutant pour les développeurs. Il explique que, contrairement à la largeur, la hauteur en CSS est calculée différemment, ce qui peut entraîner des comportements inattendus. Par exemple, définir une hauteur en pourcentage sur un élément peut ne pas fonctionner si la hauteur du parent dépend de celle de ses enfants, créant ainsi un calcul circulaire. l'auteur propose des solutions, comme l'utilisation de hauteurs explicites ou de techniques de mise en page modernes comme Flexbox et Grid, pour résoudre ces problèmes et obtenir des résultats prévisibles.

Big O: La boussole du développeur pour comprendre les performances – AmaliaMaturana

La notation Big O est essentielle pour les développeurs afin de comprendre et optimiser la performance du code, en transformant la manière dont les ressources physiques sont consommées. Elle permet d'anticiper les problèmes de performance et de choisir les meilleures solutions algorithmiques en fonction des priorités comme la vitesse, la mémoire ou la lisibilité. En utilisant Big O, les développeurs peuvent passer d'un code qui "fonctionne" à un code qui "fonctionne efficacement".

AppImages sous Ubuntu, exemple avec Bambu Studio

L'auteur explique l'installation des AppImages sous Ubuntu, en utilisant des .desktop pour faciliter leur utilisation et leur maintenance (avec en prime comment afficher une icône)

Containerized Symfony & Vue.js environment with DDEV - DEV Community

DDEV propose des environnements de développement PHP basés sur Docker. L'auteur montre comment s'en servir pour Symfony / Vue

Popover tutorial

Un tutoriel / guide pour la création de popovers - pour rappel, la différence entre infobulle (tooltip) et popover est essentiellement la quantité d'information affichée

Home Assistant pour les débutants : tout ce que vous devez savoir

Home Assistant, initialement complexe, est devenu une référence en domotique grâce à une communauté active qui a simplifié son installation et sa configuration, notamment via des solutions comme HAOS et HACS. Le guide recommande d'opter pour des protocoles comme Zigbee et de personnaliser les dashboards pour une expérience optimale, tout en insistant sur l'importance des sauvegardes et de la sécurisation de l'accès externe. En suivant ces conseils, même les débutants peuvent maîtriser ce système domotique puissant et flexible.

JoeyMckenzie/nasastan: PHPStan extension for enforcing NASA's Power of Ten in your PHP code.

Il s'agit d'une extension PHPStan pour vérifier que le code respecte la règle de puissance de 10 de la NASA (cf https://fr.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Developing_Safety-Critical_Code). Les 10 règles sont :

1°) Éviter les constructions de flux complexes, telles que goto et récursivité .
2°) Toutes les boucles doivent avoir des limites fixes. Cela évite de créer involontairement des boucles infinis.
3°) Éviter d'allouer de la mémoire sur la heap.
4°) Limiter les fonctions à une seule page affichable sur un écran.
5°) Utiliser un minimum de deux assertions par fonction.
6°) Limiter la portée des variables au plus petit possible.
7°) Vérifier la valeur de retour de toutes les fonctions non-void ou transformer en void pour indiquer que la valeur de retour est inutile.
8°) Utiliser le préprocesseur avec parcimonie.
9)) Limiter l'utilisation du pointeur à un seul déréférencement et ne pas utiliser de pointeur de fonction.
10°) Compiler avec tous les avertissements possibles actifs ; tous les avertissements doivent alors être pris en compte avant la publication du logiciel.

Plusieurs façons de gérer son code et ses environnements avec Terraform – Le blog de Seboss666

L'article explore différentes méthodes pour gérer du code et des environnements avec Terraform. L'auteur partage ses observations et préférences évolutives. Il discute de l'utilisation des "providers" et des modules de code pré-établis, permettant de déployer simultanément chez plusieurs fournisseurs, et met en lumière la puissance et la flexibilité de Terraform. L'article aborde également des techniques variées, allant du code "hardcodé" à l'utilisation de variables, de boucles, et de "workspaces", pour optimiser la gestion des environnements. Enfin, il souligne l'importance de la gestion de l'état dans Terraform et propose des solutions élégantes pour répliquer des environnements de manière efficace et sécurisée.

Data Vs. Findings Vs. Insights In UX — Smashing Magazine

L'article explore les distinctions cruciales entre les données brutes, les résultats et les insights dans le domaine de l'expérience utilisateur. Il souligne l'importance de transformer les observations en informations exploitables pour influencer les décisions stratégiques. L'article aborde également la question de la signification statistique dans la recherche UX, un sujet souvent source de confusion. Enfin, il propose des conseils pratiques pour communiquer efficacement les résultats de la recherche UX aux parties prenantes.

Writing useful Documentation · PhiloBlog

L'article explore les meilleures pratiques pour rédiger une documentation technique efficace. Il aborde des aspects clés comme la perspective du lecteur, l'accessibilité, les boucles de rétroaction, et les techniques de rédaction. L'auteur souligne l'importance de connaître son audience, d'utiliser un langage clair et des diagrammes bien structurés. Un guide essentiel pour créer des documents techniques utiles et accessibles.

Passwords are okay, impulsive Internet isn't

L'article critique l'adoption des "passkeys" comme alternative aux mots de passe, soulignant les problèmes liés à la dépendance envers les grandes entreprises, les implémentations propriétaires complexes et la nécessité d'utiliser des smartphones. Il met en garde contre les risques pour la vie privée et la liberté, tout en remettant en question l'efficacité réelle des passkeys pour améliorer la sécurité.

How to Build Scalable Web Apps with React JS — SitePoint

La scalabilité est essentielle pour la survie des applications, permettant de gérer plus d'utilisateurs, de données ou de fonctionnalités sans dégradation des performances. React, avec son architecture basée sur les composants, le Virtual DOM et un flux de données unidirectionnel, offre une base solide pour construire des applications web évolutives. L'article présente les meilleures pratiques pour des applications React évolutives : l'optimisation de la taille des bundles avec le code splitting et le lazy loading, une gestion efficace de l'état, et l'utilisation de composants et de hooks personnalisés.

DaisyUI 5 avec Symfony 6/7 - DEV Community

L'article explique comment installer DaisyUI dans un projet Symfony en utilisant le composant AssetMapper. Il montre aussi comment choisir la version de Tailwind (version 4)

Deploy Symfony Projects with Gitlab CI/CD | by Konstantin Bogomolov | May, 2025 | Medium

L'article explique comment déployer un projet Symfony en utilisant la pipeline CI/CD de Gitlab. Il donne aussi quelques conseils et bonnes pratiques

Récuperer les bases de données de feu mon cluster k3s, sans backup – Le blog de Seboss666

L'article présente une méthode pour restaurer des données critiques d'un cluster k3s après une défaillance, sans disposer de sauvegardes préalables. L'auteur détaille les étapes pour accéder aux volumes persistants via un autre cluster fonctionnel, en utilisant des outils comme kubectl et rsync. Il insiste sur la nécessité d'une bonne gestion des volumes persistants et de la mise en place de sauvegardes régulières pour éviter de telles situations.

Anubis [Wiki de sebsauvage.net]

Un très bon tutoriel pour l’installation d’Anubis

IA - sans inscription - Warrior du Dimanche

Une liste d'outils d'IA sans inscription

Petit manifeste low-tech

Le manifeste low-tech souligne l'importance de technologies compréhensibles et accessibles, où les utilisateurs peuvent comprendre leur fonctionnement. Il critique les technologies complexes et opaques, comme les smartphones, qui rendent les utilisateurs dépendants sans réelle compréhension. Enfin, il prône une approche durable et communautaire, où les technologies sont ouvertes, réparables et appartiennent à tous.

Simplifiez votre JavaScript – Utilisez .map(), .reduce(), et .filter() – Idriss Code

L'article explique comment utiliser les méthodes .map(), .reduce(), et .filter() en JavaScript pour manipuler efficacement les tableaux. Ces outils permettent de transformer, agréger et filtrer des données de manière concise et lisible, remplaçant avantageusement les boucles traditionnelles. En les combinant, on peut effectuer des opérations complexes sur les données avec un code plus propre et plus maintenable.

Blog Eleven Labs - Arbre Syntaxique Abstrait : définition et méthode

Les Arbres Syntaxiques Abstraits (AST) sont essentiels pour les développeurs, servant de base à des outils comme les compilateurs et les linters. Ils transforment le code source en une structure arborescente, facilitant l'analyse et la manipulation du code. Par exemple, un AST peut clarifier les priorités d'opération dans une expression arithmétique. Le processus de parsing, incluant l'analyse lexicale et syntaxique, convertit le code en AST, permettant des applications variées comme le linting, la transpilation et le refactoring automatique. Des outils comme AST Explorer aident à visualiser et comprendre ces structures, rendant les AST indispensables pour l'analyse et la transformation du code.

Histoire d'un combat contre l'obsolescence - Raven - Blog

L'article relate l'expérience de l'auteur avec un scanner Brother DS-620 sous Ubuntu, confronté à l'obsolescence logicielle due à une dépendance rompue avec libsane. Pour résoudre ce problème, l'auteur propose deux solutions : installer le paquet en mode forcé, ce qui n'est pas pérenne, ou créer un faux package pour satisfaire la dépendance du pilote Brother. Cette dernière méthode permet de continuer à utiliser le scanner sans remplacer le matériel, contribuant ainsi à réduire les déchets électroniques.

The Bike Shed Effect: How To Spend Time on the Right Things - Personal Excellence

L'effet Bike Shed, ou Loi de la Trivialité de Parkinson, décrit comment les gens passent trop de temps sur des questions triviales tout en négligeant des sujets plus importants et complexes. Par exemple, un comité peut débattre longuement de la couleur d'un abri à vélos tout en approuvant rapidement les plans d'une centrale nucléaire coûteuse. Ce phénomène se produit parce que les tâches simples sont plus confortables et accessibles, tandis que les sujets complexes peuvent sembler intimidants ou risqués.

Pour éviter cet effet, il est essentiel de se concentrer sur les tâches à fort impact, d'allouer le temps en fonction de l'importance et de la complexité des sujets, et de fixer des limites de temps pour les petites décisions. En redirigeant l'attention vers ce qui compte vraiment, on peut optimiser son temps et son énergie pour des résultats plus significatifs.

Formes normales : guide pratique pour développeurs – Idriss Code

Les formes normales en bases de données sont essentielles pour optimiser les performances, réduire la redondance des données et faciliter la maintenance à long terme. Elles permettent d'éviter les problèmes de duplication d'informations, d'incohérences lors des mises à jour et de complexité croissante des requêtes. Les trois niveaux fondamentaux sont la 1NF (atomicité des données), la 2NF (dépendance fonctionnelle complète) et la 3NF (élimination des dépendances transitives).

How I Set Up a Home Server That I Can Access from Anywhere | by hiruthicSha | Apr, 2025 | Medium

L'auteur de l'article explique comment il a mis en place un serveur domestique accessible de n'importe où. Motivé par le désir de travailler à distance et de contrôler ses services, il a opté pour un mini PC reconditionné et a surmonté divers défis techniques, notamment des problèmes de réseau et de sécurité. En utilisant des outils comme Tailscale pour un accès sécurisé et Cloudflare Tunnels pour héberger ses services, il a réussi à créer un système flexible et sécurisé. Ce projet lui permet non seulement de gérer ses applications personnelles, mais aussi d'apprendre et d'expérimenter avec les technologies de serveur.

How to write error messages that actually help users rather than frustrate them - Piccalilli

L'article souligne l'importance de créer des messages d'erreur utiles et empathiques pour améliorer l'expérience utilisateur. Il recommande d'identifier les types d'erreurs possibles, d'écrire de manière humaine et claire, d'éviter un ton trop fantaisiste, d'utiliser la voix active, et de fournir des solutions claires pour aider les utilisateurs à résoudre les problèmes. La cohérence dans la présentation des messages d'erreur est également essentielle pour faciliter la compréhension et l'action des utilisateurs.

Protéger tous ses sites avec Anubis - Dryusdan.space

L'article explique comment protéger ses sites web contre les scrappers agressifs en utilisant Anubis et HAProxy. Il décrit un nouveau modèle d'affaires douteux où des SDKs transforment les terminaux des utilisateurs en botnets pour scraper des données. L'auteur propose une solution technique utilisant HAProxy pour détecter un trafic anormal et rediriger vers Anubis, qui impose une preuve de travail. La configuration inclut des sticky tables pour suivre les requêtes et des cookies pour éviter les boucles infinies. Cette méthode offre une protection efficace tout en maintenant une bonne expérience utilisateur.

How to Confidently Update Legacy Code in Symfony | by Vladislav Solntsev | ekino-france | Apr, 2025 | Medium

L'article propose une méthode structurée pour mettre à jour un projet Symfony en toute confiance. Il recommande d'utiliser des outils comme Bruno pour tester les routes, de mettre à jour les dépendances et les outils, d'appliquer des analyses statiques avec PHPStan, et de refactorer le code avec Rector. L'article insiste sur l'importance des tests automatisés et des mises à jour progressives pour éviter les régressions.

Les services utilisateurs avec OpenRC // /home/lord

OpenRC, depuis sa version 0.60 sortie en février 2025, permet désormais de gérer des services utilisateurs, une fonctionnalité auparavant réservée à Systemd. Cette mise à jour permet de lancer automatiquement des applications spécifiques à l'utilisateur, comme un lecteur audio en mode serveur, dès la connexion, et de les arrêter à la déconnexion. OpenRC offre ainsi une gestion plus flexible et moderne des services, avec des fonctionnalités telles que la supervision et la relance automatique en cas de crash.

Comment fonctionnent les encres qui changent à couleur changeante des billets euro ? - Couleur-Science

L'article explique le fonctionnement des encres à couleurs changeantes. Ainsi, les encres des billets en euros changent de couleur selon l'angle ou sous UV, assurant leur authenticité. Elles sont imprimées avec des techniques avancées pour prévenir la contrefaçon.

La sauvegarde : 3-2-1-1-0 et bonnes pratiques - Wiki - Wiki

Un guide complet et des bonnes pratiques sur la sauvegarde

JWT Security Risk: Prevention & Best Practices | Detecting JWT Security Issues | Snyk

L'article explique comment Snyk peut détecter les problèmes de sécurité liés aux JSON Web Tokens (JWT). Il met en avant une erreur courante où la méthode jsonwebtoken.decode() est utilisée pour décoder un JWT sans vérifier sa signature, ce qui peut entraîner des vulnérabilités d'authentification. Snyk identifie cette mauvaise pratique en analysant le code et les dépendances du projet, et recommande d'utiliser jsonwebtoken.verify() pour garantir la sécurité du token.

The Law of Diminishing Returns: How To Maximize Productivity and Gains - Personal Excellence

L'article explore la loi des rendements décroissants, un concept économique qui s'applique également au développement personnel. Il explique comment, au-delà d'un certain point, l'ajout de ressources ou d'efforts supplémentaires conduit à une augmentation de moins en moins significative des résultats, voire à une baisse de productivité. L'auteur utilise des exemples concrets, comme l'utilisation de fertilisant dans un champ de maïs ou la gestion du temps de travail, pour illustrer ce phénomène. L'article propose aussi des stratégies pour maximiser l'efficacité et éviter les pièges des rendements décroissants, en mettant l'accent sur l'importance de travailler de manière intelligente et de reconnaître le moment où il est préférable de s'arrêter ou de changer de méthode.

La friteuse d’un hacker russe a attaqué le site de François  • Lecodeestdanslepre

Quelques conseils pour sécuriser son site web, hébergé dans le cloud ou pas

Minimum vital pour survivre sur un sujet Kubernetes

L'article est un résumé du fonctionnement de Kubernetes, ainsi que des termes spécifiques (Pod, Node, etc.)

De l'alerte au ticket sans lever le petit doigt - Aukfood

L'article explique comment créer un workflow pour automatiser la création de tickets Tracecat à partir d'alertes Wazuh, en utilisant des webhooks.

PostgreSQL pour remplacer Redis · Accueil

En 2024, Redis a changé de licence, incitant l'auteur à explorer PostgreSQL comme alternative pour gérer des données volatiles, offrant une meilleure organisation des données et simplifiant la stack technique. PostgreSQL permet de structurer les données de manière plus élégante grâce à l'héritage de tables et gère l'expiration des données via des requêtes planifiées, bien que cela nécessite une gestion manuelle. Bien que Redis soit plus performant, PostgreSQL, avec des tables UNLOGGED, offre des performances suffisantes pour la plupart des applications, tout en simplifiant l'infrastructure et en évitant les problèmes de licence.

Logs serveur Linux : guide complet pour surveiller le démarrage et les connexions

L'article explique comment surveiller les logs sur un serveur Linux pour améliorer la sécurité et diagnostiquer les problèmes. Il détaille l'emplacement des fichiers de logs dans /var/log et l'utilisation d'outils comme journalctl pour analyser les logs de démarrage et de connexion. Il aborde également la configuration de la rotation des logs via /etc/logrotate.conf.

How I Set Up New MacBooks

L'auteur détaille son processus d'installation pour ses machines sous MacOS :

  • utilisation d'un fichier Brewfile pour installer des outils avec Homebrew
  • définition de paramètres par défaut (en utilisant la ligne de commande)
  • installation de plugins Zsh et définition d'alias
Monotoring Your Symfony App using Datadog ? Nope Let’s use Sentry ^_^ | by Lionel Owono | May, 2025 | Medium

L'article explique l'intérêt de mettre en place l'observabilité, et il montre comment le faire pour une application Symfony en utilisant Sentry.

Enhance your Symfony application README in 30 seconds | by Tac Tacelosky | May, 2025 | Medium

L'auteur présente un utilitaire qui permet de générer un diagramme de classes Doctrine à inclure dans le README.

Ubuntu 24 desktop : intégration avec un AD (ou LDAP)

L'article explore les défis et solutions pour intégrer Ubuntu dans des environnements Microsoft, notamment via l'Active Directory. Il détaille les étapes de configuration, les outils nécessaires et les bonnes pratiques pour assurer une interopérabilité optimale. L'auteur met en lumière les obstacles courants, tels que les problèmes de compatibilité ou de sécurité, et propose des solutions adaptées.

Design System In 90 Days — Smashing Magazine

L'article propose une approche pragmatique pour mettre en place un design system en trois mois. Il s'appuie sur des outils concrets comme le Design System in 90 Days Canvas de Dan Mall, un modèle FigJam qui aide à structurer les discussions avec les parties prenantes, identifier les composants clés et évaluer les besoins des équipes. L'article présente également des ressources pratiques telles que les Design System Tactics de Ness Grixti et une checklist PDF de Nathan Curtis pour guider les ateliers d'équipe. Une lecture utile pour toute organisation souhaitant lancer ou améliorer son design system de manière structurée et collaborative.

Prise de main à distance de téléphone Android. - Aukfood

L'article explique comment installer et utiliser Rustdesk sur un téléphone Android pour une prise de contrôle à distance. Il guide l'utilisateur à travers l'installation depuis F-Droid, la configuration des permissions nécessaires, et le démarrage du service. Enfin, il décrit comment se connecter via un réseau privé et initier une session de contrôle à distance avec toutes les fonctionnalités de Rustdesk.

Smashing Animations Part 1: How Classic Cartoons Inspire Modern CSS — Smashing Magazine

L'article explore comment les techniques d'animation des dessins animés classiques peuvent inspirer les animations CSS modernes. L'auteur, Andy Clarke, montre comment il a appliqué ces principes pour créer des animations engageantes sur le site web du compositeur Mike Worth. Les limitations budgétaires des anciens dessins animés ont conduit à des techniques créatives, comme la réutilisation de cellules et de fonds, qui peuvent être reproduites avec CSS. Ces animations améliorent l'expérience utilisateur et renforcent l'identité de la marque.

Évaluez la qualité de vos tests avec les tests de mutation

L'article discute de l'importance des tests de mutation pour évaluer la qualité des tests logiciels, au-delà de la simple couverture de code. Les tests de mutation introduisent des défauts dans le code pour vérifier si les tests peuvent détecter ces changements, offrant ainsi un score de mutation qui indique l'efficacité des tests. L'outil Infection est présenté comme une solution pour PHP, permettant d'améliorer la confiance dans la suite de tests en identifiant les parties du code où les tests sont insuffisants.

Comment générer un sitemap Google News qui donne envie à Google de s'automutiler  • Lecodeestdanslepre

L'article explique comment créer un sitemap pour Google News afin d'augmenter les chances d'indexation de vos contenus. Il souligne l'importance de respecter les règles strictes de Google, comme la fraîcheur du contenu et le format XML spécifique. L'auteur décrit en détail la mise en œuvre technique, incluant la création d'un contrôleur Symfony, d'un template Twig pour générer le XML, et d'un générateur de sitemap. Il mentionne également les défis et l'incertitude quant à l'efficacité réelle de ces efforts pour améliorer la visibilité dans Google News. Enfin, il conclut que, malgré le travail technique complexe, les bénéfices peuvent être limités pour des contenus de niche.

22 Thoughts on Using AI to Learn Better - Scott H Young

L'auteur explore comment l'IA peut améliorer l'apprentissage en réduisant les difficultés inutiles et en facilitant l'accès à des explications et des pratiques. Cependant, il souligne que l'IA peut aussi diminuer l'effort nécessaire à l'apprentissage, ce qui peut être contre-productif. L'IA change également la valeur des compétences, certaines devenant obsolètes tandis que d'autres gagnent en importance. Il est crucial de vérifier les informations fournies par l'IA et de l'utiliser comme un tuteur plutôt que comme un enseignant principal. Il partage son utilisation personnelle de l'IA pour l'apprentissage, comme l'assistance à la lecture et la pratique des compétences cognitives. En fin de compte, malgré les avancées de l'IA, les principes fondamentaux de l'apprentissage restent inchangés.

SigNoz/signoz: SigNoz is an open-source observability platform native to OpenTelemetry with logs, traces and metrics in a single application. An open-source alternative to DataDog, NewRelic, etc. 🔥 🖥. 👉 Open source Application Performance Monitoring (APM) & Observability tool

SigNoz est une plateforme d'observabilité open-source qui unifie la gestion des logs, des métriques et des traces pour surveiller les applications, détecter les problèmes et résoudre rapidement les temps d'arrêt. Elle offre des fonctionnalités telles que la surveillance des performances des applications, la gestion centralisée des logs, le traçage distribué, des métriques personnalisables et des alertes. Basée sur OpenTelemetry, elle évite le verrouillage propriétaire et utilise ClickHouse pour un stockage optimisé. SigNoz propose une solution tout-en-un pour l'observabilité, avec des options de déploiement cloud ou auto-hébergé, et une communauté active pour le support et les contributions.

From Anemic Models to Behavior-Driven Models: A Practical DDD Refactor in C#

L'article décrit une refonte pratique en C# pour transformer des modèles anémiques en modèles riches en comportement, en utilisant les principes du Domain-Driven Design. Il montre comment déplacer la logique métier des services vers les agrégats, améliorant ainsi la maintenabilité et la clarté du code. L'auteur illustre chaque étape avec des exemples de code avant et après la refonte, soulignant les avantages de cette approche.

Introduction aux câbles USB

L'auteur explique l'histoire de cette norme. On y apprend aussi à reconnaître les différentes versions. Il abordera dans un prochain article l'USB C.

The Day Anubis Saved Our Websites From a DDoS Attack

L'article décrit comment Anubis, un programme conçu pour protéger les sites web contre les scrapers AI, a sauvé les sites web de l'auteur d'une attaque DDoS. L'attaque a saturé le serveur, rendant le site web inaccessible. Anubis a filtré les connexions entrantes, présentant un défi de preuve de travail que les navigateurs légitimes pouvaient résoudre, mais pas les bots malveillants, réduisant ainsi la charge du serveur et restaurant l'accès au site.

Fetch API vs. Axios vs. Alova: Which HTTP Client Should You Use in 2025?

L'article compare trois outils HTTP : Fetch API, Axios et Alova. Fetch API, intégré nativement dans JavaScript, est léger et idéal pour des requêtes simples mais nécessite une gestion manuelle pour des fonctionnalités avancées. Axios, bien que plus lourd, offre des fonctionnalités automatisées comme la gestion du JSON et des intercepteurs, le rendant adapté pour des applications complexes. Alova, quant à lui, combine la simplicité des requêtes avec des fonctionnalités avancées telles que la gestion de l'état et la mise en cache, ce qui en fait un choix optimal pour des applications front-end lourdes nécessitant une optimisation des performances.

Cursor for Large Projects

Cursor et Claude ne sont pas seulement efficaces pour prototyper mais aussi pour structurer, standardiser, refactorer et maintenir de grands projets. Cursor permet de construire des logiciels 5 à 30 fois plus rapidement grâce à son cycle d'édition et de test. L'auteur donne quelques conseils et bonnes pratiques.

php-llm/ecosystem: A list of AI & LLM frameworks and libraries in PHP

Ce dépôt Github liste des intégrations de LLM dans PHP. Chaque intégration doit être open source (licence), être stable ou en développement actif et être installable via composer.

Here’s how I use LLMs to help me write code

L'auteur partage son expérience approfondie de l'utilisation des Large Language Models (LLMs) pour le codage. Il souligne que l'utilisation des LLMs pour le codage est complexe et nécessite de fixer des attentes raisonnables. Il insiste sur l'importance de comprendre les dates de coupure d'entraînement des modèles et de gérer efficacement le contexte. Il partage des conseils pratiques tels que demander des options aux LLMs, fournir des instructions détaillées et itérer sur le code généré. Il discute également des avantages d'utiliser des outils capables d'exécuter et de tester le code, et introduit le concept de "vibe-coding" comme moyen d'apprentissage et d'expérimentation avec les LLMs. Il conclut que les LLMs accélèrent considérablement le développement et amplifient l'expertise existante, facilitant ainsi la mise en œuvre des idées et l'apprentissage de nouvelles choses.