L'auteur constate que, dans son flux d'actualité, la qualité globale des articles diminue, en particulier pour le raisonnement. Par exemple, il suit des auteurs avec lesquels il n'est pas d'accord, mais dont les raisonnements lui paraissent corrects bien qu'incomplets. L'auteur a souffert du "brouillard COVID", une affection qui rendait la réflexion particulièrement compliquée. Il se demande si cette affection n'est pas beaucoup plus répandue qu'on ne le croit, car les articles qu'il lit lui semblent rédigées par des personnes infectées. Enfin, il soupçonne aussi que l'utilisation par nombre d'auteurs de l'intelligence artificielle pour reformuler leurs écrits induise une diminution de leur capacité d'écriture. Il est d'ores et déjà montré que l'utilisation de l'IA sans recul provoque une perte d'esprit critique.
Cette série sur la créativité est extraordinaire. Voici les 8 choses, sans traduction ni explication :-)
- Erasers are wonderful
- Your ears are plugged
- Creativity is like breathing
- There are only bad ideas in brainstorming
- This is not a petting zoo
- The wondrous utility of self-loathing
- Killing your darlings
- The business of art
Le guide explique comment créer un certificat TLS auto-signé et l'installer sur un serveur nginx ainsi que sur des systèmes clients. Il commence par discuter des objectifs de TLS, qui incluent l'authentification et le chiffrement pour assurer la confidentialité et l'intégrité des données. Le processus de création d'un certificat racine est détaillé, incluant la génération d'une clé privée et la création du certificat avec OpenSSL. Le certificat racine est ensuite ajouté à la liste des certificats de confiance sur les systèmes clients, ce qui permet de l'utiliser pour signer d'autres certificats. Enfin, le guide montre comment créer un certificat final pour un serveur web, le configurer dans nginx, et mettre en place une méthode automatique pour mettre à jour les certificats.
L'auteur montre comment implémenter la double authentification dans Symfony, en utilisant quelques dépendances externes :
- OTPHP - une librairie qui permet de gérer les TOTP, mots de passe à usage unique basés sur le temps
- Endroid/QrCode - pour générer les QR codes
- Scheb/2fa-bundle - le bundle de double authentification de Symfony
L'auteur illustre l'évolution de PHP, de la version 3 vers la version 8, à travers les changements de style d'écriture d'une même fonctionnalité. PHP est un langage très vivant
L'auteur utilise une histoire pour rappeler que les migrations Doctrine sont à privilégier, même et surtout pour les insertions manuelles.
Le travail occupe une grande partie de notre vie, influençant non seulement nos finances, mais aussi notre communauté et notre identité. Bien que l'argent soit important, il ne garantit pas le bonheur et doit être considéré parmi d'autres facteurs. Choisir une carrière basée uniquement sur ses talents peut être trompeur, car ils ne correspondent pas toujours à des emplois viables. Les premiers emplois devraient être choisis pour leur potentiel d'apprentissage plutôt que pour le salaire, et il est crucial de rester ouvert et flexible face aux opportunités. Enfin, le réseautage et le choix du lieu de travail jouent un rôle clé dans le succès et la satisfaction professionnelle.
À force de chercher des textes générés par l'IA, on finit par trouver plein de faux positifs... Là, c'est le Hollandais Volant qui en est victime, tout ça parce qu'il utilise correctement la typographie. Comme il l'explique lui-même dans son article, ça peut poser de vrais problèmes pour certains : thésards accusés injustement, etc.
Le Model Context Protocol (MCP) est un protocole standardisé qui permet aux modèles de langage d'accéder en temps réel au contexte spécifique des utilisateurs à partir de diverses sources de données. Ce protocole a été rapidement adopté par des entreprises majeures comme OpenAI, Google et Microsoft, démontrant son importance croissante dans l'industrie. Le MCP facilite l'intégration des modèles de langage avec des sources de données externes, telles que les outils de développement et les systèmes CRM, en s'appuyant sur les fondations du Language Server Protocol (LSP). Il résout un problème fondamental des modèles de langage en leur permettant d'accéder à des données privées ou spécifiques à une organisation, offrant ainsi des intégrations plus profondes et des réponses plus pertinentes.
L'article présente une implémentation d'un serveur MCP en utilisant TypeScript et le SDK officiel @modelcontextprotocol/sdk
. L'exemple illustre un système de classement spatial avec des astronautes et des planètes. Voici les points clés de cette implémentation :
-
Structure du Serveur : La classe principale du serveur MCP est créée en héritant de la classe
Server
du SDK MCP. Elle est configurée avec des capacités pour les outils, les ressources et les prompts. -
Outils (Tools) : Les outils permettent aux modèles de langage d'effectuer des actions spécifiques. Dans cet exemple, des outils sont définis pour rechercher un astronaute, ajouter des points à un astronaute, et obtenir le classement des planètes. Chaque outil est décrit avec un schéma de validation utilisant Zod pour garantir la robustesse des entrées.
-
Ressources (Resources) : Les ressources fournissent un accès structuré à des données statiques ou de référence. Dans cet exemple, une ressource est définie pour accéder aux règles du système de classement spatial.
-
Prompts : Les prompts sont des templates de conversation réutilisables qui peuvent être paramétrés dynamiquement. Un exemple de prompt est fourni pour générer un rapport hebdomadaire des performances.
-
Transport : Le serveur MCP peut utiliser différents types de transport pour communiquer avec les clients, tels que STDIO pour les applications desktop et SSE pour les applications web.
-
Test et Débogage : L'article utilise l'inspecteur MCP pour tester et déboguer le serveur. Cet outil permet d'explorer et de tester les outils, les ressources et les prompts de manière interactive.
-
Intégration avec Claude Desktop : Enfin, l'article montre comment intégrer le serveur MCP avec Claude Desktop, un client MCP populaire, pour permettre des interactions enrichies et contextualisées.
Cette implémentation illustre comment créer un serveur MCP fonctionnel et l'intégrer dans un environnement de développement pour enrichir les interactions avec les modèles de langage.
L'article rappelle l'intérêt des connexions SSH sans mot de passe. Il détaille ensuite, étape par étape, comment générer une clé SSH et configurer l'accès sans mot de passe. Il donne quelques conseils pour renforcer la sécurité, et répond à quelques questions courantes. Enfin, il présente les bonnes pratiques : renouvellement périodique des clés, etc.
Le développement de l'application PeerTube a conduit à l'adoption de Flutter pour le développement multiplateforme, permettant une seule base de code pour Android et iOS, réduisant ainsi les coûts et les efforts de maintenance. L'équipe a dû se former à Flutter et à Dart, en utilisant diverses ressources pour maîtriser ces technologies. Une architecture "feature-first" a été choisie pour organiser le code par fonctionnalité, favorisant la modularité et la clarté du projet. Plusieurs dépendances ont été soigneusement sélectionnées, comme Riverpod pour la gestion d'état et GoRouter pour la navigation, tout en rencontrant des défis avec certaines bibliothèques comme Chewie pour la lecture vidéo.
L'article présente 10 fonctionnalités récentes des CSS :
- Min, max and clamp - min et max se passent de commentaires, et clamp permet de combiner les deux - une valeur minimale, une valeur préférée, et une valeur maximale
- Container queries - les container query font que les éléments répondent à la taille du conteneur de leur parent plutôt qu'à celle du viewport
- text-wrap: balance & pretty - cette propriété contrôle comment le texte est réparti entre les lignes pour améliorer la lisibilité, la valeur "balance" crée des lignes de longueur égale, alors que "pretty" évite les orphelines (mots se retrouvant seuls sur la dernière ligne)
- CSS Relative Color Syntax - la syntaxe "from" permet d'extraire et de modifier des composants individuels pour toute source de couleur
- Margin Block/Inline Properties - ces propriétés de marge et de padding (margin-block, margin-inline, padding-block, padding-inline) répondent aux besoins induits par différents modes d'écriture et de direction de lecture en CSS, remplaçant les propriétés left / right / top / bottom
- @starting-style - permet d'animer des éléments depuis display:none, en définissant des styles initiaux quand un élément apparaît
- :has() - permet de sélectionner des éléments parents, en se basant sur leurs enfants
- Media Query Ranges - simplifie la syntaxe pour définir des intervalles min/max - light-dark - est un raccourci pour définir différentes valeurs basées sur les préférences de l'utilisateur sur le mode (sombre / light)
- color-scheme - est utile en combinaison avec light-dark, pour informer le navigateur quel jeu de couleurs est supporté par un composant, ce qui permet aux éléments natifs de correspondre automatiquement aux préférences de l'utilisateur
- Nesting - permet d'écrire des CSS en imbriquant les sélecteurs enfants dans leurs parents
- Units - de nouvelles unités comme dvh sont apparues (pour les navigateurs mobiles)
- @layer - permet de gérer des conflits de spécificité en ordonnant explicitement les groupes de styles.
L'article explore une technique avancée des animations CSS avec des keyframes partiels. En omettant les points de départ ou de fin dans une animation, les valeurs initiales sont héritées du contexte, rendant les animations plus dynamiques et réutilisables. Cette approche permet de créer des animations qui s'adaptent à l'état actuel de l'élément, facilitant ainsi des transitions plus fluides et personnalisées. De plus, l'utilisation de variables CSS dans les keyframes permet de définir des valeurs dynamiques, augmentant encore la flexibilité et la puissance des animations CSS.
L'article est une bonne introduction à Flask : il commence par expliquer comment installer Flask, créer son application et la lancer pour qu'elle écoute les requêtes. Ensuite, on voit comment renvoyer du JSON, comment gérer les verbes HTTP, etc.
C'est triste
L'auteur explique la marche à suivre pour partager une liste d'extensions VS Code recommandées. Il précise aussi comment éviter certaines extensions et la création d'un pack
10 commandes linux méconnues et pourtant bien utiles : renommage de fichiers en masse, afficher la progression d'une copie de fichier, afficher les numéros de ligne, etc.
L'autuer partage 13 astuces pour le terminal : répéter, corriger, etc. Je ne les connaissais pas toutes
Une astuce intéressante si un système linux met beaucoup de temps à démarrer
L'article explore l'utilisation conjointe des modèles de conception "Stratégie" et "Chaîne de Responsabilité" dans le cadre du développement avec Symfony. L'auteur commence par démystifier ces concepts, souvent perçus comme complexes, en illustrant comment ils sont déjà utilisés inconsciemment dans le développement quotidien. Il explique le modèle "Stratégie" à travers un exemple de planification de voyage, où différentes stratégies de transport peuvent être interchangeables selon le contexte. Ensuite, il aborde le modèle "Chaîne de Responsabilité" en décrivant comment les requêtes peuvent être traitées séquentiellement par une série de gestionnaires, chacun ayant la possibilité de traiter ou de transmettre la requête. L'auteur montre comment Symfony facilite l'intégration de ces modèles grâce à des attributs modernes comme AutoconfigureTag et AutowireIterator, permettant une implémentation élégante et maintenable. Enfin, il souligne les avantages de cette combinaison pour créer des applications flexibles, découplées et faciles à étendre.