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

1 line
161 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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":"…onnements à forte charge. Ce guide détaille les étapes pour <mark>config</mark>urer <mark>PHP</mark>-FPM 8.3 de manière optimale.\n-- Fichier de <mark>config</mark>uration principal\nLa <mark>config</mark>uration principale de <mark>PHP</mark>-FPM se trouve dans le fichier suivant : P…","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":"Ce tutoriel va vous aider à <mark>config</mark>urer plusieurs versions de <mark>PHP</mark> avec Apache avec une distribution Linux Debian 10.6. Ce tutoriel décrit l&#039;installation et la <mark>config</mark>uration de deux VirtualHost dans Apache avec un chacun u…","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":"A noter que la <mark>config</mark>uration de FPM pour Apache 2 s&#039;effectue directement dans le fichier de <mark>config</mark>uration . Nous n&#039;interviendrons pas dans ce fichier. Activer le module proxy FCGI pour Apache2 en exécutant le code suivan…","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":7.75,"snippet":"…HP souhaitée (par exemple <mark>PHP</mark> 8.2) et son module FPM : 3. <mark>Config</mark>uration dApache pour utiliser <mark>PHP</mark>-FPM \nActivez les modules nécessaires : 4. Vérification de l&#039;installation** \nCréez un fichier <mark>PHP</mark> dinformation pour…","tier":2},{"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":7.75,"snippet":"…autres fichiers, tels que les classes <mark>PHP</mark>, les fichiers de <mark>config</mark>uration et les fichiers d&#039;enregistrement, devraient être placés dans un dossier séparé pour une meilleure sécurité. Pour structurer un projet <mark>PHP</mark> avec des…","tier":2},{"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":7.75,"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":2},{"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":7.75,"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":2},{"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":6.75,"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":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":6.5,"snippet":"…ion des identités et des accès (IAM). Cet article décrit la <mark>config</mark>uration d&#039;un client OAuth 2.0 / OpenID Connect dans Keycloak, en détaillant les options importantes et en montrant comment restreindre l&#039;accès aux utilisa…","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":6.25,"snippet":"…. Vous ne devez activer que les modules nécessaires à votre <mark>config</mark>uration.\nModule | Description | Activer | Désactiver |\n------ | ----------- | ------- | ---------- |\n| Autorise une <mark>config</mark>uration multi-utilisateurs | | …","tier":2},{"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":"…ages\n\t\tsudo chgrp -R www-data .\n\t\tsudo chmod -R g+s .\n--\n\t\t\n<mark>Config</mark>uration simple avec le fichier présent dans ``\n-- <mark>config</mark>uration site avaible sudo nano /etc/apache2/sites-available/100-<mark>php</mark>myadmin.conf\n--\nActiver la…","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":2,"snippet":"…d&#039;un dysfonctionnement dans le programme dû aux fichiers de <mark>config</mark>uration et base de données locale. Pour tout vous dire, grâce au programme journalctl de Linux, je trouvé quelques lignes d&#039;erreurs concernant tracker min…","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":"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":"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":"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":"…: <mark>PHP</mark> 7.4 exécuté en FPM avec Apache\nModules <mark>PHP</mark> installés\n<mark>Config</mark>uration <mark>PHP</mark>\n&lt;u&gt;Mémoire limite&lt;/u&gt; Dans la <mark>config</mark>uration par défaut, la valeur memorylimit n&#039;est pas indiquée. Ajouter dans le fichier de <mark>config</mark>uration <mark>PHP</mark>…","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":"…ès. Afficher des fichiers sans commentaires Les fichiers de <mark>config</mark>urations peuvent contenir beaucoup de ligne. Mais la plus part de ces lignes sont des commentaires. Il est utile de les supprimer à l&#039;affichage quand on v…","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":"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":"…s une console. J&#039;utilise le programme pour installer Java. <mark>Config</mark>urer Java\nChoisir la version de Java exécutée par défaut\nJ&#039;appelle le programme pour bien sélectionner le programme . Sous Red Hat, Fedora... : Sous Debi…","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":"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":1.75,"snippet":"…HP.\nLa directive postmaxsize est définie dans un fichier de <mark>config</mark>uration différent. Nous pouvons utiliser la fonction <mark>php</mark>info pour vérifier le fichier de <mark>config</mark>uration utilisé par <mark>PHP</mark>. Cherchez la ligne &quot;Loaded <mark>Config</mark>ur…","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":"Je vous invite à savoir comment faire pour installer et <mark>config</mark>urer un serveur Web Liuux Apache. Ceci inclus la <mark>config</mark>uration des fichiers et démarrer, arrêter et activer votre serveur httpd / Apache 2 Linux. L&#039;associatio…","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":"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":1.75,"snippet":"…r memcached dans <mark>php</mark>\nIl faut ajouter des paramètres dans la <mark>config</mark>uration de <mark>PHP</mark>. J&#039;ai dédié un fichier de paramétrage Vérifier le fonctionne de memcached par <mark>php</mark>\nPour vérifier la prise en compte, il suffit de demande à…","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":"…ns associées à SQLite3, LDAP et JSON. Plusieurs fichiers de <mark>config</mark>uration sont créés :\nfichiers présents dans Deux binaires sont accessibles :\nInstaller le SGBD PostgreSQL\nJ&#039;ai installé le SGBD PostgreSQL ainsi que le b…","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":"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":"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":"bf1d7630-8cb1-4581-b1a8-aaebfba2e15d","slug":"apt","title":"apt","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 14:18:29","created_at":"2023-02-16 14:18:29","updated_at":"2023-02-16 14:18:29","plain":"--\nLe programme est un gestionnaire de paquets pour les systèmes d'exploitation basés sur Debian, tels que Debian lui-même, Ubuntu, Linux Mint et d'autres distributions Linux. Il permet à l'utilisateur de rechercher, installer, mettre à jour et supprimer des paquets logiciels sur le système. Le nom est un acronyme pour \"Advanced Packaging Tool\", ce qui signifie \"outil de gestion de paquets avancé\" en français. Il est souvent utilisé en ligne de commande, bien qu'il existe également des interfaces graphiques qui permettent une utilisation plus conviviale pour les débutants. En utilisant apt, l'utilisateur peut effectuer des opérations telles que l'installation de nouveaux programmes, la mise à jour de programmes existants, la suppression de programmes, la recherche de nouveaux paquets, la mise à jour du système d'exploitation et la résolution des dépendances des paquets. Synchroniser la liste des paquets\nFaire systématiquement un avant d'installer un nouveau logiciel ou de mettre à jour des paquets sur un système Debian est une bonne pratique recommandée. La commande permet de synchroniser la liste des paquets disponibles sur les dépôts (ou sources) de logiciels configurés sur le système avec les dernières informations disponibles. En d'autres termes, elle permet de télécharger la dernière version de la liste des paquets disponibles, qui est stockée localement sur le système. Cela permet à l'utilisateur de s'assurer qu'il installe la dernière version d'un paquet à partir des dépôts configurés sur son système, car ces dépôts peuvent être mis à jour fréquemment par les développeurs des logiciels pour corriger des bugs, ajouter des fonctionnalités, ou améliorer la sécurité. Si l'utilisateur omet de mettre à jour la liste des paquets disponibles avant d'installer un nouveau logiciel ou de mettre à jour des paquets, il risque d'installer une version obsolète ou moins sécurisée du paquet, car il installera la version de la liste des paquets stockée. Lister les paquets installés\nLa commande permet de lister tous les paquets installés sur votre système via le système de gestion de paquets apt. Plus précisément, elle affiche la liste des paquets installés avec leur nom, leur version et leur description. Cela permet de savoir rapidement quels paquets sont installés sur votre système, ainsi que leur version actuelle. Notez que cette commande nécessite des privilèges d'administrateur pour être exécutée. <panel type=\"default\" title=\"Exemple 1\"> Lister tous les paquets installés sur votre système : </panel> <panel type=\"default\" title=\"Exemple 2\"> Lister tous les paquets installés commençant par php7.4-, vous pouvez exécuter la commande suivante: apt list --installed | grep '^php7.4-' Cela va afficher la liste de tous les paquets installés commençant par . </panel> <panel type=\"default\" title=\"Exemple 3\">\nVous pouvez utiliser la commande suivante pour lister tous les paquets qui commencent par et les remplacer par leurs versions équivalentes commençant par : echo $(dpkg -l | grep '^ii' | grep 'php7.4-' | awk '{ print $2 }' | sed -e 's/php7.4/php8.2/g') Cette commande utilise plusieurs commandes Linux pour extraire les noms des paquets installés commençant par , les remplace par leur équivalent et les affiche. Vous pourrez recopier le resultat pour l'utiliser dans un par exemple. </panel> les signatures suivantes ne sont pas valables En exécutant la commande , l'erreur suivante est apparue :\n Les signatures suivantes ne sont pas valables : EXPKEYSIG B188E2B695BD4743 DEB.SURY.ORG Automatic Signing Key <deb@sury.org>\n ...\n Le téléchargement de quelques fichiers d'index a échoué, ils ont été ignorés, ou les anciens ont été utilisés à la place.\n \nLa clé de sécruité du serveur distant a changé et le programme bloque les informations car elles ne sont plus conformes. Il faut mettre à jour votre clé suivant celle qui est présente sur le serveur. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B188E2B695BD4743\n \nLa valeur correspond à la clé qui pose problème, affichée dans le message d'alerte du programme . Voir aussi"},"score":1.5,"snippet":"…aquets disponibles sur les dépôts (ou sources) de logiciels <mark>config</mark>urés sur le système avec les dernières informations disponibles. En d&#039;autres termes, elle permet de télécharger la dernière version de la liste des paquet…","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":"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":"…taques par force brute pouvant aboutir à des changements de <mark>config</mark>uration dans les bases de données permettant de préparer le terrain à de futures exécutions de commandes malveillantes. Par la suite, les pirates effectue…","tier":2}]