Ce site propose un guide structuré pour maîtriser JavaScript à travers 33 concepts fondamentaux, allant des bases (types primitifs, portée, fermetures) aux sujets avancés (moteurs JS, expressions régulières, algorithmes). Chaque notion est expliquée de manière claire avec des exemples pratiques, des schémas et des ressources complémentaires, adaptées aussi bien aux débutants qu’aux développeurs expérimentés.
L’approche met l’accent sur la compréhension profonde plutôt que sur le copier-coller, en couvrant des mécanismes clés comme l’asynchrone (boucle d’événements, Promesses), la programmation orientée objet (prototypes, classes) et les bonnes pratiques (code propre, motifs de conception). Les sections dédiées à l’entretien technique et à l’optimisation des performances en font aussi un outil utile pour les candidats.
Le contenu est organisé en parcours progressifs, avec une recherche intégrée et un index complet pour naviguer facilement. Le projet s’appuie sur des ressources externes vérifiées et propose des quiz pour valider les acquis, tout en restant accessible aux autodidactes ou aux développeurs souhaitant combler des lacunes.
PHP Satan est un site humoristique et pédagogique dédié à PHPStan, un outil d'analyse statique pour PHP souvent surnommé ainsi par ses utilisateurs. Le site guide les développeurs à travers les défis de l'analyse de code, en commençant par les bases de l'installation et de la configuration, jusqu'à des concepts plus avancés comme la gestion des erreurs de type et l'optimisation des performances.
L'idée principale est d'aider les développeurs à comprendre et à corriger les erreurs détectées par PHPStan, notamment celles liées aux types de données. Le site explique le système de niveaux de PHPStan (de 0 à 10), chaque niveau étant plus strict que le précédent, et propose des solutions pour résoudre les erreurs courantes, comme l'utilisation de type hints ou le narrowing de types. Des conseils pratiques, comme l'augmentation de la mémoire allouée ou l'utilisation de flags en ligne de commande, sont également fournis pour optimiser l'analyse.
L’article SVG from Scratch explique que SVG n’est pas un simple format d’image, mais un système de coordonnées, une surface de style et une cible d’animation, comparable à un élément DOM. L’auteur souligne l’importance de comprendre le viewBox, qui définit un espace de coordonnées interne que le navigateur adapte à la taille d’affichage, permettant une conception flexible et scalable.
L’auteur présente les formes de base (cercle, rectangle, ligne, polygone, chemin) et leur syntaxe, en insistant sur la puissance du path, qui permet de créer des formes complexes. Il détaille aussi les commandes de base pour dessiner des courbes, lignes et arcs, en distinguant les coordonnées absolues et relatives.
Enfin, l’article aborde le style des SVG via CSS, où les propriétés comme fill, stroke ou opacity peuvent être contrôlées dynamiquement, avec une priorité sur les styles définis en CSS plutôt qu’en attributs SVG. L’auteur encourage à écrire manuellement le code SVG pour en exploiter pleinement les possibilités.
Ce site propose un tutoriel moderne et complet sur JavaScript, couvrant à la fois les bases du langage et ses aspects avancés, comme la programmation orientée objet ou les promesses. Il est structuré en trois parties : le langage JavaScript, la manipulation du navigateur (DOM, événements) et des articles thématiques supplémentaires. Le contenu est régulièrement mis à jour, avec la dernière version datant de mai 2026.
L’approche pédagogique mise sur des explications claires et détaillées, sans se perdre dans des détails spécifiques à un environnement particulier. Le tutoriel aborde aussi des outils comme les éditeurs de code, la console développeur et les tests automatisés, tout en intégrant des concepts modernes comme les modules, les classes ou l’asynchrone avec async/await.
Disponible en ligne gratuitement, le site propose également des versions payantes en EPUB/PDF. Il inclut des liens vers des ressources complémentaires comme un dépôt GitHub ou un chat Discord pour échanger avec la communauté.
L’auteur présente Zensical, un nouveau framework de documentation créé par Martin Donath, ancien développeur de Material for MkDocs, en réaction à l’attitude jugée hostile du projet MkDocs. Zensical se veut une alternative moderne, 100 % libre et bien documentée, remplaçant avantageusement la combinaison MkDocs + Material for MkDocs, tout en offrant une base solide malgré son statut alpha.
Le tutoriel détaille l’installation via un environnement virtuel Python, la création d’un projet et son initialisation, illustrant le processus pas à pas. L’auteur souligne la simplicité des commandes et la régularité des mises à jour, tout en précisant que Zensical est déjà fonctionnel pour des projets de documentation technique.
Enfin, l’article annonce une série de guides pratiques pour exploiter Zensical, notamment pour publier des HOWTOs sur GitLab Pages, avec des sections dédiées à la configuration, à l’ajout de logos ou d’icônes, et à l’organisation du menu.
Ce tutoriel explique comment créer une commande météo en Ruby, intégrée au shell Fish, en utilisant une API gratuite comme Open Meteo. L'auteur détaille les étapes pour récupérer les données météo (température, probabilité de pluie, description) via une requête API et les formater dans le terminal. Un exemple concret montre la sortie attendue, avec des prévisions horaires pour une journée.
L'article présente ensuite le code Ruby pour interroger l'API et parser les données JSON. Il inclut deux scripts : l'un pour récupérer les données météo via curl, et l'autre pour les traiter et les afficher de manière lisible. L'auteur souligne la flexibilité du code et la possibilité d'adapter les requêtes selon ses besoins.
Enfin, le tutoriel aborde la gestion des codes météo via un dictionnaire Ruby, permettant de convertir les codes numériques en descriptions textuelles. L'approche est simple et ne nécessite pas de clé API, rendant l'intégration accessible même pour les débutants.
Ce billet présente Hugo, un générateur de sites statiques rapide et flexible, et guide les débutants dans sa prise en main. L’auteur explique que Hugo compile des fichiers sources (HTML, CSS, etc.) en pages statiques, offrant ainsi simplicité, sécurité et performance, sans dépendance serveur. Il détaille ensuite les étapes clés : installation via un gestionnaire de paquets (comme pacman sous ArchLinux), création d’un nouveau site avec hugo new site, et sélection d’un thème parmi ceux proposés par la communauté sur le site officiel. L’objectif est de générer un blog fonctionnel en quelques commandes, avec un aperçu local avant déploiement.
Cet article explique comment déployer un serveur NTP local via Docker (avec Chrony) pour synchroniser précisément vos équipements réseau, même sans accès Internet. Après la configuration du conteneur, l'auteur détaille les étapes pour synchroniser les clients (Windows, Linux, routeur UniFi, NAS Synology) et assure une redondance avec un second serveur. Une solution simple pour éviter les décalages horaires et optimiser la corrélation des logs. 🔧⏱️
L’auteur de Spirio.fr partage son expérience du déploiement d’IPv6 sur son infrastructure, une transition qu’il avait longtemps repoussée. Après une après-midi dédiée, il détaille les étapes clés : activation de l’adressage IPv6 sur le serveur, configuration du pare-feu, du reverse proxy HTTPD et des DNS, ainsi que l’adaptation d’AdGuardHome (avec des ajustements spécifiques pour Nftables). Malgré quelques défis, notamment autour d’AdGuardHome, l’auteur souligne la relative simplicité de la procédure pour la plupart des services. Un retour d’expérience pratique pour ceux qui hésitent encore à sauter le pas ! 🌐🔧
Ce guide explique comment utiliser aptly pour créer et gérer un miroir local de dépôts Debian, permettant un contrôle total sur les mises à jour des paquets. Aptly permet de mirroiter un dépôt distant, de créer des snapshots immuables et de publier ces snapshots pour une utilisation locale. Le processus de base inclut la création d'un miroir, sa mise à jour, la création d'un snapshot et sa publication. Le guide couvre également l'installation d'aptly via les paquets Debian, la configuration de base, l'importation des clés GPG, la création et la gestion des miroirs, ainsi que l'automatisation avec cron et le nettoyage de maintenance.
Cet article explique comment sécuriser une connexion SSH en utilisant des clés publiques/privées, en désactivant l'authentification par mot de passe et en installant fail2ban. Il détaille les étapes pour générer une paire de clés (préférentiellement avec l'algorithme ed25519), les copier sur le serveur, ajuster les permissions et configurer PuTTY pour Windows. Une manipulation simple mais efficace pour protéger son serveur contre les attaques par force brute.
Ce tutoriel explique comment construire une application Symfony capable de gérer un grand volume de documents (jusqu'à un milliard) en utilisant MongoDB. Dans cette deuxième partie, l'auteur montre comment configurer une application Symfony avec le Doctrine MongoDB ODM pour mapper les documents à des classes PHP, et utiliser Symfony UX pour créer une interface utilisateur moderne. Le tutoriel couvre la configuration initiale de l'application, la cartographie des documents, et la mise en place d'un tableau de bord pour afficher des informations générales, une liste de stations, et des détails spécifiques comme les prix des carburants et leur historique.
Ce tutoriel explique comment installer et configurer Postfix, un serveur de messagerie (MTA), sur un serveur dédié Debian 13. Il couvre les prérequis, l'installation, la configuration minimale du fichier main.cf, et l'envoi d'un e-mail de test. L'objectif est de permettre l'envoi de notifications système, comme celles de Rsnapshot, depuis une machine publique. La configuration proposée désactive IPv6, limite l'interface à localhost, et définit des paramètres de base pour le nom d'hôte et le domaine. Le programme postconf est utilisé pour vérifier les valeurs de configuration.
Ce partage Shaarli présente un tutoriel détaillé pour installer et configurer PeerTube, une alternative libre et auto-hébergée à YouTube, sur un serveur Linux. Le guide, validé sur Red Hat Enterprise Linux 9 et 10, couvre les prérequis, l'installation des dépendances (comme Node.js, pnpm, et ffmpeg), la configuration de la base de données PostgreSQL, la configuration de PeerTube via un fichier YAML, la configuration du serveur web Nginx avec SSL, les paramètres SELinux, et l'initialisation du service. Le tutoriel est une synthèse des documents officiels et inclut des commandes spécifiques pour différentes versions de RHEL et ses dérivées.
L’article explique comment intégrer un onduleur (UPS) à Proxmox en utilisant NUT (Network UPS Tools) pour superviser l’état de l’UPS et permettre à Proxmox de s’arrêter proprement en cas de coupure de courant. Il montre d’abord la configuration du serveur NUT sur un NAS Synology relié à l’UPS, puis la configuration du client NUT sur Proxmox (installation de nut-client, réglage de nut.conf en mode netclient et adaptation de upsmon.conf avec l’adresse IP et identifiants du serveur), et termine par le redémarrage du service et la vérification de la connexion à l’UPS via la commande upsc.
Découverte de Talos Linux, une distribution innovante dédiée à Kubernetes, axée sur l'immuabilité et la sécurité. Sans SSH ni CLI traditionnelle, elle est entièrement gérée via une API similaire à celle de Kubernetes, utilisant des certificats pour l'authentification. Le blog détaille le déploiement d'un cluster Kubernetes avec 3 nœuds masters et un nœud worker, en utilisant Talosctl. La documentation officielle est saluée pour sa clarté, et les prérequis infrastructurels sont classiques. Un tutoriel pratique avec commandes et captures d'écran est fourni.
Ce billet de blog présente une configuration impliquant trois outils : StepCA, Caddy et MISP, via le protocole ACME. L'auteur, ayant travaillé sur du CTI (Cyber Threat Intelligence), utilise MISP, une plateforme open source pour partager des informations sur les menaces. Il explique comment il a mis en place une PKI interne avec StepCA pour gérer les certificats TLS, et utilise Caddy comme reverse proxy pour le SSL offloading. Le lab comprend une root CA offline, une sub CA avec serveur ACME privé, un serveur DNS, et une VM avec Docker exécutant Caddy et MISP. L'article détaille également le rôle du CTI et de MISP dans la cybersécurité proactive.
Dokploy est un PaaS open source simplifiant le déploiement moderne sur des serveurs Linux, qu'ils soient on-premise ou dans le cloud. Son installation via un script automatisé est accessible même aux débutants. L'interface intuitive permet de gérer des projets, du monitoring, des tâches planifiées, et offre un accès direct aux configurations de Traefik et Docker Swarm. Dokploy supporte également la gestion de clusters multi-nœuds, des registres Docker personnalisés, des backups vers S3, et des certificats SSL. Un onglet AI est disponible pour générer des Dockerfiles ou configurations. Un tutoriel montre comment déployer un site WordPress en quelques étapes.
Abhinav Sarkar partage son expérience avec Jujutsu (JJ), un nouveau système de contrôle de version qu'il utilise depuis trois mois pour ses projets personnels. Dans ce billet, il détaille les commandes JJ qu'il utilise le plus fréquemment, en assumant que le lecteur connaît déjà Git. Il explique comment démarrer avec JJ, créer et modifier des changements, visualiser les modifications, gérer les branches, et interagir avec Git. Sarkar souligne que JJ utilise Git comme backend, permettant ainsi une utilisation transparente de Git dans les dépôts partagés. Il conclut en mentionnant que l'utilisation de JJ ne nécessite pas de maîtriser toutes ses fonctionnalités avancées pour en tirer profit.
Cet article présente une méthode complète pour migrer un système Linux d’un disque à un autre “à chaud” grâce à LVM (Logical Volume Manager) sans arrêter son système. Pas à pas, l’article explique comment préparer le nouveau disque, étendre le groupe de volumes, déplacer les données avec les outils LVM, puis reconstruire l’amorçage et finaliser le transfert pour que le système continue de fonctionner comme si de rien n’était