Files
varlog/_cache/search/d7ee3f35a91fc15a7d9065c60234119a.json
T
2026-05-15 10:37:48 +02:00

1 line
210 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[{"article":{"uuid":"3a3fd059-c807-4c3c-9143-dc5013f12b89","slug":"configurer-php-fpm","title":"Configuration de PHP-FPM (Version 8.3)","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-01-18 19:40:52","created_at":"2025-01-18 19:40:52","updated_at":"2025-01-18 19:40:52","plain":"PHP-FPM (FastCGI Process Manager) est une implémentation alternative de PHP qui offre une gestion plus efficace des processus, particulièrement adaptée aux environnements à forte charge. Ce guide détaille les étapes pour configurer PHP-FPM 8.3 de manière optimale.\n-- Fichier de configuration principal\nLa configuration principale de PHP-FPM se trouve dans le fichier suivant : Pour configurer le fuseau horaire, modifiez le paramètre . Cette configuration garantit que les opérations liées aux dates et heures s'exécutent correctement dans le contexte géographique souhaité. Exemple pour le fuseau horaire de Paris : ✅ Note : Assurez-vous que cette ligne n'est pas précédée d'un point-virgule (), car cela indiquerait qu'elle est commentée.\n-- Application des modifications\nLes modifications apportées au fichier de configuration ne prennent effet quaprès un redémarrage des services concernés. Exécutez les commandes suivantes pour redémarrer PHP-FPM et Apache :\n-- Vérification de la configuration\nPour valider que les changements sont appliqués correctement : 1. Créer un fichier de test PHP \nPlacez un fichier nommé dans le répertoire racine du serveur web (par défaut : ) : Insérez le contenu suivant : 2. Accéder au fichier via un navigateur \nChargez l'URL correspondante, par exemple : Dans la sortie générée, localisez la section et confirmez que est configuré sur . 3. Supprimer le fichier de test \nUne fois la vérification terminée, supprimez ce fichier pour éviter tout risque de divulgation d'informations sensibles :\n-- Bonnes pratiques\n1. Sécurisation des fichiers de configuration \nLimitez les permissions du fichier pour éviter toute modification non autorisée : 2. Mises à jour régulières \nMaintenez PHP-FPM et Apache à jour afin de bénéficier des dernières améliorations en matière de sécurité et de performances : 3. Journalisation et surveillance \nConfigurez la journalisation PHP-FPM pour faciliter la détection et la résolution des anomalies :\n-- Conclusion\nCes étapes permettent de configurer PHP-FPM 8.3 avec une attention particulière à la performance et à la sécurité. La personnalisation des paramètres, combinée à des vérifications rigoureuses, garantit une configuration adaptée aux besoins denvironnements exigeants, tels que les sites à fort trafic ou les applications critiques."},"score":12.25,"snippet":"<mark>PHP</mark>-FPM (FastCGI Process Manager) est une implémentation alternative de <mark>PHP</mark> qui offre une gestion plus efficace des processus, particulièrement adaptée aux environnements à forte charge. Ce guide détaille les étapes pour…","tier":1},{"article":{"uuid":"08331a9c-def4-497a-a728-6a91eafc2d4e","slug":"installer-php-fpm","title":"Installation de PHP-FPM 8.3","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-01-18 18:51:41","created_at":"2025-01-18 18:51:41","updated_at":"2025-01-18 18:51:41","plain":"Dans cet article, nous allons installer PHP-FPM (FastCGI Process Manager), un gestionnaire de processus FastCGI optimisé pour exécuter PHP. Cet outil offre des fonctionnalités avancées, comme la gestion fine des processus et une meilleure performance, particulièrement adaptée aux sites à fort trafic. Contrairement au mode modphp traditionnel, PHP-FPM est plus performant et consomme moins de ressources. Pourquoi utiliser PHP-FPM ?\nPHP-FPM est conçu pour les sites de toutes tailles, mais il excelle dans les environnements exigeants, grâce à ses fonctionnalités telles que : \nLa gestion avancée des pools de processus. \nUne meilleure répartition des ressources système. \nLa compatibilité avec divers serveurs web comme Apache (via ) et Nginx. Utilisation avec Apache 2\nAvec Apache 2, PHP-FPM est utilisé en combinaison avec le module , qui permet de rediriger les requêtes PHP vers le gestionnaire PHP-FPM. Installation de PHP via le dépôt d'Ondřej Surý\nPour installer PHP et PHP-FPM, nous utiliserons le dépôt d'Ondřej Surý, réputé pour fournir des versions récentes et stables de PHP pour Debian et ses dérivés (comme Ubuntu). Ce dépôt est compatible avec les architectures suivantes : \nARM64 (pour les systèmes 64 bits ARM, comme Raspberry Pi modernes). \nARMhf (pour les systèmes ARM 32 bits). \namd64 (pour les systèmes 64 bits basés sur Intel/AMD). \ni386 (pour les systèmes 32 bits). Étapes d'installation\n1. Ajout du dépôt dOndřej Surý \nAvant dinstaller PHP, ajoutez le dépôt : \n 2. Installation de PHP et PHP-FPM \nInstallez la version de PHP souhaitée (par exemple PHP 8.2) et son module FPM : 3. Configuration dApache pour utiliser PHP-FPM \nActivez les modules nécessaires : 4. Vérification de l'installation** \nCréez un fichier PHP dinformation pour vérifier la configuration : \n \nEnsuite, ouvrez votre navigateur et accédez à ."},"score":12.25,"snippet":"Dans cet article, nous allons installer <mark>PHP</mark>-FPM (FastCGI Process Manager), un gestionnaire de processus FastCGI optimisé pour exécuter <mark>PHP</mark>. Cet outil offre des fonctionnalités avancées, comme la gestion fine des processu…","tier":1},{"article":{"uuid":"14881210-68fb-412e-9900-55d2e39ec241","slug":"structure-des-dossiers-d-un-projet-php","title":"Programmer un site Internet en PHP","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-12-26 19:50:41","created_at":"2023-12-26 19:50:41","updated_at":"2023-12-26 19:50:41","plain":"Avertissements\nBien que Composer soit un outil puissant pour les dépendances et les classes externes, certaines personnes préfèrent toujours créer leurs propres classes pour des raisons telles que :\nContrôle sur le code : En créant ses propres classes, on peut contrôler le code source et le personnaliser pour répondre à ses besoins spécifiques.\nMeilleure compréhension : En créant ses propres classes, on peut mieux comprendre comment elles fonctionnent et les adapter à ses propres projets.\nPrise en charge des anciens projets : Si on a déjà utilisé ses propres classes pour la gestion de la base de données ou d'autres tâches dans d'autres projets, il peut être plus facile de les utiliser dans un nouveau projet plutôt que d'adopter un nouvel outil.\nExigences personnalisées : Certaines personnes peuvent avoir des exigences spécifiques qui ne sont pas prises en charge par les bibliothèques externes existantes. La création de leurs propres classes leur permet de satisfaire ces besoins. Le choix entre l'utilisation de Composer et la création de ses propres classes dépend des besoins et des préférences individuelles. en cours de rédaction Structure des dossiers d un projet php\nDans la plupart des cas, il est recommandé de créer un dossier public pour séparer les fichiers publics du code source. Le dossier public devrait contenir les fichiers accessibles directement via un navigateur web, tels que les fichiers HTML, JavaScript, CSS et images. Les autres fichiers, tels que les classes PHP, les fichiers de configuration et les fichiers d'enregistrement, devraient être placés dans un dossier séparé pour une meilleure sécurité. Pour structurer un projet PHP avec des classes, JavaScript et CSS, voici une structure de dossiers suggérée : Dans un projet PHP, les dossiers classes, css et js peuvent être utilisés pour organiser les fichiers associés à ces technologies.\n: ce dossier peut contenir toutes les classes PHP utilisées pour la logique de l'application.\n: ce dossier peut contenir tous les fichiers CSS pour la mise en forme de l'interface utilisateur.\n: ce dossier peut contenir tous les fichiers JavaScript pour la logique client-side et l'interaction utilisateur.\n: ce dossier devrait être placé dans le dossier public pour être accessible directement via un navigateur web. Il contient les images. Il est courant de placer les fichiers de configuration dans un dossier nommé et les fichiers d'enregistrement dans un dossier nommé . Cependant, la structure de dossiers dépend fortement des besoins spécifiques de chaque projet, il n'y a donc pas de solution universelle. Il est important de choisir une structure de dossiers qui facilite la maintenance et la compréhension de votre projet pour vous et les autres développeurs qui peuvent travailler dessus. Créer un autoloader pour les classes\nUn autoloader est une fonction en PHP qui charge automatiquement les classes nécessaires à l'exécution du code. Vous pouvez créer un autoloader en définissant une fonction qui inclura le fichier associé à une classe spécifique lorsque cette classe est utilisée pour la première fois. Voici un exemple d'implémentation d'un web/autoload : Cet exemple utilise la fonction de PHP pour définir l'autoloader. La fonction accepte une fonction anonyme qui sera appelée chaque fois qu'une classe non trouvée sera utilisée. La fonction anonyme convertit le nom de la classe en un nom de fichier en remplaçant les antislashs (\\) par des slashs (/) et ajoute l'extension pour former le nom du fichier associé à la classe. Enfin, le fichier associé est inclu en utilisant précédé du chemin pour accéder au classes (). Ce code suppose que les noms de classes correspondent aux noms de fichiers et que les classes sont rangées dans des dossiers hiérarchiques correspondant à leur namespace. Il peut être nécessaire de personnaliser cette implémentation en fonction de la structure de dossiers de votre projet. Créer un fichier de configuration\nCréer des fichiers de log\nCréer une connexion à la base de données"},"score":12.25,"snippet":"…s. en cours de rédaction Structure des dossiers d un projet <mark>php</mark>\nDans la plupart des cas, il est recommandé de créer un dossier public pour séparer les fichiers publics du code source. Le dossier public devrait contenir l…","tier":1},{"article":{"uuid":"d055fe0f-d9fb-4d3b-b12a-ecbb3277216b","slug":"20230216-8-2-json-inclus-dans-le-coeur-de-php","title":"PHP 8.2, JSON est inclus dans PHP core","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 13:22:54","created_at":"2023-02-16 13:22:54","updated_at":"2023-02-16 13:22:54","plain":"REDIRECT>informatique:langage:php:8.2-json-inclus-dans-le-coeur-de-php"},"score":12.25,"snippet":"REDIRECT&gt;informatique:langage:<mark>php</mark>:8.2-json-inclus-dans-le-coeur-de-<mark>php</mark>","tier":1},{"article":{"uuid":"4733042d-4855-4622-bce0-f1343b89190a","slug":"8-2-json-inclus-dans-le-coeur-de-php","title":"PHP 8.2, JSON est inclus dans PHP core","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 11:59:23","created_at":"2023-02-16 11:59:23","updated_at":"2023-02-16 11:59:23","plain":"Depuis la version 8.2 de PHP, la fonctionnalité JSON est incluse dans le cœur de PHP. Cela signifie que vous n'avez plus besoin d'installer une extension externe pour manipuler des données JSON en PHP. La prise en charge native de JSON dans PHP 8.2 offre de nombreux avantages, notamment une meilleure performance, une meilleure sécurité et une syntaxe plus simple pour la manipulation de données JSON. Pour utiliser la fonctionnalité JSON de PHP 8.2, vous pouvez utiliser les fonctions intégrées de PHP telles que jsonencode() pour convertir des données PHP en JSON, et jsondecode() pour convertir des données JSON en PHP. Il existe également d'autres fonctions JSON disponibles dans la documentation de PHP pour vous aider à manipuler les données JSON en PHP. Voici des exemples de la façon dont vous pouvez utiliser les fonctions jsonencode() et jsondecode() en PHP 8.2. Exemple d'utilisation de jsonencode()\nLa fonction jsonencode() permet de convertir un tableau PHP en chaîne de caractères JSON : Dans cet exemple, nous avons créé un tableau PHP contenant des informations sur une personne, puis nous avons utilisé la fonction jsonencode() pour convertir ce tableau en une chaîne de caractères JSON. Exemple d'utilisation de jsondecode()\nLa fonction jsondecode() permet de convertir une chaîne de caractères JSON en un objet ou un tableau PHP : Dans cet exemple, nous avons créé une chaîne de caractères JSON contenant des informations sur une personne, puis nous avons utilisé la fonction jsondecode() pour convertir cette chaîne de caractères en un objet PHP. Nous pouvons ensuite accéder aux propriétés de cet objet en utilisant la syntaxe ."},"score":12.25,"snippet":"Depuis la version 8.2 de <mark>PHP</mark>, la fonctionnalité JSON est incluse dans le cœur de <mark>PHP</mark>. Cela signifie que vous n&#039;avez plus besoin d&#039;installer une extension externe pour manipuler des données JSON en <mark>PHP</mark>. La prise en charge…","tier":1},{"article":{"uuid":"09eb4f75-18f2-42a5-8f75-7c70b9e4a08e","slug":"36-20200512-installer-php-fpm-phpmyadmin","title":"Installer PHP FPM et PhpMyAdmin","category":"Podcasts","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-10 22:48:32","created_at":"2023-02-10 22:48:32","updated_at":"2023-02-10 22:48:32","plain":"Le projet de migration de bases données MySQL et en cours. Voici un rapide tour des informations que je traite dans cette seconde partie. Épisode audio disponible dès le mardi 12 mai 2020.\\\\\n[Épisode audio disponible sur https://info.mindcast.fr/media/2020-05-1236cedricabonnel-installerphpfpmetphpmyadmin.mp3] Cette page est amenée à évoluer. Vous pouvez réagir à cet épisode\n- Maria DB, réinitialiser le mot de passe de root À chaque installation de Maria DB, le mot de passe ROOT est initialisé avec un mot de passe que je ne connais pas.\nGuide pour Réinitialiser le mot de passe ROOT dans MariaDB\n- Déplacer les fichiers (InnoDB et MyISAM) de la base de données MySQL vers un serveur Maria DB J'ai récupéré les fichiers systèmes dans mon ancien SGBD MySQL. Je veux pouvoir les reprendre.\nGuide pour Restaurer des fichiers systèmes Maria DB\n- Utiliser PHP FPM pour Apache 2 Pour exécuter du code PHP, il faut installer linterpréteur PHP.\nGuide pour \n- Installer phpMyAdmin depuis les sources Une application Web PhpMyAdmin permet de naviguer facilement dans les bases de données du SGBD Maria DB / MySQL.\nGuide pour"},"score":12.25,"snippet":"…//info.mindcast.fr/media/2020-05-1236cedricabonnel-installer<mark>php</mark>fpmet<mark>php</mark>myadmin.mp3] Cette page est amenée à évoluer. Vous pouvez réagir à cet épisode\n- Maria DB, réinitialiser le mot de passe de root À chaque installatio…","tier":1},{"article":{"uuid":"78e1e6cf-2b5e-4d54-9bef-0d0ac21757b9","slug":"lamp","title":"[OBSOLÈTE] Linux Apache MySQL PHP sous Fedora Core 24","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 16:12:19","created_at":"2023-02-09 16:12:19","updated_at":"2023-02-09 16:12:19","plain":"<note important>Article OBSOLÈTE\\\\\nJe vous conseille d'installer une solution Web sur un serveur Debian. </note> Je vous présente (rapidement) comment installer un serveur Linux Apache MySQL PHP sous Linux Fedora 24 Desktop.\\\\\nToutes les commandes sont a exécuter dans une fenêtre terminal.\nInstaller sous Linux\nLinux Fedora\nOn commence à par installer Apache httpd. Ajouter des règles dans le firewall: Activer Apache automatiquement : Démarrer le service apache : On continue avec l'installation du SGBD MariaDB. Démarrage de MariaDB Activer MariaDB automatiquement : Sécuriser l'installation de MariaDB : Et enfin, on installe l'interpréteur PHP Activer PHP FPM automatiquement : Démarrer le service php-fpm et apache :"},"score":12.25,"snippet":"…rapidement) comment installer un serveur Linux Apache MySQL <mark>PHP</mark> sous Linux Fedora 24 Desktop.\\\\\nToutes les commandes sont a exécuter dans une fenêtre terminal.\nInstaller sous Linux\nLinux Fedora\nOn commence à par installe…","tier":1},{"article":{"uuid":"064d82b7-b652-410b-9ea9-88b2f9d1e67e","slug":"php-installer-un-second-moteur","title":"Installer une seconde version de PHP","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 16:12:18","created_at":"2023-02-09 16:12:18","updated_at":"2023-02-09 16:12:18","plain":"Cet article décrit comment installer une autre version de PHP sur votre système. Nous vérifions le fonctionnement de fpm :"},"score":12.25,"snippet":"Cet article décrit comment installer une autre version de <mark>PHP</mark> sur votre système. Nous vérifions le fonctionnement de fpm :","tier":1},{"article":{"uuid":"49c22f36-a037-41ae-9585-a3750dfaab9d","slug":"configurer-plusieurs-versions-de-php-avec-apache-2-4","title":"Configurer plusieurs versions de PHP avec Apache 2.4","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 16:12:17","created_at":"2023-02-09 16:12:17","updated_at":"2023-02-09 16:12:17","plain":"Ce tutoriel va vous aider à configurer plusieurs versions de PHP avec Apache avec une distribution Linux Debian 10.6. Ce tutoriel décrit l'installation et la configuration de deux VirtualHost dans Apache avec un chacun une version de PHP différente. La première configuration fonctionnera avec PHP5.6 et l'autre avec PHP 7.4. vous pouvez utiliser autant de version PHP avec Apache sans pré requis supplémentaire, il suffit d'appliquer le principe enseigné dans ce tutoriel. Ce tutoriel a été testé sur Debian 10.6 pour ARM (Raspbian / Raspberry OS) le 12/10/2020."},"score":12.25,"snippet":"…e tutoriel va vous aider à configurer plusieurs versions de <mark>PHP</mark> avec Apache avec une distribution Linux Debian 10.6. Ce tutoriel décrit l&#039;installation et la configuration de deux VirtualHost dans Apache avec un chacun un…","tier":1},{"article":{"uuid":"69afc0f1-9c0e-471d-8fbe-8706cf0480e9","slug":"configurer-apache2-pour-php-fpm","title":"Configurer Apache 2 pour PHP FPM","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 16:12:17","created_at":"2023-02-09 16:12:17","updated_at":"2023-02-09 16:12:17","plain":"A noter que la configuration de FPM pour Apache 2 s'effectue directement dans le fichier de configuration . Nous n'interviendrons pas dans ce fichier. Activer le module proxy FCGI pour Apache2 en exécutant le code suivant. Modifier l'ordre de traitement des pages index dans le fichier Ajouter l'appel à PHP dans le fichier de configuration associé au ServerName Suivant la version d'Apache, l'instruction SetHandler ne sera pas la même. Pour connaitre, la version d'Apache, executer . Redémarrer les services Apache2 et PHP FPM:"},"score":12.25,"snippet":"…aitement des pages index dans le fichier Ajouter l&#039;appel à <mark>PHP</mark> dans le fichier de configuration associé au ServerName Suivant la version d&#039;Apache, l&#039;instruction SetHandler ne sera pas la même. Pour connaitre, la versio…","tier":1},{"article":{"uuid":"45ecbbd9-38ed-4ec4-88e4-9527307cf2a0","slug":"utiliser-php-en-ligne-de-commande","title":"Utiliser PHP en ligne de commande","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-02 07:46:11","created_at":"2023-02-02 07:46:11","updated_at":"2023-02-02 07:46:11","plain":"PHP\nLa commande PHP, une fois validée, attendra du code PHP. Il faudra indiquer la code de fin de fichier (EOF, <kbd>Ctrl</kbd> + <kbd>D</kbd>) pour que le code PHP sexécute. PHP -r\nOn peut utiliser l'option , qui execute le code PHP sans utiliser les tags"},"score":12.25,"snippet":"<mark>PHP</mark>\nLa commande <mark>PHP</mark>, une fois validée, attendra du code <mark>PHP</mark>. Il faudra indiquer la code de fin de fichier (EOF, &lt;kbd&gt;Ctrl&lt;/kbd&gt; + &lt;kbd&gt;D&lt;/kbd&gt;) pour que le code <mark>PHP</mark> sexécute. <mark>PHP</mark> -r\nOn peut utiliser l&#039;option , qui execu…","tier":1},{"article":{"uuid":"8ed45b6e-d89b-4ae9-94e2-ed8476c00080","slug":"creer-son-propre-mini-framework-php-from-scratch","title":"Créer son propre mini-framework PHP from scratch","category":"informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-04 22:07:52","created_at":"2025-11-04 22:07:52","updated_at":"2025-11-04 22:07:52","plain":"Tout commence avec une idée simple : bâtir un système web léger, modulaire et compréhensible, sans dépendre dun framework externe.\r\nUn framework maison, conçu pour gérer efficacement des posts, des commentaires et des pièces jointes, tout en respectant les principes de larchitecture MVC.\r\n\r\nLobjectif\r\n\r\nDisposer dune base claire et extensible, où chaque brique du système — du routeur aux modèles — reste transparente et entièrement maîtrisable.\r\n--\r\n\r\nLa structure du projet\r\n\r\nLapplication sorganise autour dune arborescence simple et logique.\r\n\r\nAu sommet, le dossier joue le rôle de porte dentrée du site, avec un fichier qui orchestre tout : cest lui qui intercepte chaque requête et la transmet au routeur.\r\n\r\nDans le dossier , on retrouve le cœur de la logique métier :\r\n\r\n contient les fondations : le routeur et la classe de base des contrôleurs.\r\n regroupe les différentes logiques daction (posts, commentaires, pièces jointes).\r\n gère la persistance des données — ici stockées dans des fichiers JSON pour plus de simplicité.\r\n\r\nChaque couche a un rôle précis, et lensemble reste clair, modulaire et facile à maintenir.\r\n--\r\n\r\nLe routeur : le cerveau du système\r\n\r\nAu cœur du projet, le fichier agit comme un chef dorchestre.\r\nIl écoute les requêtes entrantes, analyse leur méthode (, , , etc.) et les fait correspondre à la bonne route.\r\n\r\nGrâce à un jeu de regex, le routeur reconnaît des chemins dynamiques comme et transmet automatiquement les paramètres au contrôleur concerné.\r\nUne architecture élégante, minimaliste et pourtant très puissante.\r\n--\r\n\r\nLentrée principale : \r\n\r\nTout commence dans .\r\nAprès avoir chargé les classes nécessaires, on y définit les routes — une à une — comme les règles dun jeu.\r\n\r\nChaque route associe une méthode HTTP à une action précise :\r\n\r\n Afficher tous les posts\r\n Créer un nouveau post\r\n Mettre à jour, publier ou masquer un post\r\n Ajouter un commentaire ou une pièce jointe\r\n\r\nUne fois toutes les routes enregistrées, le routeur intercepte la requête HTTP réelle et la redirige vers le bon contrôleur.\r\nCest simple, direct et parfaitement lisible.\r\n--\r\n\r\nLes contrôleurs : la logique métier\r\n\r\nPrenons comme exemple.\r\nChaque méthode correspond à une action concrète du système : afficher la liste des posts, en créer un, le modifier, le publier ou le masquer.\r\n\r\nLes contrôleurs sont stateless : ils reçoivent les données, invoquent le modèle correspondant, puis renvoient une réponse JSON propre et explicite.\r\nAucune dépendance superflue, aucun artifice — le code parle de lui-même.\r\n--\r\n\r\nLes modèles : la mémoire du système\r\n\r\nLes modèles (, , ) assurent la gestion des données.\r\nIci, les informations sont stockées dans des fichiers JSON — un choix volontairement simple, idéal pour le prototypage ou les petits projets.\r\n\r\nMais la structure est pensée pour pouvoir évoluer facilement vers une base de données réelle (MySQL, SQLite, etc.) via PDO.\r\nChaque modèle sait comment lire, créer, modifier et sauvegarder ses propres objets, garantissant ainsi une séparation claire des responsabilités.\r\n--\r\n\r\nUne API claire et RESTful\r\n\r\nLes routes suivent une logique RESTful, simple et cohérente :\r\n\r\n\r\n\r\nLAPI est lisible, homogène et prête à être consommée par nimporte quel front-end — quil soit en Vue.js, React, ou même une interface HTML minimale.\r\n--\r\n\r\nPourquoi cette approche séduit\r\n\r\nCe mini-framework maison présente plusieurs atouts :\r\n\r\n Zéro dépendance externe : tout est sous ton contrôle.\r\n Architecture claire et didactique : parfaite pour comprendre la mécanique interne dun framework.\r\n Routing dynamique et élégant : les paramètres dURL sont gérés naturellement.\r\n Extensibilité : tu peux facilement ajouter lauthentification, des middlewares ou la validation des données.\r\n Légèreté : un cœur minimal, mais robuste et fonctionnel.\r\n--\r\n\r\nEt après ?\r\n\r\nLa prochaine étape : implémenter la gestion complète des fichiers uploadés, avec vérification du type MIME, stockage sécurisé dans , et possibilité de masquer les pièces jointes à la demande.\r\n\r\nPetit à petit, ton framework prend forme — un système MVC léger, propre et totalement maîtrisé.\r\nTu nutilises plus un framework : tu en construis un."},"score":10.5,"snippet":"Tout commence avec une idée simple : bâtir un système web léger, modulaire et compréhensible, sans dépendre dun framework externe.\r\nUn framework maison, conçu pour gérer efficacement des posts, des commentaires et des p…","tier":1},{"article":{"uuid":"81b17b21-4099-437c-9611-b4fbd4b3416e","slug":"simuler-tail-en-php","title":"Simuler tail en PHP","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-02 07:45:44","created_at":"2023-02-02 07:45:44","updated_at":"2023-02-02 07:45:44","plain":""},"score":10.5,"snippet":"","tier":1},{"article":{"uuid":"397f7a6c-e3ed-4879-90ef-b4137f00e103","slug":"php","title":"PHP","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-02 01:03:46","created_at":"2023-02-02 01:03:46","updated_at":"2023-02-02 01:03:46","plain":"Les pages\n<nav stacked=\"true\" fade=\"true\"> </nav> Les sous-catégories\n<nav stacked=\"true\" fade=\"true\"> </nav>"},"score":10.5,"snippet":"Les pages\n&lt;nav stacked=&quot;true&quot; fade=&quot;true&quot;&gt; &lt;/nav&gt; Les sous-catégories\n&lt;nav stacked=&quot;true&quot; fade=&quot;true&quot;&gt; &lt;/nav&gt;","tier":1},{"article":{"uuid":"bb27b906-efd5-4c58-8370-e439b4bbedef","slug":"barry-api-php","title":"Barry Api.php","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2021-03-03 21:26:26","created_at":"2021-03-03 21:26:26","updated_at":"2021-03-03 21:26:26","plain":""},"score":10.5,"snippet":"","tier":1},{"article":{"uuid":"06c4a59c-7892-4138-986d-667b3263b16f","slug":"installer-phpmyadmin","title":"Installer phpMyAdmin","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 16:12:18","created_at":"2023-02-09 16:12:18","updated_at":"2023-02-09 16:12:18","plain":"Prérequis :\nPHP 7.4\nApache 2.4\nMariaDB / MySQL 5.5 et plus Les modules PHP mysql, zip, gd et mbstring sont nécessaires pour une utilisation optimale de l'application. Télécharger l'archive présent sur le site permet d'avoir la dernière version stable en date. A l'heure où j'écris ces lignes, il s'agit de la version 5.0.2. cd /var/www wget https:*files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.tar.gz sudo tar -xzvf phpMyAdmin-5.0.2-all-languages.tar.gz\n sudo rm phpMyAdmin-5.0.2-all-languages.tar.gz\n\t\tcd phpMyAdmin-5.0.2-all-languages\n\t\tsudo chgrp -R www-data .\n\t\tsudo chmod -R g+s .\n--\n\t\t\nConfiguration simple avec le fichier présent dans ``\n-- configuration site avaible sudo nano /etc/apache2/sites-available/100-phpmyadmin.conf\n--\nActiver la configuration du site sudo a2ensite 100-phpmyadmin sudo systemctl reload apache2\n-- Code intégral et interactif en cours de rédaction sur <https://github.com/cedricAbonnel/server-web/scripts/install-phpmyadmin>"},"score":6.25,"snippet":"Prérequis :\n<mark>PHP</mark> 7.4\nApache 2.4\nMariaDB / MySQL 5.5 et plus Les modules <mark>PHP</mark> mysql, zip, gd et mbstring sont nécessaires pour une utilisation optimale de l&#039;application. Télécharger l&#039;archive présent sur le site permet d&#039;a…","tier":2},{"article":{"uuid":"47d2e89a-160e-46b5-bf95-fdc8c08b0d4c","slug":"page-upload","title":"Serveur Web - page upload","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 02:42:35","created_at":"2023-02-16 02:42:35","updated_at":"2023-02-16 02:42:35","plain":"Pour créer une page PHP qui reçoit un fichier envoyé depuis un script Bash, nous pouvons utiliser la méthode HTTP POST. Voici un exemple de code qui vous aidera à démarrer : Le code ci-dessus vérifie si un fichier a été envoyé via la méthode POST et utilise la fonction PHP moveuploadedfile pour déplacer le fichier du répertoire temporaire vers un répertoire de destination sur votre serveur.\n- La création du répertoire de destination avec la fonction mkdir si celui-ci n'existe pas crée récursivement le répertoire de destination, en accordant les autorisations de lecture, d'écriture et d'exécution à tous les utilisateurs.\nSauf qu'il est peut-être nécessaire de créer ce dossier en ligne de commande dans le dossier public du site : \nLe dossier a été créé avec un complément de droit dans le Terminal .\n- Si le fichier de destination existe déjà avec la fonction fileexists, nous utilisons la fonction unlink pour le supprimer avant de déplacer le nouveau fichier avec la fonction moveuploadedfile. Ainsi, le fichier existant sera remplacé par la nouvelle version.\n- La fonction isdir permet de vérifier si le répertoire de destination n'existe pas, alors nous utilisons la fonction mkdir pour le créer, puis nous vérifions si le répertoire a été créé avec succès avant de continuer le traitement du fichier téléchargé. Si le répertoire est créé avec succès, nous continuons avec la vérification et le traitement du fichier téléchargé, sinon nous affichons un message d'erreur et sortons du script avec la fonction exit.\n- Nous avons utilisé une structure conditionnelle pour vérifier la valeur de . Si la valeur n'est pas UPLOADERROK, nous affichons un message d'erreur correspondant à la valeur d'erreur spécifique. Les constantes UPLOADERRINISIZE, UPLOADERRFORMSIZE, UPLOADERRPARTIAL, UPLOADERRNOFILE, UPLOADERRNOTMPDIR, UPLOADERRCANTWRITE, UPLOADERREXTENSION sont des constantes prédéfinies en PHP qui indiquent les différentes erreurs de téléchargement de fichier possibles. En utilisant ce code, nous pouvons afficher un message d'erreur plus précis pour aider à résoudre le problème de téléchargement de fichier.\n- Un contrôle du CRC sur un fichier téléchargé et renvoyé. Nous utilisons la fonction hashfile pour calculer la valeur SHA1 du fichier. La fonction hashfile calcule le hash d'un fichier donné à l'aide de l'algorithme de hachage spécifié. Dans notre cas, nous allons utiliser l'algorithme de hachage SHA1 pour calculer la valeur CRC du fichier.\n- Nous devons également vérifier le paramétrage de PHP.\nLa directive postmaxsize est définie dans un fichier de configuration différent. Nous pouvons utiliser la fonction phpinfo pour vérifier le fichier de configuration utilisé par PHP. Cherchez la ligne \"Loaded Configuration File\" pour trouver le fichier utilisé. La directive postmaxsize est définie dans un niveau supérieur de la hiérarchie de configuration et ne peut pas être modifiée par la fonction iniset. Par exemple, si la directive est définie dans le fichier php.ini global, elle ne peut pas être modifiée par iniset dans un script PHP.\nLa modification de la directive postmaxsize nécessite un redémarrage du serveur web pour prendre effet. Assurez-vous que le serveur web a été redémarré après avoir modifié la valeur de postmaxsize dans le fichier php.ini.\nNous avons également modifié la directive ."},"score":2,"snippet":"…configuration différent. Nous pouvons utiliser la fonction <mark><mark>php</mark>info</mark> pour vérifier le fichier de configuration utilisé par <mark>PHP</mark>. Cherchez la ligne &quot;Loaded Configuration File&quot; pour trouver le fichier utilisé. La directive p…","tier":2},{"article":{"uuid":"dcb36f50-d319-40a9-910d-745d2f005300","slug":"accelerer-le-traitement-php","title":"Accélérer lexécution des pages avec memcached","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 16:14:06","created_at":"2023-02-09 16:14:06","updated_at":"2023-02-09 16:14:06","plain":"Installer memcached\nInstaller memcached pour PHP 7.4 : Installer memcached pour PHP 8.0 : Vérifier le fonctionne de memcached dans le system\n ps ax | grep memcached Résultat Paramétrer memcached dans php\nIl faut ajouter des paramètres dans la configuration de PHP. J'ai dédié un fichier de paramétrage Vérifier le fonctionne de memcached par php\nPour vérifier la prise en compte, il suffit de demande à phpinfo()."},"score":2,"snippet":"…hp\nPour vérifier la prise en compte, il suffit de demande à <mark><mark>php</mark>info</mark>().","tier":2},{"article":{"uuid":"0e0b8d1d-3352-4ab7-bc70-7bc1f02ee485","slug":"imagemagick-sur-debian-pourquoi-convert-im6-et-ou-trouver-magick","title":"ImageMagick sur Debian : pourquoi `convert-im6` et où trouver `magick`","category":"linux","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2025-12-28 15:32","created_at":"2025-12-28 15:32:01","updated_at":"2026-05-12 00:29:00","plain":"Si tu as déjà installé ImageMagick sur un serveur Debian, tu es probablement tombé sur cette étrangeté : la commande historique est là, mais elle s'appelle . Et la commande moderne , présente partout ailleurs, semble manquer à l'appel — sauf si tu es sur Debian 13, où elle est revenue.\r\n\r\nLe sujet est un peu plus subtil qu'il n'y paraît, et beaucoup d'explications qui circulent sur le web sont fausses (notamment celle qui prétend que entrerait en conflit avec un binaire de — c'est un mythe). Voilà ce qui se passe réellement.\r\n\r\nUn peu de contexte sur ImageMagick\r\n\r\nImageMagick, c'est une suite d'outils en ligne de commande pour manipuler des images : conversion de formats, redimensionnement, compression, génération de vignettes, watermarks, lecture de métadonnées… Le genre d'outil qu'on retrouve aussi bien dans un script bash de cinq lignes que dans une chaîne de traitement industrielle ou un pipeline CI.\r\n\r\nHistoriquement, la suite est composée de plusieurs binaires distincts, chacun avec son rôle : pour la conversion, pour lire les métadonnées, pour le traitement par lot, pour combiner des images, pour les planches. C'est l'architecture d'ImageMagick 6, la version qui a régné en maître pendant une bonne quinzaine d'années.\r\n\r\nDepuis 2016, ImageMagick 7 est disponible. Le grand changement, c'est qu'il unifie tout derrière une seule commande : . Les anciennes commandes deviennent des sous-commandes (, , etc.), même si pour la rétrocompatibilité un binaire peut continuer à se comporter comme quand on l'appelle avec une syntaxe d'IM6.\r\n\r\nPourquoi le suffixe sur Debian\r\n\r\nC'est ici que beaucoup d'articles racontent n'importe quoi. La vraie raison n'a rien à voir avec un conflit avec — je l'ai vérifié, aucun paquet système ne fournit de commande . Tu peux le vérifier toi-même : ne renvoie rien qui vienne de util-linux.\r\n\r\nLa vraie raison est plus prosaïque. Pendant des années, Debian a voulu pouvoir packager IM6 et IM7 en parallèle dans la même distribution, pour permettre une transition en douceur. Le souci, c'est que les deux versions fournissent des binaires aux mêmes noms (, , …) avec des comportements légèrement différents. Impossible de les installer côte à côte sans renommer.\r\n\r\nLa solution adoptée par les mainteneurs Debian a été d'ajouter un suffixe explicite au nom de chaque binaire :\r\nles outils d'IM6 deviennent , , etc.\r\nles outils d'IM7 deviennent et compagnie\r\n\r\nLe indique la profondeur quantique du binaire (16 bits par canal, la valeur par défaut), et le / indique la version d'ImageMagick. Les noms classiques (, ) ne sont alors que des symlinks gérés par , qui pointent vers la version active. C'est le même mécanisme que pour , , ou à une époque.\r\n\r\nCe qui change entre Debian 11, 12 et 13\r\n\r\nC'est l'autre point que la plupart des articles ratent : la situation n'est pas la même selon la version de Debian.\r\n\r\nSur Debian 11 (bullseye) et 12 (bookworm), le paquet installe IM6 (version 6.9.11.60). Tu n'as que et ses copains, et n'existe pas dans les dépôts officiels (le paquet existe mais n'est pas le défaut). C'est cette situation que décrivent la plupart des tutoriels qui traînent sur le web.\r\n\r\nSur Debian 13 (trixie), sorti en août 2025, le défaut a basculé sur IM7 (version 7.1.1.43). La commande est disponible, et est désormais un symlink vers . Tu peux le vérifier :\r\n\r\n\r\n\r\nAutrement dit, sur Trixie, si tu écris , tu appelles en réalité IM7 sous un nom d'IM6. Ça fonctionne pour la plupart des usages, mais attention : IM7 est plus strict sur l'ordre des arguments en ligne de commande (), donc certains scripts anciens peuvent grogner.\r\n\r\nCorrespondance entre les deux versions\r\nImageMagick 6 (Debian 11/12) | ImageMagick 7 (Debian 13) |\r\n---------------------------- | ------------------------- |\r\n| |\r\n| |\r\n| |\r\n| |\r\n\r\nPour les cas simples, le comportement est identique. Une commande de redimensionnement classique passe sans modification :\r\n\r\n\r\n\r\nFaut-il s'inquiéter sur un serveur en production ?\r\n\r\nSi tu administres une machine Debian 12 ou plus ancienne, non. IM6 est toujours activement maintenu pour les CVE (les correctifs sont régulièrement backportés dans les paquets stable), et la plupart des scripts existants continueront de fonctionner. Le dans le nom du binaire est juste du marquage, pas une dépréciation.\r\n\r\nSi tu migres vers Debian 13, prévois un peu de temps pour relire tes scripts. Les pièges classiques :\r\nl'ordre des options qui devient plus strict ;\r\nquelques comportements de couleur et d'alpha qui ont changé entre les deux versions, notamment sur les opérations chaînées ;\r\nle fichier qui a déménagé : devient . Si tu avais assoupli les restrictions sur les PDF ou PostScript (un grand classique), il faut reporter la modification.\r\n\r\nPour un projet PHP comme les tiens, l'extension Imagick côté PHP est sensible à cette transition : la version compilée doit correspondre à la version d'IM installée, sinon échoue. Sur Trixie, c'est IM7 qu'il faut lier.\r\n\r\nEn pratique\r\n\r\nSur Debian 11/12, utilise , , etc. C'est la convention locale, pas une version dégradée. Si tu veux malgré tout, tu peux installer le paquet (présent dans les dépôts depuis bookworm) et basculer les alternatives manuellement, mais ce n'est presque jamais nécessaire.\r\n\r\nSur Debian 13, utilise directement. La commande reste disponible par compatibilité, mais elle pointe en réalité vers IM7 — autant utiliser le nom officiel.\r\n\r\nEt dans tous les cas, évite les alias globaux qui réécrivent : ça finit toujours par mordre quelqu'un, soit toi dans six mois, soit le prochain qui reprendra le serveur."},"score":1.75,"snippet":"…sique), il faut reporter la modification.\r\n\r\nPour un projet <mark>PHP</mark> comme les tiens, l&#039;extension Imagick côté <mark>PHP</mark> est sensible à cette transition : la version compilée doit correspondre à la version d&#039;IM installée, sinon éc…","tier":2},{"article":{"uuid":"cfe738e9-7ac2-4c7e-9205-dab4957835c6","slug":"preparation-du-raspberry-pi","title":"Décoder les infos de la TIC et les communiquer","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-19 06:48","created_at":"2025-11-19 06:48:01","updated_at":"2026-05-12 17:38:19","plain":"Choix du Raspberry Pi\r\n\r\nL'objectif est de récupérer automatiquement et à intervalles réguliers les informations émises par un compteur Linky, puis de les rendre accessibles depuis l'extérieur du Raspberry Pi.\r\n\r\nTrois prérequis matériels s'imposent donc :\r\nune connexion réseau, pour exposer ou transmettre les données collectées ;\r\nun espace de stockage, suffisant pour l'OS, les outils et l'historique des relevés ;\r\nune liaison série, pour dialoguer avec la sortie TIC du compteur.\r\n\r\nLe choix s'est porté sur un Raspberry Pi 3, qui couvre ces trois besoins sans surcoût ni complexité supplémentaire. Le stockage est assuré par une carte SD, la liaison série est exposée sur le port GPIO, et la connectivité réseau bénéficie d'un atout pratique : l'armoire de brassage de la maison se trouve à quelques mètres du compteur électrique, ce qui permet d'envisager un raccordement filaire fiable plutôt qu'un lien sans fil.\r\n\r\nCôté logiciel, le système retenu est Raspberry Pi OS (anciennement Raspbian), recommandé par défaut sur cette plateforme. Cette distribution dérivée de Debian apporte tout l'écosystème GNU/Linux nécessaire : pile réseau TCP/IP, accès distant par SSH, synchronisation horaire NTP, gestion de bases de données, serveur web, interpréteurs PHP et Python. Autant de briques qui serviront aux étapes ultérieures du projet.\r\n\r\nCâblage\r\n\r\nLe compteur Linky émet la trame TIC sous forme d'un signal modulé en ASK (Amplitude Shift Keying). Ce signal n'est pas directement exploitable par l'UART du Raspberry Pi, qui attend un niveau logique TTL stable.\r\n\r\nUn démodulateur ASK est donc intercalé entre le compteur et le Raspberry Pi. Son rôle est de récupérer la porteuse modulée et de restituer en sortie un signal binaire TTL propre, directement lisible par le port série.\r\n\r\nLa chaîne complète est la suivante :\r\n\r\n\r\n\r\nLe câblage côté Raspberry Pi se résume à trois fils :\r\nBroche | Signal | Rôle |\r\n---|---|---|\r\nPin 1 | 3V3 | Alimentation du démodulateur |\r\nPin 6 | GND | Masse commune |\r\nPin 10 | RX (GPIO15) | Lecture de la sortie TTL du démodulateur |\r\n\r\nSchéma de câblage\r\n\r\n\r\n\r\nInstallation de l'OS\r\n\r\nLe déploiement de Raspberry Pi OS sur la carte SD suit la procédure standard décrite dans l'article [à compléter]. Un point d'attention : activer le service SSH dès la préparation de l'image, faute de quoi aucun accès distant ne sera possible au premier démarrage.\r\n\r\nUne fois le Raspberry Pi mis sous tension et raccordé au réseau, son adresse IP n'est pas connue à l'avance. Un balayage du réseau local avec permet de l'identifier :\r\nNote : la cible passée à est l'adresse du réseau (), pas celle de la passerelle. Le indique le masque de sous-réseau et délimite la plage scannée.\r\n\r\nUne fois l'adresse repérée, la connexion s'établit avec le compte et le mot de passe par défaut :\r\nPremier réflexe sécurité : changer immédiatement le mot de passe du compte avec , voire désactiver ce compte au profit d'un utilisateur dédié. Les identifiants par défaut sont connus de tous les scans automatisés."},"score":1.75,"snippet":"…TP, gestion de bases de données, serveur web, interpréteurs <mark>PHP</mark> et Python. Autant de briques qui serviront aux étapes ultérieures du projet.\r\n\r\nCâblage\r\n\r\nLe compteur Linky émet la trame TIC sous forme d&#039;un signal modulé…","tier":2},{"article":{"uuid":"b0b3ac59-87c5-4598-a549-f3168abb4429","slug":"quand-les-conversations-sont-devenues-une-matiere-premiere","title":"Quand les conversations sont devenues une matière première","category":"loisirs","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-11-05 07:17","created_at":"2025-11-05 07:17:02","updated_at":"2026-05-12 01:49:27","plain":"Entre 2023 et 2024, quelque chose s'est rompu sur le web social. Pas un effondrement, pas une crise visible — plutôt un basculement discret, presque administratif, dans la manière dont les grandes plateformes ont commencé à regarder ce que produisaient leurs utilisateurs. Les messages, les fils de discussion, les commentaires sarcastiques sous une photo de chat, les longues confidences nocturnes sur Tumblr : tout cela, jusque-là considéré comme l'humus naturel des réseaux sociaux, est soudainement devenu autre chose. Une ressource. Un actif. Une matière brute.\r\n\r\nLe déclencheur s'appelle Reddit. Le 22 février 2024, le jour même où l'entreprise dépose son dossier d'introduction en Bourse, elle annonce un accord à 60 millions de dollars par an avec Google : le géant de la recherche pourra puiser dans les archives du forum, via son API, pour entraîner ses modèles d'intelligence artificielle. Quelques mois plus tard, OpenAI signe à son tour un accord similaire, estimé autour de 70 millions de dollars annuels par les analystes. Le message envoyé au marché est limpide : ces décennies de conversations humaines, agrégées par une communauté qui croyait simplement bavarder, valent désormais des centaines de millions de dollars. Steve Huffman, PDG de Reddit, vante un modèle économique enfin durable. Les analystes financiers, eux, parlent de mine d'or.\r\n\r\nTumblr rejoint la danse une semaine plus tard, mais par effraction. Le 27 février 2024, le site spécialisé 404 Media révèle qu'Automattic — la maison mère de Tumblr et WordPress.com — finalise des accords avec OpenAI et Midjourney pour leur fournir l'accès aux contenus publiés sur ses plateformes. La fuite est embarrassante : des documents internes montrent qu'une première extraction de données a même ratissé trop large, embarquant par erreur des posts privés, des blogs supprimés et des contenus normalement exclus. Automattic publie en urgence un communiqué annonçant un système d'opt-out — la possibilité pour les utilisateurs de refuser, à condition de cocher la bonne case dans les bons paramètres. Mais la communauté Tumblr, refuge historique d'artistes, d'écrivains amateurs, de communautés queer et de fanfic, n'a pas attendu la procédure officielle pour réagir : la nouvelle déclenche une vague de fermetures de comptes et d'effacements rétroactifs.\r\n\r\nX, sous la direction d'Elon Musk, emprunte un chemin parallèle mais plus solitaire. Plutôt que de vendre l'accès à ses données à des concurrents, Musk a verrouillé son robinet dès 2023 — au point d'introduire des plafonds de consultation tellement absurdes que la plateforme en est devenue inutilisable pendant quelques jours — et a réservé sa matière première à xAI, sa propre société d'intelligence artificielle, pour alimenter le chatbot Grok. En octobre 2024, X annonce une refonte de ses conditions d'utilisation, effective le 15 novembre. Le nouveau texte est explicite : tout contenu publié sur la plateforme peut être utilisé pour entraîner ses modèles d'apprentissage automatique, ainsi que ceux de « partenaires tiers » non nommés. L'option qui permettait jusque-là aux utilisateurs européens de refuser que leurs posts servent à entraîner Grok est, dans la foulée, devenue inaccessible pour beaucoup. Le principe reste le même que chez Reddit — les mots des utilisateurs deviennent du carburant — mais sans le détour d'un contrat externe.\r\n\r\nCar ce qui frappe, ce n'est pas tant chaque accord pris isolément que la rapidité avec laquelle l'idée s'est imposée. En quelques mois, exploiter les mots de ses utilisateurs pour entraîner de l'IA est devenu non plus une stratégie audacieuse, mais une évidence de marché. LinkedIn, propriété de Microsoft — qui se trouve aussi être le principal investisseur d'OpenAI —, suit le mouvement avec une discrétion remarquable. Le 18 septembre 2024, une mise à jour silencieuse de sa politique de confidentialité révèle que la plateforme entraîne déjà ses propres modèles d'IA générative à partir des posts, articles et données de profil de ses membres, partout dans le monde — y compris au Royaume-Uni. Personne n'a été prévenu en bonne et due forme ; le paramètre permettant de refuser ne se déclenche pas par défaut.\r\n\r\nL'épisode tourne court. En 48 heures, l'Information Commissioner's Office britannique, le régulateur des données, exige un arrêt immédiat de la pratique sur le territoire. Stephen Almond, son directeur exécutif chargé des risques réglementaires, déclare publiquement que la confiance du public dans l'IA générative dépend précisément du respect des droits à la vie privée dès le départ. LinkedIn suspend le traitement au Royaume-Uni, dans l'Espace économique européen et en Suisse. Pour le reste du monde — les États-Unis, l'Asie, le Canada, l'Amérique latine —, la collecte continue, opt-out par défaut.\r\n\r\nMais quelque chose, du côté des utilisateurs, n'a pas suivi.\r\n\r\nSur Reddit, des modérateurs ferment leurs subreddits en protestation. D'autres remplacent leurs anciens posts par des chaînes de caractères absurdes — du sabotage de données, en somme, pour rendre leurs contributions inutilisables. Sur Tumblr, on voit ressurgir un vieux geste internet : des comptes entiers passent en privé, des années d'écriture s'effacent en quelques clics. Des forums spécialisés évoquent une « grève des données ». Une phrase circule, amère, sur plusieurs plateformes à la fois : « Nos mots valent de l'or, mais pas pour nous. »\r\n\r\nC'est sans doute le paradoxe le plus profond de cette séquence. Pendant deux décennies, les grandes plateformes avaient bâti leur valeur sur un contrat tacite : vous nous donnez votre temps et votre attention, nous vous offrons un espace pour exister et nous monétisons votre regard auprès des annonceurs. Le deal était imparfait, mais lisible. À partir de 2024, un second contrat se superpose au premier sans avoir été négocié : votre langage, vos conversations, vos archives intimes deviennent aussi une matière première vendable, à votre insu le plus souvent, pour entraîner des intelligences qui à terme produiront le même langage que vous — mais en série, à coût marginal nul, et au bénéfice d'autres.\r\n\r\nLe web social était entré dans une nouvelle ère. Celle où les conversations des uns sont devenues l'apprentissage des autres.\r\n--\r\n\r\nSources\r\nVoici la liste des sources utilisées pour la vérification, organisée par thème pour que tu puisses les citer ou les ajouter en fin d'article.\r\n\r\nReddit Google et OpenAI\r\nCBS News (23 février 2024) — Annonce de l'accord à 60 M$ entre Google et Reddit\r\nhttps://www.cbsnews.com/news/google-reddit-60-million-deal-ai-training/\r\nLutzker & Lutzker (18 mars 2024) — Analyse détaillée de l'accord et de l'usage de l'API Reddit\r\nhttps://www.lutzker.com/ipbitpieces/reddits-licensing-agreement-with-google/\r\nColumbia Journalism Review — Analyse de la stratégie globale de Reddit (mention de l'accord OpenAI à 70 M$/an)\r\nhttps://www.cjr.org/analysis/reddit-winning-ai-licensing-deals-openai-google-gemini-answers-rsl.php\r\n\r\nTumblr / Automattic OpenAI et Midjourney\r\n404 Media (27 février 2024) — Article source qui a révélé l'affaire\r\nhttps://www.404media.co/tumblr-and-wordpress-to-sell-users-data-to-train-ai-tools/\r\nEngadget (27 février 2024) — Reprise détaillée avec la réponse officielle d'Automattic\r\nhttps://www.engadget.com/tumblr-and-wordpress-posts-will-reportedly-be-used-for-openai-and-midjourney-training-204425798.html\r\nWP Tavern (28 février 2024) — Angle communauté WordPress et critique de la politique d'opt-out\r\nhttps://wptavern.com/automattic-faces-scrutiny-over-ai-access-policy\r\nPopular Science (29 février 2024) — Mise en perspective sur l'inefficacité de l'opt-out\r\nhttps://www.popsci.com/technology/openai-wordpress-tumblr/\r\n\r\nX (Twitter) Conditions d'utilisation et entraînement de Grok\r\nSocial Media Today (17 octobre 2024) — Analyse des nouvelles conditions effectives le 15 novembre 2024\r\nhttps://www.socialmediatoday.com/news/x-formerly-twitter-updates-terms-service/730223/\r\nCNN Business (21 octobre 2024) — Réaction des utilisateurs et flou sur l'opt-out\r\nhttps://www.cnn.com/2024/10/21/tech/x-twitter-terms-of-service\r\nCybernews (18 octobre 2024) — Sur la disparition de l'option d'opt-out\r\nhttps://cybernews.com/ai-news/updated-x-terms/\r\nGigazine — Déta#il des clauses ajoutées concernant les « partenaires tiers »\r\nhttps://gigazine.net/gscnews/en/20241018-x-privacy-policy-ai-training/\r\n\r\nLinkedIn Intervention de l'ICO britannique\r\nTechCrunch (20 septembre 2024) — LinkedIn suspend l'entraînement IA au Royaume-Uni\r\nhttps://techcrunch.com/2024/09/20/linkedin-has-stopped-grabbing-u-k-users-data-for-ai/\r\nThe Record (Recorded Future News) (20 septembre 2024) — Le rôle de l'ICO dans l'arrêt\r\nhttps://therecord.media/uk-regulator-stops-linkedin-ai-models\r\nThe Hacker News (22 septembre 2024) — Synthèse incluant la mention de Meta en parallèle\r\nhttps://thehackernews.com/2024/09/linkedin-halts-ai-data-processing-in-uk.html\r\nLegal IT Insider (20 septembre 2024) — Citation complète de Stephen Almond (ICO)\r\nhttps://legaltechnology.com/2024/09/20/linkedin-suspends-opt-out-ai-model-training-for-uk-following-ico-concerns/"},"score":1.75,"snippet":"…winning-ai-licensing-deals-openai-google-gemini-answers-rsl.<mark>php</mark>\r\n\r\nTumblr / Automattic OpenAI et Midjourney\r\n404 Media (27 février 2024) — Article source qui a révélé l&#039;affaire\r\nhttps://www.404media.co/tumblr-and-wordp…","tier":2},{"article":{"uuid":"5510b12a-d647-4b1a-90ba-d421a4927ff7","slug":"configurer-un-client-oauth-2-0-dans-keycloak-guide-complet","title":"Configurer un client OAuth 2.0 / OIDC dans Keycloak","category":"informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-05-16 23:33","created_at":"2025-05-16 23:33:31","updated_at":"2026-05-12 20:39:53","plain":"Keycloak est une solution open source de gestion des identités et des accès (IAM). Cet article décrit la configuration d'un client OAuth 2.0 / OpenID Connect dans Keycloak, en détaillant les options importantes et en montrant comment restreindre l'accès aux utilisateurs ou groupes autorisés.\r\nNote de version. L'interface d'administration a été refondue à partir de Keycloak 19. La notion d'Access Type ( / / ) a disparu au profit des toggles Client authentication et Authorization. Ce guide suit l'UI actuelle (Keycloak 24+).\r\n--\r\n\r\n1. Prérequis\r\nUne instance Keycloak fonctionnelle (version 24 ou supérieure recommandée).\r\nDes droits d'administration sur un realm.\r\nUne application destinée à s'authentifier via OAuth 2.0 / OIDC.\r\nTLS activé sur Keycloak et sur l'application cliente (obligatoire en production).\r\n--\r\n\r\n2. Qu'est-ce qu'un client dans Keycloak ?\r\n\r\nDans Keycloak, un client représente une application ou un service qui interagit avec le serveur d'authentification, soit pour authentifier des utilisateurs, soit pour obtenir des informations sur eux, soit pour protéger ses propres ressources. Il peut s'agir d'une application web, d'une API, d'une application mobile, d'un service interne ou d'un partenaire tiers.\r\n\r\nChaque client est rattaché à un realm (l'espace logique d'authentification) et identifié par un unique. Cet identifiant est transmis lors de toute demande d'authentification ou d'obtention de jeton.\r\n\r\nLa configuration d'un client définit notamment :\r\nles flux OAuth 2.0 autorisés (, , etc.) ;\r\nla capacité ou non du client à conserver un secret (client confidentiel vs public) ;\r\nles URI de redirection acceptées et les origines CORS ;\r\nla durée de vie des jetons et la composition des claims (mappers) ;\r\nles politiques d'autorisation associées (rôles, groupes, attributs).\r\n--\r\n\r\n3. Création du client\r\n\r\n1. Se connecter à la Keycloak Admin Console.\r\n2. Sélectionner le realm cible.\r\n3. Menu Clients > Create client.\r\n\r\nÉtape « General settings »\r\nChamp | Valeur recommandée | Description |\r\n------------------ | ----------------------------------- | ---------------------------------------------------------------------------- |\r\nClient type | | Protocole utilisé. Choisir uniquement pour des intégrations SAML 2.0. |\r\nClient ID | | Identifiant unique du client dans le realm. Apparaît dans les jetons (). |\r\nName | | Libellé d'affichage (facultatif, peut être localisé). |\r\nDescription | Texte libre | Aide à la maintenance. |\r\n\r\nÉtape « Capability config »\r\nToggle | Valeur recommandée | Détail |\r\n------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------ |\r\nClient authentication | pour un backend, pour un SPA | rend le client confidentiel (un secret est généré). rend le client public. |\r\nAuthorization | | À activer uniquement si l'on souhaite utiliser le moteur d'autorisations fine (RBAC/ABAC) de Keycloak. |\r\nStandard flow | | Active le flux Authorization Code, à utiliser systématiquement. |\r\nDirect access grants | | Flux — déconseillé par OAuth 2.1, à n'utiliser que pour des outils internes legacy. |\r\nImplicit flow | | Déprécié par OAuth 2.1, ne pas activer. |\r\nService accounts roles | si clientcredentials | Permet au client de récupérer un jeton pour son propre compte (machine-to-machine). |\r\nOAuth 2.0 Device Auth Grant | (sauf besoin spécifique) | Pour les appareils sans navigateur (TV, CLI sans IHM locale). |\r\nOIDC CIBA Grant | (sauf besoin spécifique) | Authentification déportée (canal hors-bande). |\r\n\r\nÉtape « Login settings »\r\nChamp | Exemple | Description |\r\n----------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------- |\r\nRoot URL | | URL de base de l'application. Permet d'utiliser des chemins relatifs dans les champs suivants. |\r\nHome URL | | Page par défaut après login. |\r\nValid redirect URIs | | URI exactes autorisées pour la redirection après authentification. Éviter les wildcards larges. |\r\nValid post logout redirect URIs | | URI autorisées pour la redirection après déconnexion (RP-Initiated Logout). |\r\nWeb origins | | Origines CORS autorisées. La valeur reprend automatiquement les redirect URIs ; est à proscrire. |\r\nAdmin URL | | Utilisé pour les notifications backchannel (logout global, push not-before). |\r\nBonne pratique. Les redirect URIs doivent être en en production (sauf pour le développement). Spécifier des chemins aussi précis que possible plutôt qu'un wildcard .\r\n--\r\n\r\n4. Authentification du client (Credentials)\r\n\r\nL'onglet Credentials n'apparaît que si Client authentication est sur . Plusieurs méthodes sont disponibles :\r\nMéthode | Usage |\r\n-------------------------------- | ---------------------------------------------------------------------- |\r\nClient Id and Secret | Secret partagé classique. À stocker dans un coffre-fort (Vault, env vars chiffrées). |\r\nSigned JWT | Le client signe un JWT d'assertion avec sa clé privée. Plus sûr qu'un secret. |\r\nSigned JWT with Client Secret | Variante symétrique (HMAC). |\r\nX.509 Certificate | mTLS — recommandé pour les contextes à forte exigence (FAPI, banque). |\r\nImportant. Le secret ne doit jamais être commité dans Git ni embarqué dans un binaire distribué. Pour un projet où les secrets vivent dans , ne commiter que .\r\n--\r\n\r\n5. Types de clients\r\n\r\nDepuis Keycloak 19, le « type » est déduit de la combinaison des toggles. La terminologie OAuth reste utile :\r\nType | Configuration Keycloak | Cas d'usage |\r\n--------------- | ------------------------------------------------------------------- | ------------------------------------------------------------ |\r\nConfidentiel | | Backend serveur (PHP, Node, Java…), BFF, service-to-service. |\r\nPublic | + + PKCE | SPA (React, Vue, Angular), application mobile, CLI native. |\r\nService account | + | Communication machine-to-machine (). |\r\n\r\nLe type « bearer-only » a été retiré : pour une API qui se contente de valider des jetons sans déclencher d'authentification, créer un client confidentiel et n'activer aucun flux.\r\n--\r\n\r\n6. PKCE — recommandé pour tous les clients\r\n\r\nPKCE (Proof Key for Code Exchange, RFC 7636) protège le flux Authorization Code contre l'interception du code d'autorisation. Conçu initialement pour les clients publics, il est aujourd'hui recommandé pour tous les clients, y compris confidentiels, et obligatoire dans OAuth 2.1.\r\n\r\nActivation dans Advanced > Proof Key for Code Exchange Code Challenge Method > .\r\nNe jamais utiliser ; est la seule valeur acceptable.\r\n--\r\n\r\n7. Restreindre l'accès aux utilisateurs ou groupes\r\n\r\nPar défaut, tout utilisateur du realm peut se connecter via n'importe quel client. Deux approches permettent de restreindre cet accès.\r\n\r\nApproche 1 — Authentification basée sur les rôles (simple)\r\n\r\n1. Créer un rôle client dédié, par exemple , dans l'onglet Roles du client.\r\n2. Assigner ce rôle aux utilisateurs ou groupes autorisés (Users > user > Role mapping, ou Groups > group > Role mapping).\r\n3. Dans Authentication > Flows, ajouter une exécution au flux Browser, configurée avec le rôle requis et .\r\n\r\nCette méthode bloque l'authentification elle-même : un utilisateur sans le rôle ne pourra pas se connecter au client.\r\n\r\nApproche 2 — Authorization Services (granulaire)\r\n\r\nÀ utiliser pour gérer des permissions plus fines (ressources, scopes, conditions).\r\n\r\n1. Activer Authorization sur le client.\r\n2. Onglet Authorization > Policies > créer une Group Policy ou Role Policy listant les utilisateurs/groupes autorisés.\r\n3. Onglet Permissions > créer une Scope-Based Permission ou Resource-Based Permission liée à la policy.\r\n4. Côté application, utiliser l'endpoint UMA ou l'adaptateur Keycloak pour évaluer les permissions.\r\n\r\nApproche 3 — Limiter le client scope « roles »\r\n\r\nDans Client scopes > > Scope, désactiver Full scope allowed et n'autoriser que les rôles pertinents. Cela réduit la taille des jetons et limite ce que le client peut « voir » des rôles utilisateurs.\r\n--\r\n\r\n8. Client scopes et mappers\r\n\r\nLes client scopes déterminent les claims présents dans les jetons ( et ).\r\nLes scopes Default sont systématiquement ajoutés à chaque jeton.\r\nLes scopes Optional ne sont ajoutés que si l'application les demande via le paramètre lors de l'authentification.\r\n\r\nPour exposer les groupes d'un utilisateur dans le token :\r\n\r\n1. Créer un client scope (ou réutiliser celui existant).\r\n2. Ajouter un mapper de type Group Membership :\r\nToken Claim Name : \r\nFull group path : (sauf besoin d'arborescence)\r\nAdd to ID token / Access token / Userinfo : selon l'usage.\r\n3. Attacher le scope au client (Default ou Optional).\r\n--\r\n\r\n9. Réglages avancés à connaître\r\nSection | Réglage | Recommandation |\r\n---------------------------------- | -------------------------------- | ---------------------------------------------------------------- |\r\nAdvanced > Fine grain OpenID Connect configuration | | (par défaut) ou pour FAPI. |\r\nAdvanced > Advanced settings | | . |\r\nAdvanced > Advanced settings | | sauf si l'application implémente correctement la spec OIDC Front-Channel Logout. |\r\nAdvanced > Advanced settings | | Renseigner pour une déconnexion globale propre. |\r\nAdvanced > Token Lifespan | | Court (515 min). Le refresh token prend le relais. |\r\nSessions | | Aligner sur la politique de session de l'organisation. |\r\n\r\nPour appliquer automatiquement un ensemble cohérent de règles, utiliser les Client Policies du realm (profils pré-définis et ).\r\n--\r\n\r\n10. Checklist de sécurité\r\n[ ] pour tout client qui peut conserver un secret.\r\n[ ] PKCE activé.\r\n[ ] Implicit flow et Direct access grants désactivés.\r\n[ ] Redirect URIs en et sans wildcard inutile.\r\n[ ] Web origins explicites (pas de ).\r\n[ ] Secret stocké dans un coffre-fort, jamais commité.\r\n[ ] Access token court (≤ 15 min) et refresh token rotatif.\r\n[ ] Accès restreint via rôle dédié ou Authorization Services.\r\n[ ] Full scope allowed désactivé si les rôles transportés doivent être limités.\r\n[ ] Logout backchannel ou front-channel configuré.\r\n--\r\n\r\nConclusion\r\n\r\nLa configuration d'un client OAuth 2.0 dans Keycloak repose sur quelques choix structurants — confidentiel ou public, flux activés, PKCE, restriction d'accès — qui ont chacun des implications de sécurité fortes. S'aligner sur OAuth 2.1 (PKCE systématique, pas d'implicit flow, pas de password grant) et utiliser les Client Policies** pour appliquer ces règles à l'échelle du realm évite la plupart des configurations à risque."},"score":1.75,"snippet":"…| | Backend serveur (<mark>PHP</mark>, Node, Java…), BFF, service-to-service. |\r\nPublic | + + PKCE | SPA (React, Vue, Angular), application mobile, CLI native. |\r\nService account | …","tier":2},{"article":{"uuid":"ca8c6097-1382-485b-a9b3-eebd6917ded0","slug":"api-first-concevoir-ses-applications-autrement","title":"🚀 API-First : Concevoir ses applications autrement","category":"informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-05-16 23:16:00","created_at":"2025-05-16 23:16:00","updated_at":"2025-05-16 21:19:41","plain":"Et si on arrêtait de développer des applications \"comme avant\" ? Lapproche API-First propose de repenser la manière dont nous concevons nos systèmes dinformation. Fini le back-end monolithique couplé à un front rigide : place aux APIs, universelles, testables, et réutilisables.\r\n\r\nAPI-First, ce nest pas seulement exposer des endpoints REST : cest un changement de paradigme.\r\n--\r\n\r\nQuest-ce que lapproche API-First ?\r\n\r\nConcrètement, cela signifie que toute la logique métier est exposée via une API, dès la conception. Que ce soit le site web, l'application mobile, ou même un script en ligne de commande, tout passe par lAPI, sans exception.\r\n\r\nLinterface utilisateur ne fait que consommer lAPI, comme nimporte quel client.\r\n--\r\n\r\nPourquoi adopter cette approche ?\r\n\r\n1. Séparation claire des responsabilités\r\n\r\nLAPI devient la \"source de vérité\" métier. Le front peut évoluer sans impacter la logique back, et inversement. On peut même changer totalement de techno front (passer de PHP à React ou Flutter) sans toucher au cœur de l'application.\r\n\r\n2. Réutilisation multi-clients\r\n\r\nUne fois développée, lAPI peut être utilisée :\r\n\r\n par le site web,\r\n par une appli mobile,\r\n par un back-office,\r\n par des scripts automatisés,\r\n voire par des clients externes si l'API est publique.\r\n\r\n3. Testabilité et documentation\r\n\r\nEn adoptant une spec comme OpenAPI (Swagger), lAPI peut être testée indépendamment de linterface, documentée automatiquement, et même simulée dès la phase de conception.\r\n\r\n4. Sécurité centralisée\r\n\r\nEn isolant la logique serveur dans une API, on peut gérer :\r\n\r\n lauthentification (token, JWT),\r\n les droits (ACL, RBAC),\r\n les logs daccès,\r\n la limitation de débit.\r\n--\r\n\r\nQuels défis à relever ?\r\n\r\n1. Organisation du projet\r\n\r\nLAPI devient le cœur de lapplication. Cela nécessite :\r\n\r\n une couche de services bien définie,\r\n des conventions strictes de nommage, versionnage, structure des réponses.\r\n\r\n2. Gestion des sessions côté client\r\n\r\nOn passe de la session PHP classique à des tokens (Bearer, JWT) stockés dans le client (cookies sécurisés, localStorage, etc.).\r\n\r\n3. Montée en compétences\r\n\r\nLes équipes front doivent apprendre à consommer efficacement une API, à gérer les erreurs, les délais, les formats JSON.\r\n--\r\n\r\nBonnes pratiques\r\n\r\n Spécifier lAPI dès la phase de design (OpenAPI / Swagger)\r\n Documenter tous les endpoints avec exemples concrets\r\n Gérer finement les statuts HTTP, les erreurs, et les droits\r\n Tester chaque endpoint indépendamment\r\n Prévoir le versionnage de lAPI\r\n--\r\n\r\nExemple concret\r\n\r\nUn projet en PHP peut tout à fait être API-first :\r\n\r\n\r\n\r\nLe front appelle ces endpoints via ou , et les réponses sont des objets JSON formatés uniformément.\r\n--\r\n\r\nEn conclusion\r\n\r\nLapproche API-First est plus quun buzzword : cest une architecture moderne, modulaire et pérenne. Elle impose de penser son application comme une plateforme ouverte, documentée et testable, au bénéfice de toute l’équipe projet.\r\n\r\nElle favorise la qualité, la scalabilité et la maintenabilité. Et dans un monde où les interfaces se multiplient (web, mobile, IoT…), cest probablement le meilleur choix à long terme.\r\n--\r\n\r\n✉️ Pour aller plus loin :\r\n\r\n https://swagger.io\r\n https://jsonapi.org\r\nhttps://restfulapi.net"},"score":1.75,"snippet":"…On peut même changer totalement de techno front (passer de <mark>PHP</mark> à React ou Flutter) sans toucher au cœur de l&#039;application.\r\n\r\n2. Réutilisation multi-clients\r\n\r\nUne fois développée, lAPI peut être utilisée :\r\n\r\n par le s…","tier":2},{"article":{"uuid":"8643193f-8fdf-4a1d-a941-fef109fe079e","slug":"installer-apache-2-4","title":"Installer et Configurer Apache 2.4","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2025-01-18 19:31:32","created_at":"2025-01-18 19:31:32","updated_at":"2025-01-18 19:31:32","plain":"Apache 2.4 est un serveur web open-source largement utilisé pour héberger des sites Internet, des applications ou des pages web dans un intranet. Également appelé httpd, ce service gère les requêtes des clients et répond en envoyant des ressources telles que des pages HTML, des contenus XML ou des fichiers divers. Les protocoles de communication par défaut sont HTTP (port 80/tcp) et HTTPS (port 443/tcp). Installation d'Apache 2.4\nPré-requis\nLes paquets nécessaires pour installer Apache 2.4 sont disponibles dans les dépôts officiels de Debian/Ubuntu. Assurez-vous de disposer des droits administrateurs pour exécuter les commandes. Étapes d'installation\n1. Mettre à jour les paquets : 2. Installer Apache 2.4 et ses modules complémentaires :\nSi vous utilisez PHP via FastCGI, le module libapache2-mod-fcgid est indispensable. Sinon, il peut être ignoré.\nAcceptez les paquets supplémentaires proposés, car ils enrichissent les fonctionnalités du serveur. Vérification de l'installation\nPour tester l'installation, ouvrez un navigateur web et entrez l'URL suivante : Si tout fonctionne, vous verrez la page par défaut d'Apache.\n-- Activation des Modules Complémentaires\nApache 2.4 dispose de nombreux modules permettant d’étendre ses fonctionnalités. Vous ne devez activer que les modules nécessaires à votre configuration.\nModule | Description | Activer | Désactiver |\n------ | ----------- | ------- | ---------- |\n| Autorise une configuration multi-utilisateurs | | |\n| Permet dutiliser des redirections avancées | | |\n| Nécessaire pour la configuration SSL | | |\n| Permet d'utiliser le protocole HTTPS | | |\n| Traite les adresses IP réelles des clients derrière un proxy | | | Redémarrage d'Apache après modification\nAprès toute modification des modules, redémarrez Apache pour appliquer les changements :\n-- Activer HTTP/2\nHTTP/2 offre des améliorations significatives en termes de performances et de vitesse de chargement des pages. Apache 2.4, fourni avec Debian 10 ou versions ultérieures, prend en charge HTTP/2, mais il faut lactiver manuellement. Activation de HTTP/2\n1. Activer le module : 2. Désactiver le module (incompatible avec HTTP/2) : 3. Activer le module recommandé : 4. Redémarrer Apache après chaque modification : Configuration des VirtualHosts pour HTTP/2\nDans vos fichiers de configuration VirtualHost, ajoutez la directive suivante pour activer HTTP/2 : Cette configuration permettra au serveur de prendre en charge HTTP/2 tout en restant compatible avec HTTP/1.1.\n-- Vous avez maintenant un serveur Apache 2.4 opérationnel, avec la possibilité dutiliser des modules avancés et le protocole HTTP/2 pour des performances accrues. Adaptez la configuration en fonction de vos besoins spécifiques et assurez-vous de bien tester chaque fonctionnalité après les modifications."},"score":1.75,"snippet":"…pache 2.4 et ses modules complémentaires :\nSi vous utilisez <mark>PHP</mark> via FastCGI, le module libapache2-mod-fcgid est indispensable. Sinon, il peut être ignoré.\nAcceptez les paquets supplémentaires proposés, car ils enrichisse…","tier":2},{"article":{"uuid":"7872d7b8-d592-42b8-b64e-b94d033c9d71","slug":"pollution-de-l-air-interieur","title":"Pollution de l'air intérieur","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2024-05-15 17:43:08","created_at":"2024-05-15 17:43:08","updated_at":"2024-05-15 17:43:08","plain":"Les rendements d'épuration observés lors de l'utilisation de plantes en pot dans des epsaces réels restent faibles, ne permettant pas une épuration efficace des volumes d'air des bâtiments. Les arguments favorables à la présence de plantes dans les espaces intérieurs sont qualifiés de subjectifs. Les risques d'allergie, eux, sont établis. Les plantes peuvent être en cause, mais aussi la terre des pots, vrai reservoire à moisissures. Références\nBulletin de l'OQAI n°2 - Pollution de l'air intérieur : quel potentiel ? - --http:www.air-interieur.org/userdata/documents/296BulletinOQAI2.pdf--\nhttp:wiki-erp.transitia.fr/lib/exe/fetch.php?media=quelpotentieldepurationparles_plantes.pdf"},"score":1.75,"snippet":"…ulletinOQAI2.pdf--\nhttp:wiki-erp.transitia.fr/lib/exe/fetch.<mark>php</mark>?media=quelpotentieldepurationparles_plantes.pdf","tier":2},{"article":{"uuid":"d5957a86-0d2e-4194-8a45-9b0d8bdde166","slug":"nextcloud","title":"NextCloud","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-12-13 09:33:03","created_at":"2023-12-13 09:33:03","updated_at":"2023-12-13 09:33:03","plain":"Installer NextCloud\nPré requis\nEnvironnement utilisé lors de la rédaction de ce document\nOS : Linux Debian 10\nHTTP : Serveur Apache 2.4\nSGBD : MariaDB\nLangage : PHP 7.4 exécuté en FPM avec Apache\nModules PHP installés\nConfiguration PHP\n<u>Mémoire limite</u> Dans la configuration par défaut, la valeur memorylimit n'est pas indiquée. Ajouter dans le fichier de configuration PHP FPM .\nBase de données\nIl faut créer un utilisateur et une base de données. Dans cette section on définie :\npasswordnextcloud : le mot de passe MariaDb ssociée Se connecter à mariaDb : Créer la base de données : Créer le compte de connexion et associer les droits sur la base de données :\nConfigurer Apache 2.4\nNous allons ajouter un dossier à notre configuration Web actuelle. L'accès se fera par http:www.abonnel.fr/cloud Éditer le fichier de configuration Apache \n> Prendre en considération la configuration\n> Activer les modules Apache 2 suivants\n> Activer la gestion du SSL\n> Modifier les droits d'accès sur le dossier data\n> Télécharger le script Le script est disponible à l'adresse https:nextcloud.com/install/#instructions-server \n> Déployer le script\n> Mettre les bons droits sur le dossiers\n> Redémarrage du service Apache\n> Se connecter à NextCloud pour terminer le paramétrage Utiliser l'URL qui permet d'accéder à NextCloud. Par exemple https:abonnel.fr/cloud\nLors du premier appel, le panneau de configuration initiale s'affiche.\nConfiguration l'antivirus\n apt-get install clamav clamav-daemon\nConfiguration Redis et APCu Il faut éditer le fichier de configuration NextCloud : Il faut associer le groupe au compte sudo usermod -a -G redis www-data Puis redémarrer Apache2 sudo systemctl restart apache2 Activation de memcache Assurez-vous également que le module Memcache est activé dans votre fichier de configuration PHP. Vous devrez peut-être ajouter ou décommenter la ligne suivante dans les fichiers de configuration : Après avoir apporté des modifications, redémarrez le service PHP-FPM pour prendre en compte les modifications :\nLes options nextCloud\nPour modifier les options il faut éditer le fichier de configuration NextCloud . Une fois les modification effectuées, il faut exécuter le script suivant :\nForcer les connexions en https\nMettre par défaut l'interface en Français et le code pays\nFaire disparaître le index.php de l'URL\nMise à jour en ligne de commande\nDésactiver le mode maintenance\nMettre à jour toutes les applications\najouter une tâche cron pour NextCloud\n> Éditer la configuration cron pour www-data Dans la configuration, ajouter :\nconfigurer fail2ban\nCréer le fichier qui définie les règles de détection d'erreur d'authentification. Le fichier permet de renseigner l'environnement Nextcloud. Redémarrer, vérifier :\nconfigurer mysql\nDans le fichier \nconfigurer php\nDans un fichier de configuration PHP-FPM, par exemple \nMettre à jour automatiquement NextCloud\n> Éditer la configuration cron pour www-data Dans la configuration, ajouter :\nMettre à jour automatiquement les applications NextCloud\n> Éditer la configuration cron pour www-data Dans la configuration, ajouter :\nMaintenance suite aux mises à jour\nIndex manquants\nLa base de données a quelques index manquants. L'ajout d'index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant , ces index manquants pourront être ajoutés manuellement pendant que l'instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides.\nClés primaires manquantes\nIl manque des clés primaires dans la base de données. En raison du fait que lajout de clés primaires sur les grandes tables peut prendre un certain temps, elles nont pas été ajoutées automatiquement. En exécutant , ces clés primaires manquantes peuvent être ajoutées manuellement pendant que linstance continue de fonctionner.\nClés primaires manquantes\nCertaines colonnes facultatives sont manquantes dans la base de données. Étant donné qu'ajouter des colonnes sur des grandes tables peut prendre du temps, elles n'ont pas été ajoutées automatiquement lorsqu'elles sont facultatives. En exécutant ces colonnes manquantes peuvent être ajoutées manuellement alors que l'instance continue de fonctionner. Une fois que les colonnes sont ajoutées, la performance ou l'utilisabilité de certaines fonctionnalités pourraient être améliorées.\nClés primaires manquantes\nCertaines colonnes de la base de données n'ont pas été converties en big int. Changer le type de colonne dans de grandes tables peu prendre beaucoup de temps, elles n'ont donc pas été converties automatiquement. En exécutant ces changements en suspens peuvent être déclenchés manuellement. Cette opération doit être exécutée pendant que l'instance est hors ligne.\nQuelques trucs et astuces\nUtilisateur désactivé\nActiver un utilisateur qui a été désactivé : sudo -u www-data php occ user:enable [username]\nImport d'un VCard en erreur\nConvertir un fichier vcard 2.1 en vcard 3.0 pour l'importer dans NextCloud : https:github.com/jowave/vcard2to3\nContacts / CardDAV\nNextcloud propose un backend CardDAV pour que les utilisateurs puissent stocker et partager leurs carnets d'adresses et leurs contacts. Carnet d'adresses système\nModifié dans la version 27 : Le carnet d'adresses système est désormais accessible à tous les utilisateurs de Nextcloud. Nextcloud maintient un carnet d'adresses en lecture seule contenant les informations de contact de tous les utilisateurs de l'instance. Les utilisateurs désactivés sont supprimés de ce carnet d'adresses. Vous pouvez désactiver l'accès au carnet d'adresses système en utilisant la valeur de configuration de l'application . Exécutez la commande pour désactiver l'accès au carnet d'adresses système pour tous les utilisateurs. Veuillez noter que cela n'influence pas le partage fédéré. Avertissement\nSi des clients se sont déjà connectés au point de terminaison CalDAV, les clients peuvent rencontrer des problèmes de synchronisation après la désactivation de l'accès au carnet d'adresses système. Cela peut souvent être résolu en choisissant un carnet d'adresses par défaut différent sur le client et en forçant une nouvelle synchronisation. Confidentialité et étendue des propriétés de l'utilisateur\nLes informations de contact dans le carnet d'adresses système sont extraites des informations de profil des utilisateurs. Les propriétés de profil ne sont écrites dans le carnet de contacts système que si l'étendue est définie sur \"Local\" ou plus élevé. Les utilisateurs qui définissent toutes leurs étendues de propriétés sur \"Privé\" sont supprimés du carnet d'adresses système et ne sont donc pas visibles par les autres utilisateurs. Les paramètres de partage de fichiers contrôlent l'énumération des autres utilisateurs.\nSi l'autocomplétion du nom d'utilisateur n'est pas autorisée, le carnet d'adresses système ne montrera que le contact système de l'utilisateur mais pas d'autres contacts.\nSi l'autocomplétion du nom d'utilisateur est autorisée, les utilisateurs verront les cartes de contact de tous les autres utilisateurs.\n1. Si l'autocomplétion est limitée aux utilisateurs au sein des mêmes groupes, les utilisateurs verront les cartes de contact d'autres utilisateurs dans les groupes partagés.\n1. Si l'autocomplétion est limitée aux numéros de téléphone correspondants, le carnet d'adresses système ne montrera que le contact système de l'utilisateur mais pas d'autres contacts.\n1. Si l'autocomplétion est limitée aux utilisateurs au sein des mêmes groupes et aux numéros de téléphone correspondants, les utilisateurs verront les cartes de contact d'autres utilisateurs dans les groupes partagés. Synchronisation du carnet d'adresses\nLe carnet d'adresses est mis à jour automatiquement à chaque ajout, modification, désactivation ou suppression d'utilisateur. Les administrateurs peuvent également déclencher une réécriture complète du carnet d'adresses avec ."},"score":1.75,"snippet":"…ebian 10\nHTTP : Serveur Apache 2.4\nSGBD : MariaDB\nLangage : <mark>PHP</mark> 7.4 exécuté en FPM avec Apache\nModules <mark>PHP</mark> installés\nConfiguration <mark>PHP</mark>\n&lt;u&gt;Mémoire limite&lt;/u&gt; Dans la configuration par défaut, la valeur memorylimit n&#039;est p…","tier":2},{"article":{"uuid":"4c1c8570-b8a7-4e2e-8eff-56c241842092","slug":"20231125-firefox-gpc","title":"Firefox : Global Privacy Control (GPC)","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-11-24 23:33:15","created_at":"2023-11-24 23:33:15","updated_at":"2023-11-24 23:33:15","plain":"Dans la version 120 de Firefox, une nouvelle fonctionnalité appelée Global Privacy Control (GPC) a été introduite. Le GPC permet aux utilisateurs de notifier automatiquement les sites web qu'ils visitent qu'ils ne souhaitent pas que leurs informations de navigation soient vendues ou partagées. Cette fonctionnalité GPC fonctionne de manière similaire au mécanisme \"Do Not Sell\" (Ne pas vendre) qui est en vigueur dans certains États des États-Unis, tels que la Californie, le Colorado et le Connecticut. De plus, elle peut également être utilisée pour indiquer un refus des publicités ciblées ou pour exprimer une demande générale de limiter la vente ou le partage de données personnelles dans d'autres juridictions, telles que l'Union européenne, le Royaume-Uni, le Nevada, l'Utah et la Virginie. Pour activer cette fonctionnalité GPC, suivez ces étapes simples : 1. Cliquez sur le bouton de menu .\n1. Sélectionnez \"Paramètres\" dans le panneau.\n1. Sélectionnez \"Vie privée et sécurité\" dans la fenêtre \"Paramètres\"\n1. Faites défiler jusqu'à la section \"Préférences de confidentialité des sites web\".\n1. Cochez la case correspondant à l'option \"Demander aux sites web de ne pas vendre ni partager mes données\".\n1. Fermez la page des paramètres. Toutes les modifications que vous avez apportées seront automatiquement enregistrées. Avec le GPC activé, vous pouvez naviguer sur le web en toute confiance, sachant que vous avez le contrôle sur la manière dont vos informations sont utilisées par les sites que vous visitez. La prise en compte de la GPC en tant que développeur PHP implique principalement la détection de l'en-tête GPC, la mise en œuvre de la politique de confidentialité correspondante, et la garantie que votre application respecte les préférences de confidentialité des utilisateurs conformément aux lois applicables.\nPour détecter si un utilisateur a activé la GPC, vous devez examiner l'en-tête HTTP de la demande entrante. La GPC est généralement transmise via un en-tête appelé \"HTTPSECGPC\".\nEn PHP, vous pouvez accéder aux en-têtes HTTP avec la superglobale , par exemple : . Crédit image : ////"},"score":1.75,"snippet":"…sitez. La prise en compte de la GPC en tant que développeur <mark>PHP</mark> implique principalement la détection de l&#039;en-tête GPC, la mise en œuvre de la politique de confidentialité correspondante, et la garantie que votre applicat…","tier":2},{"article":{"uuid":"d5c6c654-c2ab-420a-89b8-b9408f9bbcd1","slug":"grep","title":"grep","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-09-22 16:07:46","created_at":"2023-09-22 16:07:46","updated_at":"2023-09-22 16:07:46","plain":"grep est un outil de ligne de commande pour la recherche de motifs dans un fichier ou une entrée standard ou des entrées de pipelines. Il est utilisé pour afficher les lignes d'un fichier qui correspondent à un modèle spécifié. Le résultat peut être filtré ou utilisé comme entrée pour d'autres commandes. Techniquement, grep analyse le contenu d'un fichier ou d'une entrée standard et affiche les lignes qui correspondent à un modèle spécifié. Le modèle peut être une expression régulière, qui est une forme d'expression mathématique utilisée pour décrire des ensembles de chaînes de caractères. Grep utilise un algorithme de correspondance rapide pour trouver rapidement les lignes qui correspondent au modèle, ce qui le rend utile pour la recherche de fichiers, la filtration de sorties et la manipulation de données complexes. Rechercher une chaîne de caractères dans un fichier\n grep \"motif recherché\" nomdufichier Rechercher une chaîne de caractères dans un fichier sans respect de la casse\nL'option indique de rechercher de manière insensible à la casse. Par défaut, la commande grep effectue une recherche respectant la casse, ce qui signifie qu'elle ne fera correspondre que les occurrences exactes de la chaîne de caractères spécifiée. Si vous recherchez \"bonjour\" avec grep, il ne trouvera que \"bonjour\" et pas \"Bonjour\", \"BONJOUR\", etc. Si vous souhaitez effectuer une recherche insensible à la casse avec grep, vous devez utiliser l'option -i, comme suit : Rechercher une chaîne de caractères dans plusieurs fichiers\n grep \"motif recherché\" Afficher les lignes correspondantes avec le nom de fichier\n grep -H \"motif recherché\" \n \nL'option indique à grep de inclure le nom de fichier pour chaque correspondance trouvée. La sortie sera la liste des lignes de chaque fichier qui correspondent à \"motif recherché\". \nRechercher une chaîne de caractères en utilisant une expression régulière\n grep -E \"^[0-9]+$\" nomdufichier L'option -E (extended regexp) pour rechercher les lignes du fichier qui correspondent à l'expression régulière . L'expression régulière signifie \"une ou plusieurs chiffres consécutifs, débutant à la première colonne de la ligne et se terminant à la dernière colonne de la ligne\". En d'autres termes, la commande affichera toutes les lignes du fichier qui ne contiennent que des chiffres. Afficher le nombre de lignes correspondantes\n grep -c \"motif recherché\" nomdufichier\n \nL'option de la commande indique de ne retourner que le nombre de lignes qui correspondent au motif spécifié, sans afficher les lignes elles-mêmes. Afficher les lignes précédentes et suivantes correspondantes\n grep -A 2 -B 1 \"motif recherché\" nomdufichier L'option indique à grep d'afficher 2 lignes supplémentaires après chaque ligne contenant le \"motif recherché\". L'option indique à grep d'afficher 1 ligne supplémentaire avant chaque ligne contenant le \"motif recherché\". Ainsi, pour chaque correspondance trouvée, grep affichera la ligne correspondante, suivie de 1 ligne avant et 2 lignes après. Afficher des fichiers sans commentaires Les fichiers de configurations peuvent contenir beaucoup de ligne. Mais la plus part de ces lignes sont des commentaires. Il est utile de les supprimer à l'affichage quand on veut uniquement conserver les paramètres pris en comptes.\n-- Afficher toutes les lignes du fichier qui ne commencent pas par un point-virgule (;), qui est utilisé pour commenter les lignes dans ce type de fichier de configuration. Cela signifie que seules les lignes actives (non commentées) seront affichées à la sortie. grep ^[^\\;] /etc/php/7.4/fpm/php.ini\n-- Affichons les lignes qui ne commencent pas avec un dans le fichier . Les crochets définissent une liste de caractères à inclure ou à exclure dans la recherche, et le signifie le début d'une ligne. Le est utilisé pour échapper certains caractères spéciaux. Ainsi, ^[^#] signifie que nous cherchons des lignes qui commencent avec un caractère qui n'est pas un . Les résultats de la commande afficheront uniquement les lignes du fichier qui ne commencent pas avec un et seront donc actives et utilisées par Postfix. grep ^[^#] /etc/postfix/main.cf"},"score":1.75,"snippet":"…ommentées) seront affichées à la sortie. grep ^[^\\;] /etc/<mark>php</mark>/7.4/fpm/<mark>php</mark>.ini\n-- Affichons les lignes qui ne commencent pas avec un dans le fichier . Les crochets définissent une liste de caractères à inclure ou à ex…","tier":2},{"article":{"uuid":"0d9e7361-a3ff-4eaa-9886-faf748b14235","slug":"script-php-qui-scanne-tous-les-dossiers-de-l-arborescence-courante-et-affiche-des-liens-vers-ces-dossiers","title":"Afficher les dossiers courants","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-03-16 23:24:17","created_at":"2023-03-16 23:24:17","updated_at":"2023-03-16 23:24:17","plain":"Voici un script en PHP qui scanne tous les dossiers de l'arborescence courante (à l'exception des dossiers cachés) et affiche des liens vers ces dossiers dans une page HTML5. Le rendu utilise Bootstrap pour un style plus élégant. Ce script commence par inclure les en-têtes HTML nécessaires, notamment la feuille de style Bootstrap. Ensuite, il utilise la fonction PHP scandir() pour récupérer la liste de tous les fichiers et dossiers dans le répertoire courant. La fonction arraydiff() est utilisée pour exclure les éléments spéciaux tels que , et (sur Mac). Ensuite, le script parcourt tous les dossiers de la liste avec une boucle foreach et utilise la fonction isdir() pour vérifier s'il s'agit bien d'un dossier. Si c'est le cas, il affiche un lien vers ce dossier avec la fonction echo. Evolution\nPour afficher le titre title du fichier index.html contenu dans chaque dossier scanné, vous pouvez utiliser la fonction fileexists() pour vérifier si le fichier existe et la fonction filegetcontents() pour obtenir le contenu du fichier et extraire le titre title. Voici le code mis à jour : Ce script commence par inclure les mêmes en-têtes HTML que précédemment. Ensuite, il utilise les mêmes fonctions pour récupérer la liste des dossiers à scanner. Pour chaque dossier, le script vérifie si un fichier index.html existe en utilisant la variable $indexfile qui contient le chemin complet vers le fichier. Si le fichier existe, le script utilise la fonction filegetcontents() pour obtenir le contenu du fichier et utilise une expression régulière pour extraire le texte entre les balises . Si le titre title est trouvé, il est stocké dans la variable $title, sinon la variable contient le texte \"Titre non trouvé\". Si le fichier index.html n'existe pas, la variable $title contient le texte \"Fichier index.html non trouvé\". Enfin, le script affiche un lien vers le dossier ainsi que le titre title récupéré (ou un message d'erreur si le fichier index.html n'a pas été trouvé)."},"score":1.75,"snippet":"Voici un script en <mark>PHP</mark> qui scanne tous les dossiers de l&#039;arborescence courante (à l&#039;exception des dossiers cachés) et affiche des liens vers ces dossiers dans une page HTML5. Le rendu utilise Bootstrap pour un style plus…","tier":2},{"article":{"uuid":"1cd1c96c-5332-41a8-a1cf-8b253aee91ff","slug":"langage","title":"Programmation et Langages","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-03-12 16:15:17","created_at":"2023-03-12 16:15:17","updated_at":"2023-03-12 16:15:17","plain":"Un langage informatique est un système formel de commandes, de mots clés et de syntaxe qui permet à un programmeur de communiquer avec un ordinateur et de lui dire quoi faire Voici mes notes concernant les langages que j'ai abordés. On notera que ces langages utilisent une syntaxe structurée similaire qui permet aux programmeurs de construire des programmes avec une logique claire et cohérente. SQL est principalement utilisé pour gérer les données dans les bases de données relationnelles, tandis que PHP et Python sont utilisés pour écrire des programmes qui peuvent traiter les données. Table des matières\nLes pages\n<nav stacked=\"true\" fade=\"true\"> </nav> Les sous-catégories\n<nav stacked=\"true\" fade=\"true\"> </nav>"},"score":1.75,"snippet":"…onnées dans les bases de données relationnelles, tandis que <mark>PHP</mark> et Python sont utilisés pour écrire des programmes qui peuvent traiter les données. Table des matières\nLes pages\n&lt;nav stacked=&quot;true&quot; fade=&quot;true&quot;&gt; &lt;/nav&gt; Le…","tier":2},{"article":{"uuid":"65f42c0c-c899-4551-9479-cf8fad46e7a3","slug":"freedos","title":"FreeDOS","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-28 20:54:18","created_at":"2023-02-28 20:54:18","updated_at":"2023-02-28 20:54:18","plain":"FreeDOS est un système d'exploitation libre et open source conçu pour être compatible avec les applications et les jeux MS-DOS (Microsoft Disk Operating System). Il a été développé pour fournir une alternative gratuite à MS-DOS, qui était un système d'exploitation très populaire dans les années 1980 et 1990. FreeDOS offre un ensemble de commandes et d'outils compatibles avec MS-DOS, ce qui signifie qu'il peut exécuter des programmes et des jeux conçus pour fonctionner sous MS-DOS. Il est également compatible avec certains programmes Windows 16 bits et peut être utilisé pour exécuter des tâches simples telles que la gestion de fichiers, la création de partitions de disque dur, la sauvegarde de données, etc. FreeDOS est un système d'exploitation léger et rapide qui peut être utilisé sur des ordinateurs plus anciens ou sur des machines virtuelles. Il est distribué sous licence GPL (General Public License), ce qui signifie qu'il peut être utilisé gratuitement, copié, modifié et distribué librement. Installer FreeDOS\nL'installation de FreeDOS peut varier en fonction de l'utilisation prévue et du matériel de votre ordinateur. Voici les étapes générales pour installer FreeDOS sur un ordinateur :\nTéléchargez la dernière version de FreeDOS sur le site officiel (https:www.freedos.org/download/).\nCréez une clé USB bootable avec l'image ISO de FreeDOS en utilisant un logiciel de création de clé USB bootable, comme Rufus.\nInsérez la clé USB bootable dans l'ordinateur sur lequel vous souhaitez installer FreeDOS, puis redémarrez l'ordinateur.\nDans le BIOS de l'ordinateur, modifiez l'ordre de démarrage pour démarrer à partir de la clé USB bootable.\nSuivez les instructions d'installation de FreeDOS qui s'affichent à l'écran. Vous pouvez choisir d'installer FreeDOS sur un disque dur ou de l'utiliser en mode Live CD à partir de la clé USB.\nAprès l'installation, redémarrez l'ordinateur et vous devriez voir l'invite de commande de FreeDOS. <callout icon=\"fa fa-slack\">\nUne image FreeDOS pèse 232.9 MiB, ce qui est beaucoup plus grande qu'une disquette MS-DOS standard, qui avait une capacité de stockage maximale de 1,44 Mo. Les disquettes MS-DOS étaient utilisées comme supports de stockage amovibles pour les ordinateurs personnels dans les années 80 et 90, avant que les clés USB et les disques durs externes ne deviennent plus populaires. L'image de disque de 232.9 MiB est destinée à être utilisée pour installer FreeDOS sur un disque dur ou une clé USB, plutôt que pour l'utiliser directement à partir d'une disquette. Il est intéressant de noter que la capacité de stockage des disquettes a augmenté au fil des ans, passant de 160 Ko pour les premières disquettes de 5,25 pouces à 1,44 Mo pour les disquettes de 3,5 pouces utilisées à la fin des années 90. Cependant, leur utilisation est aujourd'hui très limitée en raison de leur faible capacité de stockage et de leur fiabilité limitée.\n</callout>\nBibliographie\nInstaller FreeDOS dans une machine virtuelle VirtualBox\nhttp:wiki.freedos.org/wiki/index.php/VirtualBox"},"score":1.75,"snippet":"…chine virtuelle VirtualBox\nhttp:wiki.freedos.org/wiki/index.<mark>php</mark>/VirtualBox","tier":2},{"article":{"uuid":"30f3d4cf-f0a1-46b9-af7b-3ad69d755b09","slug":"java-1-8-0-openjdk","title":"Java sous Linux","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-28 20:08:31","created_at":"2023-02-28 20:08:31","updated_at":"2023-02-28 20:08:31","plain":"Installer Java\nOpen JDK sous Fedora\nJava s'installe depuis les dépôts officiels Fedora. Java depuis Oracle\nJ'accède au site https:www.java.com/fr/download/linuxmanual.jsp pour télécharger la dernière version de Java.\n[[https://www.abonnel.fr/lib/exe/detail.php?id=informatique%3Acfp%3Ajava-1.8.0-openjdk&media=informatique:cfp:javadownloadsite18_191.png|]] Ensuite, il faut accéder au dossier de téléchargement dans une console. J'utilise le programme pour installer Java. Configurer Java\nChoisir la version de Java exécutée par défaut\nJ'appelle le programme pour bien sélectionner le programme . Sous Red Hat, Fedora... : Sous Debian, MX LMinux ..."},"score":1.75,"snippet":"…re version de Java.\n[[https://www.abonnel.fr/lib/exe/detail.<mark>php</mark>?id=informatique%3Acfp%3Ajava-1.8.0-openjdk&amp;media=informatique:cfp:javadownloadsite18_191.png|]] Ensuite, il faut accéder au dossier de téléchargement dans u…","tier":2},{"article":{"uuid":"60acde33-f1fa-4ab5-867e-8fb506211186","slug":"script-bash-upload","title":"Script Bash pour upload de CSV","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 15:39:20","created_at":"2023-02-16 15:39:20","updated_at":"2023-02-16 15:39:20","plain":"Dans le script Bash, la commande \"curl\" permet d'envoyer le fichier vers la page PHP d'upload. Voici un exemple de code Bash qui télécharge tous les fichiers CSV dans un répertoire, à l'exception de celui qui a été modifié le jour même. Pour exclure le fichier CSV modifié le jour même de l'envoi, on a utilisé la commande find pour localiser tous les fichiers CSV dans le répertoire spécifié qui ne sont pas modifiés aujourd'hui. Ensuite, on boucle sur cette liste de fichiers et exécuter le code d'envoi de fichier pour chaque fichier trouvé. Pour chaque fichier, nous avons calculé le SHA-1 localement, envoyé le fichier au script PHP, récupéré le SHA-1 calculé par le script PHP et comparé les deux valeurs de hachage. Si les valeurs de hachage sont identiques, nous avons affiché un message de confirmation et déplacé le fichier CSV dans le dossier . Si les valeurs de hachage ne sont pas identiques, nous avons affiché un message d'erreur."},"score":1.75,"snippet":"…la commande &quot;curl&quot; permet d&#039;envoyer le fichier vers la page <mark>PHP</mark> d&#039;upload. Voici un exemple de code Bash qui télécharge tous les fichiers CSV dans un répertoire, à l&#039;exception de celui qui a été modifié le jour même. Pour…","tier":2},{"article":{"uuid":"6742aa11-e758-48f7-a181-cd3eabbb6e3b","slug":"web-linux-apache","title":"Serveur Web Linux Apache","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 00:53:40","created_at":"2023-02-16 00:53:40","updated_at":"2023-02-16 00:53:40","plain":"Je vous invite à savoir comment faire pour installer et configurer un serveur Web Liuux Apache. Ceci inclus la configuration des fichiers et démarrer, arrêter et activer votre serveur httpd / Apache 2 Linux. L'association des mots Linux, Apache, MariaDB et PHP donne l'acronyme LAMP. Linux est le <u>système d'exploitation</u>, ou OS, qui permet de faire cohabiter plusieurs programmes et produire un résultat. Apache est un programme qui fonctionne de manière continue afin de <u>fournir des pages Internet</u> aux visiteurs. Sans PHP associé, les pages seraient statiques, c'est-à-dire que les pages fournies ressembleraient à du texte, sans que le texte puisse s'adapter. PHP permet de <u>rendre plus intelligent</u> le site. Et enfin, MariaDB est <u>une base de données</u>. C'est un programme qui rassemble des données par thème et peuvent être triées, extraites et modifiées via des algorithmes précis. Je vous propose une installation de ces applications, ainsi qu'un paramétrage qui vous permettra d'avoir une solution qui tient la route. C'est un premier pas afin d'avoir une solution clé en main avec les bons paramètres. Les prérequis qui ne seront pas abordés, sont les suivants :\nDebian 10 est installé sur un serveur VPS, serveur virtuel ...\nun accès ssh au serveur\nquelques notions de BASH Table des matières\nIntroduction\nServeur LAMP à installer\nApache\n1. \nPHP\n1. \n1. \n1. \n1. \nApache, optimisations\n1. \n1. \n1. \n1. \n1. \nPHP, options\n1. \nSGBD : MariaDB\n1. \n1. \n1. \nApache, https\n1. \n1. \nRéseau\n1. maintenance\napplications web\narticles obsolètes"},"score":1.75,"snippet":"…e 2 Linux. L&#039;association des mots Linux, Apache, MariaDB et <mark>PHP</mark> donne l&#039;acronyme LAMP. Linux est le &lt;u&gt;système d&#039;exploitation&lt;/u&gt;, ou OS, qui permet de faire cohabiter plusieurs programmes et produire un résultat. Apache…","tier":2},{"article":{"uuid":"c9b33f93-650f-4999-907a-40cb387ffca3","slug":"wordpress","title":"WordPress","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-10 22:48:32","created_at":"2023-02-10 22:48:32","updated_at":"2023-02-10 22:48:32","plain":"Installer\nDans un premier temps, il faut suivre le guide pas à pas pour installer Apache2 avec PHP et MySQL.\n \nEnsuite, vient le téléchargement de l'application depuis le site Wordpress. J'utilise la commande pour télécharger l'archive directement sur le serveur Web. Le programme est contenu dans une archive compressée tar.gz. Donc, il faut décompresser larchive . Voici quelques ressources qui peuvent aider :\nhttps:serverfault.com/questions/357108/what-permissions-should-my-website-files-folders-have-on-a-linux-webserver\nhttps:codex.wordpress.org/InstallingWordPress#DetailedInstructions\nhttps:doc.ubuntu-fr.org/installerunserveurdebian\nhttp://olange.developpez.com/articles/debian/installation-serveur-dedie/?page=page_2"},"score":1.75,"snippet":"…faut suivre le guide pas à pas pour installer Apache2 avec <mark>PHP</mark> et MySQL.\n \nEnsuite, vient le téléchargement de l&#039;application depuis le site Wordpress. J&#039;utilise la commande pour télécharger l&#039;archive directement sur le…","tier":2},{"article":{"uuid":"004d015d-133d-4e6c-8dba-b6336ebbeff2","slug":"speedtest","title":"Speedtest, installez votre testeur de débit","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-10 22:48:31","created_at":"2023-02-10 22:48:31","updated_at":"2023-02-10 22:48:31","plain":"Speedtest est un service Web qui permet d'analyser la vitesse de transfert et la latence entre votre poste informatique et un serveur. Dans cet article je vous propose d'installer votre propre service speedtest sur l'un de vos serveurs. L'installation s'effectue sur un Raspberry Pi 4, dont Apache 2.4 et PHP 7.4 ont déjà été déployés et paramétrés. Placez-vous dans votre home et téléchargez le dépôt git SpeedTest d'AdolfIntel. git clone https://github.com/adolfintel/speedtest.git sudo mkdir /var/www/html/speedtest cd speedtest\n sudo cp -R backend example-singleServer-pretty.html *.js /var/www/html/speedtest cd /var/www/html/speedtest\n sudo mv example-singleServer-pretty.html index.html\n \n sudo chown -R www-data ."},"score":1.75,"snippet":"…lation s&#039;effectue sur un Raspberry Pi 4, dont Apache 2.4 et <mark>PHP</mark> 7.4 ont déjà été déployés et paramétrés. Placez-vous dans votre home et téléchargez le dépôt git SpeedTest d&#039;AdolfIntel. git clone https://github.com/adol…","tier":2},{"article":{"uuid":"8aa986e1-0b59-4ebb-bfb9-eab476a0d6a6","slug":"tracker-miner-fs-3","title":"tracker miner fs 3","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-10 22:48:31","created_at":"2023-02-10 22:48:31","updated_at":"2023-02-10 22:48:31","plain":"Je sais realtivement peu de chose sur le process Tracker Miner FS 3 ou appelé également tracker3. J'ai quand même remarqué que c'est un process qui prend beaucoup de ressources au niveau processeur. Il m'empêche même parfois d'utiliser le navigateur de fichier Nautilus sous Gnome. Je suis obligé d'aller dans le gestionnaire de process pour le tuer afin d'utiliser Nautilus. Voulant éliminer ces désagréments, j'ai pris le taureau par les cornes. J'ai commencé par me dire que Tracker Miner 3 n'était pas forcément un programme utile. Logiquement, j'ai utilisé dnf avec l'option remove afin de supprimer tracker, tracker extract et Tracker Miner fs. sudo dnf remove --purge tracker tracker-extract tracker-miner-fs Concrètement, le programme tracker 3 a tellement de dépendance avec Gnome, que dnf me demandait de désinstaller également Nautilus et d'autres composantes que j'utilisais sous Gnome. C'était donc peine perdue et je ne pouvais pas le désinstaller.\nEnsuite j'ai peut-être trouvé la solution sur le forum https://forums.raspberrypi.com/viewtopic.php?t=305205 . Il est indiqué que ces lenteur peuvent provenir d'un dysfonctionnement dans le programme dû aux fichiers de configuration et base de données locale. Pour tout vous dire, grâce au programme journalctl de Linux, je trouvé quelques lignes d'erreurs concernant tracker miner 3. Voici ce qu'il fallait effecuter : 1. arrêter tracker 3 avec l'option terminate\n sudo tracker3 daemon -t 2. Se positionner dans \n cd /.config/autostart/ 3. copie les fichiers de configurations\n cp -v /etc/xdg/autostart/tracker-miner-.desktop ./ 4. Réinitialiser le cache de miner tracker qui se trouve dans le dossier courant de l'utilisateur.\n rm -fr /.cache/tracker /.local/share/tracker 5. Démarrage de tracker 3 \n sudo tracker3 daemon -s\n \n \nIl existe même l'option- W qui permet en temps réel de suivre l'évolution du programme tracker 3.\n sudo tracker3 daemon -w"},"score":1.75,"snippet":"…ution sur le forum https://forums.raspberrypi.com/viewtopic.<mark>php</mark>?t=305205 . Il est indiqué que ces lenteur peuvent provenir d&#039;un dysfonctionnement dans le programme dû aux fichiers de configuration et base de données loca…","tier":2},{"article":{"uuid":"8ca5c33d-9de2-471f-8845-1a9c78a539dd","slug":"afficher-l-heure-en-francais","title":"Afficher l'heure en français","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 22:23:03","created_at":"2023-02-09 22:23:03","updated_at":"2023-02-09 22:23:03","plain":"Cette fonction est OBSOLÈTE à partir de PHP 8.1.0. Il est fortement recommandé de les éviter. <panel type=\"default\" title=\"Code\">\n<code PHP [enablelinenumbers=\"true\", startlinenumbersat=\"1\"]>\nsetlocale(LCTIME, 'frFR');\necho strftime('%A %d %B %Y, %H:%M');\n</code>\n</panel> <panel type=\"default\" title=\"Résultat\">\n<PHP>\nsetlocale(LCTIME, 'fr_FR');\necho strftime('%A %d %B %Y, %H:%M');\n</PHP>\n</panel>"},"score":1.75,"snippet":"Cette fonction est OBSOLÈTE à partir de <mark>PHP</mark> 8.1.0. Il est fortement recommandé de les éviter. &lt;panel type=&quot;default&quot; title=&quot;Code&quot;&gt;\n&lt;code <mark>PHP</mark> [enablelinenumbers=&quot;true&quot;, startlinenumbersat=&quot;1&quot;]&gt;\nsetlocale(LCTIME, &#039;frFR&#039;);\ne…","tier":2},{"article":{"uuid":"e86d84d8-ab68-4893-b821-e5748cd847e6","slug":"modifier-la-page-index-apache","title":"Modifier la page d'accueil standard d'Apache","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 16:12:18","created_at":"2023-02-09 16:12:18","updated_at":"2023-02-09 16:12:18","plain":"Je propose une page d'accueil standard du serveur Apache 2 en PHP qui permet d'afficher un ensemble d'informations avant de rediriger le visiteur. Je remplace la page par ."},"score":1.75,"snippet":"…propose une page d&#039;accueil standard du serveur Apache 2 en <mark>PHP</mark> qui permet d&#039;afficher un ensemble d&#039;informations avant de rediriger le visiteur. Je remplace la page par .","tier":2},{"article":{"uuid":"2e877c39-9bcd-4a72-afd4-d60214fa8f07","slug":"20230116-scripts-partages-dans-linux","title":"Scripts partagés dans Linux","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 15:22:31","created_at":"2023-02-09 15:22:31","updated_at":"2023-02-09 15:22:31","plain":"Vous êtes satisfait car vous avez créé vos premiers script BASH ou script PHP. Pour que tous les utilisateurs de l'ordinateur puissent les utiliser, vous pouvez les placer dans les répertoires les plus courants. Les répertoires courants\nPour que tous les utilisateurs de l'ordinateur puissent utiliser les scripts, vous pouvez les placer dans les répertoires les plus courants :\n: Ce répertoire est utilisé pour stocker les commandes et les scripts utilisateur installés. Il est accessible pour tous les utilisateurs, mais nécessite des privilèges d'administrateur pour y installer des scripts.\n: Ce répertoire est utilisé pour stocker les commandes système. Il est également accessible pour tous les utilisateurs, mais nécessite des privilèges d'administrateur pour y installer des scripts.\n: Ce répertoire est utilisé pour stocker les commandes système qui nécessitent des privilèges d'administrateur pour être exécutées. Il nécessite des privilèges d'administrateur pour y installer des scripts. Il n'y a pas de règles spécifiques pour les scripts personnels partagés. Ces répertoires ne sont pas les seuls où vous pouvez placer un script. Ils ont l'avantage d’être accessible à l'ensemble des utilisateurs tant au niveau des droits que des déclaration dans la variable PATH. La variable PATH\nLe répertoire choisi doit être déclaré dans la variable d'environnement PATH. Cela signifie que lorsque l'utilisateur exécute une commande, le système cherchera dans ce répertoire en plus des autres répertoires déjà inclus dans PATH pour trouver l'exécutable correspondant. Voir la page concernant la variable PATH Rendre exécutable un script\nIl faut rendre le script exécutable en utilisant la commande : Cette commande permet de changer les permissions d'un fichier. Pour rendre un script exécutable pour tout le monde, vous pouvez utiliser la commande suivante :\n- Pour rendre un script exécutable, il doit commencer par un shebang () qui indique au système quel interpréteur utiliser pour exécuter le script. /opt\nExtrait de la page Les répertoires dans /home/username\nLes répertoires dans peuvent également contenir des scripts personnels à partager. La contrainte et de partager le dossier et que chaque utilisateur écrive le chemin complet des scripts.\n: Ce répertoire est généralement utilisé pour stocker les commandes et les scripts utilisateur. Par défaut, il est uniquement accessible pour l'utilisateur <username> qui l'a créé, donc il n'est pas nécessaire d'avoir des privilèges d'administrateur pour y installer des scripts. Les droits peuvent être modifier sur ce dossier afin de rendre accessible les scripts de ce dossier aux autres utilisateurs de la machine.\n: Ce répertoire est généralement utilisé pour stocker les commandes et les scripts utilisateur personnels. Il est caché (car le point en début de nom) donc il n'est pas visible pour les autres utilisateurs. Il est plus adapté pour stocker des scripts qui ne doivent pas être partagés ou modifiés par d'autres utilisateurs. Le plus commun est d'utiliser un des trois dossiers cité au début de l'article."},"score":1.75,"snippet":"…sfait car vous avez créé vos premiers script BASH ou script <mark>PHP</mark>. Pour que tous les utilisateurs de l&#039;ordinateur puissent les utiliser, vous pouvez les placer dans les répertoires les plus courants. Les répertoires couran…","tier":2},{"article":{"uuid":"d4c9576d-9366-44aa-8b0e-0d10c9c60ef7","slug":"xargs","title":"xargs","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-02 15:38:57","created_at":"2023-02-02 15:38:57","updated_at":"2023-02-02 15:38:57","plain":"xargs -I\n est une option de la commande qui permet de spécifier un \"marqueur\" (ou \"placeholder\" en anglais), ici , pour représenter chaque entrée dans la liste d'arguments passée à xargs. La commande qui suit xargs est exécutée pour chaque entrée en remplaçant par l'entrée correspondante. Par exemple, si la sortie de la commande précédente est: L'exécution de sera équivalente à exécuter les commandes suivantes: Cette option de est utile pour exécuter une commande pour chaque entrée d'une liste d'arguments, sans avoir à gérer les caractères spéciaux tels que les espaces ou les retours à la ligne dans les entrées. <php>\nsetlocale(LCTIME, 'frFR');\necho strftime(' - Article paru en premier le Thursday 02 February 2023');\n</php>"},"score":1.75,"snippet":"…ue les espaces ou les retours à la ligne dans les entrées. &lt;<mark>php</mark>&gt;\nsetlocale(LCTIME, &#039;frFR&#039;);\necho strftime(&#039; - Article paru en premier le Thursday 02 February 2023&#039;);\n&lt;/<mark>php</mark>&gt;","tier":2},{"article":{"uuid":"63b332d4-e480-4fcd-a73a-90a0a5ff2a77","slug":"20230127-saut-de-ligne-en-debut-ou-fin-de-ligne","title":"Saut de ligne en début ou fin de ligne ?","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-01-28 11:24:37","created_at":"2023-01-28 11:24:37","updated_at":"2023-01-28 11:24:37","plain":"En PHP, il n'y a pas de différence majeure entre placer un (code new line) en début ou fin de ligne dans un . En utilisant un en fin de ligne, cela a pour effet de créer un saut de ligne à la fin de la chaîne affichée. Cela peut être utile si vous voulez que le prochain contenu affiché soit sur une ligne distincte. En utilisant un en début de ligne, cela a pour effet de créer un saut de ligne avant le contenu affiché. Cela peut être utile si vous voulez que le contenu précédent soit sur une ligne distincte. Cela dépend de l'objectif que vous voulez atteindre, mais en général il est plus courant de mettre un en fin de ligne pour séparer les différentes parties d'un texte. Dans un contexte de sortie HTML, l'utilisation de '\\n' ne fera pas de saut de ligne, il faudra utiliser la balise pour faire un saut de ligne."},"score":1.75,"snippet":"En <mark>PHP</mark>, il n&#039;y a pas de différence majeure entre placer un (code new line) en début ou fin de ligne dans un . En utilisant un en fin de ligne, cela a pour effet de créer un saut de ligne à la fin de la chaîne affichée.…","tier":2},{"article":{"uuid":"e23607d4-54d9-4333-abb8-7215d0478cf1","slug":"la-maniere-la-plus-courte-d-utiliser-echo","title":"La manière la plus courte d'utiliser echo","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2022-03-20 05:51:34","created_at":"2022-03-20 05:51:34","updated_at":"2022-03-20 05:51:34","plain":"La manière la plus courte d'utiliser echo en PHP et d'employer le code puis . Par exemple :"},"score":1.75,"snippet":"La manière la plus courte d&#039;utiliser echo en <mark>PHP</mark> et d&#039;employer le code puis . Par exemple :","tier":2},{"article":{"uuid":"34931a37-83d9-41ce-8097-64c966723b71","slug":"adaptateur-usb-ethernet-asix-887x","title":"adaptateur usb ethernet AXSI 887x","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2022-01-13 00:35:34","created_at":"2022-01-13 00:35:34","updated_at":"2022-01-13 00:35:34","plain":"Une série d'adaptateur USB Ethernet Amazon Basics est basée sur les puces réseaux ASIX.\nEn utilisant le commande , les identifiants Vendor ID et Product ID permettent de connaitre le puce ASIX présente dans votre produit.\nVous pouvez consulter le site http://www.asix.com.tw/products.php?op=ProductList&PLine=71 pour obtenir plus d'informations.\nASIX Product | ASIX Vendor ID | Product ID |\n--- | --- | --- |\nAX88772C | 0B95h | 772Bh |\nAX88772B | 0B95h | 772Bh/7E2Bh |\nAX88760 | 0B95h | 772Ah |\nAX88772A | 0B95h | 772Ah |\nAX88772 | 0B95h | 7720h |"},"score":1.75,"snippet":"…us pouvez consulter le site http://www.asix.com.tw/products.<mark>php</mark>?op=ProductList&amp;PLine=71 pour obtenir plus d&#039;informations.\nASIX Product | ASIX Vendor ID | Product ID |\n--- | --- | --- |\nAX88772C | 0B95h | 772Bh |\nAX88772B…","tier":2},{"article":{"uuid":"5f56d1bc-bcc4-4ad3-9bc6-819d68c2581a","slug":"barry-connaitre-le-cout-horaire-du-kwh","title":"Barry, connaître le coût horaire du kWh","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2021-03-03 21:52:13","created_at":"2021-03-03 21:52:13","updated_at":"2021-03-03 21:52:13","plain":"Parlons programmation et domotique ! Afin d'adapter les appareils qui consomment beaucoup d'énergie (chauffe-eau, chauffage par accumulation, charge de voiture...) au meilleur tarif horaire, je me lance dans la conception et la réalisation d'un commutateur intelligent. Tout d'abord, je dois pouvoir anticiper le prix du kWh journalier. Barry propose une API dont la documentation se trouve à l'adresse https:developer.barry.energy/. Cette API va me permettre de me connecter sur les serveurs de Barry afin d'obtenir des informations. La méthode getMeteringPoints permet de connaître le coût du prix du kWh à chaque heure.\nJe vais retenir 8 tranches horaires qui me permettent de savoir quand c'est le meilleur moment pour consommer. Voici un extrait de code en PHP pour interroger les API fournis par Barry Energy. Aujourd'hui, il y a 3 méthodes disponibles : getMeteringPoints, getAggregatedConsumption et getAggregatedConsumption.//"},"score":1.75,"snippet":"…meilleur moment pour consommer. Voici un extrait de code en <mark>PHP</mark> pour interroger les API fournis par Barry Energy. Aujourd&#039;hui, il y a 3 méthodes disponibles : getMeteringPoints, getAggregatedConsumption et getAggregatedC…","tier":2},{"article":{"uuid":"e0e64681-1da0-44a6-963e-4a5e924147e5","slug":"systemctl","title":"systemctl","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2021-01-16 04:04:50","created_at":"2021-01-16 04:04:50","updated_at":"2021-01-16 04:04:50","plain":"Éteindre la machine\nArrêter le système puis éteindre la machine via un signal ACPI, équivalent de et . Équivalence : Arrêt brutal : Arrêter le système puis éteindre via une interruption ROM (Équivalent de : systemctl start halt.target --job-mode=replace-irreversibly) systemctl --force halt\nArrêt brutal : systemctl --force --force halt\nRedémarrer le système\nRedémarrer le système, équivalent de et . Équivalence : Redémarrage brutal : Pour certains BIOS (U)EFI, redémarrer dans le setup\nBiblio\n<https:wiki.ordi49.fr/doku.php/tech:techsystemdsystemctl>\n<https:access.redhat.com/documentation/fr-fr/redhatenterpriselinux/7/html/systemadministratorsguide/sect-managingserviceswithsystemd-power>"},"score":1.75,"snippet":"…redémarrer dans le setup\nBiblio\n&lt;https:wiki.ordi49.fr/doku.<mark>php</mark>/tech:techsystemdsystemctl&gt;\n&lt;https:access.redhat.com/documentation/fr-fr/redhatenterpriselinux/7/html/systemadministratorsguide/sect-managingserviceswithsyst…","tier":2},{"article":{"uuid":"1751deb9-067d-4a39-afc8-ef27cc3c3bb5","slug":"install-xubuntu","title":"Installer Xubuntu","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2021-01-16 04:02:01","created_at":"2021-01-16 04:02:01","updated_at":"2021-01-16 04:02:01","plain":"Il faut obtenir un support d'installation Xubuntu. Pour ma part, j'ai une clé USB Kingston 8 Go. Avant de démarrer l'ordinateur, je la branche. J'accède au BIOS pour faire démarrer l'ordinateur sur la clé USB. Programme d'installation Xubuntu\nLe programme d'installation Xubuntu se lance. Vous pouvez essayer xubuntu sans rien changer à votre ordinateur directement depuis le support. Dans notre cas, nous allons installer Xubuntu tout de suite sur l'ordinateur. Choisir la langue et cliquer sur le bouton Installer Xubuntu [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:da0ead6825d10caffbcd6ff62e266426.png|]] Disposition du clavier\nChoisir la disposition du clavier et cliquer sur le bouton Continuer [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:26fbc6c55a456b4f5a308f70ae558342.png|]] Mise à jour\nChoisir \"Télécharger les mises à jour pendant l'installation de Xubuntu\" et cliquer sur le bouton Continuer [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:3f4ffc14d617dbaaa76121d60bcf075f.png|]] Type d'installation\nChoisir le type d'installation \"Autre chose\" et cliquer sur le bouton Continuer [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:85d204c04f75d8db95a5ba1b7b28e9fb.png|]] Partitionnement\n[[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:a4674674987ebb147443839b015309e3.png|]] Identifier le disque dur. Il faut s'appuyer sur l'espace disque utilisé et le type de partition. Dans l'exemple, il s'agit de /dev/sda car c'est le seul dont le taille est de 320 G [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:ace36562e5359fa3770820a0615ab829.png|]] Nouvelle partition Continuer [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:71290a175e58151b8763dad439b5f8ab.png|]] Ajouter [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:8096a7f148faccafdddfcee90a04f5b5.png|]] On recommencer : Cliquer sur supprimer [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:14fb20a778b29133173c9c4dd4489240.png|]] L'espace libre est de 320 Go [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:c85b1a1c7c93c215af7d1fc096caa3f0.png|]] Création de la partition SWAP (2x RAM) [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:bafe1233e211c49c6094ba4a79d2876d.png|]] Le SWAP prend ça place dans l'architecture du disque dur [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:e7777bf53615b1f66873cf45371dcb3e.png|]] Création de la partition /boot [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:b2c2d16ecae6986cf09a99cee60bcbed.png|]] Création de la racine. Entre 30 et 100 Go [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:1e620615c5c8a31216d0fa64a9404ca7.png|]] La racine prend ça place [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:6a9e261629bc935ee5c60676750aa0cb.png|]] Création du /home avec l'espace restant -100 Mo [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:3ef7418f7057438d1796dda77fe1de72.png|]] Le disque est prêt. Cliquer sur le bouton \"Installer Maintenant\" [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:405943fb3b7856c229871f9f9fcf6873.png|]] Un écran récapitulatif indique les modifications des partitions sur les disques [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:dcdd214fed68cc40a47d1b6d020a1b12.png|]] Fuseaux horaires\nChoisir le fuseau horaire [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:36df0ffc73b37dad619de57f0f234aea.png|]] Création d'un compte utilisateur\n[[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:cfe1ba1b932e86839c37a5e4ef593621.png|]] [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:f9e6fa62bfb59f30a7b726807545eea6.png|]] [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:f597a41822c55f8cdc029a485da0a5fa.png|]] [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:4993cf28a813dc8e08812a7fb3ce8b1e.png|]] [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:766a8e9105fd9879d63deb4d86af4f22.png|]] Terminé… Cliquer sur \"Redémarrer maintenant\" [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:fae0447c7e572df6acb291bf4ace1111.png|]] Paramétrage après redémarrage\nAu démarrage de Xubuntu avec le compte par défaut, on nous propose une mise à jour. Cliquer sur le bouton \"Installer maintenant\" [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:526c1e68c4a52fed266b3c6cf5d9e759.png|]] il faudra saisir le mot de passe pour accepter les modifications [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:eb039fac63f8ef03c00fff701aedc8cf.png|]] Après la mise à jour, le système vous invite à redémarrer. [[https:www.abonnel.fr/lib/exe/fetch.php?media=informatique:installerxubuntu:740794bf749637b77ce4ef57b3a66450.png|]] Installer les programmes\nGéogebra\nPlus d'infos sur https:doc.ubuntu-fr.org/geogebra Flash\nIl est nécessaire pour le site mon B2i dans Firefox Scratch\nLa version 3 de Scratch peut être téléchargée pour installation en local : http:www.ac-grenoble.fr/maths/scratch/scratch.zip. Il s'agit d'une archive à décompresser. Ensuite, il suffit d'ouvrir le fichier du répertoire ainsi créé. http:www.planet-libre.org/index.php?postid=21654 Création d'un user Création des raccourcis sur le bureau\n1. Géogebra\n1. Scratch\n1. B2i\n1. LibreOffice Writer\n1."},"score":1.75,"snippet":"…uton Installer Xubuntu [[https:www.abonnel.fr/lib/exe/fetch.<mark>php</mark>?media=informatique:installerxubuntu:da0ead6825d10caffbcd6ff62e266426.png|]] Disposition du clavier\nChoisir la disposition du clavier et cliquer sur le bouto…","tier":2},{"article":{"uuid":"7c9dd319-44c3-4784-b587-9def71d1e4b5","slug":"cote-informatique","title":"Coté informatique","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2021-01-01 15:30:17","created_at":"2021-01-01 15:30:17","updated_at":"2021-01-01 15:30:17","plain":"Voici le principe de fonctionnement que je voulais faire initialement :\n1. lecteur des informations sur le port série (coté local)\n1. envoie sur serveur de base de données SGBD (coté serveur) On y reviendra plus tard. Pour l'instant j'installe tout sur le raspberyPi. Installer PHP\nLa lecture sur des informations va s'effectuer en PHP. C'est le plus simple pour moi parce que c'est très proche du langage C.\nDans un premier temps il faut installer linterpréteur PHP : sudo apt-get install php On saperçoit que l'installation du package PHP intègre d'autres composants. On retrouve Apache2 et des fonctions associées à SQLite3, LDAP et JSON. Plusieurs fichiers de configuration sont créés :\nfichiers présents dans Deux binaires sont accessibles :\nInstaller le SGBD PostgreSQL\nJ'ai installé le SGBD PostgreSQL ainsi que le bibliothèque de connexion PHP. Une fois installé, les programmes n'occuperont que 30 Mo. Je n'ai pas l'habitude d'avoir une installation prenant aussi peu de place. sudo apt-get install php-pgsql postgresql\n \nRésultat : Paramétrer le SGBD PostgreSQL\nVoilà comment je fais pour me connecter au moteur de SGBD PostgreSQL. J'effectue ces manipulations depuis le compte . 1. Je me connecte avec le compte du SGBD qui se nomme :\n sudo su postgres 2. Je me connecte au SGBD :\n psql\n \nOh joie ! L'invite apparaît. Créer la base de données\nJe vais utiliser les informations suivantes :\nbase de données : \nutilisateur de la base de données (rôle) : Il faut créer l'utilisateur de la base de données. De manière schématique, l'utilisateur de connexion à la base de données s'appelle un . Création du rôle \n CREATE ROLE rampere PASSWORD 'This1sN0tAnPwd' LOGIN VALID UNTIL 'infinity'; Il faut créer la base de données qui va accueillir les données. J'ai choisi d'utiliser l'encodage dans la base de données, et l'utilisation des règles de la langue Française (). CREATE DATABASE \"ampere\"\n WITH OWNER \"rampere\"\n ENCODING 'UTF8'\n LCCOLLATE = 'frFR.UTF-8'\n LCCTYPE = 'frFR.UTF-8'; Il faut autoriser les connexions. Pour cela, le fichier de configuration des clients authentifié doit être adapté. Lors de l'installation du SGBD, il a été créé dans Il faut l'adapter suivant le schéma suivant : host database user address auth-method\n On s'identifie avec l'utilisateur :\n pi: $ sudo su - postgres\n \nOn ajoute dans le fichier :\n local ampere rampere trust On sort de l'environnement :\n postgres: $ exit\n \nUne fois le paramétrage terminé, il faut redémarrer le SGBD :\n pi: $ sudo service postgresql reload\n \nOn teste la connexion :\n pi: $ psql -U rampere -W -d ampere\n Principe de fonctionnement\nUn programme doit sans cesse boucler pour effectuer cette action :\n 1. lire une trame sur /dev/ttyAMA0 readTrame\n 2. ajouter un timestamp dans la trame \n 3. mémoriser la trame brute avec timestamp dans une mémoire tampon - saveTrameTampon saveTrameBdd saveTrameCsv Insérer une fichier CSV dans une table MySQL Transformer une donnée timestamp unix en format date et heure\n SELECT FROMUNIXTIME() FROM Bibliothèque PHP\nLe programme sera écrit en PHP. On va au maximum utiliser des méthodes afin d'obtenir des informations sur la consommation :\nquelle est la consommation Intensité instantannée ? - getIINST\nquelle est la valeur du compteur HC ? - getHCHC\nquelle est la valeur du compteur HP ? - getHCHP\nquelle est la période tarifaire en cours ? - getPTEC\nquelle est la puissance apparente ? - getPAPP et obtenir des informations sur l'abonnement :\nquelle est le N° didentification du compteur ? - getADCO\nquelle est l'Option tarifaire ? - getOPTARIF\nquelle est l'Intensité souscrite ? - getISOUSC Je pense également à des méthodes d'analyse :\nquelle est la consommation HC/HP de la période tarifaire actuelle ? - getConsoPeriodeNow(tarif)\nquelle est la consommation HC/HP de la période précédente ? - getConsoPeriodePrev(tarif)\nquelle est la consommation HC/HP des 24 dernières heures ? - getConsoPeriode24(tarif)\nquelle est la consommation HC/HP d'une période de 7 jours X ? - getConsoPeriode7jours(tarif, dateHeureDebut)\nquelle est la consommation HC/HP de la minute X ? - getConsoMinute(tarif, dateHeure)\nquelle est la consommation HC/HP de l'heure X ? - getConsoHeure(tarif, dateHeure)\nquelle est la consommation HC/HP du jour X ? - getConsoJour(tarif, dateHeure)\nquelle est la consommation HC/HP de la semaine X ? - getConsoSemaine(tarif, date)\nquelle est la consommation HC/HP du mois X ? - getConsoMois(tarif, date)\nquelle est la consommation HC/HP de l'année X ? - getConsoAnnee(tarif, date) Et ensuite on pourra partir sur des statistiques :\nmoyenne\ntendance\n... Projets\nhttp:vesta.homelinux.free.fr/wiki/demodulateurteleinformationedf.html http:lhuet.github.io/blog/2014/01/montage-teleinfo.html Projet de http:www.magdiblog.fr/gpio/teleinfo-edf-suivi-conso-de-votre-compteur-electrique/ Le relevé d'info compatible http:*hallard.me/teleinfo-emoncms/"},"score":1.75,"snippet":"…Pour l&#039;instant j&#039;installe tout sur le raspberyPi. Installer <mark>PHP</mark>\nLa lecture sur des informations va s&#039;effectuer en <mark>PHP</mark>. C&#039;est le plus simple pour moi parce que c&#039;est très proche du langage C.\nDans un premier temps il faut…","tier":2},{"article":{"uuid":"fd54e0ac-a2d1-4241-a4ef-0c040f55dfc5","slug":"20201129-mise-a-jour-wordpress","title":"Mise à jour Wordpress : bcmath","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-11-29 18:39:34","created_at":"2020-11-29 18:39:34","updated_at":"2020-11-29 18:39:34","plain":"Des extensions ont été mises à jour dans WordPress et le site de ma cousine est devenu inutilisable. Pourtant, un mail l'avait rassuré : Pourtant, l'accès au site se pourfandait de l'affichage d'un message technique :\n Composer detected issues in your platform: Your Composer dependencies require the following PHP extensions to be installed Le composant en question est bcmath, c'est un composant PHP, il faut donc l'installer :\n apt install php-bcmath Aucun redémarrage n'est nécessaire."},"score":1.75,"snippet":"…platform: Your Composer dependencies require the following <mark>PHP</mark> extensions to be installed Le composant en question est bcmath, c&#039;est un composant <mark>PHP</mark>, il faut donc l&#039;installer :\n apt install <mark>php</mark>-bcmath Aucun redémarrag…","tier":2},{"article":{"uuid":"3f25617e-fa19-405a-b54c-0b019b7af22c","slug":"connexions-adsl","title":"Connexion DSL","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-27 23:01:58","created_at":"2020-04-27 23:01:58","updated_at":"2020-04-27 23:01:58","plain":"Erreurs FEC - Erreur CRC\nLes données redondantes transmises au sein de chaque trame ADSL permettent de détecter et, dans une certaine mesure, de corriger les erreurs de réception[^note: UIT-T / Recommandation G.992.1 (06/99), chapitre 7.6]. Si l'erreur n'affecte que quelques bits dans la trame ADSL reçue, un mécanisme de correction d'erreur (forward error correction) incorporé au circuit de réception est en général capable de reconstruire les données abîmées. L'erreur est signalée dans les statistiques de réception sous la forme d'une « erreur FEC ». En revanche, si les données sont trop abîmées pour pouvoir être reconstituées, l'erreur est signalée sous la forme d'une « erreur CRC ». Dans certains cas, une erreur CRC affecte l'en-tête d'une cellule ATM, et cette altération est détectée par le récepteur, qui la signale sous la forme d'une « erreur HEC ». Enfin, si le taux d'erreur est suffisamment grand, la structure de la trame ADSL elle-même peut être affectée au point que plus aucune donnée reçue n'est utilisable. On constate alors une perte de tramage (« erreur LOF ») qui peut aller jusqu'à la perte totale de synchronisation (« erreur LOS »). En présence de ce type d'erreur, le modem ADSL réagit le plus souvent en interrompant la communication et en entamant une nouvelle procédure de synchronisation depuis le début. C'est le phénomène connu sous le nom de « désynchronisation » par les internautes. Le protocole ATM ne supporte pas nativement de système de correction des erreurs. Quand se produit une erreur suffisamment sévère pour que le dispositif de correction d'erreur natif de l'ADSL (FEC) ne puisse pas la corriger, c'est-à-dire une erreur de type CRC, les cellules ATM affectées par l'erreur sont supprimées en réception. Il manque donc un segment dans les données utilisateur reçues par le destinataire. En général, une couche de protocole de niveau supérieur (TCP par exemple) fait le nécessaire pour demander la retransmission de ce segment manquant..\n- <http:fr.wikipedia.org/wiki/AsymmetricDigitalSubscriberLine#Gestiondeserreursdetransmission> Une ligne ne devrait pas dépasser 500 FEC/s [^note: http:*forum.freenews.fr/index.php?topic=80354.0 il manque des explications sur cette valeur...] Une ligne ne devrait pas dépasser 10 CRC/h [^note: référence ?].\nExemple d'informations relevées\nTemps de disponibilité | Type DSL | Bande passante (montante/descendante) | Données transférées (envoyées/reçues) |\n---------------------- | -------- | ------------------------------------- | ------------------------------------- |\n2012/10/20 00:00 | 1 jour, 2:47:22 | ITU-T G.992.1 | 800 / 5.600 | 301,32 MB / 1,99 GB | |\n2012/10/28 17:10 | 0 jour, 8:17:45 | ITU-T G.992.1 | 800 / 6.720 | 344,64 MB / 1,85 GB | |\n2012/10/31 20:00 | 2 jours, 23:12:34 | ITU-T G.992.1 | 800 / 5.792 | 1,07 GB / 1,99 GB | |\n(montant/descendant) [dBm] | Puissance de sortie | Atténuation de ligne | Marge signal/bruit |\n-------------------------- | ------------------- | -------------------- | ------------------ |\n2012/10/20 00:00 | 12,3 / 19,8 | 23,5 / 44,5 | 19,0 / 10,4 | |\n2012/10/28 17:10 | 12,3 / 19,8 | 23,5 / 45,0 | 18,0 / 9,7 | |\n2012/10/31 20:00 | 12,3 / 19,8 | 23,5 / 44,5 | 19,0 / 10,0 | |\n(local/distant) | Système ID fournisseur | Chipset ID fournisseur | Perte de trames | Perte de signal | Perte de puissance | Perte de liaison (distant) | Secondes d'erreurs |\n--------------- | ---------------------- | ---------------------- | --------------- | --------------- | ------------------ | -------------------------- | ------------------ |\n2012/10/20 00:00 | TMMB / ---- | BDCM / BDCM | 0 / - | 0 / - | 0 / - | - | 66 / - | |\n2012/10/28 17:10 | TMMB / ---- | BDCM / BDCM | 0 / - | 0 / - | 0 / - | - | 13 / - | |\n2012/10/31 20:00 | TMMB / ---- | BDCM / BDCM | 0 / - | 0 / - | 0 / - | - | 880 / - | |\n(montant/descendant) | Erreurs FEC | FEC/s | Erreurs CRC | CRC/h | Erreurs HEC |\n-------------------- | ----------- | ----- | ----------- | ----- | ----------- |\n2012/10/20 00:00 | 0 / 2.518.060 | 25 | 0 / 151 | - / 5,3 | - / 142 | |\n2012/10/28 17:10 | 0 / 1.172.933 | 40 | 0 / 23 | - / 2,3 | - / 19 | |\n2012/10/31 20:00 | 0 / 8.704.560 | 34 | 0 / 173 | - / 2,3 | - / 163 | |"},"score":1.75,"snippet":"…as dépasser 500 FEC/s [^note: http:*forum.freenews.fr/index.<mark>php</mark>?topic=80354.0 il manque des explications sur cette valeur...] Une ligne ne devrait pas dépasser 10 CRC/h [^note: référence ?].\nExemple d&#039;informations relevé…","tier":2},{"article":{"uuid":"3b95d2aa-8ee1-4f5d-b616-2f985e7441c1","slug":"dht11-nano-mega328-lcd-i2c","title":"Sonde température et humidité sur Arduino","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:23:14","created_at":"2020-04-17 18:23:14","updated_at":"2020-04-17 18:23:14","plain":"Materiel utilisé\nArduino Nano\nsonde de température et d'humidité DHT11\nécran graphique LCD 2x16 avec bus I2C Code\nLe code suivant permet d'afficher les informations relevées sur la sonde DHT11. Pour cela j'utilise les méthodes et de la bibliothèque .\nLa fonction (is Not A Number) permet de faire connaitre une défaillance en cas d'une lecture non numérique des valeurs. Bibliographie\nCapteur de pression \nhttp:www.diopter.fr/index.php/technique/electro-numerique/43-capteur-de-pression-et-arduino Autre réalisation avec la sonde DHT11\nhttps:www.carnetdumaker.net/articles/utiliser-un-capteur-de-temperature-et-dhumidite-dht11-dht22-avec-une-carte-arduino-genuino/ Sonde de température DS18B20\nhttps:www.carnetdumaker.net/articles/mesurer-une-temperature-avec-un-capteur-1-wire-ds18b20-et-une-carte-arduino-genuino/ Comparatif des sondes DHT 11 et 22\nhttps:learn.adafruit.com/dht/overview Kit SunFounder\nhttps:www.sunfounder.com/learn/Sensor-Kit-v2-0-for-Arduino/lesson-11-humiture-detection-sensor-kit-v2-0-for-arduino.html Amazon\nsonde DHT 22 - https:www.amazon.fr/gp/product/B00AZG1RBK/ref=oxscacttitle2?ie=UTF8&psc=1&smid=A3I826466U8R8A"},"score":1.75,"snippet":"…ibliographie\nCapteur de pression \nhttp:www.diopter.fr/index.<mark>php</mark>/technique/electro-numerique/43-capteur-de-pression-et-arduino Autre réalisation avec la sonde DHT11\nhttps:www.carnetdumaker.net/articles/utiliser-un-capteur…","tier":2},{"article":{"uuid":"46579901-5c17-4f5f-b049-7d3785210e42","slug":"realiser-un-podcast","title":"Réaliser un podcast","category":"Podcasts","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:07:32","created_at":"2020-04-17 18:07:32","updated_at":"2020-04-17 18:07:32","plain":"Jeudi Geek est un rendez-vous où l'on échange librement sur la mise en œuvre des technologies informatiques. On aborde dans cette conférence \"Jeudi Geek\", destinée aux podcasteurs, streetcasteurs :\ncomposition d'un flux rss podcast\nhébergement\nnom de domaine\ntechniques des redirections\nmanipulation de WordPress avec le module PowerPress Chaque éléments de votre podcast peut être hébergés sur des fournisseurs différents :\\\\\ndescription + audio + image = flux podcast Résoudre une adresse podcast iTunes :\\\\\nhttp:picklemonkey.net/feedflipper-home/ Publier son podcast sur iTunes :\\\\\nhttp:podcastsconnect.apple.com/ Valider son flux podcast :\\\\\nhttp:castfeedvalidator.com/\\\\\nhttps:validator.w3.org/feed/\\\\\nhttps:podba.se/validate/ Feeburner\\\\\nhttps:feedburner.google.com/fb/a/myfeeds Quel thème est utilisé sur un site Word Press :\\\\\nhttp:whatwpthemeisthat.com/ Exemple de script PHP pour wraper un objet :\\\\ Suite à des problèmes techniques l'enregistrement vidéo n'a pas fonctionné correctement. Certains écrans que nous évoquons dans nos échanges n'apparaissent pas dans la vidéo immédiatement. Initialement, la réunion ne devait pas être diffusée publiquement. Merci pour votre compréhension.\n-Enregistré le jeudi 05 octobre 2017\nFeedBurner et Google Drive\nJe vous conseille la lecture de ses deux articles :\nhttp:blog.passeurs-de-savoirs.fr/2014/12/creer-podcast-les-outils-google.html\nhttps://www.lifewire.com/make-podcast-feed-from-blogger-1616434"},"score":1.75,"snippet":"…rd Press :\\\\\nhttp:whatwpthemeisthat.com/ Exemple de script <mark>PHP</mark> pour wraper un objet :\\\\ Suite à des problèmes techniques l&#039;enregistrement vidéo n&#039;a pas fonctionné correctement. Certains écrans que nous évoquons dans nos …","tier":2},{"article":{"uuid":"93d5ef39-a989-49ca-b2ab-cd2770364e1f","slug":"les-liens-utiles-du-dimanche","title":"Les liens utiles du Dimanche","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:06:52","created_at":"2020-04-17 18:06:52","updated_at":"2020-04-17 18:06:52","plain":"Redshift Ne vous abimez plus les yeux la nuit http:geekfault.org/2010/06/30/redshift-ne-vous-abimez-plus-les-yeux-la-nuit/\nDNSSEC/TLSA Validator DNSSEC/TLSA Validator is a web browser add-on which allows you to check the existence and validity of DNSSEC and TLSA records related to domain names. https:www.dnssec-validator.cz/\nTiny Tiny RSS Tiny Tiny RSS is an open source web-based news feed (RSS/Atom) reader and aggregator, designed to allow you to read news from any location, while feeling as close to a real desktop application as possible https:tt-rss.org/gitlab/fox/tt-rss/wikis/home\nJitsi Web conferences https:jitsi.org/ Le coin de la production\nLe son\nPyPopro Jitsi Meet supports recording but it splits each speaker's track in different mp3 files.\\\\\nThis script can create a bash script which will use sox to make one file per speaker. https:github.com/nipsource/pypopro\\\\ Une vue globale d'un projet de production :\\\\\nhttps:github.com/nipsource/pypopro/wiki/Post-production et Quelques plugins ...\nuBlock\nContent. Not clutter. Your web experience has never been this fast and efficient. uBlock is completely free and open-source. uBlock est un plugin Chorme Firefox ou Safari afin de bloquer les publicités dans le navigateur. Elle permet d'afficher plus rapidement le contenu qui nous intéresse. Il permet également d’économiser de la bande passante et éviter également les publicités vraiment trop envahissante. C'est une bonne alternative à la solution AdBlock et AdBlock Plus. https:www.ublock.org/\nDisconnect\nA better, more private Internet. Private browsing lets you visualize and block the otherwise invisible websites that track your search and browsing history. Disconnect peut se présenter par un plugin dans votre navigateur afin de supprimer les pisteurs : cookies, sites espions.... C'est une bonne alternative à la solution Ghostery. Le coin des Webmaster\nLet's encrypt\nLets Encrypt is a new Certificate Authority : Its free, automated, and open. SSL https:letsencrypt.org/\nAlternC http:demo.alternc.org/bromain.php Dégooglisons Internet\nhttp:sebsauvage.net/wiki/doku.php?id=php:shaarli https:roidelapluie.be/caldav-android.html Secure IMAP Server http:dovecot.org/ SOGo is fully supported and trusted groupware server with a focus on scalability and open standards. SOGo is released under the GNU GPL/LGPL v2 and above. http://www.sogo.nu/"},"score":1.75,"snippet":"…ttps:letsencrypt.org/\nAlternC http:demo.alternc.org/bromain.<mark>php</mark> Dégooglisons Internet\nhttp:sebsauvage.net/wiki/doku.<mark>php</mark>?id=<mark>php</mark>:shaarli https:roidelapluie.be/caldav-android.html Secure IMAP Server http:dovecot.org/ SOGo i…","tier":2},{"article":{"uuid":"9d331e8c-0817-493b-8851-dc5e5b020706","slug":"outils-en-ligne","title":"Outils en ligne","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:06:33","created_at":"2020-04-17 18:06:33","updated_at":"2020-04-17 18:06:33","plain":"Que vous soyez informaticien confirmé ou débutant, je vous propose des outils gratuits et en ligne pour développer, créer, éditer ou s'exprimer. Voyons voir ce que j'ai à vous raconter. PHP Object Generator\nSQL Designer"},"score":1.75,"snippet":"…er ou s&#039;exprimer. Voyons voir ce que j&#039;ai à vous raconter. <mark>PHP</mark> Object Generator\nSQL Designer","tier":2},{"article":{"uuid":"a36a2679-83ea-4c9d-bb33-2cb7dd55ec90","slug":"bluefish","title":"BlueFish Editor","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:06:18","created_at":"2020-04-17 18:06:18","updated_at":"2020-04-17 18:06:18","plain":"J'ai installer les programmes complémentaires suivants. Tidy sudo apt install tidy\n \nPHPbeautifier\n \n sudo apt install php-cli php-pear\n sudo pear install --alldeps channel:pear.php.net/phpbeautifier-0.1.15\n \nCSS tidy\n \n sudo apt install csstidy\n \nLynx sudo apt install lynx dos2unix sudo apt install dos2unix perltidy sudo apt install perltidy weblint sudo apt install weblint PHPCodeSniffer sudo pear install --alldeps channel:pear.php.net/PHPCodeSniffer"},"score":1.75,"snippet":"…s complémentaires suivants. Tidy sudo apt install tidy\n \n<mark>PHP</mark>beautifier\n \n sudo apt install <mark>php</mark>-cli <mark>php</mark>-pear\n sudo pear install --alldeps channel:pear.<mark>php</mark>.net/<mark>php</mark>beautifier-0.1.15\n \nCSS tidy\n \n sudo apt install c…","tier":2},{"article":{"uuid":"0c7b26ae-e33f-4e42-9282-1cd22fb18d2e","slug":"unix-time","title":"Convertisseur de temps UNIX","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:05:21","created_at":"2020-04-17 18:05:21","updated_at":"2020-04-17 18:05:21","plain":"Manipuler les temps au format UNIX : une nécessité pour beaucoup de webmasters, mais un vrai casse tête Chinois sans convertisseur. Voici un outil bien pratique pour vos converstion de dates au format UNIX et inversement. Pour rappel le format de stockage des temps UNIX est basé sur le décompte de toutes les secondes écoulées depuis le 1er janvier 1970. Toujours très utilisé en php/mysql & co. il est quasiment impossible de ne pas y avoir recours un jour ou lautre. En théorie ces conversions sont effectuées directement dans les scripts, sauf que… de temps à autre et pour diverses raisons il peut savérer très utile davior un petit convertisseur de ce type sous la main. Bref, voici : Convertisseur de temps UNIX"},"score":1.75,"snippet":"…oulées depuis le 1er janvier 1970. Toujours très utilisé en <mark>php</mark>/mysql &amp; co. il est quasiment impossible de ne pas y avoir recours un jour ou lautre. En théorie ces conversions sont effectuées directement dans les script…","tier":2},{"article":{"uuid":"6b51d57a-faa7-48ef-8cd9-8a8cc98adc4d","slug":"motorola-68000","title":"Motorola 68000","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 19:05:51","created_at":"2023-02-09 19:05:51","updated_at":"2023-02-09 19:05:51","plain":"Le Motorola 68000 est un microprocesseur 16 bits fabriqué par Motorola. Il a été introduit en 1979 et a été utilisé dans de nombreux ordinateurs personnels et professionnels dans les années 1980 et 1990. Il possède une architecture de type Von Neumann, avec un bus de données de 16 bits et un bus d'adresses de 24 bits, permettant l'accès à 16 Mo de mémoire. Il est capable d'exécuter des instructions à une vitesse de 8 MHz. Le Motorola 68000 a un boîtier à 160 broches, qui permet l'accès à ses différents ports d'entrée/sortie, ainsi qu'à ses buses d'adresses et de données. Il consomme environ 3 watts à 8 MHz. Il est capable de fonctionner à des fréquences allant de 4 à 8 MHz en standard, mais certains modèles overclockés ont été utilisés jusqu'à 16 MHz. Il possède 29 registres internes. Le Motorola 68000 a été utilisé dans de nombreux systèmes informatiques célèbres, notamment :\nLes ordinateurs Macintosh d'Apple jusqu'à la fin des années 1990\nLes ordinateurs Atari ST et Atari Falcon\nLes ordinateurs Amiga d'Commodore\nLes ordinateurs Acorn Archimedes\nLes ordinateurs Sinclair QL\nLes ordinateurs HP 9000\nLes premiers ordinateurs NeXT\nLes ordinateurs Sun workstations.\nLe 68000 est aussi utilisé pour de nombreux systèmes embarqués et équipements industriels. Le Motorola 68000 est un microprocesseur 16 bits qui a été introduit en 1979 par la société Motorola. Conçu à l'origine pour être utilisé dans des applications industrielles et scientifiques, il a finalement été adopté par de nombreux fabricants d'ordinateurs personnels et professionnels. Il était considéré comme l'un des microprocesseurs les plus avancés de l'époque. L'un des plus célèbres systèmes qui utilisait le 68000 est les premiers ordinateurs Macintosh d'Apple. En utilisant ce processeur, les Macintosh ont pu se démarquer par rapport aux ordinateurs IBM compatibles de l'époque qui utilisaient des processeurs compatibles x86 moins puissants. Les ordinateurs Macintosh ont été un succès commercial, en grande partie grâce à leur puissance de traitement et à leur interface utilisateur intuitive. Le 68000 a également été utilisé dans de nombreux autres ordinateurs célèbres tels que les ordinateurs Atari ST et Atari Falcon, les ordinateurs Amiga de Commodore, qui étaient très populaires dans les milieux professionnels et des jeux vidéo. Les ordinateurs Archimedes d'Acorn ont également été utilisés dans les écoles britanniques dans les années 1980 et 1990 pour l'enseignement de l'informatique."},"score":1.5,"snippet":"Le Motorola 68000 est un microprocesseur 16 bits fabriqué par Motorola. Il a été introduit en 1979 et a été utilisé dans de nombreux ordinateurs personnels et professionnels dans les années 1980 et 1990. Il possède une a…","tier":2},{"article":{"uuid":"43181062-4869-4bf8-8b04-7a9785e3e3d5","slug":"ordinateurs-personnels-ibm","title":"Ordinateurs personnels IBM","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-09 19:05:25","created_at":"2023-02-09 19:05:25","updated_at":"2023-02-09 19:05:25","plain":"IBM (International Business Machines) a lancé sa première génération de PC (Personal Computer) en 1981. Cette machine, appelée IBM PC, était basée sur un microprocesseur Intel 8088 et utilisait un système d'exploitation PC-DOS (plus tard rebaptisé MS-DOS par Microsoft). IBM a utilisé une architecture ouverte pour le PC, ce qui a permis à d'autres fabricants de cloner la machine et de proposer des ordinateurs compatibles IBM PC. Au fil des années, IBM a continué à développer et à mettre à jour sa ligne de PC, en lançant des modèles tels que l'IBM PC/XT en 1983 et l'IBM PC/AT en 1984. Ces machines ont été très populaires dans les entreprises et les organisations gouvernementales, et ont contribué à populariser l'utilisation des ordinateurs personnels dans le monde des affaires. Malgré le succès initial de ses ordinateurs personnels, IBM a rencontré des difficultés à maintenir sa part de marché face à la concurrence croissante de fabricants tels que Compaq, Dell et HP. En 2005, IBM a décidé de se retirer du marché des ordinateurs de bureau et de se concentrer sur les services informatiques et les technologies de l'information. IBM a continué à vendre des ordinateurs portables sous sa marque jusqu'en 2005, après cette date il a concentré ses efforts sur les services informatiques, les technologies de l'information et les ordinateurs serveurs."},"score":1.5,"snippet":"IBM (International Business Machines) a lancé sa première génération de PC (Personal Computer) en 1981. Cette machine, appelée IBM PC, était basée sur un microprocesseur Intel 8088 et utilisait un système d&#039;exploitation …","tier":2},{"article":{"uuid":"79bd0f3b-a66d-4402-878c-6a6ba3af149b","slug":"panorama-des-familles-de-soc-espressif","title":"Panorama des familles de SoC Espressif","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-03 19:45","created_at":"2023-02-03 19:45:47","updated_at":"2026-05-13 18:35:04","plain":"Introduction\r\n\r\nEspressif Systems produit plusieurs familles de System on Chip (SoC) dédiés à l'IoT, toutes orientées vers la connectivité sans fil et le faible coût. Les deux grandes lignées sont l'ESP8266 (Wi-Fi seul) et l'ESP32 (Wi-Fi + Bluetooth), cette dernière s'étant elle-même ramifiée en plusieurs sous-familles (S, C, H, P).\r\n\r\nLe tableau de synthèse ci-dessous donne un aperçu rapide ; chaque famille est ensuite détaillée.\r\nFamille | Année | Cœur | Wi-Fi | Bluetooth | Particularité |\r\n---|---|---|---|---|---|\r\nESP8266 | 2014 | Tensilica L106 32 bits, 1 cœur, 80 MHz | 802.11 b/g/n | non | Premier SoC Wi-Fi grand public bon marché |\r\nESP32 | 2016 | Tensilica LX6 32 bits, 1 ou 2 cœurs, 240 MHz | 802.11 b/g/n | BT 4.2 + BLE | Polyvalent, cœur double |\r\nESP32-S2 | 2020 | Tensilica LX7, 1 cœur | 802.11 b/g/n | non | USB OTG natif, faible consommation |\r\nESP32-S3 | 2021 | Tensilica LX7, 2 cœurs, 240 MHz | 802.11 b/g/n | BT 5.0 LE | Accélérateur d'instructions vectorielles pour l'IA |\r\nESP32-C3 | 2021 | RISC-V 32 bits, 1 cœur, 160 MHz | 802.11 b/g/n | BT 5.0 LE | Premier ESP en RISC-V |\r\nESP32-C6 | 2023 | RISC-V, 2 cœurs (HP + LP) | Wi-Fi 6 (802.11ax), Thread, Zigbee | BT 5.0 LE | Multi-protocoles |\r\nESP32-H2 | 2023 | RISC-V, 1 cœur | non | BT 5.0 LE, Thread, Zigbee | Sans Wi-Fi, dédié 802.15.4 |\r\nESP32-P4 | 2024 | RISC-V, 2 cœurs HP + 1 LP, 400 MHz | non (radio externe) | non | Application processor haute performance |\r\n\r\nESP8266 : le pionnier\r\n\r\n\r\n\r\nL'ESP8266 (sortie en 2014) est le SoC qui a démocratisé l'IoT Wi-Fi grand public. Pour quelques euros, il offre un cœur Tensilica Xtensa L106 32 bits à 80 MHz, une radio Wi-Fi 2,4 GHz complète (802.11 b/g/n) et une pile TCP/IP, le tout dans un boîtier QFN32 de 5 × 5 mm.\r\n\r\nCaractéristiques marquantes :\r\nun seul cœur, 80 ou 160 MHz ;\r\npas de Bluetooth, pas de BLE ;\r\npas de flash interne : code chargé depuis une flash SPI externe (généralement 512 Kio à 4 Mio) ;\r\n80 Kio de RAM utilisateur ;\r\n17 GPIO théoriques (mais peu exposées sur les petits modules comme l'ESP-01).\r\nCorrection d'une idée reçue fréquente : l'ESP8266 ne dispose pas de Bluetooth, et l'ESP32 n'est pas un membre de la famille ESP8266 mais un SoC distinct, sorti plus tard. Le Bluetooth n'est apparu chez Espressif qu'avec l'ESP32 en 2016.\r\n\r\nModules à base d'ESP8266\r\n\r\nLe SoC nu est rarement utilisé seul : il est généralement vendu intégré sur un petit module (PCB + flash + antenne + brochage standardisé) produit par AI-Thinker ou directement par Espressif.\r\nOrigine | Modules les plus utilisés |\r\n---|---|\r\nAI-Thinker | ESP-01, ESP-01S, ESP-07, ESP-12E, ESP-12F, ESP-12S |\r\nEspressif | ESP-WROOM-02, ESP-WROOM-02D, ESP-WROOM-02U, ESP-WROOM-S2 |\r\n\r\nLes références plus anciennes ou intermédiaires (ESP-02 à ESP-11, ESP-13, ESP-14, ESP-01M) existent mais n'ont jamais réellement percé ou ont été remplacées par les ESP-12x.\r\n\r\nListe complète sur Wikipédia : <https://en.wikipedia.org/wiki/ESP8266>\r\n\r\nESP32 : Wi-Fi et Bluetooth\r\n\r\n\r\n\r\nL'ESP32 (sortie en 2016) marque un saut générationnel. Au-delà du Wi-Fi déjà présent sur l'ESP8266, il ajoute le Bluetooth Classic 4.2 et le Bluetooth Low Energy (BLE), monte à 240 MHz, propose une version double cœur, et multiplie les périphériques.\r\n\r\nCaractéristiques marquantes :\r\ncœur Tensilica Xtensa LX6, mono ou double cœur selon les modèles ;\r\nWi-Fi 2,4 GHz + Bluetooth 4.2 + BLE ;\r\njusqu'à 520 Kio de SRAM ;\r\nnombreuses interfaces : 3 UART, 4 SPI, 2 I²C, 2 I²S, CAN, Ethernet MAC, capteur Hall, capteur tactile capacitif, ADC 12 bits sur jusqu'à 18 canaux ;\r\ncoprocesseur ULP (Ultra Low Power) capable de tourner pendant que les cœurs principaux dorment.\r\n\r\nModules ESP32 (Tensilica LX6)\r\n\r\nTous fabriqués par Espressif, certifiés FCC/CE :\r\nModule | Particularité |\r\n---|---|\r\nESP32-WROOM-32 | Le plus répandu, antenne PCB |\r\nESP32-WROOM-32D | Version révisée avec puce double cœur |\r\nESP32-WROOM-32U | Connecteur U.FL pour antenne externe |\r\nESP32-SOLO-1 | Variante mono-cœur |\r\nESP32-WROVER / WROVER-B / WROVER-I / WROVER-IB | Ajout d'une PSRAM (4 ou 8 Mio) pour les applications gourmandes en mémoire (caméra, audio) |\r\nESP32-PICO-V3-ZERO | SiP très compact intégrant flash + cristal |\r\n\r\nPlusieurs déclinaisons d'audiosystème et d'OEM existent autour de cette base (ESP32-A1S de AI-Thinker pour l'audio, NINA-W13x d'u-blox certifiés industriellement, etc.), mais ne sont que des reconditionnements du même SoC.\r\n\r\nListe détaillée : <https://en.wikipedia.org/wiki/ESP32>\r\n\r\nESP32-S : USB natif et IA embarquée\r\n\r\nLa série ESP32-S introduit le cœur Xtensa LX7, plus performant, et abandonne le Bluetooth sur la S2 (réintroduit sur la S3 en version BLE 5.0).\r\nSoC | Cœurs | Wi-Fi | BLE | Atout principal |\r\n---|---|---|---|---|\r\nESP32-S2 | 1 × LX7 | oui | non | USB OTG natif, faible consommation |\r\nESP32-S3 | 2 × LX7 | oui | BLE 5.0 | Accélération vectorielle pour TinyML / vision |\r\n\r\nModules courants :\r\nsérie S2 : , , , ;\r\nsérie S3 : , , .\r\n\r\nLe suffixe désigne un connecteur d'antenne externe (U.FL), le suffixe une variante industrielle (plage de température étendue).\r\n\r\nESP32-C : passage au RISC-V\r\n\r\nLa série ESP32-C marque le passage d'Espressif à l'architecture RISC-V open source. Plus simple, moins gourmande, et facturée moins cher que les cœurs Xtensa propriétaires.\r\nSoC | Cœur | Wi-Fi | BLE | Autres protocoles |\r\n---|---|---|---|---|\r\nESP32-C3 | RISC-V 32 bits, 160 MHz | 802.11 b/g/n | BLE 5.0 | — |\r\nESP32-C6 | 2 × RISC-V (HP 160 MHz + LP) | Wi-Fi 6 (802.11ax) | BLE 5.0 | Thread, Zigbee (802.15.4) |\r\n\r\nL'ESP32-C6 est particulièrement notable : c'est le premier SoC d'Espressif compatible Matter sur Thread et Wi-Fi.\r\n\r\nModules : , , et plus récemment les .\r\n\r\nESP32-H : 802.15.4 sans Wi-Fi\r\nSoC | Cœur | Wi-Fi | BLE | Autres |\r\n---|---|---|---|---|\r\nESP32-H2 | RISC-V 32 bits, 96 MHz | non | BLE 5.0 | Thread, Zigbee (802.15.4) |\r\n\r\nL'ESP32-H2 est conçu pour les nœuds Matter / Thread / Zigbee qui n'ont pas besoin de Wi-Fi (capteurs basse consommation derrière un routeur). Il se couple typiquement à un ESP32-C6 ou à une box compatible Thread.\r\n\r\nESP32-P : processeur d'application\r\nSoC | Cœurs | Connectivité | Rôle |\r\n---|---|---|---|\r\nESP32-P4 | 2 × RISC-V HP (400 MHz) + 1 LP | aucune radio interne | Application processor pour interfaces homme-machine évoluées (LCD haute résolution, caméra MIPI-CSI, audio…) |\r\n\r\nL'ESP32-P4 sort du modèle « SoC IoT autonome » : il est destiné à être couplé à un autre ESP (typiquement un C6) qui apporte la radio. C'est la première incursion d'Espressif sur le segment des microcontrôleurs applicatifs hautes performances.\r\n\r\nComment choisir\r\n\r\nQuelques règles simples pour s'y retrouver lors du choix d'un SoC :\r\nProjet simple, Wi-Fi seul, budget serré : ESP8266 (sur un module ESP-12F ou une WeMos D1 mini) suffit largement.\r\nProjet général, Wi-Fi + Bluetooth, beaucoup de GPIO : ESP32-WROOM-32 reste la valeur sûre.\r\nBesoin d'USB natif, de basse consommation, ou de TinyML : ESP32-S2 ou S3.\r\nCoût minimal et BLE moderne : ESP32-C3.\r\nThread, Zigbee, Matter, Wi-Fi 6 : ESP32-C6 (avec Wi-Fi) ou ESP32-H2 (sans Wi-Fi).\r\nIHM riche, écran haute définition, caméra : ESP32-P4 couplé à un C6.\r\n\r\nPour aller plus loin\r\nL'ESP-01 : présentation et premiers pas\r\nPremier programme ESP-01\r\nESP8266 : commandes AT\r\nPage produits Espressif : <https://www.espressif.com/en/products/socs>\r\nWikipédia ESP8266 : <https://en.wikipedia.org/wiki/ESP8266>\r\nWikipédia ESP32 : <https://en.wikipedia.org/wiki/ESP32>\r\n```"},"score":1.5,"snippet":"Introduction\r\n\r\nEspressif Systems produit plusieurs familles de System on Chip (SoC) dédiés à l&#039;IoT, toutes orientées vers la connectivité sans fil et le faible coût. Les deux grandes lignées sont l&#039;ESP8266 (Wi-Fi seul) …","tier":2},{"article":{"uuid":"51dc3827-ad16-4494-9f16-b279f8fd2a09","slug":"noyau-unix","title":"Noyau UNIX","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-01-26 23:58:12","created_at":"2023-01-26 23:58:12","updated_at":"2023-01-26 23:58:12","plain":"Unix est un système d'exploitation multi-utilisateur et multi-tâche qui a été développé au début des années 1970 par Ken Thompson et Dennis Ritchie de Bell Labs. Il a été conçu pour être utilisé sur des ordinateurs mainframes et minicomputers, mais a également été adapté pour fonctionner sur des ordinateurs personnels et des serveurs. Le noyau Unix est le cœur du système d'exploitation qui gère les ressources matérielles et logicielles de l'ordinateur, comme la mémoire, les processeurs, les périphériques d'entrée/sortie et les réseaux. Il est responsable de la gestion des processus, de la mémoire, des entrées/sorties et des réseaux. Il permet aux utilisateurs de communiquer avec l'ordinateur en utilisant une interface en ligne de commande, qui est une interface basée sur des commandes textuelles, et fournit des outils pour la gestion des fichiers et des répertoires. Il est également conçu pour être sûr et stable, en utilisant des mécanismes de sécurité pour protéger les données et les ressources de l'utilisateur contre les logiciels malveillants et les attaques extérieures. Le noyau Unix est un noyau monothread, c'est-à-dire qu'il ne peut gérer qu'un seul thread d'exécution à la fois, il est aussi mononucléaire, c'est-à-dire qu'il ne gère qu'un seul processeur. Les systèmes d'exploitation basés sur Unix, comme Linux ou MacOS, utilisent des noyaux hybrides qui combinent les fonctionnalités du noyau Unix original avec des fonctionnalités supplémentaires pour prendre en charge des processeurs multi-coeurs et desmulti-coeurs threads multiples. Il existe de nombreux autres noyaux basés sur Unix, tels que :\n--\nBSD Les systèmes d'exploitation BSDLe noyau XNU est développé par Apple et est utilisé uniquement dans les systèmes d'exploitation Mac OS X et iOS (Berkeley Software Distribution) sont basés sur Unix et utilisent leur propre noyau. Les systèmes d'exploitation BSD les plus connus sont FreeBSD, OpenBSD, et NetBSD.\n--\nSolaris Ce système d'exploitation est développé par Oracle Corporation et utilise son propre noyau, appelé Solaris Kernel. Il est utilisé sur les plateformes SPARC et x86.\n--\nAIX Ce système d'exploitation est développé par IBM et utilise son propre noyau, appelé AIX kernel. Il est utilisé sur les plateformes IBM Power Systems.\n--\nHP-UX Ce système d'exploitation est développé par Hewlett Packard Enterprise et utilise son propre noyau, appelé HP-UX kernel. Il est utilisé sur les plateformes HP 9000 et HP Integrity.\n--\nLinux Le noyau Linux est développé par une communauté de développeurs et est utilisé dans de nombreux systèmes d'exploitation différents, notamment Linux, Android, Chrome OS.\n--\nIRIX Ce système d'exploitation était développé par SGI (Silicon Graphics) et utilisait son propre noyau, appelé IRIX kernel. Il était utilisé sur les plateformes SGI MIPS.\n--\nXNU Le noyau XNU a été développé par Apple pour la première fois en 2000, pour être utilisé dans le système d'exploitation Mac OS X 10.0, qui a été lancé plus tard cette année-là. Il est utilisé uniquement dans les systèmes d'exploitation Mac OS X et iOS. Le noyau XNU est un noyau hybride qui combine des éléments de noyaux open-source, tels que BSD et Mach, avec des éléments propriétaires développés par Apple. Il y a d'autres noyaux basés sur Unix qui sont moins connus ou qui ne sont plus maintenus. Ces noyaux sont généralement utilisés dans des systèmes d'exploitation spécifiques ou sur des plateformes spécifiques."},"score":1.5,"snippet":"Unix est un système d&#039;exploitation multi-utilisateur et multi-tâche qui a été développé au début des années 1970 par Ken Thompson et Dennis Ritchie de Bell Labs. Il a été conçu pour être utilisé sur des ordinateurs mainf…","tier":2},{"article":{"uuid":"ee0574f2-9e51-444f-8e8c-8e7982321015","slug":"releve-maneul-du-compteur-electrique","title":"Le relevé manuel","category":"Journal geek","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-01-07 17:51:45","created_at":"2023-01-07 17:51:45","updated_at":"2023-01-07 17:51:45","plain":"Depuis des années je m'efforce à effectuer mon relevé journalier, avec mon alarme quotidienne à 07h30. Et oui, tous les matins, je m'approche des boutons du compteur, avec mes gros doigts boudinés, afin de faire défiler les index HC/HP. Je les relève soigneusement dans un tableau Excel afin d'observer l’évolution de la consommation jour par jour. Et puis et venu l'idée de relever également les températures mini/maxi extérieure et intérieure afin d'essayer d'établir une corrélation entre chauffage électrique et consommation. Enfin, et venu le temps de la lassitude, de l'oubli et de l'indifférence en constatant inexorablement que le montant de mes factures évoluaient au gré des taxes et taxes de taxes avec rattrapage sur les deux années antérieures avec une espèce destimation de la consommation par proratisation de l'évolution des taxes. L'espèce d'estimation étant déjà une estimation de l'estimation de consommation étant réajustée par mes relevées que je transmettais à EDF (quand j'y pensai en temps et en heure). La nouvelle année aidant, je décidais de ne pas me laisser abattre pas cet espèce de papier reçu tous le deux mois, appelée également facture, me prélevant une somme indéterminée par des espèces de taxes et provisions divers. La décision fut prise de continuer de surveiller cette consommation énergétique en automatisant le plus possible les processus."},"score":1.5,"snippet":"Depuis des années je m&#039;efforce à effectuer mon relevé journalier, avec mon alarme quotidienne à 07h30. Et oui, tous les matins, je m&#039;approche des boutons du compteur, avec mes gros doigts boudinés, afin de faire défiler …","tier":2},{"article":{"uuid":"125b2de4-733c-4798-96a9-3c0ba1858a0c","slug":"protocole-de-communication-du-compteur-electrique","title":"Protocole de communication","category":"Électronique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2021-01-01 22:00:33","created_at":"2021-01-01 22:00:33","updated_at":"2021-01-01 22:00:33","plain":"Le bornier de communication du compteur électrique, après démodulation ASK, est une liaison série qui délivre des caractères ASCII suivant le protocole suivant :\n1200 bits/s\n7 bits/caractères\n1 bit de stop\nparité paire Un groupe de messages complet constitue une trame qui débute par le caractère STX (code ASCII 02xF), et se termine par ETX (03xF). Chaque message composant la trame comprend :\nun caractère LF (0AxF)\nune étiquette de 4 à 8 caractères\nun espace SP (20xF)\ndes données de 1 à 12 caractères\nun espace SP (20xF)\nun caractère de contrôle\nun caractère CR (0DxF) Ces différents messages donnent les indications suivantes en fonction de l'abonnement souscrit\ndesignation | option | code | nb caractères | unité |\n----------- | ------ | ---- | ------------- | ----- |\nn° d'identification du compteur, étiquette | | ADCO | 12 |\noption tarifaire (type d'abonnement) | | OPTARIF | 4 |\nintensité souscrite | | ISOUSC | 2 | ampères |\nindex | base | BASE | 9 | Wh |\nindex heures creuses | heures creuses | HC HC | 9 | Wh |\nindex heures pleines | heures creuses | HC HP | 9 | Wh |\nindex heures normales | EJP | EJP HN | 9 | Wh |\nindex heures de pointe mobile | EJP | EJP PM | 9 | Wh |\nindex heures creuses jours bleus | tempo | BBR HC JB | 9 | Wh |\nindex heures pleines jours bleus | tempo | BBR HP JB | 9 | Wh |\nindex heures creuses jours blancs | tempo | BBR HC JW | 9 | Wh |\nindex heures pleines jours blancs | tempo | BBR HP JW | 9 | Wh |\nindex heures creuses jours rouges | tempo | BBR HC JR | 9 | Wh |\nindex heures pleines jours rouges | tempo | BBR HP JR | 9 | Wh |\npréavis EJP \\\\ 30mn avant période EJP | EJP | PEJP | 2 |\npériode tarifaire en cours | | PTEC | 4 |\ncouleur du lendemain | tempo | DEMAIN |\nintensité instantanée | | IINST | 3 | ampères |\navertissement de dépassement de puissance souscrite\\\\ message émis uniquement en cas de dépassement effectif, dans ce cas il est immédiat | | ADPS | 3 | ampères |\nintensité maximale | | IMAX | 3 | ampères |\npuissance apparente | | PAPP | 5 | volt ampères |\ngroupe horaire | heures creuses ou\\\\ tempo | HHPHC | 1 |\nmot d’état (autocontrôle) | | MOTDETAT | 6 |"},"score":1.5,"snippet":"Le bornier de communication du compteur électrique, après démodulation ASK, est une liaison série qui délivre des caractères ASCII suivant le protocole suivant :\n1200 bits/s\n7 bits/caractères\n1 bit de stop\nparité paire U…","tier":2},{"article":{"uuid":"f8184dc2-72f0-408d-ac3c-47d117e0d04c","slug":"actualite-burger-tech-sinformer-sur-le-high-tech","title":"S'informer sur la technologie","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-04-17 18:06:16","created_at":"2020-04-17 18:06:16","updated_at":"2020-04-17 18:06:16","plain":"14 avril 2019\nLe Wi-Fi 6 met le cap sur la bande des 6 GHz\nTechnologie : La Wi-Fi Alliance a annoncé l'adoption d'une nouvelle terminologie, Wi-Fi 6E, pour les appareils pouvant fonctionner sur la bande des 6 GHz. Une bande qui promet un débit encore supérieur à ceux promis par le Wi-Fi 6.\nPierre Benhamou Par Pierre Benhamou | Lundi 06 Janvier 2020 Le Wi-Fi 6 met le cap sur la bande des 6 GHz Alors que le Wi-Fi 6 montre petit à petit le bout de son nez, la Wi-Fi Alliance, le consortium en charge de cette technologie, a annoncé en fin de semaine dernière avoir adopté une nouvelle terminologie pour les les appareils Wi-Fi 6 capables de fonctionner sur la bande des 6 GHz. Ces derniers porteront désormais le nom de Wi-Fi 6E, alors que les appareils compatibles avec la nouvelle norme Wi-Fi 6 mais fonctionnant uniquement sur les bandes des 2,4 GHz et 5 GHz continueront à se voir classifiés comme Wi-Fi 6. « La Wi-Fi 6E apporte un nom commun dans l'industrie pour les utilisateurs de Wi-Fi, afin d'identifier les appareils qui offriront les caractéristiques et les capacités de la Wi-Fi 6 - y compris une performance plus élevée, une latence plus faible et des débits de données plus rapides - étendues à la bande des 6 GHz », a fait savoir le consortium avant de vanter les multiples mérites de ces nouveaux appareils capables d'avoir recours à cette bande des 6 GHz, « une partie importante du spectre sans licence qui pourrait bientôt être mise à disposition par les régulateurs du monde entier ». Selon la Wi-Fi Alliance, la bande des 6 GHz a de multiples mérites. Elle dispose en effet d'assez de spectre contigu pour fournir 7 canaux de 160 MHz et 14 canaux de 80 MHz, a fait savoir l'organisation, qui relève qu'un tel spectre supplémentaire est nécessaire pour gérer les applications à large bande passante telles que la diffusion vidéo haute définition et la réalité virtuelle. En outre, cette bande « est bien adaptée pour faciliter la croissance continue du Wi-Fi dans les zones mal desservies en raison de sa proximité avec la fréquence de 5 GHz où le Wi-Fi fonctionne déjà, de la plus grande disponibilité de canaux de plus grande taille et de l'accessibilité à un spectre clair avec moins d'interférence des appareils Wi-Fi 4 ou Wi-Fi 5 existants », précise-t-elle. publicité\nDe quoi renforcer l'implantation du Wi-Fi 6 ? Les appareils avec la marque Wi-Fi 6E devraient apparaître une fois que les approbations réglementaires dans le monde entier commenceront à se produire. « Alors que l'application et la demande globale de Wi-Fi continuent à augmenter, l'accès au spectre sans licence du 6 GHz permettra au Wi-Fi de continuer à apporter les vastes innovations et les avantages socio-économiques qu'elle apporte aujourd'hui au marché, tout en contribuant à garantir que le Wi-Fi puisse répondre aux nouvelles promesses de l'ère de la 5G et au-delà », a indiqué Chuck Lukaszewski, le vice-président des normes et de la stratégie sans fil. « La bande des 6 GHz aidera à répondre au besoin croissant de capacité du spectre Wi-Fi pour que les utilisateurs de Wi-Fi continuent à bénéficier de la même excellente expérience d'utilisation avec leurs appareils », a de son côté appuyé le président de la Wi-Fi Alliance, Edgar Figueroa. Le Wi-Fi 6E devrait encore renforcer l'essor du Wi-Fi 6 qui fait, depuis septembre dernier, l'objet d'un programme de certification permettant à des entreprises comme Apple et Samsung de labelliser officiellement leurs appareils comme étant capables de prendre en charge le protocole IEEE 802.11ax, de plus grande capacité. Pour rappel, ce protocole, qui fonctionne dans les bandes 2,4 GHz et 5 GHz - à l'instar des générations précédentes de la technologie sans fil IEEE 802.11 - promet plus de capacité et de performances lorsque de nombreux périphériques se connectent au même routeur. S'il reprend les fréquences déjà adoptées par ses aînés, le Wi-Fi 6 - ou 802.11ax - promet en effet des débits entre 20 et 40 % supérieurs à la version précédente, le Wi-Fi 5, aussi connu sous l'appellation technique de 802.11ac. Comment ? Grâce à un meilleur encodage des données qui permet de faire transiter plus de datas sur une même fréquence et à des processus d'encodage et de décodage améliorés du côté des processeurs compatibles, à l'image du mode de modulation d'amplitude en quadrature 1024 (1024-QAM). Mais si l'utilisation de la bande des 6 GHz devrait encore amplifier la puissance du Wi-Fi 6, son effet sur la généralisation de cette nouvelle technologie reste encore à prouver dans les faits. Source : https:www.zdnet.fr/actualites/le-wi-fi-6-met-le-cap-sur-la-bande-des-6-ghz-39896751.htm\nLe Wifi de Google aux abonnés absents\nSi votre travail consiste à protéger l'infrastructure informatique, il pourrait bien valoir la peine de lire le nouveau livre gratuit de 500 pages de Google qui détaille les nombreuses défaillances affectant les systèmes internes de Google et des produits comme YouTube. Il est important de noter que ce nouveau livre révèle également comment ses équipes d'ingénierie et de sécurité des sites coopèrent pour protéger les systèmes clés de Google, d'Android à Chrome, en passant par Gmail, Search et Google Cloud. Une vue maison sur le SRE (Site Reliability Engineering) Peu d'entreprises dans le monde opèrent à l'échelle de Google, mais il y a néanmoins des leçons à tirer de ce document, qui est publié alors que la pandémie de Coronavirus COVID-19 rend plus important que jamais la fiabilité des systèmes en ligne. Le livre présente les points de vue d'équipes qui pratiquent ce qu'on appelle l'ingénierie de la fiabilité des sites (SRE - Site Reliability Engineering), l'approche de Google pour coordonner les ingénieurs en logiciels qui développent ses produits et ses systèmes, et les équipes opérationnelles qui assurent le fonctionnement du produit. Google, qui utilise les principes de l'ESR depuis près de deux décennies, le définit comme \"ce que vous obtenez lorsque vous traitez les opérations comme s'il s'agissait d'un problème de logiciel\". Le lien sécurité entre les développeurs et les équipes opérationnelles Le texte, intitulé 'Building Secure and Reliable Systems', se concentre sur la façon dont Google apporte une approche SRE à la sécurité, et le rôle de la sécurité dans le développement et les opérations de produits logiciels. Les précédents ouvrages de Google sur le SRE couvraient les meilleures pratiques en la matière, mais ne traitaient pas des liens entre fiabilité et sécurité. \"Pour de bonnes raisons, les équipes de sécurité des entreprises ont largement mis l'accent sur la confidentialité. Cependant, les entreprises reconnaissent souvent que l'intégrité et la disponibilité des données sont tout aussi importantes, et abordent ces domaines avec des équipes différentes\", explique Royal Hansen, l'un des premiers responsables SRE pour Gmail et l'actuel vice-président de l'ingénierie de la sécurité de Google. \"La fonction SRE est une approche de la fiabilité qui est la meilleure de sa catégorie. Toutefois, elle joue également un rôle dans la détection en temps réel des problèmes techniques et la réponse à ceux-ci - y compris les attaques liées à la sécurité sur les accès ou les données sensibles. En fin de compte, si les équipes d'ingénieurs sont souvent séparées sur le plan organisationnel en fonction de compétences spécialisées, elles ont un objectif commun : assurer la qualité et la sécurité du système ou de l'application\". Un système peut-il être fiable s'il n'est pas fondamentalement sûr ? Ou peut-il être sûr s'il n'est pas fiable ? Le livre s'ouvre sur les questions suivantes : un système peut-il être considéré comme vraiment fiable s'il n'est pas fondamentalement sûr ? Ou peut-il être considéré comme sûr s'il n'est pas fiable ? La première histoire mentionnée par Google est celle d'un échec en cascade en 2012, après que son service de transport ait annoncé que le mot de passe Wi-Fi de ses bus reliant ses campus de la baie de San Francisco avait changé. Le flot d'employés essayant de changer leur mot de passe a surchargé son gestionnaire de mots de passe et l'a mis hors ligne, ainsi que ses trois services de secours. Google avait besoin d'une carte à puce pour redémarrer le système et en disposait dans plusieurs bureaux à travers le monde, mais ne pouvait pas y accéder aux États-Unis. L'entreprise a donc fait appel à des ingénieurs en Australie pour en trouver une là-bas. Il s'est avéré qu'elle était enfermée dans un coffre-fort avec un code que l'ingénieur avait oublié. Google et le mystère de la carte à puce Et où le code avait-il été sauvegardé ? Bien sûr, dans le gestionnaire de mots de passe qui était désormais inaccessible. Mais il y a eu encore plus de problèmes lorsque les ingénieurs ont tenté de redémarrer le gestionnaire de mots de passe. \"Ce jour-là, en septembre, l'équipe des transports de l'entreprise a envoyé un courriel à des milliers d'employés pour leur annoncer que le mot de passe du WiFi avait changé. Le pic de trafic qui en a résulté était bien plus important que ce que le système de gestion des mots de passe - qui avait été développé des années auparavant pour un petit groupe d'administrateurs système - pouvait gérer\". \"La charge a fait que la réplique primaire du gestionnaire de mots de passe ne répondait plus, de sorte que l'équilibreur de charge a détourné le trafic vers la réplique secondaire, qui a rapidement échoué de la même manière. À ce stade, le système a bipé l'ingénieur de garde. L'ingénieur n'avait aucune expérience en matière de réponse aux pannes du service : le gestionnaire de mots de passe était supporté au mieux de ses capacités et n'avait jamais subi de panne au cours de ses cinq années d'existence. L'ingénieur a tenté de redémarrer le service, mais ne savait pas qu'un redémarrage nécessitait une carte à puce\". De l'avantage d'insérer correctement une carte dans un lecteur \"Ces cartes à puce étaient stockées dans plusieurs coffres-forts dans différents bureaux de Google à travers le monde, mais pas à New York, où se trouvait l'ingénieur de garde. Lorsque le service n'a pas pu redémarrer, l'ingénieur a contacté un collègue en Australie pour récupérer une carte à puce. À son grand désarroi, l'ingénieur australien n'a pas pu ouvrir le coffre-fort car la combinaison était stockée dans le gestionnaire de mots de passe désormais hors ligne. Heureusement, un autre collègue en Californie avait mémorisé la combinaison dans le coffre-fort sur place et a pu récupérer une carte à puce\". \"Cependant, même après que l'ingénieur californien ait inséré la carte dans un lecteur, le service n'a pas redémarré et affichait l'erreur incompréhensible suivante : \"Le mot de passe ne peut charger aucune des cartes protégeant cette clé\". Les ingénieurs australiens ont alors décidé qu'une approche de force brute était justifiée pour résoudre leur problème de sécurité et ont utilisé une perceuse électrique pour cela. Une heure plus tard, le coffre-fort était ouvert - mais les cartes récupérées dedans ont déclenché le même message d'erreur. \"Il a fallu une heure supplémentaire pour que l'équipe se rende compte que la carte n'avait pas été insérée correctement. Lorsque les ingénieurs ont retourné la carte, le service a redémarré et la panne a pris fin\". Source : \"ZDNet.com\" Source : https:www.zdnet.fr/actualites/google-comment-la-reinitialisation-de-mot-de-passe-wi-fi-a-paralyse-l-un-de-nos-systemes-39902079.htm\n06 avril 2019\nAttestation de déplacement sur mobile\nLe générateur de QR code est disponible depuis le 06 avril 2020. Il permet de générer un QR code qui devra être présenté en cas de contrôle. Limpression ou la version manuscrite de lattestation dérogatoire est encore possible. Une seule adresse : https:media.interieur.gouv.fr/deplacement-covid-19/ Une fois sur la page, la personne remplit son formulaire de la même façon que la version papier (nom, prénom, adresse, date de naissance, lieu de naissance, date et heure de sortie, raison). Toutes les informations doivent être renseignées. Une fois cette démarche réalisée, un PDF sera généré. Il inclus un QR code qui devra être présenté aux policiers ou aux gendarmes en cas de contrôle. Les gendarmes et la police seront équipés de lapplication Android sur des terminaux sécurisés. L'application nommée CovidReader, a été développée par le STI2S (service des technologies et des SI de la sécurité intérieure). A voir si celle-ci pourra être utilisée pour enregistrer les sorties et réaliser des statistiques. Exemple de sortie du QR code :\n<pre>\nCree le: 06/04/2020 a 20h38; Nom: Dupont; Prenom: Jean; Naissance: 01/01/1970 a Lyon; Adresse: 999 avenue de france 75001 Paris; Sortie: 06/04/2020 a 20h38; Motifs: \n</pre> Source : https:www.lemondeinformatique.fr/actualites/lire-attestation-de-deplacement-sur-mobile-le-generateur-de-qr-code-disponible-78675.html\nCovid-19 : Google libère les données de géolocalisation dans 131 pays\nQuelques jours après Orange, c'est au tour de Google de lâcher dans la nature les données de géolocalisation - anonymisées - des centaines de millions d'utilisateurs de son service Maps. « À partir d'aujourd'hui, nous publions une version anticipée de nos rapports sur la mobilité communautaire COVID-19 pour donner un aperçu de ce qui a changé en réponse au travail à domicile, au logement sur place et à d'autres politiques visant à aplanir la courbe de cette pandémie, a expliqué la société dans un billet de blog. Au total, une analyse de l'évolution des déplacements a été effectuée pour 131 pays dont la France, accessible depuis ce site. Les données pour la France sont assez représentatives des conséquences des mesures de confinement prises par le gouvernement pour faire face à la pandémie Covid-19 qui affecté 59 105 personnes et provoqué le décès de 4 503 d'entre elles d'après les données de Santé Publique France au 2 avril 2020. Parmi les principaux enseignements du rapport concernant l'Hexagone, Google fait état d'une chute de 88% des déplacements pour se rendre dans des magasins, restaurants, cafés ou encore des parcs de loisirs, musés, bibliothèques ou encore cinémas. Covid-19 Evolution des déplacements en France selon les données de géolocalisation anonymisées émanant de Google Maps. (crédit : Google) Concernant les commerces alimentaires et les pharmacies, la baisse est moindre (-72%) qui s'explique par la mise en place de dérogations pour permettre aux Français de se rendre dans des commerces pour répondre à des besoins de première nécessité. Les trajets vers les parcs et places publiques sont aussi en chute libre (-82%), tout comme les grands lieux de transits et de transports (stations, gares...) affichant un recul abyssal de 87%. En revanche, les déplacements vers les lieux de travail sont, certes, également touchés (-56%) preuve que le télétravail - ou la contrainte liée au chômage partiel et donc le fait de rester confiné à la maison - fonctionnent à plein mais aussi qu'une bonne partie de la population poursuit ses déplacements à titre professionnel vers leurs lieux de travail, bénéficiant également d'une possible dérogation. A noter que l'étude de Google s'intéresse aux évolutions des déplacements par régions. L'occasion de remarquer par exemple que l'Ile-de-France tient la palme en matière de recul des déplacements vers les lieux de travail (-63%), pouvant s'expliquer pour une prédisposition « naturelle » des salariés pour le télétravail. Source : https:www.lemondeinformatique.fr/actualites/lire-covid-19-google-libere-les-donnees-de-geolocalisation-dans-131-pays-78674.html\n3 000 machines avec SQL Server infectées par jour depuis 2018\nChaque jour depuis deux ans entre 2 à 3 000 serveurs dédiés à Microsoft SQL Server sont contaminés dans le monde. D'après une dernière étude de Guardicore, les principaux pays concernés sont la Chine, l'Inde, les Etats-Unis, la Corée du Sud et la Turquie. Les entreprises ayant des activités à l'international dans ces pays ont donc intérêt à redoubler de vigilance, leurs systèmes étant susceptibles d'être victimes d'attaques aussi variées que redoutables : DDoS, backdoors, exécution de logiciels malveillants de contrôle d'accès à distant, cryptomineurs en font parti. « Les victimes appartiennent à divers secteurs industriels, notamment les soins de santé, l'aviation, l'informatique et les télécommunications et l'enseignement supérieur », indique Guardicore Labs. Le premier incident de ce type a avoir été identifé par Guardicore Labs remonte à mai 2018 via son réseau de capteurs mondial (Global Sensors Network) servant d'honeypot. Depuis, un pic d'attaques ciblant les serveurs MS SQL Server a été enregistré en décembre dernier. En analysant de près les fichiers de logs, les chercheurs en sécurité du fournisseur ont été en mesure de déterminer que 60% des machines touchées restent infectées pour une période courte de temps, mais que près de 20% restent vulnérables pendant une semaine voire plus laissant le temps aux cyberattaquants d'agir. « Nous avons remarqué que 10% des victimes ont été re-infectés par un malware », indique Guardicore Labs. « Ce modèle de réinfection a déjà été observé dans l'analyse de la campagne Smominru, et suggère que la suppression des logiciels malveillants se fait souvent de manière partielle, sans enquête approfondie sur la cause profonde de l'infection ».\nEliminer la concurrence pour régner en maitre sur les systèmes infectés Au global, ces attaques baptisées « Vollgar » par Guardicore Labs émanent de plus de 120 adresses IP. La brèche initiale exploitée commence avec des attaques par force brute pouvant aboutir à des changements de configuration dans les bases de données permettant de préparer le terrain à de futures exécutions de commandes malveillantes. Par la suite, les pirates effectuent plusieurs étapes pour rendre le système le plus ouvert possible, en commençant par la validation de certaines classes COM (WbemScripting.SWbemLocator, Microsoft.Jet.OLEDB.4.0 et Windows Script Host Object Model. « Ces classes prennent en charge à la fois les scripts WMI et l'exécution de commandes via MS-SQL, qui seront ensuite utilisées pour télécharger le binaire malveillant initial », indique le fournisseur. « L'attaquant Vollgar s'assure également que les fichiers stratégiques tels que cmd.exe et ftp.exe disposent des autorisations d'exécution ». De quoi permettre l'installation de backdoors et des attaques par escalade de privilèges utilisateurs. Bien souvent les pirates essaient par tous les moyens d'éliminer la concurrence. Sans surprise, c'est également le cas ici encore avec des efforts réalisés en semant leur trace. Cela passe par l'effacement de la clé HKLM\\SOFTWARE\\Microsoft\\Command Processor\\Autorun utilisée pour des attaques persistantes ou encore de valeurs depuis Image File Execution Options. « En supprimant ces valeurs, Vollgar garantit qu'aucun autre malware n'est attaché aux processus légitimes, tels que cmd.exe, ftp.exe, net.exe et les hôtes de script Windows tels que wscript.exe et cscript.exe ». Des charges malveillantes peuvent ensuite être activées. « La charge utile initiale, nommée SQLAGENTIDC.exe ou SQLAGENTVDC.exe, commence par exécuter taskkill sur une longue liste de processus, dans le but d'éliminer les concurrents et de gagner plus de ressources informatiques. Ces processus incluent Rnaphin.exe, xmr.exe et winxmr.exe, pour n'en nommer que quelques-uns. Ensuite, la charge utile se copie dans le dossier AppData de l'utilisateur et exécute la copie. Le nouveau processus vérifie la connectivité Internet, puis interroge Baidu Maps pour obtenir l'IP et la géolocalisation de la victime qu'il envoie ensuite au C&C. Ensuite, quelques charges utiles supplémentaires sont téléchargées sur la machine infectée - plusieurs modules RAT et un cryptominer basé sur XMRig ».\nDeux serveurs C&C opérés depuis la Chine Deux serveurs de commande et de contrôle (C&C) ont été identifiés par Guardicore Labs en lien avec les attaques Vollgar, dotés de capacités en téléchargement de fichiers, installation de services Windows, enregistreurs de frappes, captures d'écran, exécution d'un terminal shell dynamique, activation des caméras et microphones, initialisation d'attaques DDoS... Pour se prémunir de ce type d'attaques, le fournisseur propose un script Powershell permettant de détecter ce vecteur d'attaque. Contrôler les communications réseau avec des serveurs distants et activer des blocages en conséquence est bien évidemment recommandé, en se basant par exemple sur un service de réputation adossé à son firewall. Source : https:www.lemondeinformatique.fr/actualites/lire-3-000-machines-avec-sql-server-infectees-par-jour-depuis-2018-78660.html\nLe ransomware visant Marseille perturbe le décompte des décès Covid-19\nLes dommages des ransomwares ont parfois des conséquences inattendues et celui qui a touché la ville de Marseille il y a quelques semaines refait ainsi parler de lui. Alors que la ville se remet petit à petit des impacts sur son système d'information de cette cyberattaque - à l'image d'Antibes et également de la Métropole Provence Alpes Côte d'Azur - l'INSEE a publié vendredi dernier les données de mortalité liées au coronavirus. Quel rapport ? En raison du ransomware, les services administratifs de la ville de Marseille n'ont pas pu faire remonter les informations requises à des fins de traitement statistiques demandées par l'institut. « La rapidité de remontée de ces informations varie également selon les départements et pourrait être perturbée par les mesures de confinement, de même que le choix des modalités de transmission (dématérialisé ou courrier postal). Les dernières données quotidiennes sont donc à prendre avec précaution ; elles seront révisées », a précisé l'INSEE dans une note méthodologique. « Depuis le 13 mars, la mairie de Marseille na pu transmettre aucun nouveau décès du fait dun problème technique. Cest pourquoi les données des Bouches-du-Rhône sont pour le moment arrêtées au 11 mars ».\nUn retour temporaire au registre papier Contactée par notre confrère LCI, l'INSEE a apporté la précision suivante : « La comptabilisation des décès est, en effet, suspendue en raison dun problème informatique à la mairie de Marseille [...] La seule commune de Marseille enregistrant la moitié des décès pour toutes les Bouches-du-Rhône, publier des résultats de ce département sans ses chiffres serait peu représentatif ». Et la mairie de Marseille d'indiquer de son côté : « L'attaque a mis à mal nos capacités et nous n'avons pas pu envoyer nos informations à l'Insee dans les délais requis. » En attendant la mise à jour du logiciel habituellement utilisé pour saisir et transmettre ses données à l'Insee et à la Préfecture, la ville de Marseille se résout en attendant à tenir à jour un registre papier. Ce problème intervient dans un contexte de tensions autour du protocole à base de chloroquine promue par la professeur Raoult de l'IHU Méditerranée. Source : https:www.lemondeinformatique.fr/actualites/lire-le-ransomware-visant-marseille-perturbe-le-decompte-des-deces-covid-19-78684.html\nles dépenses en infrastructure cloud ont dépassé les dépenses en infrastructure informatique traditionnelle\nSelon le cabinet de recherche IDC, le total des dépenses des utilisateurs finaux en produits d'infrastructure informatique (serveur, stockage d'entreprise et commutateur réseau) pour les environnements cloud, y compris le cloud public et privé, a renoué avec la croissance au quatrième trimestre 2019 après deux trimestres consécutifs de baisse. La croissance de 12,4 % d'une année sur l'autre au 4T19 a généré 19,4 milliards de dollars de dépenses. Les résultats du quatrième trimestre ont également permis de faire passer lannée au vert avec une croissance annuelle de 2,1 % et des dépenses totales de 66,8 milliards de dollars pour 2019. Parallèlement, le marché global des infrastructures informatiques a éprouvé de la difficulté après sa solide performance en 2018, en hausse de 3,3 % à 38,1 milliards de dollars au 4T19 mais en baisse de 1,1 % à 134,4 milliards de dollars pour l'ensemble de l'année. L'infrastructure informatique non cloud a baissé de 4,6 % à 18,7 milliards de dollars pour le trimestre et a baissé de 4,1 % à 67,7 milliards de dollars pour l'année. Au 4T19, la croissance des dépenses en infrastructure informatique cloud a été tirée par le segment du cloud public, qui a augmenté de 14,5 % d'une année sur l'autre pour atteindre 13,3 milliards de dollars; le cloud privé a augmenté de 8,2 % pour atteindre 6,1 milliards de dollars. Comme le segment global est généralement à la hausse, il a tendance à être plus volatil au niveau trimestriel, car une partie importante du segment informatique du cloud public est représentée par quelques fournisseurs de services à grande échelle. Après un milieu d'année plus faible, le cloud public a terminé 2019 à peine en hausse de 0,1 % à 45,2 milliards de dollars. Le cloud privé a augmenté de 6,6 % en 2019 pour atteindre 21,6 milliards de dollars. Alors que les investissements dans l'infrastructure informatique cloud continuent d'augmenter, avec des fluctuations durant les trimestres intermédiaires, IDC note que ce secteur approche le point où les dépenses en infrastructure informatique cloud dépassent systématiquement les dépenses en infrastructure informatique non cloud. Le quatrième trimestre 2019 a marqué le troisième trimestre consécutif de leadership informatique cloud avec une part annuelle légèrement inférieure au point médian (49,7 %). Désormais, IDC s'attend à ce que l'infrastructure informatique cloud reste au-dessus de 50 % du marché de l'infrastructure informatique aux niveaux trimestriel et annuel, atteignant 60,5 % par an en 2024. Dans les trois domaines technologiques de l'infrastructure informatique, les plateformes de stockage ont connu la croissance la plus rapide d'une année sur l'autre au 4T19 à 15,1 %, les dépenses atteignant 6,6 milliards de dollars. Les plateformes de calcul ont augmenté de 14,5 % d'une année sur l'autre avec 10,8 milliards de dollars de dépenses, tandis que les commutateurs réseau ont diminué de 3,9 % pour s'établir à 2,0 milliards de dollars. Pour l'ensemble de l'année 2019, les commutateurs réseau ont dominé avec une croissance d'une année sur l'autre de 5,0 % et 8,2 milliards de dollars de dépenses, suivis des plateformes de stockage avec une croissance de 1,9 % et des dépenses de 23,1 milliards de dollars, et des plateformes de calcul avec une croissance de 1,5 % et des dépenses de 35,5 milliards de dollars. Prévisions du marché de l'infrastructure informatique cloud Après avoir pris en comptes les répercussions de la pandémie COVID-19 et de la crise économique qui sen est suivi, IDC estime quen 2020 les dépenses en infrastructure informatique cloud vont s’élever à 69,2 milliards de dollars, soit une augmentation annuelle prévue de 3,6 % par rapport à 2019. Les dépenses d'infrastructure informatique non cloud sont devrait reculer de 9,2 % pour atteindre 61,4 milliards de dollars en 2020. Ensemble, les dépenses globales en infrastructure informatique devraient reculer de 2,9 % pour s'établir à 130,6 milliards. La pandémie de COVID-19 représente une grave menace pour la croissance mondiale. Avant l'épidémie, la croissance mondiale prévue était de 2,3 % (aux taux de change du marché) en 2020. L'émergence de l'épidémie en Chine change la donne et la croissance attendue pour 2020 est désormais de -0,2 %, la plus lente depuis la crise financière mondiale. L'effet négatif sur la croissance proviendra à la fois des canaux de demande et d'approvisionnement. D'une part, les mesures de quarantaine, la maladie et le sentiment négatif des consommateurs et des entreprises vont supprimer la demande dans des domaines spécifiques, tandis que certaines poches de demande feront surface, telles que les plateformes cloud pour les charges de travail de communication et de collaboration. Dans le même temps, la fermeture de certaines usines et la perturbation des chaînes d'approvisionnement créeront des goulots d'étranglement. IDC s'attend à ce que ces effets soient répartis de manière inégale dans le paysage du marché. « Alors que le début de 2020 a été marqué par des problèmes de chaîne d'approvisionnement qui devraient être résolus avant la fin du deuxième trimestre, l'impact économique négatif affectera les dépenses en CAPEX des entreprises », a déclaré Kuba Stolarski, directeur de la recherche, Infrastructure Systems, Platforms and Technologies. chez IDC. « Alors que les budgets informatiques des entreprises se resserrent tout au long de l'année, le cloud public verra une augmentation de la demande de services. Cette augmentation proviendra en partie de la montée en puissance des employés travaillant à domicile utilisant des outils de collaboration en ligne, mais aussi de la migration de la charge de travail vers le cloud public tandis que les entreprises cherchent des moyens d'économiser de l'argent pour l'année en cours. Une fois la pandémie passée, IDC s'attend à ce qu'une partie de cette nouvelle demande de services cloud reste constante à l'avenir ». Les nouvelles prévisions quinquennales d'IDC prévoient que les dépenses d'infrastructure informatique cloud atteindront 100,1 milliards de dollars en 2024 avec un taux de croissance annuel composé (TCAC) de 8,4 %. Les dépenses d'infrastructure informatique hors cloud diminueront légèrement à 65,3 milliards de dollars avec un TCAC de -0,7 %. L'infrastructure informatique totale devrait croître à un TCAC de 4,2 % et produire des dépenses de 165,4 milliards de dollars en 2024. Source : IDC Source : https:cloud-computing.developpez.com/actu/299145/IDC-les-depenses-en-infrastructure-cloud-ont-depasse-les-depenses-en-infrastructure-informatique-traditionnelle-pour-le-troisieme-trimestre-consecutif/\nZoom a routé des appels vers la Chine\nZoom a routé des appels vers la Chine. Le 3 avril, Eric Yuan, CEO de Zoom, a admis que des appels dans son application avaient été routés par erreur vers la Chine. Cela sest déroulé au démarrage de la pandémie, quand lentreprise a augmenté sa capacité à gérer la demande, en commençant par Wuhan. Dans la précipitation, lAméricain avoue ne pas avoir appliqué ses habituelles bonnes pratiques de géo-fencing. Les chercheurs canadiens qui ont identifié le problème ont également découvert que le contenu de conversations Zoom entre deux utilisateurs nord-américains pouvait être chiffré avec des clés venant de serveurs situés en Chine. De nouveaux problèmes pour lAméricain déjà fortement critiqué pour ses failles de sécurité. Source : https:www.lemondeinformatique.fr/actualites/lire-telex-ap-hp-imprime-des-equipements-en-3d-zoom-a-route-des-appels-vers-la-chine-edge-detrone-firefox-78687.html\nChrome : face au coronavirus, Google fait marche arrière vis-à-vis des cookies\nAfin dassurer la stabilité des sites web en ces temps de crise, Google a décidé de suspendre une importante mesure de sécurité introduite en février dernier. Face à la crise du Covid-19, Google rétropédale sur une nouvelle mesure de sécurité introduite en février dernier avec larrivée de Chrome 80. A savoir le blocage par défaut des cookies de tiers. Ces derniers, en effet, peuvent représenter un risque de vol de données personnelles ou de piratage (attaques de type Cross-Site Request Forgery). Pour éviter le blocage de cookies tiers, les éditeurs de site sont désormais contraints de les identifier explicitement, et donc de donner dune certaine manière leur approbation. Concrètement, cela revient à rajouter un tag baptisé « SameSite » dans le code du site web pour lensemble des cookies utilisés.\nA découvrir aussi en vidéo Mais avec la crise du coronavirus, beaucoup dorganisations nont pas eu le temps dappliquer ces changements. Et dans certains cas, cela risque de casser le fonctionnement de leur site. Cest le cas, par exemple, si elles utilisent des services didentification tiers tels que Facebook Login. Afin de préserver la stabilité des sites, Google a donc décidé de suspendre cette mesure de sécurité. Source : Google Source : https:www.01net.com/actualites/chrome-face-au-coronavirus-google-fait-marche-arriere-vis-a-vis-des-cookies-1889721.html\nAu Royaume-Uni, des antennes 5G incendiées à cause dune théorie du complot\nBirmingham, Liverpool, Melling (Meyerside)… au cours de la semaine écoulée, trois antennes téléphoniques ont été incendiées au Royaume-Uni, rapporte la presse britannique. Au moins quatre antennes ont été visées par des tentatives de dégradations durant le week-end du 4 et 5 avril, rapporte lopérateur Vodafone — un départ dincendie a également été signalé à Belfast, en Irlande du Nord. Ces trois incendies, dont lorigine criminelle ne fait guère de doute, se sont produits alors quune théorie du complot très populaire outre-Manche fait le lien entre lapparition du coronavirus et le déploiement des antennes 5G dans le pays. Particulièrement fantasque, cette hypothèse, dont il existe plusieurs variantes, prétend soit que l’épidémie a été « inventée » pour « couvrir » les conséquences sur la santé de la 5G, soit que les ondes 5G « chassent » lair des poumons et ont facilité ou provoqué les contaminations de Covid-19. Ces théories ont également été propagées par certaines célébrités britanniques, dont Amanda Holden, la juge de l’émission de télé-réalité « Britains got talent », qui a diffusé, à ses presque deux millions dabonnés Twitter, une pétition liant la 5G à l’épidémie. Dans un communiqué, le régulateur des télécommunications britannique précise : « Nous avons reçu plusieurs rapports de vandalisme visant des antennes téléphoniques, mais aussi dagressions demployés des télécommunications, inspirées par des théories cinglées du complot qui circulent sur Internet. Les responsables de ces actes seront poursuivis avec la plus grande sévérité. » Des salariés dune filiale de British Telecom (BT) chargés dinstaller les raccordements à Internet dans les foyers britanniques ont également publié plusieurs appels au calme sur les réseaux sociaux, après plusieurs incidents au cours desquels des employés ont été menacés dans la rue. Le maire de Liverpool, Joe Anderson, a dit avoir reçu des menaces après avoir dénoncé ces théories.\nDes limitations sur les réseaux sociaux Certains réseaux sociaux, dont YouTube, ont annoncé quils mettraient en place de nouvelles mesures pour limiter la diffusion des vidéos complotistes liant la technologie 5G à l’épidémie de Covid-19 : « Nous avons commencé à diminuer la place des vidéos qui promeuvent les théories du complot sur la 5G et l’épidémie, qui désinforment nos utilisateurs de manière dangereuse. » Les vidéos devraient désormais apparaître moins fréquemment dans les suggestions de vidéos à regarder, qui sont une gigantesque source de trafic sur la plate-forme. Sur Facebook, une recherche « 5G coronavirus » affiche, dans ses premiers résultats, plusieurs messages défendant cette théorie du complot, avant ceux des autorités sanitaires, a pu constater Le Monde, lundi matin. Mais le problème ne touche pas que les réseaux sociaux : le régulateur des médias britannique a également sanctionné une radio locale qui avait donné une large place sur son antenne à une personne propageant cette théorie.\nLire aussi Facebook, YouTube… les grandes plates-formes dInternet face au défi du coronavirus Ces attaques contre le réseau téléphonique inquiètent également les responsables du réseau de santé britannique. Stephen Powis, le directeur médical du National Health Service, le service de santé britannique, a vivement dénoncé ces actes de vandalisme : « La réalité est que les réseaux mobiles sont absolument critiques pour nous tous, alors que nous demandons à tous les citoyens de rester chez eux et de ne pas voir leurs parents et amis. Mais plus particulièrement, ces réseaux sont utilisés par nos services de secours et les travailleurs du système de santé, et je suis totalement furieux, totalement dégoûté de voir quil y a des attaques contre les infrastructures mêmes qui nous permettent de répondre à cette urgence sanitaire. » Les antennes incendiées ces derniers jours n’étaient pas toutes des antennes 5G. Selon la BBC, au moins lune des tours incendiées semblait ne pas contenir dantenne 5G. Source : https://www.lemonde.fr/pixels/article/2020/04/06/au-royaume-uni-des-antennes-5g-incendiees-a-cause-d-une-theorie-du-complot-sur-le-coronavirus60357184408996.html"},"score":1.5,"snippet":"14 avril 2019\nLe Wi-Fi 6 met le cap sur la bande des 6 GHz\nTechnologie : La Wi-Fi Alliance a annoncé l&#039;adoption d&#039;une nouvelle terminologie, Wi-Fi 6E, pour les appareils pouvant fonctionner sur la bande des 6 GHz. Une ba…","tier":2}]