<?xml version="1.0" encoding="utf-8" standalone="no"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://dascritch.net/feed/rss2/xslt" ?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">
  <channel>
    <title>da scritch net works</title>
    <link>https://dascritch.net/</link>
    <atom:link href="https://dascritch.net/feed/rss2" rel="self" type="application/rss+xml"/>
    <description>Ma vie et tous ses ridicules petits à-côtés : mes émissions “CPU” sur Radio FMR, les standards web, le code et ce qui me passe par la tête.</description>
    <language>fr</language>
    <pubDate>Sat, 12 Sep 2026 09:39:51 +0200</pubDate>
    <copyright>CC pour les textes</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>Dotclear</generator>
          <xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><item>
        <title>Refaire dascritch.com avec Claude</title>
        <link>https://dascritch.net/post/2026/09/09/Refaire-dascritch.com-avec-Claude</link>
        <guid isPermaLink="false">urn:md5:cb8030c943022357d3fd1601daac79df</guid>
        <pubDate>Wed, 09 Sep 2026 11:01:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Webdev</category>
                        <description>J'ai refais mon site corporate. Ou plutôt, j'ai laissé un stagiaire le refaire. Virtuel, le stagiaire.          &lt;p&gt;
J'ai remis au propre et complété &lt;a href="https://dascritch.com/"&gt;mon site de compétences.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Jusqu'ici, je construisais intégralement ce site, CSS inclus, afin de faire un &lt;em lang="en"&gt;showcase&lt;/em&gt; de mes compétences. Mais il faut avouer que la mise en forme web est un peu moins une spécialité que le développement applicatif, donc j'ai fait confiance à un outil pour le revoir, j'ai donné des instructions pour qu'il corresponde mieux à mes standards habituels et je suis repassé derrière pour le finaliser.
&lt;/p&gt;
&lt;p&gt;
Après tout, je l'ai toujours indiqué sur ce site&amp;nsbp;:
&lt;/p&gt;
&lt;blockquote&gt;
Le site n'a intentionnellement aucun style. Mon métier est derrière la présentation, pas dedans.
&lt;/blockquote&gt;
&lt;p&gt;
Si vous cherchez un architecte de solutions logicielles pour votre entreprise, parlons-en&amp;nbsp;!
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2026/09/09/Refaire-dascritch.com-avec-Claude#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2026/09/09/Refaire-dascritch.com-avec-Claude#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3195</wfw:commentRss>
              </item>
          <item>
        <title>Manifestons contre la canicule !</title>
        <link>https://dascritch.net/post/2026/09/08/Manifestons-contre-la-canicule-%21</link>
        <guid isPermaLink="false">urn:md5:2c1f1b451e130379056eda852faedd76</guid>
        <pubDate>Tue, 08 Sep 2026 14:57:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Sortons</category>
                        <description>Y'en a marre de la chaleur ! La journée internationale du parler pirate sera aussi une rencontre avec l'équipe de CPU.          &lt;img src="https://dascritch.net/vrac/.blog2/sortons/2609-pirateborgneunijambisteenplastoc.jpg" alt="Pirate unijambiste borgne en plastoc" class="r" /&gt;
&lt;p&gt;
Je l'annonce dans &lt;a href="https://cpu.pm/0246"&gt;l'émission de rentrée de CPU qui sera diffusée demain,&lt;/a&gt; mais je ne peux résister à l'idée de vous le dire ici&amp;nbsp;:
&lt;p&gt;
&lt;p&gt;
Je vous propose une &lt;strong&gt;rencontre pour parler de l'émission CPU, Samedi 19 Septembre 2026, à 19h, devant la Cale Sèche, rue Gambetta, Toulouse&lt;/strong&gt;, sous le prétexte &lt;em&gt;très futile&lt;/em&gt; de manifester contre la canicule.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://cpu.pm/post/2026/05/21/La-mascotte-%3A-Le-monstre-spaghetti-volant"&gt;Si vous nous avez écouté récemment,&lt;/a&gt; vous aviez peut-être noté que ce jour-là est la &lt;a href="https://time.com/4497168/international-talk-like-pirate-day/"&gt;&lt;em lang="en"&gt;International Talk Like A Pirate Day&lt;/em&gt;&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Tout comme nous, vous avez subi la plus longue période de canicule en France depuis le début des relevés météos. Et il va falloir agir collectivement pour décélérer le réchauffement climatique, par la réduction d'émissions de CO₂, de réunions en présentiel, d'achat de nouveau matériel, de buvage de café. Si faire pipi sous la douche suffit pas quand la Chine et les États-Unis ouvrent au taquet de nouvelles centrales thermiques, alors passons à l'irrationnel&amp;nbsp;!&lt;br /&gt;
Que vous soyez airbusien ou contre le TGV, contre la clim ou habitant d'un écoquartier avec interdiction d'en installer une fixe, vous pouvez faire quelque chose. Et vu la qualité de plus en plus faiblarde des miracles dans les religions monothéistes traditionnelles, il reste la pseudoscience. Tout le monde le sait, le changement climatique a coïncidé avec la disparition des pirates unijambistes et borgnes dans les Caraïbes.
&lt;/p&gt;
&lt;p&gt;
Rendez-vous donc pour manifester contre la canicule, devant la Cale Sèche, rue Gambetta, quartier Capitole, avec patch sur l'œil en hurlant &lt;q&gt;AAARRRRRHHHHHH !!!&lt;/q&gt; (Ça tombe bien ; c'est une rhumerie. A consommer avec modération.)
&lt;/p&gt;
&lt;p&gt;
C'est à peu près aussi utile qu'une procession religieuse le 15 Août, mais ça sera nettement plus marrant.
&lt;/p&gt;
&lt;p&gt;
Non ?
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2026/09/08/Manifestons-contre-la-canicule-%21#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2026/09/08/Manifestons-contre-la-canicule-%21#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3194</wfw:commentRss>
              </item>
          <item>
        <title>fail2ban sur son serveur web</title>
        <link>https://dascritch.net/post/2026/08/25/fail2ban-sur-son-serveur-web</link>
        <guid isPermaLink="false">urn:md5:04f6c61a274e01d748ce2dc78c932368</guid>
        <pubDate>Tue, 25 Aug 2026 10:40:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Webdev</category>
                          <category>apache</category>
                  <category>bash</category>
                  <category>libre</category>
                  <category>ordinateur</category>
                  <category>regex</category>
                  <category>sécurité</category>
                <description>C'est le minimum (à faire) et il fait un maximum (en sécu). Parce que l'auto-hébergement ou l'administration d'une VM est une sacré responsabilité, que sa bonne tenue peut aussi impacter les autres VM et que les bots dorment moins que vous.          &lt;p&gt;
Ceux qui me connaissent le savent très bien&amp;nbsp;: Lire les logs serveurs, c’est ma très grande passion.&lt;br /&gt;
C’est pour ça que j’ai créé &lt;a href="https://fflsls.fr/"&gt;la &lt;abbr&gt;FFLSLS&lt;/abbr&gt; ( Fédération Française de lecture sportive de logs serveurs)&amp;nbsp;: pour faire reconnaitre la pratique en haut-niveau comme discipline olympique.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
(Il faut dire que je suis un peu trop disponible en ce moment, donc si vous cherchez quelquun pour consolider une IT, &lt;a href="https://www.linkedin.com/in/dascritch/"&gt; n'hésitez pas à me contacter, je suis dispo&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
À lire mes logs serveurs, ces derniers mois, le trafic automatisé a explosé, et pas que pour des usages légitimes&amp;nbsp: &lt;a href="https://dascritch.net/post/2006/03/23/352-zombies-neverends"&gt;tentatives de spam-comment&lt;/a&gt;, recherches forcenées de failles sécu, d’artefact d’installation, etc…
&lt;/p&gt;
&lt;p&gt;
Mon serveur perso est une toute petite VM &lt;a href="https://tetaneutral.net"&gt;hébergée avec amour sur Toulouse par Tetaneutral, un hébergeur de services internet et FAI associatif&lt;/a&gt;, dont je suis membre depuis 15 ans. &lt;a href="https://as197422.net/"&gt;AS197422&lt;/a&gt; pour les intimes.
&lt;/p&gt;
&lt;p&gt;
J’ai la main sur ma VM, et j’ai des responsabilités par rapport aux autres membres de l’association.
&lt;/p&gt;
&lt;p&gt;
Seulement je ne voulais pas complètement reprendre de zéro ma VM, changer de serveur web, etc&amp;nbsp;: j’ai énormément de tâches de fond qui tourne dessus, parfois des trucs que j’ai mis en place depuis 15 ans, et qui marchent sans soucis, malgré les montées en version et petites retouches de code suivant l’état de l’art.
&lt;/p&gt;
&lt;p&gt;
Pour faire le ménage, j’ai installé fail2ban sur mon serveur Apache.
&lt;/p&gt;
&lt;p class="c"&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/webdev/2608-fail2ban.png" alt="Capture d'un extrait de log combiné du serveur Apache et fail2ban qui vient de bannir une adresse IP" /&gt;
&lt;/p&gt;
&lt;h3 id="fail2ban"&gt;
Pourquoi &lt;em lang="en"&gt;fail2ban&lt;/em&gt;&amp;nbsp;?
&lt;/h3&gt;
&lt;p&gt;
Donc en gros, pour le moindre effort&amp;nbsp;:
&lt;/p&gt;
&lt;p&gt;
Parce qu’il est déjà installé, et filtre déjà les comportements abusifs sur ssh en paramétrant à la volée un outil de filtrage, en général &lt;em lang="en"&gt;iptable&lt;/em&gt; ou plus récemment &lt;em lang="en"&gt;nftable&lt;/em&gt;, un module du &lt;em lang="en"&gt;kernel&lt;/em&gt; Linux qui bloque au plus bas niveau les adresses IP qui se sont pris un carton rouge après 3&amp;nbsp;tentatives de connexions infructueuses. Pour détecter ces comportements &lt;strong&gt;déviants&lt;/strong&gt;, il ne fait que regarder des logs serveurs et applique à chaque ligne des regex. Ces adresses IP sont autorisées à ré-accéder au service au boût d'un temps d'emprisonnement calculé par filtre, multiplié par le nombre de fois qu'il a été ermis en prison.
&lt;/p&gt;
&lt;p&gt;Ce n’est pas une mesure de protection contre toutes les failles, mais un ralentisseur qui réduit les probabilités d’exploitations. Son but est de violemment ralentir les tentatives d’attaques en &lt;em lang="en"&gt;brute-force&lt;/em&gt; sur les accès ssh des serveurs. Ces attaques restent possibles, mais au lieu de tomber un mot de passe en disons 6&amp;nbsp;mois en connaissant un compte utilisateur valide &lt;a href="https://www.youtube.com/watch?v=U9M8lFFdnKk"&gt;(encore faut que la chauve-souris connaisse mon &lt;em lang="en"&gt;handle&lt;/em&gt; dans l'immeuble),&lt;/a&gt; il faudra environ 2,5&amp;nbsp;éternités pour y arriver.&lt;br /&gt;
En moyenne. 
&lt;/p&gt;
&lt;p&gt;
Et comme fail2ban tourne asynchroniquement par rapport aux services qu’ils surveille, tout problème ou erreur d’exécution n’impacte pas le service surveillé lui-même. Sauf s’il  lance plein de règles de filtrage et qu'il bloque tout le monde, mais on parle alors d’une autre lessive.&lt;/p&gt;
&lt;p&gt;Par contre, il prend de la RAM et de la puissance CPU. Mais l’analyse en action sur ma VM avec mes paramètres persos montre que cet impact est négligeable : environ 30&amp;nbsp;Mo de RAM, et même pas 6% de charge CPU. Un thread PHP consomme le double de RAM, donc avoir un service fail2ban pour filtrer prend bien moins de ressources que le CMS pour répondre aux 80&amp;nbsp;requêtes par seconde en 404/403 lors d’un scan non-sollicité de vulnérabilité.&lt;/p&gt;
&lt;p&gt;
Oui, 80&amp;nbsp;requêtes attaquantes par seconde, c'est la moyenne des attaques, et j'en prends une toute les 5&amp;nbsp;minutes les soirs d'été en heures creuses. Le flood peut durer entre 20&amp;nbsp;secondes et 6&amp;nbsp;minutes. Merci pour tous les &lt;em lang="en"&gt;patterns&lt;/em&gt; d'attaques, mais j'ai rien demandé.
&lt;/p&gt;
&lt;h3 id="console"&gt;Et on ouvre la console&lt;/h3&gt;
&lt;p&gt;
Si vous avez déjà fail2ban installé sur votre serveur, vous avez très probablement déjà des filtres Apache et NGinX disponibles dans &lt;code&gt;/etc/fail2ban/filter.d&lt;/code&gt;, mais seul sshd est en &lt;em lang="en"&gt;monitoring&lt;/em&gt; par défaut. Oui, c'est surprenant pour du Linux, mais la distrib va pas surbloquer bêtement. On va activer ceux d'Apache car c'est le service web que j'utilise.
&lt;/p&gt;
&lt;p&gt;D’abord, j’ai créé un &lt;code&gt;/etc/fail2ban/jail.local&lt;/code&gt;, en &lt;a href="https://www.xmodulo.com/configure-fail2ban-apache-http-server.html"&gt;me basant sur une excellente documentation&lt;/a&gt;, en n'oubliant pas de l'adapter à votre distrib et sas particularités.&lt;/p&gt;
&lt;code&gt;
&lt;pre&gt;
# detect potential search for exploits and php vulnerabilities
[apache-noscript]
enabled  = true
port     = http,https
filter   = apache-noscript
logpath  = /var/log/apache*/*error.log
maxretry = 6
banaction_allports = nftables[type=allports]

# detect Apache overflow attempts
[apache-overflows]
enabled  = true
port     = http,https
filter   = apache-overflows
logpath  = /var/log/apache*/*error.log
maxretry = 2
banaction_allports = nftables[type=allports]

# detect failures to find a home directory on a server
[apache-nohome]
enabled  = true
port     = http,https
filter   = apache-nohome
logpath  = /var/log/apache*/*error.log
maxretry = 2
banaction_allports = nftables[type=allports]

# detect failures to execute non-existing scripts that
# are associated with several popular web services
# e.g. webmail, phpMyAdmin, WordPress
[apache-botsearch]
enabled  = true
port     = http,https
filter   = apache-botsearch
logpath  = /var/log/apache*/*error.log
maxretry = 2
banaction_allports = nftables[type=allports]

# MODULE PERSO (c'est expliqué plus bas)
[apache-dascritch]
enabled  = true
port     = http,https
filter   = apache-dascritch
logpath  = /var/log/apache*/access.log
maxretry = 2
banaction_allports = nftables[type=allports]
&lt;/pre&gt;&lt;/code&gt;
&lt;p&gt;
N'ayez pas peur sur les multiples déclarations d'un même fichier de log, il n'est ouvert que par un seul pipe.
&lt;/p&gt;
&lt;p&gt;
Les filtres proposés se déclenchent sur des événements d'erreurs, en général un répertoire non accessible ou un script inexistant. Sauf que sur les &lt;em lang="en"&gt;frameworks&lt;/em&gt; modernes, l'URL du script est cachée, et toute erreur du type 400, 403, 404, sont prises en charge par le &lt;em lang="en"&gt;framework&lt;/em&gt; utilisé par le site web &lt;strong&gt;au cas où dans son système d'adressage, cela corresponde à une ressource réelle.&lt;/strong&gt; Donc impossible de mettre en cache une vue 404 qui soit servi directement par le serveur web, à moins de faire une règle lourdasse à maintenir pour indiquer tout son plan de nommage dans la partie service web. Donc cela implique à chaque ressource incorrecte, charger le framework qui était en cache, résoudre sa route, peu-être faire des requêtes SQL, chercher en cache la vue du template, etc… Le prix n'est pas nul. Et c'est justement cette gestion d'erreur par l'applicatif qui pose souci et qui fait que les multiples requêtes sans sens font exploser les consommation du serveur.
&lt;/p&gt;
&lt;p&gt;
Y'a des méthodes qu'on peut appliquer, comme cantonner les adressages dynamiques du framework à partir d'un &lt;em&gt;path&lt;/em&gt; précis, genre &lt;code&gt;/cms/&lt;/code&gt;, et donc on peut envisager de rendre la page d'erreur en statique, mais cela implique de modifier le contenu des sites web, de créer des redirections, et cela fait perdre de la plasticité sur d'autres fichiers, puisque certains CMS génèrent, par exemple des &lt;code&gt;manifest.json&lt;/code&gt; différents selon que vous soyez authentifiés comme éditeur ou non.
&lt;/p&gt;
&lt;p&gt;
Donc, j'avais besoin d'écrire un script qui se base non plus sur les logs d'erreurs mais les logs d'accès à mon serveur web, et qui éjecte les requêtes qui ne semblent pas appropriées sur mon serveur. 
&lt;p&gt;J’ai écrit un premier filtre perso dans &lt;code&gt;/etc/fail2ban/filter.d&lt;/code&gt; appelé &lt;code&gt;apache-dascritch.conf&lt;/code&gt;, pour reprendre la convention de nommage des filtres, et vu qu'il ne semble pas avoir de convention particulière pour les contributions spécifiques hors distributions.&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;
[Definition]
failregex = \ &lt;HOST&gt; "POST /wp.*           ← J'ai pas WordPress, donc on triggue
            \ &lt;HOST&gt; "GET /wp.*
            \ &lt;HOST&gt; "GET /config               ← ben voyons
            \ &lt;HOST&gt; "GET /\.env.*               ← y'en a qui nettoient mal leur mise en prod
            \ &lt;HOST&gt; "GET /\.git.*
            \ &lt;HOST&gt; "POST /graphql          ←  Apparemment très très attaquable
            \ &lt;HOST&gt; "GET /@fs.*               ← Node.js, tentative de chargement d'une bibliothèque en direct, vous ne passerez pas
            \ &lt;HOST&gt; "GET /cgi-bin               ← Les CGI-Bin ne sont pas utilisés, du moins pas accessibles via un répertoire public
            \ &lt;HOST&gt; "GET //          ←  parfaitement valable, et j'ai vu sur un forum que ça permet d'esquiver les filtres de protection. Perdu !
            \ &lt;HOST&gt; "\\x16\\x03\\x01"       ← artefact de https sur le port 80, jamais vu hors d'une attaque
            \ &lt;HOST&gt; "CONNECT               ← verbe HTTP que je n'utilise pas sur ce serveur
            \ &lt;HOST&gt; "SSTP_DUPLEX_POST      ← verbe HTTP inexistant, sauf chez Microsoft
            \ &lt;HOST&gt; "GET /vpntunnel               ← recherche de VPN ouverts

ignoreregex =
&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;
(Note : je ne présente que quelques règles, il y en a un peu moins d'une vingtaine. Trop en dévoiler peut donner des informations pour réussir certaines attaques. Je ne parle pas trop aux robots&amp;nbsp;: ça les instruits)
&lt;/p&gt;

&lt;p&gt;
Vous l'avez compris, chaque ligne est une regex, avec un atome &lt;code&gt;&amp;lt;HOST&amp;gt;&lt;/code&gt; qui désigne l'adresse IP (IPv4 ou IPv6) et juste après un espace, la requête HTTP à matcher. Au début de ma regex, le &lt;code&gt;\ &amp;lt;HOST&amp;gt; &lt;/code&gt; permet de bien signifier l’espace délimiteur dans les logs traditionnels Apache. Y'a qu'un seul espace après le &lt;em lang="en"&gt;backslash&lt;/em&gt;, c'est la balise &amp;lt;pre&amp;gt; qui me fait des misères.
&lt;/p&gt;
&lt;p&gt;
Je reste sur une suite de règles très très réduites afin d’en garder une maîtrise, de ne pas faire monter le CPU dans les tours et d’éviter des faux-positifs complètement abusés. La simplicité est la beauté. 
&lt;/p&gt;
&lt;p&gt;
À noter que je surveille les logs d'accès de TOUS les serveurs webs de la VM, donc les noms de domaines, de sous-domaines et les accès IP directs. Cela veut dire qu'il faut éviter que des outils de monitoring et de contrôles, même déjà filtrés par IP, ne soient PAS dans les regex de détection, mais défiltrés par les regex d'exceptions. Il faut aussi connaître l'histoire des noms de domaine, et si ceux-ci avaient d'anciens &lt;em lang="en&gt;frameworks&lt;/em&gt; il y a deux décennies, qui sont toujours référencés sur des sites tiers. Oui, pensez à ce vieux PHPbb ou Joomla que vous vouliez plus voir, mais dont les URL trainent sur un forum, et qui donc menacent de faire bannir les &lt;em lang="en"&gt;spiders&lt;/em&gt; des moteurs de recherche&amp;nbsp;! Dans le doute, cela vaut le coup de jouer ces regex sur 15 jours de logs, mais cela risque de ne pas suffire&amp;nbsp;!
&lt;/p&gt;
&lt;p&gt;
De votre côté, faites le tour de votre serveur, regardez quel serveur web est utilisé (Apache, NGinX, Apollo, IIS, etc…), quel langage est utilisé, quel &lt;em lang="en"&gt;framework&lt;/em&gt; est déployé et quels outils API de &lt;em lang="en"&gt;monitoring&lt;/em&gt; vous avez peut-être. On n'est pas à l'abri d'un antédiluvien PHPMyAdmin qui sert en urgence (et qui aurait dû être supprimé depuis 15&amp;nbsp;ans).&lt;br /&gt;
En plus de connaitre parfaitement vos plans de nommages, de routage et son historique, faites aussi attention aux simplifications hâtives&amp;nbsp;! Bloquer sur toute URL commençant par &lt;code&gt;/.&lt;/code&gt; vous fera bloquer tout agent logiciel qui vérifie ce que vous déclarez en &lt;code&gt;/.well-known&lt;/code&gt;, donc ce n'est pas une bonne idée.
&lt;/p&gt;
&lt;p&gt;
Je pourrais aussi filtrer sur les &lt;em lang="en"&gt;user-agents&lt;/em&gt;, mais ceux-ci étant purement déclaratifs, ces règles deviennent trop vite obsolètes.
&lt;/p&gt;

&lt;h3 id="premierprotch"&gt;Protch le moustique&lt;/h3&gt;

&lt;p&gt;
Ici, à peine 2&amp;nbsp;minutes après l’écriture de mon premier filtre, un moustique attrapé en plein vol. L’action dure moins de 1&amp;nbsp;500&amp;nbsp;millisecondes, j'ai même pas eu le temps de bailler (oui, je sais, j’ai une sortie de logs maison, notamment pour avoir un &lt;em lang="en"&gt;timestamp&lt;/em&gt; ISO-8601 unifié)
&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;
==&gt; /var/log/apache2/access.log &lt;==
2026-08-10 11:36:47 (dascritch.net) 136.108.66.99 "GET /backend/settings.py HTTP/2.0" 404 15928 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:47 (dascritch.net) 136.108.66.99 "GET /instance/config.py HTTP/2.0" 404 15927 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:47 (dascritch.net) 136.108.66.99 "GET /.env.development HTTP/2.0" 404 15925 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"

==&gt; /var/log/fail2ban.log &lt;==
2026-08-10 11:36:48,110 fail2ban.filter         [127499]: INFO    [apache-dascritch] Found 136.108.66.99 - 2026-08-10 11:36:47

==&gt; /var/log/apache2/access.log &lt;==
2026-08-10 11:36:47 (dascritch.net) 136.108.66.99 "GET /.env.staging HTTP/2.0" 404 15921 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"

==&gt; /var/log/fail2ban.log &lt;==
2026-08-10 11:36:48,124 fail2ban.filter         [127499]: INFO    [apache-dascritch] Found 136.108.66.99 - 2026-08-10 11:36:47

==&gt; /var/log/apache2/access.log &lt;==
2026-08-10 11:36:47 (dascritch.net) 136.108.66.99 "GET /config.py HTTP/2.0" 404 15918 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /.env.test HTTP/2.0" 404 15941 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"

==&gt; /var/log/fail2ban.log &lt;==
2026-08-10 11:36:48,326 fail2ban.filter         [127499]: INFO    [apache-dascritch] Found 136.108.66.99 - 2026-08-10 11:36:48

==&gt; /var/log/apache2/access.log &lt;==
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /dotclear/rss.php HTTP/2.0" 302 388 "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36" "-"
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /app/.env HTTP/2.0" 404 15917 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /sendgrid.env HTTP/2.0" 404 15921 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /src/.env HTTP/2.0" 404 15917 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /config.env HTTP/2.0" 404 15919 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /frontend/.env HTTP/2.0" 404 15922 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:48 (dascritch.net) 66.249.77.201 "GET /vrac/.blog1/2cents/701-FIBD07-Thomas-brouillard.jpg HTTP/1.1" 200 90278 "Googlebot-Image/1.0" "-"
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /server/.env HTTP/2.0" 404 15920 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"

==&gt; /var/log/fail2ban.log &lt;==
2026-08-10 11:36:48,726 fail2ban.actions        [127499]: NOTICE  [apache-dascritch] Ban 136.108.66.99

==&gt; /var/log/apache2/access.log &lt;==
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /production/.env HTTP/2.0" 404 15933 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /docker/.env HTTP/2.0" 404 15920 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
2026-08-10 11:36:48 (dascritch.net) 136.108.66.99 "GET /dev/.env HTTP/2.0" 404 15935 "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)" "-"
&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;
    Pour vérifier l'efficacité du filtre qu'on a créé&amp;nbsp;:
&lt;/p&gt;

&lt;code&gt;&lt;pre&gt;
dieutoutpuissant@vmsecrete/etc/fail2ban $ sudo fail2ban-client status apache-dascritch
Status for the jail: apache-dascritch
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     68
|  `- File list:        /var/log/apache2/access.log
`- Actions
   |- Currently banned: 21
   |- Total banned:     22
   `- Banned IP list:   136.108.66.99 34.60.235.212 136.70.138.98 104.23.221.112 104.23.221.113 104.23.221.28 158.158.35.55 185.177.72.100 185.177.72.53 195.178.110.31 20.104.100.201 20.251.112.238 45.148.10.15 45.148.10.246 45.148.10.62 51.103.131.31 72.146.2.52 82.158.131.223 4.204.200.143 20.203.138.185 157.245.167.36 45.154.98.108
&lt;/pre&gt;&lt;/code&gt;

&lt;p&gt;
(Attention à son langage : &lt;q&gt;failed&lt;/q&gt; veut dire qu'il a des IP qui viennent de franchir la ligne jaune, et qui seront bannies si elles recommencent. C'est donc tout à fait normal que la valeur ne soit pas à zéro)
&lt;/p&gt;

&lt;p&gt;En 48 heures, il a été redoutable&lt;/p&gt;

&lt;figure class="c"&gt;
&lt;img src="https://dascritch.net/vrac/.blog1/webdev/603-zombiesneverends.gif" alt="" /&gt;
&lt;figcaption&gt;Allégorie d'un admin-sys tentant de repousser une vague d'attaque zombies, &lt;a href="http://probertson.livejournal.com/"&gt;©&amp;nbsp;Paul Robertson&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;fail2ban évite les DoS dûs aux requêtes abusives d’une seule source, pas les DDoS concertés, tout comme il ne guérit pas des failles. Ce n’est pas non plus une solution définitive&amp;nbsp;: les filtres devront évoluer au fur et à mesure, et il est probable que les scripts d’attaques visant les serveurs web se mettent à être moins prévisibles pour contourner les filtrages sur les &lt;em lang="en"&gt;patterns&lt;/em&gt; d’attaques les plus fréquents. Là encore, c’est de la décision, soit humaine à petit volume, soit délégué à une IA suivant le niveau de budget, de fiabilité et de confiance des serveurs à gérer. Pour l’instant, déléguer la lecture de ces logs à une IA est un poil overkill, et &lt;a href="https://fflsls.fr"&gt;fortement interdite en compétition par la FFLSLS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L’inconvénient de fail2ban est sa lenteur relative&amp;nbsp;: il est en partie écrit en python. Langage que je connais bien, donc ça aide. Ça veut dire qu'il peut mettre une à deux secondes avant de dénoncer l'IP indélicate à &lt;em lang="en"&gt;iptables&lt;/em&gt; ou &lt;em lang="en"&gt;nftables&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Autre problème de fail2ban est qu’il faut complètement relancer le service quand on modifie un paramètre ou une règle, et qu’on doit rechecker derrière pour voir si le service n’est pas complètement interrompu à cause d’une typo dans une regex. Parce que la commande &lt;code&gt;service fail2ban restart&lt;/code&gt; ne vous indiquera rien, il faut lancer &lt;code&gt;fail2ban-client status --all&lt;/code&gt; pour s’assurer. &lt;a href="https://github.com/fail2ban/fail2ban/wiki"&gt;Lire la doc, aussi, au cas où, ça peut aider.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
Quand on a fait une erreur de config, on sent très vite revenir les tentatives d'attaques, à un niveau impressionnant.&lt;br /&gt;
Et dimanche 16 août,  fail2ban a banni plus de 1300 adresses IP, un nombre assez effarant par rapport aux 60 dans les premières 24 heures. Soit y'a eu une campagne concertée sur ma petite VM (mais pourquoi&amp;nbsp;?), soit un attaquant particulier a décidé de passer par plusieurs VPN/machines compromises pour m'agresser, jetant les IP grillées. Donc soit on a des campagnes menées à un niveau industriel, soit une adaptation à un niveau industriel d'une unique attaque. Je pensais à une activité du week-end pour gagner du temps sur l'absence de surveillance dans les entreprises, mais le week-end suivant a été nettement plus calme (sachant que j'ai ajouté des règles, donc on attrape plus de tentatives).&lt;br /&gt;
Car c'est le risque&amp;nbsp;: avoir blindé un minimum un vieux serveur qui comporte des noms de domaine vieux de plus de 20&amp;nbsp;ans signifie &lt;strong&gt;peut-être&lt;/strong&gt; que la cible n'est pas anodine.&lt;br /&gt;
J'aimerais pas trop vite décevoir ceux d'en face.
&lt;/p&gt;

&lt;p&gt;
Vous êtes ici à la moitié de mon texte. Vous vous dites que j'ai laissé une LLM gloser à ma place pour une telle loggorhée&amp;nbsp;? Ben non, même pas&amp;nbsp;: mon texte est exclusivement bio. Mais continuons, &lt;a href="https://cpu.pm/post/2022/02/17/Pr%C3%A9c%C3%A9demment-%3A-micro-%40HalluFMR-40-%3A-Conditions-G%C3%A9n%C3%A9rales"&gt;on verra si quelqu'un remarquera ce paragraphe&lt;/a&gt; ;)
&lt;/p&gt;


&lt;h3 id="qr"&gt;Q &amp;amp; R&lt;/h3&gt;

&lt;p&gt;J’en ai parlé à ma communauté habituelle, et ils ont eu des questions, forcément intéressantes.&lt;/p&gt;
&lt;p&gt;(je dis &lt;q&gt;forcément&lt;/q&gt; car j’ai la richesse d’avoir une commu de très bonne intelligence.)&lt;/p&gt;

&lt;blockquote&gt;
Suite à ton message, j’ai fait un petit tour de mes logs Apache, et boudiou que c’est sale&amp;nbsp;: c’est plein de vermine qui ne cherche qu’à s’introduire sur le serveur. &#128272; &#127988;‍☠️
&lt;/blockquote&gt;
&lt;p&gt;Ce trafic malveillant a &lt;q&gt;toujours&lt;/q&gt; existé depuis la fin des années 1990s, il s’est juste industrialisé, amplifié, par des serveurs web compromis pilotés par des c2c, puis des objets connectés très mal sécurisés (le mal de l’IoT genre machine à laver, caméra de surveillance ou télé connectée), par des injections de publicités avec les javascripts malveillants (dont pensez à bloquer les pubs), par des applications qui utilisent des bibliothèques logiciels aux conditions obscures (&lt;a href="https://exodus-privacy.eu.org/fr/"&gt;regardez vos apps avant de les installer avec Exodus privacy&lt;/a&gt;), voire même en utilisant des documents Word et PDF envoyés au petit bonheur la chance, par des développeurs qui téléchargent tout et n’importe quoi dans leur environnement de travail (et Docker n’est absolument pas suffisant pour sécuriser).&lt;br /&gt;
Et maintenant avec les agents logiciels type LLM, l’industrialisation des attaques a pris une nouvelle échelle, c'est flagrant depuis le printemps dernier.
&lt;/p&gt;

&lt;blockquote&gt;Tu mets pas un rate-limit&amp;nbsp;?&lt;/blockquote&gt;
&lt;p&gt;Non, car sur ce serveur, j’ai entre autre posté une page technique avec près de 2&amp;nbsp;000&amp;nbsp;images individuelles. Nous avons aussi &lt;a href="https://cpu.pm"&gt;le site de CPU, l'émission Carré Petit Utile&lt;/a&gt;, qui a beaucoup de petits fichiers. Par exemple le mode de distribution média DASH/HLS qui fractionne le sonore d'’émission d’une heure en une centaine de petits fichiers, afin de rendre très rapide les saut de chapitre sur les smartphones. On a aussi le flux &lt;em lang="en"&gt;podcast&lt;/em&gt;. &lt;del&gt;iTunes&lt;/del&gt; Apple Podcast s’amuse parfois à en télécharger les 250&amp;nbsp;illustrations dans les 5&amp;nbsp;secondes.&lt;br /&gt;
Le nombre de faux positifs serait désastreux, malgré la mise en place de HTTP/2 et HTTP/3.&lt;/p&gt;
&lt;p&gt;Tiens, il faudrait que je parle des effets de publication d’une nouvelle émission sur Mastodon&amp;nbsp;: &lt;em lang="en"&gt;Flood&lt;/em&gt; immédiat. Des opérateurs de site web de presse m’ont confirmé que c’était parfois un frein objectif à la présence sur le fédiverse.&lt;/p&gt;

&lt;blockquote&gt;
Pourquoi rester sur Apache ?
&lt;/blockquote&gt;
&lt;p&gt;
Ça n'est pas le sujet mais Apache répond à ce dont j'ai besoin, est toujours maintenu et reçoit des mises à jour de sécurité, et j'avais pas envie de me coltiner la conversion de plein de règles &lt;code&gt;.htaccess&lt;/code&gt;. Je sais que c'est pas le mieux en optimisation, mais ça répond sans soucis. Les règles que je donne s'appliquent avec un minimum d'adaptation aussi sur NGinX.
&lt;/p&gt;


&lt;blockquote&gt;
Tu penses qu'on pourrait l'appliquer sur un serveur tiers, genre un Zabbix qui monitore une flotte de serveurs&amp;nbsp;?
&lt;/blockquote&gt;
&lt;p&gt;
Sûrement, très sûrement, mais cela demande beaucoup d'adaptions et de scripting. Genre surveiller le &lt;code&gt;/var/log/fail2ban.log&lt;/code&gt; de chaque serveur, isoler des messages &lt;code&gt;Ban&lt;/code&gt; et &lt;code&gt;Unban&lt;/code&gt;, réinjecter dans un log à surveiller dans le fail2ban. Par contre, j'ai pas cherché à regarder si des règles s'appliquent aussi pour débannir immédiatement des IP. 
&lt;/p&gt;
&lt;p&gt;
Ça serait con que toute une entreprise se retrouve bannie de tout son cloud à cause d'un dev qui a lancé sans prévenir un outil de scans de vulnérabilités depuis le réseau interne.&lt;br /&gt;Oui, j'ai déjà vu, j'ai ri sous cape.
&lt;/p&gt;

&lt;blockquote&gt;
Pourquoi pas Anubis&amp;nbsp;?
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://anubis.techaro.lol/"&gt;Anubis résout un autre problème, celui du trafic de robots d’IA qui viennent repomper du contenu à revendre en tant que perroquets scolastiques,&lt;/a&gt; tout en en créant tout plein d’autres problèmes.&lt;/p&gt;
&lt;p&gt;Vis à vis des logiciels clients de podcasts ou clouds persos qui récupèrent les flux, c’est extrêmement compliqué à paramétrer&amp;nbsp;: soit je bloque, soit je laisse les IA pomper 150&amp;nbsp;Go de sonores.&lt;/p&gt;
&lt;p&gt;
De toutes façons, les moteurs d'IA commencent à s'embarquer dans les navigateurs web en webextension pour justement se faire passer pour un utilisateur humain, et Anubis commence à se faire contourner, hélas.
&lt;/p&gt;

&lt;blockquote&gt;Regarde pour migrer sous &lt;a href="https://reaction.ppom.me/"&gt;reaction&lt;/a&gt; (de ppom, &lt;a href="https://blog.ppom.me/fr-reaction/"&gt;lire son article&lt;/a&gt;) au lieu de fail2ban&amp;nbsp;? C’est quand même une plaie à maintenir, ce vieux bousin…
&lt;/blockquote&gt;
&lt;p&gt;Tout à fait. Mais je me suis mis comme objectif d’installer le minimum de programme supplémentaire. fail2ban est déjà là pour filtrer les connexions ssh, l’étendre pouvait être fait en moins d’une heure,&lt;/p&gt;

&lt;blockquote&gt;
    Regarde &lt;a href="https://www.crowdsec.net/"&gt;crowdsec&lt;/a&gt;
&lt;/blockquote&gt;
&lt;p&gt;J’adore l’idée d’une liste crowd-sourcée, un peu comme Akismet, un filtre antispam collaboratif par WordPress. Je reste sur ma problématique de ne toucher qu’au minimum à la distribution de base et installer peu de choses, mais clairement, je vais regarder pour d’autres projets que je soutiens.&lt;/p&gt;
&lt;p&gt;
À noter que dans l'installation par défaut, &lt;a href="https://github.com/dnif-archive/enrich-badip"&gt;fail2ban peut participer et utiliser les listes partagées sur &lt;code&gt;badips.com&lt;/code&gt; via leur API&lt;/a&gt;, mais à l'heure où j'écris, &lt;a href="https://badips.com"&gt;le serveur badips.com semble down&lt;/a&gt;, peut-être depuis des années. &lt;a href="https://ipthreat.net/"&gt;Le service semble depuis voir été remplacé par ipthreat.net&lt;/a&gt;, lui aussi intégré dans les options de fail2ban.
&lt;/p&gt;
&lt;p&gt;
 Peut-être aussi que des questions se sont posées, genre &lt;em lang="en"&gt;waterhole-poisonning&lt;/em&gt; par reporting abusif, attaques en DDoS créant des DoS locaux, et j'en passe.
&lt;/p&gt;

&lt;blockquote&gt;
Pourquoi pas Cloudflare&amp;nbsp;?
&lt;/blockquote&gt;
&lt;p&gt;C’est une très bonne question.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;j’ai pas les sous, ou plutôt, je ne veux pas y mettre un budget, ni un compte gratuit&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;je ne connais pas les comportements, surtout vis à vis des softs de podcasts, puisque j’héberge 150&amp;nbsp;Go de sonores&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;je souhaite que mon système soit en autonomie avec la dépendance externe la plus minimale possible&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;je viens à peine de me dégafamiser sur le dernier point (le proxy podcast qui était chez Feedburner), c’est pas pour retourner sur un &lt;abbr title="single point of failure"&gt;SPOF&lt;/abbr&gt; externe sous la juridication &lt;a href="https://legrandcontinent.eu/fr/2025/03/06/les-etats-unis-sont-ils-devenus-les-ennemis-de-leurope-11-perspectives-transatlantiques/"&gt;d'une puissance militaire hostile puissament équipée.&lt;/a&gt; &lt;em lang="en"&gt;Don't feed your ennemies.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Et puis, je préfère valoriser mes &lt;em lang="en"&gt;skills&lt;/em&gt; de Président Fondateur du &lt;a href="https://fflsls.fr"&gt;FFLSLS&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
Qui te dit que, contrairement aux attaques par ssh, tu n’es pas en train de bloquer des proxies, des VPN voire des points de sorties de Tor&amp;nbsp;?
&lt;/blockquote&gt;
&lt;p&gt;C’est effectivement un risque, car des bots passent par ce type de service, ou des VPN gris (des VPN &lt;q&gt;professionnels&lt;/q&gt; proposant des adresses résidentielles de la ville et du FAI de votre choix, &lt;a href="https://www.clubic.com/actualite-555399-votre-televiseur-est-il-pirate-1-6-million-d-appareils-deja-infectes.html"&gt;c'est facile en ayant zombifié des millions de télés connectées&lt;/a&gt;), mais ce n'est pas la très grande majorité. D’où la durée limitée des bans et pas permanents. Sans compter que j'ai plusieurs fois vu des publicités servies par de grands sites, qui comportaient une charge javascript permettant d'attaquer d'autres serveurs, d'où l'intérêt des CSP/CORS dans les navigateurs web pour tenter de limiter cet… &lt;q&gt;usage&lt;/q&gt; indirect des ressources.&lt;br /&gt;
À priori, si un point de sorti est grillé, les clients de VPN, les spectacteurs malheureux d'une pub-malwarisée, ou les utilisateurs de Tor peuvent demander un autre circuit pour ressortir. Ceux derrière un proxy d’entreprise peuvent toujours prendre leur smartphone personnel.&lt;/p&gt;

&lt;blockquote&gt;
Quelle durée pour les bans&amp;nbsp;? 2 ans&amp;nbsp;?
&lt;/blockquote&gt;
&lt;p&gt;Non, seulement 6 mois après 3 tentatives. Ne soyons pas vaches.&lt;/p&gt;

&lt;blockquote&gt;
    il existe aussi des &lt;em lang="en"&gt;mod security&lt;/em&gt; [sur Apache] qui filtre ça avec des règles connu et maintenu (qui est static), ça te fait une sorte de WAF home made.
&lt;/blockquote&gt;
&lt;p&gt;Exact. Mais la beauté de fail2ban est qu’il est asynchrone par rapport aux process Apache, donc il ne l’impacte pas en termes de performances, et il bannit aussi les IP qui tentent les attaques sur des ports comme ssh, mysql, pgsql, mongodb, postfix, gitlab, roundcube, traefik, counter-strike et j’en passe. Une tentative d'attaque d'une IP sur un port indique déjà des intentions pas très pacifiques. &lt;br /&gt;
Je tiens à préciser que les adresses bannies pour attaques web sont toujours différentes de attaques ssh, ce qui peut s'expliquer par le nombre de serveurs de relais disponibles ré-utilisables directement comme reverse-proxies.&lt;br /&gt;
Coucou les caméras de sécurités mal sécurisées&amp;nbsp;!&lt;/p&gt;

&lt;blockquote&gt;
La consommation de CPU pour gérer les règles c’est infernal. Suis très fier de valoriser du vieux matos. Mais là franchement fail2ban j’en ai touché les limites avec cette histoire.
&lt;/blockquote&gt;
&lt;p&gt;Pour l'instant, je touche du bois, mes indicateurs m'ont montré un gain très net en RAM et CPU, donc j'en suis très satisfait. J’en changerai sûrement, le but est de faire le moindre effort possible, le moindre impact possible sur le serveur, le moindre ajout possible de logiciel.&lt;/p&gt;

&lt;blockquote&gt;
Pourquoi ne pas utiliser l’IA&amp;nbsp;?
&lt;/blockquote&gt;
&lt;p&gt;Parce que c’est un moteur statistique, donc techniquement c’est de l’IA.
&lt;/p&gt;
&lt;p&gt;
Je rappelle que je voulais modifier le moins possible mon serveur. Ajouter du logiciel, c'est augmenter fatalement la surface d'attaque.
&lt;/p&gt;
&lt;p&gt;
Après, utiliser l'IA pour découvrir et isoler par exemple de nouveaux &lt;em lang="en"&gt;patterns&lt;/em&gt; d'attaque, et pouvoir proposer des mises à jour des règles de bannissement dans un repo git, avec un traçage d'historique et des tests automatisés de non-surblocage, ça ferait un beau projet.
&lt;/p&gt;

&lt;blockquote&gt;
Pas mal, ça gère les attaques de petit-gris ?
&lt;/blockquote&gt;
&lt;p&gt;
Je suppose que l'on peut faire de la regex unicode dans les paramètres de filtrage de fail2ban, mais n'ayant pas encore vu de tentatives, difficile d'évaluer sans test reproductible.
&lt;/p&gt;

&lt;p&gt;
La discussion continuera sûrement ↓ dans les commentaires ↓ donc n'hésitez pas.
&lt;/p&gt;

&lt;h3 id="bilan"&gt;Bilan&lt;/h3&gt;
&lt;style&gt;
#bilan-ul li::marker {
     content  : "☑ ";
}
&lt;/style&gt;
&lt;ul id="bilan-ul"&gt;
&lt;li&gt;Utiliser l'existant et le déjà installé&lt;/li&gt;
&lt;li&gt;Pouvoir l'étendre et ajouter des paramètres par rapport à mon cas d'usage&lt;/li&gt;
&lt;li&gt;Déployer un minlmum d'effort&lt;/li&gt;
&lt;li&gt;Filtrer efficacement les nuisances&lt;/li&gt;
&lt;li&gt;Réduire les charges CPU, RAM et réseaux de la VM&lt;/li&gt;
&lt;li&gt;Documenter mon expérience&lt;/li&gt;
&lt;li&gt;Soulager mes nerfs envers ces démonstration de scanners de vulnérabilités non-sollicitées&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Personnellement, c'est un &lt;em lang="en"&gt;easy-win&lt;/em&gt; et ça va me resservir pour des serveurs d'associations.
&lt;/p&gt;

&lt;h3 id="et_maintenant"&gt;Et maintenant&amp;nbsp;?&lt;/h3&gt;

&lt;p&gt;Parmi les autres possibilités parues pendant la rédaction du billet, &lt;a href="https://sebsauvage.net/wiki/doku.php?id=stupidantibot"&gt;cet article de SebSauvage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Il me reste à protéger le serveur minitel de la radio, trop librement accessible par le port 3615.&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2026/08/25/fail2ban-sur-son-serveur-web#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2026/08/25/fail2ban-sur-son-serveur-web#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3189</wfw:commentRss>
              </item>
          <item>
        <title>Tea party d'été</title>
        <link>https://dascritch.net/post/2026/08/14/Tea-party-d-%C3%A9t%C3%A9</link>
        <guid isPermaLink="false">urn:md5:76262c056abb3b6ea82825dd29186b02</guid>
        <pubDate>Fri, 14 Aug 2026 07:47:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Ma vie est une sitcom</category>
                          <category>cuisine</category>
                  <category>dinah</category>
                  <category>enflammée</category>
                  <category>photo</category>
                <description>Hydratez-vous bien          &lt;p&gt;
Dinah et Alice prennent le thé 
&lt;/p&gt;
&lt;p&gt;
Après c'est des champis, du LSD, Chat de Cheshire, lièvre à la bourre sur la cuisson, etc...
&lt;/p&gt;
&lt;p&gt;
Cette photo a été prise au début de la seconde vague de la canicule. Depuis, Dinah a perdu facile 1,5 kg en deux mois.
&lt;/p&gt;
&lt;p class="c"&gt;
&lt;a href="https://dascritch.net/vrac/.blog2/sitcom/2608-teaparty.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sitcom/.2608-teaparty_m.jpg" alt="" rel="lightbox" /&gt;&lt;/a&gt;
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2026/08/14/Tea-party-d-%C3%A9t%C3%A9#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2026/08/14/Tea-party-d-%C3%A9t%C3%A9#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3191</wfw:commentRss>
              </item>
          <item>
        <title>Occultation maximale</title>
        <link>https://dascritch.net/post/2026/08/12/Occultation-maximale</link>
        <guid isPermaLink="false">urn:md5:ddd36fb0b2a87fc52b43cb978a539277</guid>
        <pubDate>Wed, 12 Aug 2026 08:39:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Sortons</category>
                          <category>photo</category>
                <description>Une éclipse solaire, c'est beau sur la ville…          &lt;p&gt;
&lt;a class="r" rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-11.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-11_s.jpg" alt="" /&gt;&lt;/a&gt;
Nous avions été invités à un &lt;em lang="en"&gt;roof top&lt;/em&gt;, littéralement un des plus beaux points de vue sur la ville, en haut du cimetière de la Gloire, d'un immeuble plus haut que les mâts émetteurs de Radio Occitanie et TowerCast juste à côté. D'ailleurs, nous étions à 3 mètres du nodal &lt;em lang="en"&gt;mesh&lt;/em&gt; du réseau hertzien de Tetaneutral.
&lt;/p&gt;
&lt;p&gt;
Si l'immeuble accuse son âge, et ses poutres en bétons dangereusement basses pour moi, l'ambiance est étonnante, avec un soupçon de vent sous la toiture. Outre celui qui a invité le Tetalab à s'y délocaliser pour la soirée, les habitants légitimes montent et une joyeuse ambiance pointe spontanément. Les discussions vont et viennent avec les amis trop peu vus. Le matériel est mis en place, s'échange des &lt;em lang="en"&gt;tips&lt;/em&gt;, des lunettes et des boissons fraîches, tandis que chacun tente de reconnaître les immeubles remarquables de la ville, heureusement pas encore lardée d'une &lt;q&gt;Tour Occitanie&lt;/q&gt;, la fameuse Tour Moudenckiki (&lt;small&gt;CENT CINQUANTE MÈTRES EN ÉRECTION&lt;/small&gt;) dont personne n'en voit l'utilité sinon soigner un ego sensible qui ne souffre pas d'être ombragé.
&lt;/p&gt;
&lt;p&gt;
Entre qui a amené un chouette stock de lunettes protectrices d'excellentes qualités, qui des filtres pour smartphones et objectifs photos, qui une &lt;em lang="la"&gt;camera obscura&lt;/em&gt; maison (une boite à chaussure pour moi, un petit trou d'épingle, et hop), qui un appareil argentique, qui d'autres amis.
&lt;/p&gt;
&lt;p&gt;
Quels souvenirs a-t-on de la dernière éclipse totale, celle de 1999&amp;nbsp;? Je serais bien incapable de m'en souvenir, tiens, et je ne suis pas le seul. &lt;a href="https://bsky.app/profile/sergezaka.bsky.social/post/3msw2im5les2g"&gt;Parait qu'il y fit bien plus frais&lt;/a&gt; et qu'elle fut totale, normal pour un gouvernement de cohabitation républicaine.
&lt;/p&gt;
&lt;p&gt;
La lumière baisse, les oiseaux volent de plus en plus bas, on ré-explique pour la 8&lt;sup&gt;ème&lt;/sup&gt; fois à la voisine que non, il vaut mieux qu'elle utilise nos lunettes protectrices que son empilement de 4 paires lunettes de soleils (! et elle insistait pourtant !). Perso, je montre à une des occupantes de l'immeuble comment utiliser le filtre solaire avec son téléphone en débloquant tous les réglages en manuel, devant un collègue du Tetalab dégoûté de n'avoir ces modes avancés.
&lt;/p&gt;
&lt;p&gt;
Devant nous s'étale quasi toute l'agglomération toulousaine dans son majestueux entrelacs de bâtiments en briques oranges, d'immeubles modernes, d'une roue incongrue sur la rive gauche et de bélugas qui se posent majestueusement pour se nicher à Blagnac. Devant nous, le ciel est orange apocalyptique, digne de «&amp;nbsp;&lt;em&gt;Blade Runner&lt;/em&gt;&amp;nbsp;» avec la chape d'humidité et sa pollution. Tandis que derrière nous, la vue sur Balma est d'un bleu transparent jusqu'au Tarn.
&lt;/p&gt;
&lt;p&gt;
Tout le monde met ses lunettes comme pour un blockbuster en 3D, ouvrant pop-corns et (avantage sur les multiplexes) bières légères.
&lt;/p&gt;

&lt;p&gt;
C'est durant ce moment où les oiseaux sont tous sur le tarmac, où même les scooters arrêtent de vrombir tellement qu'ils sont impressionnés par le spectacle et où tout le monde retient son souffle devant la stupéfiante beauté du spectacle cosmique que le poète prévoyant alerte les badauds au cas où.
&lt;/p&gt;
&lt;p&gt;
Mais la foule est ingrate.
&lt;/p&gt;
&lt;p&gt;
La prochaine éclipse solaire visible sur le territoire métropolitain sera une occultation partielle moins impressionnante et comme par hasard le 2 août 2027, jour de mon anniversaire. JDÇJDR.
&lt;/p&gt;
&lt;p class="c"&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-15.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-15_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-16.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-16_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-12.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-12_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-13.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-13_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-1.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-1_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-2.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-2_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-3.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-3_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-4.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-4_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-14.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-14_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-5.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-5_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-6.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-6_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-7.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-7_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-8.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-8_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-9.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-9_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[eclipse]" alt="" href="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/2608-occultationmaximale-10.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2608-occultationmaximale/.2608-occultationmaximale-10_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;/p&gt;</description>
        
          <enclosure length="37143" type="audio/mpeg3" url="/vrac/sonores/2608-maximumoccultation.mp3"/>
        
                  <comments>https://dascritch.net/post/2026/08/12/Occultation-maximale#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2026/08/12/Occultation-maximale#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3190</wfw:commentRss>
              </item>
          <item>
        <title>Quand t'as pas compris les emoji</title>
        <link>https://dascritch.net/post/2026/08/10/Quand-t-as-pas-compris-les-emoji</link>
        <guid isPermaLink="false">urn:md5:77c7f040046062f29f9c0627ccec751f</guid>
        <pubDate>Mon, 10 Aug 2026 14:16:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Webdev</category>
                          <category>design</category>
                  <category>mobilité</category>
                  <category>ordinateur</category>
                  <category>unicode</category>
                <description>Oui, parce que si les emoji existent comme ça, c'est qu'il y a plein de raisons.          &lt;p&gt;
Cela fait trop longtemps que je n'ai pas écrit sur ce blog. Le manque de temps, le fait que pour parler technique, &lt;a href="https://cpu.pm"&gt;je privilégie mon émission radio CPU&lt;/a&gt;, le manque parfois d'envie.
&lt;/p&gt;
&lt;p&gt;
Alors réveillons-le comme une sorte de brouillons pour mes futurs sujets, pour des à-côtés, ou simplement comme ça, dire que je suis toujours là.
&lt;/p&gt;
&lt;p&gt;
Certains le savent, je manipule les emoji depuis 1999. Oui, depuis aussi longtemps, et &lt;a href="https://dascritch.net/i/emoji/apropos.html"&gt;les traces sont sur ce site web.&lt;/a&gt; Cela a été l'objet d'&lt;a href="https://dascritch.net/post/2012/09/25/Des-emoji-dans-l-Unicode-%E2%96%B6-Pr%C3%A9sentation-en-live"&gt;une de mes premières conférences techniques en 2012&lt;/a&gt;, adaptation d'&lt;a href="https://dascritch.net/post/2012/03/06/Des-emojis-dans-l-Unicode-1"&gt;une série de billets persos &lt;q&gt;Des emoji dans l'Unicode&lt;/q&gt;&lt;/a&gt;. D'une manière assez amusante, on m'a cité une fois en entretien d'embauche mon propre sujet en ignorant que j'en étais le rédacteur. J'ai eu aussi des informations précieuses de première main, parfois très drôles, et j'ai toujours envie de raconter cette épopée des emoji dans l'Unicode et les implications techniques.
&lt;/p&gt;
&lt;p&gt;
Mais ça ferait peut-être hautain.
&lt;/p&gt;
&lt;p&gt;
Donc je me baladais sur LinkedIn en quête de ma prochaine quête &lt;a href="https://www.linkedin.com/posts/alten-tomorrowsworld-altenai-ugcPost-7490711693342314496-5sjz/"&gt;quand je tombe sur ce post d'une ESN française&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote lang="en"&gt;
The emojis we got vs. the emojis we deserve &#128173;&lt;br /&gt;
The world is evolving faster than ever. New technologies, smarter engineering, cleaner energy and more connected industries are just some of the advances impacting our everyday lives.&lt;br /&gt;
However, most of the emojis available don’t represent these innovations… So we decided to take the matter into our own hands and create the versions that would best fit the ALTEN approach! &lt;br /&gt;
Take a look at our refreshed emojis. &#128071;&#127995;
&lt;/blockquote&gt;
&lt;p&gt;
Suivi d'une collection d'images opposant des emoji de la fonte Google Noto (donc Android&amp;nbsp;?) à leur réinterprétation par IA générative. Par exemple, une personne derrière un laptop revu dans un environnement holographique, ou une paire de lunettes revue en dispositif de Réalité Augmentée
&lt;/p&gt;
&lt;figure&gt;
&lt;a href="https://dascritch.net/vrac/.blog2/webdev/2608-emoji-revus.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/webdev/.2608-emoji-revus_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;figcaption&gt;
© Alten
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
Pour une boite spécialisée dans l'ingénierie informatique, ne pas avoir compris pourquoi et comment les emoji existent, les contraintes optiques, les usages directs, le besoin d'abstraction, tout cela pour s'exprimer graphiquement par des images générées par IA,…
&lt;/p&gt;
&lt;p&gt;
Qu'en 3 petits prompts pour générer ton post sur LinkedIn pour faire &lt;q&gt;plus joli plus rapide&lt;/q&gt; sans en comprendre contraintes et complexité, cela laisse rêveur.
&lt;/p&gt;
&lt;p&gt;
C'est encore plus drôle quand ce post arrive une semaine après que, dans un spectaculaire retour en arrière, LinkedIn supprime ses outils d'&lt;q&gt;amélioration par Copilot&lt;/q&gt; des contenus et propose maintenant de filtrer et modérer fortement tout contenu post généré par IA, constatant que c'était devenu infernal.
&lt;/p&gt;

&lt;p&gt;
Allez, à la prochaine bafouille&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>N2HDF 2026 Toulouse</title>
        <link>https://dascritch.net/post/2026/06/07/N2HDF-2026-Toulouse</link>
        <guid isPermaLink="false">urn:md5:f973f56f7c1ad7c4cb159bdf4abdc54a</guid>
        <pubDate>Sun, 07 Jun 2026 19:20:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Webdev</category>
                          <category>communauté</category>
                  <category>privacy</category>
                  <category>sécurité</category>
                <description>Comment s'est passée la N2HDF 2026 édition Toulouse au sein du Tetalab ? Retrouvez les supports et enregistrements.          &lt;p class="c"&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/webdev/n2hdf.png" alt="Nothing 2 Hide Decentralized Festival" /&gt;
&lt;/p&gt;

&lt;p&gt;
Le Samedi 30 Mai 2026 avait lieu &lt;a href="https://www.tetalab.org/fr/n2hdf-2026"&gt;l'édition toulousaine de la N2HDF 2026.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://nothing2hide.org/"&gt;Nothing 2 Hide&lt;/a&gt; est une association dont le but est de protéger l’information par la fourniture d'outils face aux menaces et la surveillance numarique, la lutte contre la censure, des formations et l'éducaiton au médias.
&lt;/p&gt;
&lt;p&gt;
Suite à différents événements publics qu'ils ont organisés, ils ont eu l'idée de proposer à de multiples associations disséminées sur la France d'organiser le même week-end des ateliers, conférences, tables rondes, etc… &lt;a href="https://nothing2hide.org/fr/2026/04/21/n2hdf-2026-le-programme/"&gt;sous le nom N2HDF (Decentralized Festival)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Le Tetalab eu l'honneur d'avoir à organiser l'événement sur Toulouse, qui s'estdéroulé au Topic le samedi 30 dans l'après-midi.
&lt;/p&gt;
&lt;p&gt;
Voici le programme, les supports et enregistremets
&lt;/p&gt;
&lt;p id="c1"&gt;
Conférence «&amp;nbsp;Le Bluetooth a-t-il définitivement remplacé la prise casque de votre smartphone&amp;nbsp;?&amp;nbsp;»&lt;br /&gt;
Et si oui, pourquoi&amp;nbsp;? Analysons une suite de décision qui n'est pas toujours en faveur de votre vie privée et de votre porte-monnaie. Et pourquoi ça serait bien de militer auprès de certaines marques pour qu'il remettent la prise casque.&lt;br /&gt;
																	&lt;cpu-audio title="N2HDF 2026 Toulouse" canonical="https://dascritch.net/post/2026/06/07/N2HDF-2026-Toulouse" poster="https://dascritch.net/vrac/.blog2/webdev/.n2hdf_s.png"  hide="panels" playlist="cpu"&gt;
	&lt;audio controls="controls" style="width:100%"&gt;
				&lt;source src="https://dascritch.net/vrac/sonores/2606-N2HDF2026%20Toulouse%20-%20Prsentation%20bluetooth.ogg" type="audio/ogg; codecs=vorbis" /&gt;
		&lt;source  src="https://dascritch.net/vrac/sonores/podcast/2606-N2HDF2026%20Toulouse%20-%20Prsentation%20bluetooth.mp3" type="audio/mpeg" /&gt;
			&lt;/audio&gt;
&lt;/cpu-audio&gt;&lt;br /&gt;
&lt;a href="https://dascritch.net/vrac/Supports/2605-N2HDF/jackphone.html"&gt;Support de la présentation&lt;/a&gt; (utilisez la flèche → ou swiper sur écran tactile pour avancer)
&lt;/p&gt;
&lt;p&gt;
Conférence «&amp;nbsp;Readeck, un logiciel libre d'archivage de contenu en ligne.&amp;nbsp;»&lt;br /&gt;
Rien n'est éternel et un marque-page sur navigateur suit la même logique: un beau jour, vous allez cliquer pour revisiter un site ou article intéressant et là c'est le drame. Le domaine a été vendu, l'auteur n'avait plus envie de le maintenir, &lt;code&gt;404 Not Found&lt;/code&gt;, le contenu a changé été censuré...&lt;br /&gt;
&lt;cpu-audio title="N2HDF 2026 Toulouse" canonical="https://dascritch.net/post/2026/06/07/N2HDF-2026-Toulouse" poster="https://dascritch.net/vrac/.blog2/webdev/.n2hdf_s.png"  hide="panels" playlist="cpu"&gt;
	&lt;audio controls="controls" style="width:100%"&gt;
				&lt;source src="https://dascritch.net/vrac/sonores/2606-N2HDF2026%20Toulouse%20-%20Prsentation%20readeck.ogg" type="audio/ogg; codecs=vorbis" /&gt;
&lt;source src="https://dascritch.net/vrac/sonores/podcast/2606-N2HDF2026%20Toulouse%20-%20Prsentation%20readeck.mp3" type="audio/mpeg" /&gt;
			&lt;/audio&gt;
&lt;/cpu-audio&gt;
&lt;/p&gt;
&lt;p&gt;
conférence «&amp;nbsp;Bien se servir des VPN&amp;nbsp;».&lt;br /&gt;
Pourquoi un VPN, c'est très pratique, surtout si vous êtes youtubeur professionnel. Pourquoi les VPN ont été créés, quelle est leur utilité réelle, quelles sont leurs limites techniques, pourquoi l'usage des VPN commerciaux par des particuliers n'est pas franchement utile, en quoi mentent les opérateurs de VPN grand-public, et quelles sont les meilleures alternatives.&lt;br /&gt;
&lt;cpu-audio title="N2HDF 2026 Toulouse" canonical="https://dascritch.net/post/2026/06/07/N2HDF-2026-Toulouse" poster="https://dascritch.net/vrac/.blog2/webdev/.n2hdf_s.png"  hide="panels" playlist="cpu"&gt;
	&lt;audio controls="controls" style="width:100%"&gt;
				&lt;source src="https://dascritch.net/vrac/sonores/2606-N2HDF2026%20Toulouse%20-%20Prsentation%20vpn.ogg" type="audio/ogg; codecs=vorbis" /&gt;
		&lt;source src="https://dascritch.net/vrac/sonores/podcast/2606-N2HDF2026%20Toulouse%20-%20Prsentation%20vpn.mp3" type="audio/mpeg" /&gt;
			&lt;/audio&gt;
&lt;/cpu-audio&gt;&lt;br /&gt;
&lt;a href="https://dascritch.net/vrac/Supports/2605-N2HDF/vpn_N2HDF2026-1.pdf"&gt;Support au format PDF&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
conférence «&amp;nbsp;Vraiment rien à cacher&amp;nbsp;?&amp;nbsp;».&lt;br /&gt;
Nous avons tous entendu cet argument stupide, &lt;q&gt;C'est pas grave, moi, je n'ai rien à cacher.&lt;/q&gt; Partons du principe que c'est le cas et déconstruisons point par point tout ce qui pose un problème dans cette affirmation.&lt;br /&gt;
&lt;cpu-audio title="N2HDF 2026 Toulouse" canonical="https://dascritch.net/post/2026/06/07/N2HDF-2026-Toulouse" poster="https://dascritch.net/vrac/.blog2/webdev/.n2hdf_s.png"  hide="panels" playlist="cpu"&gt;
	&lt;audio controls="controls" style="width:100%"&gt;
				&lt;source src="https://dascritch.net/vrac/sonores/2606-N2HDF2026%20Toulouse%20-%20Prsentation%20rien%20a%20cacher.ogg" type="audio/ogg; codecs=vorbis" /&gt;
		&lt;source src="https://dascritch.net/vrac/sonores/podcast/2606-N2HDF2026%20Toulouse%20-%20Prsentation%20rien%20a%20cacher.mp3" type="audio/mpeg" /&gt;
			&lt;/audio&gt;
&lt;/cpu-audio&gt;&lt;br /&gt;
&lt;a href="https://dascritch.net/vrac/Supports/2605-N2HDF/rienacacher.odp"&gt;Support au format .odp, lisible avec Libre Office&lt;/a&gt;

&lt;/p&gt;
&lt;p&gt;
Table ronde : Échanges autour des pratiques et des enjeux de l'autodéfense numérique par les intervenants de la journée.&lt;br /&gt;
&lt;cpu-audio title="N2HDF 2026 Toulouse" canonical="https://dascritch.net/post/2026/06/07/N2HDF-2026-Toulouse" poster="https://dascritch.net/vrac/.blog2/webdev/.n2hdf_s.png"  hide="panels" playlist="cpu"&gt;
	&lt;audio controls="controls" style="width:100%"&gt;
				&lt;source src="https://dascritch.net/vrac/sonores/2606-N2HDF2026%20Toulouse%20-%20Debat.ogg" type="audio/ogg; codecs=vorbis" /&gt;
		&lt;source src="https://dascritch.net/vrac/sonores/podcast/2606-N2HDF2026%20Toulouse%20-%20Debat.mp3" type="audio/mpeg" /&gt;
			&lt;/audio&gt;
&lt;/cpu-audio&gt;

&lt;/p&gt;
&lt;p&gt;
À noter que les enregistrements ont été édités afin de préserver l'anonymat des membres du public.
&lt;/p&gt;
&lt;p&gt;
Organisation : Nothing2Hide, Tetalab. Moyens techniques public access : 5 Minutes. Captation et Mixage : CPU
&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>Cinquantenaire</title>
        <link>https://dascritch.net/post/2024/08/02/Cinquantenaire</link>
        <guid isPermaLink="false">urn:md5:f1a8d21617230de29e08e67c4e8f837d</guid>
        <pubDate>Fri, 02 Aug 2024 08:00:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Ma vie est une sitcom</category>
                        <description>Ça devait finalement m'arriver...          &lt;p&gt;
Voilà, j'ai 50 ans.
&lt;/p&gt;
&lt;p&gt;
Je suis censé être plus mûr, sûrement moins frais, plus sage mais plus aigri. Mais j'essaie de rester passionné même si j'ai délaissé dernièrement (provisoirement) mes engagements associatifs, mon émission de radio et ce blog.
&lt;/p&gt;
&lt;p&gt;
Je remercie tous mes amies et amis qui ont pu venir à notre soirée, et bien évidemment, j'en veux nullement à ceux qui n'ont pu venir ou se sont annulés à la dernière minute.
&lt;/p&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/sitcom/.2408-cinquantenaire_m.jpg" alt="" /&gt;

&lt;p&gt;
PS 1 : Cette soirée n'aurait pu être possible sans Enflammée, bien sûr.
&lt;/p&gt;

&lt;p&gt;
PS 2 : Ce billet a été volontairement antidaté.
&lt;/p&gt;


&lt;p&gt;
PS 3 : Crédit photo NoCoGabriel.
&lt;/p&gt;</description>
        
              </item>
          <item>
        <title>Bye bye, GPDis !</title>
        <link>https://dascritch.net/post/2022/02/11/Bye-bye%2C-GPDis-%21</link>
        <guid isPermaLink="false">urn:md5:c8d8f17cb428a92e6e78a351c7c1589a</guid>
        <pubDate>Fri, 11 Feb 2022 06:55:00 +0100</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Ma vie est une sitcom</category>
                          <category>bash</category>
                  <category>python</category>
                  <category>self-business</category>
                <description>Aujourd'hui est mon dernier jour à Eurocentre. Je quitte mon emploi de développeur chez GPDis, un important acteur dans la vente d'électroménager. Mais pas que.          &lt;p&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/sitcom/.2202-leaving-gpdis_s.jpg" alt="" class="r" /&gt;
Depuis 2007 je n'étais pas resté aussi longtemps dans une entreprise. Aujourd'hui, je quitte GPDis à quelques jours des 5&amp;nbsp;années de mon arrivée.&lt;br /&gt;
GPDis qui a intégré entre-temps &lt;a href="https://www.mda-electromenager.com/fr/"&gt;MDA Group,&lt;/a&gt; c'est des centaines de points de vente direct, des enseignes comme Pulsat, Villatech, Dimipro, Phox,et maintenant MDA, plusieurs plateformes d'e-commerce en &lt;abbr title="pour le grand public"&gt;B2C&lt;/abbr&gt; et &lt;abbr title="pour les entreprises"&gt;B2B&lt;/abbr&gt;, une logistique avec &lt;a href="http://www.gpdis.com/plateformes/"&gt;plusieurs entrepôts sur l'hexagone,&lt;/a&gt; un service &lt;abbr title="technique"&gt;IT&lt;/abbr&gt; dédiée à ses points de vente et aux commerciaux et tous les  services supports sur la multitude de canaux &lt;em lang="en"&gt;retail&lt;/em&gt; qui en couvre le spectre commercial.
&lt;p&gt;
Avant d'entrer dans cette très grosse &lt;abbr&gt;PME&lt;/abbr&gt;, j'avais développé plusieurs solutions d'e-commerce, &lt;a href="https://dascritch.net/tag/dagence"&gt;dont une&lt;/a&gt; avec &lt;a href="https://dascritch.net/post/2020/10/25/Adieu-Xylpho"&gt;le regretté Xylpho,&lt;/a&gt; mais je dois dire que chez GPDis j'ai appris de multiples choses sur la logistique, sur les particularismes, sur les veilles de prix et politiques tarifaires. Un groupe protéiforme avec de multiples canaux de ventes, un vaste panorama de clientèle &lt;abbr&gt;B2B&lt;/abbr&gt; et &lt;abbr&gt;B2C&lt;/abbr&gt;, j'avais vraiment beaucoup à y découvrir.
&lt;/p&gt;
&lt;p&gt;
Ayant eu en charge un outil métier qui semble simple mais dont l'historique git remonte à 2011, il m'a déjà raconté bien des choses sur la vie d'une entreprise.&lt;br /&gt;
Le genre d'outil &lt;em lang="en"&gt;custom&lt;/em&gt; costaud, l'ouvrage séculaire qui en impose, où l'on passe la lourde porte en bois pour entrer dans une immense cathédrale, où chaque pas sur le code de pierre résonnent dans l'immense nef de la Production au point qu'on n'ose marcher que sur la pointe des pieds afin de ne pas trop attirer l'attention (un peu comme dans le stock attenant après la période des soldes). Un progiciel avec lequel je discutais avec d'autres service internes et externes, où je me devais d'être carré. J'étais intimidé… mais le copain qui m'a mis là et l'équipe autour a su me mettre en confiance.
&lt;/p&gt;
&lt;p&gt;
J'ai eu à le stabiliser, le fiabiliser, l'accélérer et enfin l'étendre encore plus. Et autour de moi, un groupe aussi évoluait à toute vitesse.
&lt;/p&gt;
&lt;p&gt;
J'y ai beaucoup appris. J'avais une expérience sur le e-commerce, mais je n'avais pas l'expérience à cette échelle-là et sur autant de prestations. Si je connaissais déjà la différence entre un &lt;abbr title="Stock keeping unit, index interne à l'entreprise"&gt;SKU&lt;/abbr&gt; et un &lt;abbr title="Global Trade Item Number, index international standardisé par une autorité centrale"&gt;GTIN&lt;/abbr&gt;, j'ai eu aussi la surprise de découvrir qu'un même modèle d'un même fabricant pouvoir ne pas avoir le même &lt;abbr&gt;GTIN&lt;/abbr&gt; selon les fournisseurs. J'ai aussi (honte à moi) ri quand un prestataire e-commerce qui roulait des mécaniques tenait absolument à utiliser sa version des frais de port en fonction du poids, et qu'il a enfin compris que non, on ne vend pas comme des maillots de foot des frigos américains et des télés, la gestion des transports est nettement plus &lt;em lang="en"&gt;touchy&lt;/em&gt; que ça. J'ai aussi fait au grand plaisir de &lt;a href="https://www.linkedin.com/in/loick-daures-143078ab/"&gt;Loick Daures&lt;/a&gt; une démonstration de &lt;em lang="jp"&gt;chanbara&lt;/em&gt;, quand un ingénieur commercial d'un grand opérateur réseau a crû m'expliquer le &lt;abbr&gt;RGPD&lt;/abbr&gt; et s'est retrouver à sauter précipitamment les pages de son PowerPoint par dizaines devant ses collègues commerciaux en sueur alors qu'en devisant des citations latines, je sortais mon &lt;em lang="jp"&gt;katana&lt;/em&gt;. Et j'ai appris encore tant d'autres choses, rien que la formation &lt;abbr title="Sauveteur Secouriste du Travail"&gt;SST&lt;/abbr&gt; d'utilité publique que j'aurais dû avoir fait depuis une dizaine d'années, ou encore cette des &lt;a href="https://delicious-insights.com/"&gt;applicatifs javascript avec Christophe Porteneuve&lt;/a&gt; qui a été un grand moment dans l'équipe.
&lt;/p&gt;
&lt;p&gt;
J'ai mis ma patte aussi&amp;nbsp;: essayer de faire en sorte que le même vocabulaire soit utilisé d'un service à l'autre, qu'il y ai une gestion documentaire normalisée sur le logiciel dont j'avais la charge et enfin découpler du métier ce qui tient de l'&lt;abbr&gt;OS&lt;/abbr&gt; (notamment les transferts de fichiers) et normaliser &lt;a href="https://dascritch.net/tag/bash"&gt;les scripts bash&lt;/a&gt;, dont j'ai résumé la philosophie de mes scripts sur &lt;a href="https://dascritch.net/post/2017/09/25/En-20-lignes-pas-plus-%3A-un-verrou-non-concurrentiel-pour-tes-scripts-bash"&gt;le verrou non-concurrentiel&lt;/a&gt; et &lt;a href="https://dascritch.net/post/2018/01/08/En-20-lignes-pas-plus-%3A-g%C3%A9rer-les-options-d-appel-de-tes-scripts-bash"&gt;les options d'appel&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Je remercie ceux qui m'ont précédé à ce poste&amp;nbsp;: &lt;a href="https://www.linkedin.com/in/wo0dyn/"&gt;Nicolas Dubois&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/antoine-cezar/"&gt;Antoine Cézar&lt;/a&gt;, &lt;a href="https://www.linkedin.com/in/camille-alram-650519b9/"&gt;Camille Alram&lt;/a&gt; et &lt;a href="https://github.com/harmo"&gt;David Talagrand&lt;/a&gt;, ce dernier m'a co-opté pour prendre la suite (d'ailleurs, en 25&amp;nbsp;années, je n'ai été que co-opté pour mes postes). Par hasard, il se trouve que ce sont tous des amis. Je remercie infiniment &lt;a href="https://www.linkedin.com/in/david-lefoye/"&gt;David Lefoye&lt;/a&gt; pour sa bienveillance et sa connaissance &lt;q&gt;à 360°&lt;/q&gt; du secteur, &lt;a href="https://www.linkedin.com/in/r%C3%A9mi-soubranne-5a459a78/"&gt;Rémi Soubranne&lt;/a&gt; pour son amitié (un &lt;abbr title="Product owner"&gt;P.O.&lt;/abbr&gt; commercial dans la vente d'électroménager qui vous écrit parfaitement des tickets sur Github, c'est du bonheur&amp;nbsp;!), tous ceux qui ont été mes collègues à l'&lt;abbr&gt;IT&lt;/abbr&gt; et ceux qui y sont encore. Je salue aussi &lt;a href="https://www.linkedin.com/in/danielbroche/"&gt;Daniel Broche&lt;/a&gt; qui avant de travailler pour des concurrents, avant manqué de me prendre chez GPDis du temps de Discounteo. Lui aussi est resté un ami et j'occupe son ancien bureau.
&lt;/p&gt;
&lt;p&gt;
Alors évidemment, il y a les regrets des chantiers jamais commencés, des occasions prises pas assez tôt. Il y eu aussi la surprise pour certains que le télétravail fonctionne, alors qu'en étant déjà divisés entre 4&amp;nbsp;régions, nous appliquions déjà de fait tout ce qu'il fallait. Et puis les lancements qui furent de bonnes surprises malgré mes sombres prédictions.
&lt;/p&gt;
&lt;p&gt;
J'ai eu plaisir à travailler avec des professionnels sérieux, aux parcours et spécialisations variés, de la bonne humeur au café, &lt;a href="https://www.chocoblast.fr/"&gt;les raids de choco-blast (que j'ai commué en paniers de fruits),&lt;/a&gt; la paella en salle de réunion, les tournois de baby-foot, des &lt;abbr&gt;BBQ&lt;/abbr&gt; dehors et des soirées &lt;em lang="en"&gt;afterworks&lt;/em&gt;. Ce plaisir, j'espère qu'il fut partagé.
&lt;/p&gt;
&lt;p&gt;
Mes nouvelles aventures s'annoncent tout aussi palpitantes.
&lt;/p&gt;
&lt;p&gt;
Note : photo datant de 2019 d'où l'absence du port de protection faciale.
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2022/02/11/Bye-bye%2C-GPDis-%21#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2022/02/11/Bye-bye%2C-GPDis-%21#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3183</wfw:commentRss>
              </item>
          <item>
        <title>Radio FMR, mais elle dure depuis 40 ans</title>
        <link>https://dascritch.net/post/2021/11/22/Radio-FMR%2C-mais-elle-dure-depuis-40-ans</link>
        <guid isPermaLink="false">urn:md5:5012d996dbe435ac793bdd6559671f7c</guid>
        <pubDate>Mon, 22 Nov 2021 07:07:00 +0100</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Radio</category>
                        <description>Et elle a encore tant à vous dire          &lt;p&gt;
&lt;a href="https://radio-fmr.net/archives-actus/#post-46313"&gt;Pour ses 40 ans, Radio &amp;lt;FMR&amp;gt; organise quelques soirées live,&lt;/a&gt; et cela a commencé dès Vendredi dernier, avec une prog qui allait du rockabilly au punk. Je poste les photos au fin fond du billet (exprès), et sinon une très grosse soirée aura lieue &lt;a href="https://lebikini.com/2021/11/27/40-ans-radio-fmr/"&gt;ce Samedi au Bikini avec un plateau de qualité&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Et là, vous allez me dire
&lt;/p&gt;
&lt;h3 id="existe_encore"&gt;« FMR ? Ça existe encore ? »&lt;/h3&gt;
&lt;p&gt;
Eh ben oui ! Depuis 1981, elle vit encore grâce à la bonne volonté de bénévoles comme moi. Oui, une radio associative, c'est incongru à l'époque où l'on peut théoriquement se faire du pognon sur Youtube et Twitch, mais dans les faits, c'est justement une bonne garantie de ne pas avoir de publicités outrancières pour des pilules soit disant amaigrissantes par des évadés fiscaux au Qatar. Et ça change tout.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="https://cpu.dascritch.net/post/2021/11/25/Bonjour-%C3%A0-toi%2C-Enfant-du-Futur-Imm%C3%A9diat-%3A-Les-ann%C3%A9es-punk-de-radio"&gt;(En fait, je l'ai finalement mieux dit au micro, mais vous pouvez continuer à lire ce billet)&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Avoir un média qui ne vous traque pas dès que vous tentez d'y accéder, avoir un média qui ne soit pas derrière un logwall ou un paywall (coucou Instagram, coucou Webedia), avoir un média dont l'accès gratuit est garanti et son ancrage local aussi sans publicité, y'en a pas brézef.
&lt;/p&gt;
&lt;p&gt;
Mais un média qui ne cherche pas forcément l'audience et donc a sur son antenne &lt;a href="https://cpu.pm"&gt;des émissions aux sujets vraiment pointus, comme CPU&lt;/a&gt;, c'est encore plus rare&amp;nbsp;! Ni mon émission, ni d'autres qui sont sur FMR auraient eu la moindre chance sur un autre média à place limité. C'est ce qui en fait la complémentarité du secteur associatif de la radio. On a l'inconfort des moyens mais la liberté de ne pas être tributaire de l'audience et donc de la publicité, et sans être sous la coupe d'un pouvoir politique. Le CSA est seul juge sur notre existence.
&lt;/p&gt;
&lt;p&gt;
Alors le manque de moyens, les conditions des fois acrobatiques pour assurer un sujet, voire le snobisme de certaines boites quand on leur demande une interview, c'est pour moi la preuve que nous avons encore plus que jamais le mérite de continuer d'émettre.
&lt;/p&gt;
&lt;p&gt;
Et de ça, j'en reparlerais ce Jeudi à la radio sur pourquoi FMR est un putain de miracle encore actuellement.
&lt;/p&gt;

&lt;h3 id="photos"&gt;Photos de Vendredi dernier&lt;/h3&gt;
&lt;p&gt;
Mille mercis aux groupes, aux volontaires de la radio et à l'équipe de l'Usine à Musique, qui nous a fait un accueil vraiment super&amp;nbsp;!
&lt;/p&gt;
&lt;p class="c"&gt;
&lt;a rel="lightbox[concerts]" href="https://dascritch.net/vrac/.blog2/radio/2111-FMR-Concert-LesSaboteurs.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/radio/.2111-FMR-Concert-LesSaboteurs_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;a rel="lightbox[concerts]" href="https://dascritch.net/vrac/.blog2/radio/2111-FMR-Concert-RadicalKittens.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/radio/.2111-FMR-Concert-RadicalKittens_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2021/11/22/Radio-FMR%2C-mais-elle-dure-depuis-40-ans#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2021/11/22/Radio-FMR%2C-mais-elle-dure-depuis-40-ans#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3182</wfw:commentRss>
              </item>
          <item>
        <title>…sans Frank</title>
        <link>https://dascritch.net/post/2021/10/06/%E2%80%A6sans-Frank</link>
        <guid isPermaLink="false">urn:md5:9384add070757633e2aa6b8d273ed5d0</guid>
        <pubDate>Wed, 06 Oct 2021 13:22:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Sortons</category>
                          <category>communauté</category>
                  <category>SudWeb2012</category>
                  <category>super-héros</category>
                <description>J'ai pas le courage d'une conf web dans l'immédiat sans lui.          &lt;p&gt;
Cela fait un mois que Frank Taillandier nous a brusquement quitté. Un individu attachant que j'ai vraiment découvert aux apéro-web. Un gars qui était un excellent teambuilder&amp;nbsp;: enthousiasmant, énergique, cultivé, passionné. Et il m'a poussé à présenter une conf alors que je déprimais, c'était &lt;a href="https://dascritch.net/post/2012/05/29/Bref-j-ai-fait-ma-pr%C3%A9sentation-%C3%A0-Sud-Web"&gt;à mon premier Sud Web&lt;/a&gt;. Plus tard, &lt;a href="https://dascritch.net/post/2015/06/03/micro-%40HalluFMR-37-%3A-Conf%C3%A9rence%2C-avec-Nathalie-Rosenberg-et-Frank-Taillandier"&gt;tu as dit que c'était des conférences pour réfléchir sur nos métiers.&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Je suis très loin d'être le seul que tu as pris par la main, pour nous hisser vers un autre niveau de responsabilités.
&lt;/p&gt;

&lt;p&gt;
Et là, quand il est parti, j'ai découvert combien &lt;a href="https://github.com/DirtyF?tab=repositories"&gt;il était impliqué dans plein de projets.&lt;/a&gt; Comme plein d'autres, j'ai découvert qu'&lt;a href="https://talk.jekyllrb.com/t/frank-aka-dirtyf/6418"&gt;il animait le repo Jekyll&lt;/a&gt;. Frank, tu es encore plein de surprises. Pour nous, &lt;a href="https://tina.io/blog/our-friend-frank-taillandier/"&gt;pour tes collègues&lt;/a&gt;, pour tes amis, pour ta famille. Tu as même réussi à t'auto-&lt;a href="https://www.chocoblast.fr/"&gt;chocoblaster&lt;/a&gt; quand tu es parti (et heureusement).
&lt;/p&gt;

&lt;p&gt;
Oui, &lt;a href="https://sudweb.github.io/frank/"&gt;personne qui ne l'a connu n'a manqué de louanges pour Frank.&lt;/a&gt; C'est plus que mérité.&lt;br /&gt;
Pourtant, je l'ai aussi connu énervé, d'un agacement communicatif quand quelqu'un fait mal son boulot, ne veut pas apprendre, n'en n'a rien à faire des autres. Il m'a aussi appris (un peu tard) à savoir lâcher prise, quand ça veut pas, ça veut pas. Je l'ai aussi vu faire craquer des gens qui ne méritaient pas tes colères. Mais tu nous a tellement amené d'objectifs positif dans nos vies…
&lt;/p&gt;


&lt;p&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/sortons/2109-Frank.jpg" alt="" class="c" /&gt;
&lt;/p&gt;

&lt;p&gt;
Demain commence un Paris Web.&lt;br /&gt;
Ce genre de manifestations nous manque, mais là, j'ai un peu de mal un mois après, je ne me suis pas inscrit, alors que leur programme est formidable. Parce que Frank, entres autres, m'a fait rentrer dans cette communauté des 1% des web-devs riches de leurs passions. Et que j'ai encore besoin de digérer un peu cette perte.
&lt;/p&gt;

&lt;p&gt;
Voilà. Ça fait beaucoup de copains proches morts jeunes ces derniers temps, alors qu'on pouvait pas se voir de visu. J'ai le blues, j'ai mis un mois à publier ce billet, et je garderais cette formidable photo de toi en super-héros.&lt;br /&gt;
Ton départ brusque est une lourde perte, et c'est à nous de créer de nouvelles communautés avec ton héritage moral.
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2021/10/06/%E2%80%A6sans-Frank#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2021/10/06/%E2%80%A6sans-Frank#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3181</wfw:commentRss>
              </item>
          <item>
        <title>cpu-audio.js enfin en 7.0</title>
        <link>https://dascritch.net/post/2021/04/28/cpu-audio.js-enfin-en-7.0</link>
        <guid isPermaLink="false">urn:md5:eafb4fbe4f9d9e81326929186044593d</guid>
        <pubDate>Wed, 28 Apr 2021 06:51:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Webdev</category>
                          <category>avatardisme</category>
                  <category>cpu</category>
                  <category>css</category>
                  <category>dom</category>
                  <category>github</category>
                  <category>html</category>
                  <category>javascript</category>
                  <category>mobilité</category>
                  <category>musique</category>
                  <category>projet</category>
                <description>Ouais, j'avais d'autres billets techniques sur le même sujet, mais là, j'ai avancé sur le code plutôt que l'explication de texte ;)          &lt;p&gt;
Commençons par un exemple avec une émission sur le son&amp;nbsp;:
&lt;/p&gt;
&lt;cpu-audio
    title="Ex0117 À la source du son"
    poster="https://cpu.dascritch.net/public/Images/Emissions/.1910-Ex0117-SourceDuSon_s.jpg"
    canonical="https://cpu.dascritch.net/post/2019/10/17/Ex0117-%C3%80-la-source-du-son"
    waveform="https://cpu.dascritch.net/public/Sonores/Emissions/waveforms/0117-CPU%2817-10-19%29.png"
    twitter="@cpuprogramme"&gt;
    &lt;audio controls id="emission"&gt;
        &lt;source src="https://cpu.dascritch.net/public/Sonores/Emissions/hls/0117-CPU%2817-10-19%29/index.m3u8" type="application/x-mpegurl" /&gt; 
        &lt;source src="https://cpu.dascritch.net/public/Sonores/Emissions/0117-CPU%2817-10-19%29.ogg" type="audio/ogg" /&gt;
        &lt;source src="https://cpu.dascritch.net/public/Sonores/Emissions/podcast/0117-CPU%2817-10-19%29.mp3" type="audio/mpeg" data-downloadable /&gt;
        &lt;track kind="chapters" src="https://dascritch.net/vrac/.blog2/webdev/0117-CPU_17-10-19_.vtt" default /&gt;
    &lt;/audio&gt;
   &lt;p&gt;(S'il n'a pas encore démarré, un peu de patience, sinon le lecteur reste utilisable, c'est de la dégradation élégante)&lt;/p&gt;
&lt;/cpu-audio&gt;

&lt;p&gt;
Cela faisait un peu de temps que je n'avais pas donné de nouvelles de mon lecteur audio. Alors que pourtant j'avais écrit toute une série de billets à son sujet&amp;nbsp;: 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2018/11/06/Mettre-de-l-audio-dans-le-web-n-a-pas-%C3%A9t%C3%A9-simple"&gt;Mettre de l'audio dans le web n'a pas été simple&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2018/11/06/Reconstruire-son-lecteur-audio-pour-le-web"&gt;Reconstruire son lecteur audio pour le web&lt;/a&gt; (sur la version 5)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2019/06/05/Retravailler-un-lecteur-web-audio-dans-les-petites-largeurs"&gt;Retravailler un lecteur web audio dans les petites largeurs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2019/06/18/Le-blues-du-navigator.share"&gt;Le blues du Web Share&lt;/a&gt;  (&lt;a href="https://dascritch.net/post/2019/06/26/We-need-Web-Share"&gt;english version&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2019/11/13/Deux-couleurs-bizarres-en-CSS"&gt;Deux couleurs bizarres en CSS&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
&lt;a href="https://github.com/dascritch/cpu-audio/releases/tag/7.0"&gt;&lt;em&gt;cpu-audio.js&lt;/em&gt; vient de passer en version 7.0.&lt;/a&gt; Le player audio de &lt;a href="http://cpu.pm"&gt;l'émission CPU&lt;/a&gt; en WebComponent a été revu en profondeur, &lt;a href="https://github.com/dascritch/cpu-audio/releases/tag/7.0"&gt;avec moult corrections et notamment l'arrivée des thèmes graphiques&lt;/a&gt; en plus du &lt;a href="https://dascritch.github.io/cpu-audio/applications/live_config.html"&gt;système simple de configuration&lt;/a&gt;&lt;/p&gt;


&lt;p class="c"&gt;&lt;a href="https://dascritch.github.io/cpu-audio/"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/webdev/.2104-cpuaudio-7_m.jpg" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;L'idée d'origine de cette bibliothèque était de pouvoir donner une URL qui puisse pointer à un instant précis d'un audio dans une page web. Car le standard existe mais n'est pas implémenté par les principaux navigateurs. Or il est bien utile &lt;a href="https://cpu.pm/0069"&gt;pour les émissions de 5h30&lt;/a&gt;. Et quitte à le faire, le faire avec un minimum de dépendances et un maximum de souplesse.&lt;/p&gt;

&lt;p&gt;Par la suite, les principales API sont arrivées pour enfin stabiliser les Web-components, ce qi m'a permis d'enfin réaliser une bibliothèque javascript isolée, transportable, agnostique, petite (sous les 50ko) et toujours en &lt;em lang="en"&gt;vanilla&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;J'ai donc déjà longuement raconté sur ce blog &lt;a href="https://dascritch.net/post/2018/11/06/Reconstruire-son-lecteur-audio-pour-le-web"&gt;les démarches de conception qui m'ont permis d'y arriver&lt;/a&gt; et de le faire dans la licence GPL.&lt;/p&gt;

&lt;p&gt;J'avais besoin de refondre complètement la bibliothèque pour la rendre plus maintenable, plus facile aussi pour que n'importe quel dev ou intégrateur front s'en empare. Il est ainsi possible de créer des thèmes graphiques sans toucher au code JS, ce dernier ayant même une tolérance d'implémentation.&lt;/p&gt;

&lt;p&gt;Il reste toujours les idées qu'on avait jeté au début, que je ne réaliserai jamais seul mais que j'espère donner une base saine pour construire :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;des thèmes plus aboutis et jolis&lt;/li&gt;
&lt;li&gt;une WebExtension pour lire n'importe quel audio tranquillement&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dascritch/cpu-audio/issues/8"&gt;créer des playlist décentralisées&lt;/a&gt; pour montrer que le web est beau car remixable&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dascritch/cpu-audio/issues/76"&gt;créer des commentaires à la SoundCloud/MixCloud mais décentralisés&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;des outils encore plus poussés que &lt;a href="https://dascritch.github.io/cpu-audio/applications/chapters_editor.html"&gt;l'éditeur de chapitre&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/dascritch/cpu-audio/issues/117"&gt;ajouter un spectrogramme via add-on&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Étendre pour l'utiliser aussi sur de la vidéo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et n'hésitez pas à me contacter si vous avez besoin d'aide.&lt;/p&gt;

&lt;p&gt;J'ai encore beaucoup de choses à dire, mais surtout beaucoup à remercier&amp;nbsp;; d'abord toute l'équipe de l'émission et ceux de la radio qui font qu'on reste très impertinents depuis 1981. Avec une pensée spéciale pour le Tetalab et Mixart Myrys où nous avions enregistré de nombreuses émissions et &lt;a href="https://linuxfr.org/users/dascritch/journaux/mixart-myrys-lutte-pour-sa-survie"&gt;dans une panade noire.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ensuite ceux qui m'ont aidé spécialement sur ce projet de code :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://oncletom.io/"&gt;Thomas Parisot&lt;/a&gt;  pour le standard Media Fragment, qui permet à ce player de créer des liens hypertextes temporels&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/chibani"&gt;Loïc Gerbaud&lt;/a&gt; pour des corrections&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.phonitive.fr/"&gt;Guillaume Lemoine&lt;/a&gt; qui m'a bien aidé avec du prêt de matos au début&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/infestedgrunt"&gt;Benoît Salles&lt;/a&gt; et &lt;a href="https://twitter.com/MichelPoulain"&gt;Michel Poulain&lt;/a&gt; pour les tests, &lt;a href="https://twitter.com/GabiBoyer"&gt;Gabi Boyer&lt;/a&gt; pour m'avoir passé un iPhone SE, téléphone qui est certes toujours mis à jour, mais Apple n'arrive vraiment pas à tenir Safari aux standards.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/mariejulien/status/1047827583126183937"&gt;@mariejulien&lt;/a&gt; pour m'avoir donné envie de ré-écrire un &lt;a href="https://github.com/dascritch/cpu-audio/blob/master/CONTRIBUTING.md"&gt;CONTRIBUTING.md plus accessible&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://twitter.com/porteneuve"&gt;Christophe Porteneuve&lt;/a&gt; de &lt;a href="http://delicious-insights.com/"&gt;Delicious Insights&lt;/a&gt;, un ami et un formateur JS qui m'a donné un magistral coup de pied au cul. Ses formations JS sont de sérieux cadeaux pour les devs webs.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/scombat/react-cpu-audio"&gt;scombat qui a écrit une intégration minimale de cpu-audio.js dans React&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/edas"&gt;Éric Daspet pour ses précieuses remarques sur la documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;N'hésitez pas à le faire connaitre, si vous avez un projet audio dans le web qui nécessite un lecteur.&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2021/04/28/cpu-audio.js-enfin-en-7.0#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2021/04/28/cpu-audio.js-enfin-en-7.0#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3180</wfw:commentRss>
              </item>
          <item>
        <title>Adieu Xylpho</title>
        <link>https://dascritch.net/post/2020/10/25/Adieu-Xylpho</link>
        <guid isPermaLink="false">urn:md5:d0ec5271113954b5d7b0bad63f8364d8</guid>
        <pubDate>Sun, 25 Oct 2020 10:11:00 +0100</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Ma vie est une sitcom</category>
                        <description>Nicolas Guilhou, vers une vie meilleure.          &lt;p&gt;
Ensemble, on en a fait des conneries au lycée, on a défriché les CSS, Ajax et les WebForms avant qu'ils deviennent HTML5, on a fait de la com' d'événementiels, on a voulu monter un service SaaS (dAgence), on a aussi tenté d'écrire des scénarii d'animation,… Et honnêtement, il y a beaucoup de projets dans lesquels je ne me serais pas lancé si tu n'étais pas partant toi aussi.
&lt;/p&gt;
&lt;p&gt;
Tu as toujours voulu être le copain rigolard. Au lycée, quand tu étais graphiste indépendant, quand tu es devenu web-designer, puis indépendant à nouveau.
&lt;/p&gt;
&lt;p class="c"&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/sitcom/2010-NicolasGuilhou.jpg" alt="" /&gt;
&lt;/p&gt;
&lt;p&gt;
C'était la façade que tu as toujours voulu montrer, quitte à oublier tes années de galère, tes histoires sombres, ton cafard. À toi, à moi, à tes amis… Même à cette fille dont tu as assuré l'éducation.
&lt;/p&gt;
&lt;p&gt;
J'ai appris que tu n'as plus supporté tes tristesses. Et tu as préféré partir brusquement.
&lt;/p&gt;
&lt;p&gt;
J'en suis malheureux, car on correspondait encore, mais tu ne me l'as jamais écrit. J'aurais tu te voir plus souvent.
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2020/10/25/Adieu-Xylpho#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2020/10/25/Adieu-Xylpho#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3179</wfw:commentRss>
              </item>
          <item>
        <title>CD de nuits</title>
        <link>https://dascritch.net/post/2020/06/21/CD-de-nuits</link>
        <guid isPermaLink="false">urn:md5:57ec7d94fc5b18bcc3c9b6b5aec948cf</guid>
        <pubDate>Sun, 21 Jun 2020 17:12:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Vide-Grenier</category>
                          <category>communauté</category>
                  <category>musique</category>
                <description>Ré-écoutez Radio FMR telle qu'elle était les nuits entre 1998 et 2001          &lt;p&gt;
Pour cette année, la Fête de la Musique est un peu exceptionnelle puisque plutôt calme, Covid-19 oblige. Mais nous avons une belle surprise pour vous : nous avons ouvert une capsule temporelle, rouvrant le son de la bande FM de Toulouse de la fin des années 1990s.
&lt;/p&gt;

&lt;p&gt;
Nous sommes en train de publier sur &lt;a href="https://podcloud.fr/podcast/fmr-mixes-classiques"&gt;podcloud&lt;/a&gt; les bandes de nuit de &lt;a href="http://radio-fmr.net"&gt;Radio &amp;lt;FMR&amp;gt;&lt;/a&gt; d'il y a 20 ans. &lt;a href="https://fmr-mixes-classiques.lepodcast.fr/"&gt;Vous pouvez retrouver nos mixes classiques ici&lt;/a&gt;.
&lt;/p&gt;
&lt;figure&gt;
&lt;a href="https://dascritch.net/vrac/.blog2/grenier/2006-BandesDeNuitFMR.jpg"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/grenier/.2006-BandesDeNuitFMR_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;figcaption&gt;Vous pouvez à nouveau entendre les fameux &lt;a href="https://fmr-mixes-classiques.lepodcast.fr/"&gt;CD de nuit de Radio &amp;lt;FMR&amp;gt;&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id="bricolages"&gt;Tech, bricolages et programmes nocturnes&lt;/h3&gt;

&lt;p&gt;
Quand je suis devenu salarié de Radio &amp;lt;FMR&amp;gt;, les moments hors programmes en directs étaient remplis par une platine double-k7 auto-reverse. Ce qui faisait 3 heures de mix musical pré-enregistré  qui bouclait, qu'on appelait les &lt;q&gt;bandes de nuit&lt;/q&gt;. On y retrouvait une sélection musicale qui a été programmée, mixée, enregistrée par des animateurs de la radio, en complément de leur émission.  Les cassettes posaient plusieurs soucis : leur usure par temps chaud, et qu'il faille les changer tous les jours pour ne pas lasser les auditeurs.
&lt;/p&gt;
&lt;p&gt;
Avec la démocratisation des  graveurs  de CD, on a pu tenter de mettre en place un carrousel de CD, un lecteur Sony qui pouvait enchaîner 200 CD aléatoirement. Mais ce carrousel avait un bug : pour éviter toute consommation électrique inutile, il s'éteignait au bout de 24 heures de lecture, donc nous avions mis un minuteur pour le relancer, hélas en mode aléatoire, il arrivait une fois par mois qu'au redémarrage, l'appareil aie encore un CD dans le bras sur le carrousel, qui tentait de faire tourner pour lire les positions occupées. Et ayant souvent à le réparer, on avait une centaine de CD brisés.
&lt;/p&gt;
&lt;p&gt;
Heureusement, Sylvain qui se chargeait de la gravure des CD, avait les copies &lt;q&gt;master&lt;/q&gt; qu'il redupliquait.
&lt;/p&gt;
&lt;p&gt;
Puis, quelques années plus tard, nous sommes passés à un robot logiciel sur PC, avec une programmation musicale &lt;q&gt;aléatoire&lt;/q&gt; (il y a en fait plusieurs niveaux de rotations, plus des règles pour passer jingles et annonces). Mais ce système nous a fait perdre cette chaleur de programmation, le fait qu'un enchainement aie été calculé et effectué par un humain, même si Dusport nous fait une programmation éclectique fabuleuse.
&lt;/p&gt;

&lt;h3 id="archivons"&gt;Archivons&lt;/h3&gt;

&lt;p&gt;
Cela faisait quelques années que je me disais que c'était le moment ou jamais de numériser et publier ces programmes sur internet. La raison est évidente : les disques gravés sont encore moins éternels que les CD. Sylvain m'a donc fait l'honneur de m'amener ces archives inestimables, et la plupart semblent parfaitement numérisables avec un PC, d'autres demanderont de passer par une platine et une carte son. Ce qui tient du miracle, même si nous achetions des CD-R de qualité, ceux-ci n'étaient pas donnés pour durer plus de 5 ans.
&lt;/p&gt;
&lt;p&gt;
Pour ceux qui ont connu Radio &amp;lt;FMR&amp;gt; à cette époque, ils retrouveront avec plaisir les mixes de feu Raskal qui assaisonnait ses sélections d'extraits de films, de Rave Age et leur son club, de Clark Nova très pop, de Brian Brillant très easy-listening, des Sanguinaires et leurs faits divers, et les programmations de Dusport, Bernard Amade, etc…
&lt;/p&gt;
&lt;p&gt;
J'ai vraiment un plaisir à les redécouvrir, et un bonheur à pouvoir leur donner une nouvelle vie, notamment les insérer dans un créneau horaire nocturne sur &amp;lt;FMR&amp;gt; à partir de cet été. &lt;a href="https://fmr-mixes-classiques.lepodcast.fr/rss"&gt;Abonnez-vous au flux podcast,&lt;/a&gt; je vais essayer d'en mettre 5 en ligne par semaine. Et ces numérisations me permettent de compléter &lt;a href="https://cpu.dascritch.net/serie/Radio%20num%C3%A9rique"&gt;une expérience pour une future émission de CPU&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Accessoirement, &lt;a href="https://www.facebook.com/radiofmrtoulouse/"&gt;Radio &amp;lt;FMR&amp;gt; organise le Virus Fest pour soutenir la scène musicale locale et actuelle.&lt;/a&gt;
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2020/06/21/CD-de-nuits#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2020/06/21/CD-de-nuits#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3176</wfw:commentRss>
              </item>
          <item>
        <title>Le mouton tondu</title>
        <link>https://dascritch.net/post/2020/06/15/Le-mouton-tondu</link>
        <guid isPermaLink="false">urn:md5:e94d6b3dfd273b26057eefb1fbd65e01</guid>
        <pubDate>Mon, 15 Jun 2020 13:53:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Ma vie est une sitcom</category>
                          <category>avatardisme</category>
                  <category>en costume</category>
                  <category>humour</category>
                  <category>photo</category>
                <description>(ok, ces images ont pratiquement un mois)          &lt;p&gt;
Le déconfinement, c'est la joie d'avoir quelques kilos de cheveux en moins. Une expérience globale de l'importance de son coiffeur de quartier
&lt;/p&gt;
&lt;figure&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/sitcom/.2006-tondu-avant_s.jpg" alt="" /&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/sitcom/.2006-tondu-apres_s.jpg" alt="" /&gt;
&lt;/figure&gt;
&lt;p&gt;
Une belle tête déconfi-te.&lt;br /&gt;
Je sors ça un mois après, pour pas que mon +1 s'aperçoive depuis combien de temps j'ai pu passer à la coupe.
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2020/06/15/Le-mouton-tondu#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2020/06/15/Le-mouton-tondu#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3175</wfw:commentRss>
              </item>
          <item>
        <title>La vie d'après</title>
        <link>https://dascritch.net/post/2020/06/02/La-vie-d-apr%C3%A8s</link>
        <guid isPermaLink="false">urn:md5:93ab40b324937574a0e0ed51b8c79695</guid>
        <pubDate>Tue, 02 Jun 2020 12:58:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Ma vie est une sitcom</category>
                        <description>commence en sortant          &lt;figure&gt;
&lt;a href="https://dascritch.net/vrac/.blog2/sitcom/2006-VieApres.jpg" rel="lightbox"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/sitcom/.2006-VieApres_m.jpg" alt="" /&gt;&lt;/a&gt;
&lt;figcaption&gt;
Photo © Enflammée
&lt;/figcaption&gt;
&lt;/figure&gt;</description>
        
                  <comments>https://dascritch.net/post/2020/06/02/La-vie-d-apr%C3%A8s#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2020/06/02/La-vie-d-apr%C3%A8s#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3174</wfw:commentRss>
              </item>
          <item>
        <title>Ce printemps étrange</title>
        <link>https://dascritch.net/post/2020/05/16/Ce-printemps-%C3%A9trange-%C3%A0-t%C3%A9l%C3%A9travailler</link>
        <guid isPermaLink="false">urn:md5:f95749cd9816ae620e47ad2aaa2d91bb</guid>
        <pubDate>Sat, 16 May 2020 10:29:00 +0200</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Ma vie est une sitcom</category>
                          <category>dinah</category>
                  <category>enflammée</category>
                  <category>mobilité</category>
                  <category>self-business</category>
                <description>Le télétravail qui te fait réapprendre le chemin du travail qui passe par le salon…          &lt;p&gt;
Oui, un étrange printemps. Où la rue devant s'est quasi vidée pendant 3 semaines. Où tout le monde s'évite. Où les magasins on tiré leurs rideaux d'aciers. Où l'angoisse transpirait sur toutes les chaînes d'infos à l'ecœurement. Où Internet menaçait de s'effondrer à cause des méchants GAFAM. Où ces satanés salariés allaient lâchement profiter de l'entreprise pour ne rien faire.
&lt;/p&gt;

&lt;p&gt;
J'ai pas eu le temps d'écrire pendant ce moment-là, cette époque inédite, ni vraiment eu l'envie de documenter ma petite vie.&lt;br /&gt;
Pourtant, j'ai ce stress, cette peur de contaminer la personne qui vit avec moi. Et qui dans cette réouverture à petits pas, est toujours là. J'ai pas mal d'amis qui sont malheureusement tombés malades du COVID-19, et qui en ont souffert.
&lt;/p&gt;
&lt;p&gt;
Pourtant, je suis un immonde privilégié&amp;nbsp;: J'ai gardé mon travail, j'en avais d'ailleurs tellement à faire que je n'avais quasiment que ça à songer toute la journée, on a une petite cour ensoleillée, dans laquelle gambade un chat qui nous adore, et il y a donc celle qui vit avec moi, qui peut enfin en profiter pour qu'on mange ensemble à midi.&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;
J'ai télétravaillé pendant des années. En fait j'étais indépendant, et j'ai travaillé 6 ans dans le bureau de mon appartement. Et À l'époque, j'étais stressé pour d'autres raisons, plus financières. Car fallait vraiment pas être doué dans les affaires pour se lancer en indépendant dans un métier au moment où se déclenchait une crise financière.&lt;br /&gt;
On a vu des couples d'amis s'entre-déchirer à cette époque, eux aussi en indépendants, travaillant de chez eux, ou tournant en rond dans leur salon quand rien ne sort.
&lt;/p&gt;

&lt;p&gt;
Mais maintenant, je gère mieux ce stress, et ça se passe mieux avec ma copine de l'époque.&lt;br /&gt;
J'ai moins de soucis à gérer, on est plus sereins, et nous nous connaissons bien mieux. Et puis surtout, tu m'as encore plus appris la patience, c'est une chance.
&lt;/p&gt;
&lt;p&gt;
À toi, mon amour, je te souhaite un heureux anniversaire.
&lt;/p&gt;
&lt;figure&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/sitcom/2005-AnnivEnflammee.jpg" alt="" /&gt;
&lt;figcaption&gt;
Merci pour tout, mon cœur, toi qui prend soin de moi.
&lt;/figcaption&gt;
&lt;/figure&gt;</description>
        
                  <comments>https://dascritch.net/post/2020/05/16/Ce-printemps-%C3%A9trange-%C3%A0-t%C3%A9l%C3%A9travailler#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2020/05/16/Ce-printemps-%C3%A9trange-%C3%A0-t%C3%A9l%C3%A9travailler#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3173</wfw:commentRss>
              </item>
          <item>
        <title>Battle of da Year 2K</title>
        <link>https://dascritch.net/post/2019/12/23/Battle-of-da-Year-2K</link>
        <guid isPermaLink="false">urn:md5:2f91ff08e60a2edefee363c28382d048</guid>
        <pubDate>Mon, 23 Dec 2019 12:21:00 +0100</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Vide-Grenier</category>
                          <category>avatardisme</category>
                  <category>communauté</category>
                  <category>musique</category>
                <description>Un flyer mythique pour une nuit redoutée : celle du passage à l'An 2000.          &lt;p&gt;
Été 1999, j'étais salarié de &lt;a href="http://www.radio-fmr.net"&gt;Radio &amp;lt;FMR&amp;gt;&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Si je commençais à 10h en tant que coordinateur d'antenne, je ne décrochais pas à 19h, m'étant impliqué dans l'organisation de nombreuses soirées  principalement &lt;em lang="en"&gt;drum'n'bass&lt;/em&gt; et électro expérimentales. J'étais avec une bande de copains, la radio avait sur son antenne un groupe de DJs assez généreux, et des noms qui étaient aussi bien connus par le public festif (Le Lutin, DJ Kush, Youthman) que par le public exigeant (Doctor Livingstone, Circlips). J'avais souvent du Ninja Tune, du Warp, du Vendôme Records et du Moving Shadow dans ma besace &lt;a href="https://dascritch.net/archiveweb.php/zero/zero12.html"&gt;pour mes émissions persos&lt;/a&gt;.&lt;br /&gt;
À 27 ans, on est foufou, et l'énergie créative autour de la radio donnait une sérieuse envie de secouer la scène artistique.
&lt;/p&gt;

&lt;p&gt;
&lt;a href="https://www.facebook.com/dj.kush.fr"&gt;DJ Kush&lt;/a&gt; avait monté le Dragon Krew, un noyau dur d'organisation de soirées avec MC Youthman, Brooks,  DJ Peyo, il y avait aussi le groupe Kapsaïcine qui faisait les soirées &lt;q&gt;Kitty style&lt;/q&gt;, ou encore le collectif Massage auditif (Doc Livingstone, Peyo, Aurel, Sam Lawry), et moi j'oscillais autour en &lt;em lang="en"&gt;roadie&lt;/em&gt;.&lt;br /&gt;
Yep, moi, le toubab de bonne famille, je m'encanaillais en allant bricoler chez Le Lutin, qui des fois se lançait dans des sets sans prévenir, avant d'aller redécorer la cave d'un bar rue des Filatiers.
&lt;/p&gt;

&lt;p&gt;
Et pour le passage à l'An 2000, on savait qu'on pouvait proposer une soirée au &lt;a href="https://lebikini.com/"&gt;Bikini, la boite de nuit rock de Toulouse,&lt;/a&gt; à l'époque au 54 chemin des Étroits, route de Lacroix-Falgarde juste en face de l'usine AZF. Ce n'était pas la première fois qu'on y faisait des opérations étranges et folles&amp;nbsp;: entre le concert d'Amon Tobin avec du gazon déroulé sur le &lt;em lang="en"&gt;dancefloor&lt;/em&gt; ou la finale de la coupe du monde 1998 animée par Sportaz de Radio Campus, ou les soirées d'Halloween (qui correspondaient avec l'anniversaire de Kush, je ne vous dis pas le frisson de faire chanter &lt;q&gt;joyeux anniversaire&lt;/q&gt; à 1000 personnes). Plus le studio antenne de Radio &amp;lt;FMR&amp;gt; logé dessous nous permettait d'y faire des transmissions &lt;em lang="en"&gt;live&lt;/em&gt;. Alors plutôt que faire sa soirée avec loto à filet garnis, suivie de DJ Fabrice (Sansonnetto) aux platines, et la soupe à l'oignon à 10h, on a fait une proposition au maître des lieux&amp;nbsp;: 4 platines en &lt;em lang="en"&gt;back-to-back&lt;/em&gt; (une disposition plutôt rare à ce moment-là), 22 DJ soit du très festif &lt;em lang="en"&gt;drum'n'bass&lt;/em&gt;, soit de techno expérimentale, 2 MCs, et un prix raisonnable car tout le monde voulait faire la fête.
&lt;/p&gt;

&lt;p&gt;
Le &lt;em lang="en"&gt;line-up&lt;/em&gt; a été monté très vite, venant de toute la France et au-delà&amp;nbsp;: beaucoup connaissaient la scène de Toulouse et son public enthousiaste. Avoir Future Cut et Marcus Intalex montrait sa reconnaissance à l'international.
&lt;/p&gt;

&lt;h3&gt;Un flyer hors-normes&lt;/h3&gt;
&lt;p&gt;
Et là, je ne sais plus quand tout a dérapé…
&lt;/p&gt;
&lt;p&gt;
Kush a fait tirer un &lt;em lang="en"&gt;flyer&lt;/em&gt; en papier cartonné, recto-verso, format A4. Je crois que le tirage était de 1000&amp;nbsp;exemplaires, et forcément, devenu très vite  mythique, collector. Il n'y a pas que son support qui détonnait&amp;nbsp;: Son dessin par Alphabet City sous Illustrator (à l'époque, les &lt;em lang="en"&gt;flyers&lt;/em&gt; se faisaient plutôt avec Photoshop ou Quark X Press), son design &lt;em lang="en"&gt;lean&lt;/em&gt; inspiré des &lt;a href="https://www.thedesignersrepublic.com/"&gt;The Designers Republic&lt;/a&gt;. Et rédigé en Anglais, car l'objet promotionnel était aussi destiné à des partenaires internationaux. Son format faisait qu'on arrivait même pas à le mettre dans les porte-cartes des magasins ou les tablettes trop étroites, et on hésitait à le scotcher au mur pour pas que l'impression soit déchirée en retirant le scotch. On n'a fait que le mettre dans quelques magasins, et on l'a annoncé en radio.&lt;br /&gt;
À l'époque, le web balbutiait, pas de Facebook, ni même encore de MySpace, le &lt;em lang="en"&gt;flyer&lt;/em&gt; était le principal moyen de communication, avec les émissions radios et les gratuits culturels locaux comme IntraMuros. Et parfois les mentions sur la télé locale, TLT avait une grosse tranche culture le Vendredi.
&lt;/p&gt;
&lt;p&gt;
Donc je ne sais pas si vous voyez le niveau de bêtise&amp;nbsp;: tirer un &lt;em lang="en"&gt;flyer&lt;/em&gt; très cher, et annoncer à la radio pour dire qu'il existe mais que dans certains magasins. Pour une soirée unique. Où l'on ferait soirée blanche, je crois même que l'orga a perdu des sous.
&lt;/p&gt;

&lt;figure&gt;
&lt;a href="https://dascritch.net/vrac/.blog2/grenier/1912-BatteOfDaYear2k-recto.jpg" rel="lightbox[battle]"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/grenier/.1912-BatteOfDaYear2k-recto_m.jpg" alt="The battle of da year. The grand slam matchup of the century with 22 DJ's and 2 MC's. twelve rounds of one hour smoker. 22:00 PM 'til 10:00 AM. 31.12.1999 - Bikini - Toulouse. Jungle drum'n'bass / techno. Let's get ready to rrrumble !!! An evening for the entire family" /&gt;&lt;/a&gt;
&lt;a href="https://dascritch.net/vrac/.blog2/grenier/1912-BatteOfDaYear2k-verso.jpg" rel="lightbox[battle]"&gt;&lt;img src="https://dascritch.net/vrac/.blog2/grenier/.1912-BatteOfDaYear2k-verso_m.jpg" alt="Round for round, drum'n'bass, blow by blow, techno. 22:00 PM 'til 10:00 AM. Live painting by Berg (Gluck family). Live video mix + special deco. Future Cut (2 DJ's - Renegade Hardware - UK), Marcus Intalex (Regenade Harware - UK), Grub (Spa connection - UK), Rykkk's (Diplodocus recs - Béziers), Elle (No u turn - UK), Peyo (FMR - Toulouse), Prisma Boundee (Good vibes - Nantes), Voodoo Mix (Radiobomb - Toulouse), Cliff Barnes (Time strechers - Bordeaux), Feubo (Aniversal recs - Tours), Tao Paï Paï (Kung funk - Rennes), Kafra (Selecta crew - Marseille), Kush (Dragon krew - Toulouse), Sti (Dragon krew - Toulouse), Brooks (Dragon krew - Toulouse), Le Lutin (Storm Trooper - Toulouse), Aurel (Balistik records - Toulouse), Damian (FMR - Toulouse), Shnow (Electro mix - Toulouse), Vee (Free bass project - Montpellier), Shuba  (Free bass project - Montpellier), MC Krayz-b (Ruud awakening - UK), Mc Youthman (Central Massive - Clermont-Ferrand). Prix : 120F (avec conso), 100F (avec conso). Préventes : Fnac, Cyberland, Vicious Circle, DJ Music. Bikini, 54 chemin des Étroits. www.hypertunez.com" /&gt;&lt;/a&gt;
&lt;figcaption&gt;
LA bête
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3&gt;L'événement lui-même fut hors-norme&lt;/h3&gt;

&lt;p&gt;
Gare Matabiau, le 31 à 14h. Il pleut littéralement à verse et j'attendais l'arrivée de Rykkk's. Kush m'avait prévenu, il a du style : costume impeccable, &lt;em lang="en"&gt;fly-cases&lt;/em&gt; élégants… On embarque dans ma Panda sous une pluie battante depuis la gare pour rejoindre la salle de concert. Rykkk's sur le chemin me dit &lt;q&gt;Oh ! Arrête-toi à cette boulangerie, j'ai la dalle, je me prends un sandwich&lt;/q&gt;. Il y restera 15  minutes, en sortira hilare avec 4 gros cartons&amp;nbsp;: C'était une pâtisserie, il venait de dévaliser ce qui n'était pas encore vendu, de superbes gâteaux pour le &lt;em lang="en"&gt;backstage&lt;/em&gt;. Rien que la perspective d'un Lutin à la coupe rasta se faire une religieuse au chocolat faisait marrer.
&lt;/p&gt;

&lt;p&gt;
On avait monté un décor avec tout ce qu'on avait trouvé de fou à y mettre, j'avais sorti mon Amiga avec un animation pour le passage à minuit (hélas, le cable vidéo était trop court pour atteindre le vidéo projecteur). Je me souviens encore d'Hervé qui arrive alors que j'étais à 8m de haut&amp;nbsp;: &lt;q&gt;Putain qu'elle coutent chers, ces conneries&lt;/q&gt;. Une dizaine de kilos de confettis professionnels. On en a mis partout. Des décorations partout. Il nous a bien fallut 3 heures pour toutes les installer.&lt;br /&gt;
J'ai hélas aucune photo.
&lt;/p&gt;

&lt;p&gt;
Sur l'orga non-artistique, on se relayait entre tenir l'entrée, les vestiaires, calmer ceux qui ne savent pas faire la fête et souffler derrière la scène, ou plutôt dessous. Les petits plats, les gâteaux, et le champagne fourni par le patron, mais forcément avec modération car on avait du taf. Je crois me souvenir que le lendemain midi, on était tous crevés, mais heureux.
&lt;/p&gt;

&lt;h3&gt;La gueule de bois&lt;/h3&gt;

&lt;p&gt;
Les soirées ont très vite périclité par les coups de buttoir de la Mairie de Toulouse qui voulait calmer des &lt;q&gt;comités de voisinage&lt;/q&gt; souvent noyautés par le Front National et de la Préfecture trop impatiente de passer les heures de fermeture de bars de 2h à 23h. &lt;a href="https://dascritch.net/post/2014/03/28/Toulouse%2C-que-tes-murs-sont-tartes"&gt;Les fantastiques muraux des Hanky Panky Girls ont été recouverts&lt;/a&gt; d'une couleur rose-orange flashy, plus conforme aux incompréhensibles prescriptions des Monuments de France. Et y'a eu en moins de 10 jours les attentats du 9/11 et l'explosion d'AZF. Voilà qui a tué l'esprit de la fête. La modeste &lt;em lang="es"&gt;movida&lt;/em&gt; de Toulouse (d'oùla radio &lt;q&gt;Le Mouv&lt;/q&gt; tirera son nom) s'est réduite en peau de chagrin et fêtes industrialisées. J'ai vieilli aussi, et il fallait laisser sa place aux générations d'après. Un jour, Nostalgie aura un créneau horaire pour les mix technos.
&lt;/p&gt;

&lt;p&gt;
Je me suis impliqué dans des événements moins festifs, et des combats politiques.&lt;br /&gt;
Car 20 ans après... Le futur riant que promettait l'An 2000 tourne à la dystopie de Talsorian's Cyberpunk 2020.
&lt;/p&gt;

&lt;p&gt;
Reste ce &lt;em lang="en"&gt;flyer&lt;/em&gt;, superbe.
Je croyais n'en n'avoir plus qu'un abimé. Je suis retombé sur mes archives de l'époque, miraculeusement préservées.
&lt;/p&gt;

&lt;p&gt;
Fallait que je vous le scanne.
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2019/12/23/Battle-of-da-Year-2K#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2019/12/23/Battle-of-da-Year-2K#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3171</wfw:commentRss>
              </item>
          <item>
        <title>Deux couleurs bizarres en CSS</title>
        <link>https://dascritch.net/post/2019/11/13/Deux-couleurs-bizarres-en-CSS</link>
        <guid isPermaLink="false">urn:md5:099704ba18580e0f1320028c6880d89e</guid>
        <pubDate>Wed, 13 Nov 2019 13:41:00 +0100</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Webdev</category>
                          <category>css</category>
                  <category>javascript</category>
                  <category>projet</category>
                <description>Une bête combinaison qui ne me permettent pas de faire un chouette aspect dans un cas très précis. Et vous allez même pouvoir vous amuser avec pour comprendre les limites de certaines propriétés CSS magiques          &lt;p&gt;
Cet article est dans &lt;a href="https://dascritch.net/serie/cpu-audio"&gt;la série consacrée au développement&lt;/a&gt; de la bibliothèque &lt;a  href="https://dascritch.github.io/cpu-audio/"&gt;cpu-audio.js&lt;/a&gt; et documente les affres de &lt;a href="https://github.com/dascritch/cpu-audio/releases/tag/6.0"&gt;sa version 6.&lt;/a&gt; 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2018/11/06/Mettre-de-l-audio-dans-le-web-n-a-pas-%C3%A9t%C3%A9-simple"&gt;Mettre de l'audio dans le web n'a pas été simple&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2018/11/06/Reconstruire-son-lecteur-audio-pour-le-web"&gt;Reconstruire son lecteur audio pour le web&lt;/a&gt; (sur la version 5)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2019/06/05/Retravailler-un-lecteur-web-audio-dans-les-petites-largeurs"&gt;Retravailler un lecteur web audio dans les petites largeurs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2019/06/18/Le-blues-du-navigator.share"&gt;Le blues du Web Share&lt;/a&gt;  (&lt;a href="https://dascritch.net/post/2019/06/26/We-need-Web-Share"&gt;english version&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deux couleurs bizarres en CSS&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dascritch.net/post/2021/04/28/cpu-audio.js-enfin-en-7.0"&gt;cpu-audio.js enfin en 7.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tout-terrain WebVTT pour de l'audio&lt;/li&gt;
&lt;li&gt;Dichotomie entre podcast et web sur l'audience&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Je vous remets le &lt;em lang="en"&gt;player&lt;/em&gt;, dans la dernière version de dev. Sinon, &lt;a href="https://dascritch.net/post/2019/11/13/Deux-couleurs-bizarres-en-CSS#couleur_tombee_du_dom"&gt;⇓ sautez ⇓ directement ⇓ au chapitre suivant ⇓&lt;/a&gt;
&lt;/p&gt;

&lt;cpu-audio title="@HalluFMR, #26 : Brevet (25/03/2015)" poster="https://dascritch.net/vrac/.blog2/radio/.1409-Hallucinarium-FMR_s.jpg" canonical="https://dascritch.net/post/2015/03/25/micro-%40HalluFMR-26-%3A-Brevet"&gt;
&lt;strong&gt;&lt;a href="https://dascritch.net"&gt;Pour lire ce billet, il est conseiller d'aller sur mon site dascritch.net. Si vous lisez ce texte, c'est que probablement vous n'y êtes pas.&lt;/a&gt;&lt;/strong&gt;
&lt;audio controls id="exemple"&gt;
      &lt;source src="https://dascritch.net/vrac/Emissions/AtHalluFMR/26-AtHalluFMR%2825-03-15%29.ogg" type="audio/ogg" /&gt;
      &lt;source src="https://dascritch.net/vrac/Emissions/AtHalluFMR/podcast/26-AtHalluFMR%2825-03-15%29.mp3" type="audio/mpeg" /&gt;
&lt;/audio&gt;
&lt;/cpu-audio&gt;
&lt;p&gt;
&lt;small&gt;Comment replacer un sujet tiers rien à voir avec le billet sous prétexte d'illustration d'exemple…&lt;/small&gt;
&lt;/p&gt;

&lt;h3 id="couleur_tombee_du_dom"&gt;La Couleur tombée du DOM&lt;/h3&gt;

&lt;p&gt;
Je vais parler non pas de &lt;a href="https://fr.wikipedia.org/wiki/Couleur_interdite"&gt;couleurs interdites&lt;/a&gt; (quel &lt;a href="https://www.franceculture.fr/emissions/fictions-samedi-noir/la-couleur-tombee-du-ciel-0"&gt;nom de film d'horreur génial&lt;/a&gt;&amp;nbsp;!) comme le Rouge Surbrillant, le Jaune Bleuté, ou l'Orange Hyperbolique, mais de deux définitions volontairement manquantes dans les CSS. Or, comme &lt;a href="https://dascritch.github.io/cpu-audio/applications/live_config.html"&gt;mon &lt;em lang="en"&gt;player&lt;/em&gt; a un aspect totalement paramétrable par les utilisateurs via la CSS&lt;/a&gt;, lesdits utilisateurs pourraient tenter de faire un effet qui sera systématiquement en échec.
&lt;/p&gt;

&lt;figure&gt;
&lt;figcaption&gt;
Allez, cadeau ! trois couleurs interdites (&lt;q&gt;impossibles&lt;/q&gt;, ou plutôt &lt;q&gt;chimériques&lt;/q&gt;).&lt;br /&gt;
Observez le point de gauche, votre regard fixé sur le × sans bouger pendant trente secondes,&lt;br /&gt; puis sautez au carré du milieu et restez sur sa ×.&lt;br /&gt;
Auteur : &lt;a href="https://en.wikipedia.org/wiki/File:Chimerical-color-demo.svg"&gt;Zowie CC-BY-SA pour Wikipédia.&lt;/a&gt;
&lt;/figcaption&gt;

&lt;img src="https://dascritch.net/vrac/.blog2/webdev/1906-tagcpupm-webshare/1906-WebShare-couleurs-chimeriques.svg" alt="" /&gt;
&lt;/figure&gt;

&lt;p&gt;
D'autres parlent bien mieux que moi &lt;a href="https://developer.mozilla.org/fr/docs/Web/CSS/Type_color"&gt;des couleurs en CSS&lt;/a&gt;, donc je ne ferais pas l'affront d'en faire un résumé imparfait, mais je sauterais direct au nœud du problème&amp;nbsp;: J'ai &lt;strong&gt;deux manques dans la norme, mais qui sont totalement justifiés. Et des effets de bords qui pourraient surprendre des intégrateurs non prévenus.&lt;/strong&gt;
&lt;/p&gt;


&lt;h3  id="transparent"&gt;transparent&lt;/h3&gt;
&lt;p&gt;
Cette couleur existe principalement en valeur de la propriété &lt;code&gt;background : &lt;em&gt;transparent&lt;/em&gt;&lt;/code&gt;. On a trouve aussi &lt;a href="https://developer.mozilla.org/fr/docs/Web/CSS/border-color"&gt;pour &lt;code&gt;border-color&lt;/code&gt;&lt;/a&gt; ou encore dans l'attribut &lt;code&gt;fill="&lt;em&gt;transparent&lt;/em&gt;"&lt;/code&gt; d'une &lt;a href="https://dascritch.net/tag/svg"&gt;balise SVG&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
En fait, transparent n'est pas un alias vers une couleur pleine, mais d'une couleur quelconque rendue avec une opacité de 0%.
&lt;/p&gt;

&lt;p&gt;
Sauf qu'il y a une méprise : il n'est pas possible de s'en servir pour la propriété css &lt;code&gt;color&lt;/code&gt; dans l'idée d'avoir le rendu derrière le fond du tag courant. Une couleur transparente fera que le texte est virtuellement non affiché mais présent par ses dimensions.
&lt;/p&gt;
&lt;p&gt;
Et c'est normal, car cela voudrait dire que le navigateur devrait être capable d'utiliser la forme des lettres pour découper le fond de l'élément support. C'est pas impossible, mais totalement tordu en terme de pensée, alors que &lt;a href="https://stackoverflow.com/questions/39657703/how-to-create-transparent-text-on-non-transparent-background#answer-39658289"&gt;vous pouvez preeeesque facilement le faire en SVG.&lt;/a&gt; Bon, dans les faits, je ne vous le conseille absolument pas&amp;nbsp;! Et ceci pour des raisons de performances de rendu, votre site va commencer à ramer sévère si vous vous lâchez.
&lt;/p&gt;

&lt;h3 id="currentColor"&gt;currentColor&lt;/h3&gt;
&lt;p&gt;
Cette magnifique couleur définie en CSS3 n'existe qu'en couleur de pinceau&amp;nbsp;: &lt;code&gt;&lt;em&gt;currentColor&lt;/em&gt;&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;&lt;em&gt;currentColor&lt;/em&gt;&lt;/code&gt; est immensément pratique, car elle fait référence à la couleur de pinceau héritée. Et si cette couleur héritée renvoie par exemple à une variable css au nom à coucher dehors (hello &lt;code&gt;var(&lt;var&gt;--cpu-playing-color&lt;/var&gt;)&lt;/code&gt;) , sur de nombreux rappels, on gagne de très nombreux octets... Exemple&amp;nbsp;:
&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;strong&gt;main&lt;/strong&gt; {
    color : var(&lt;var&gt;--cpu-color&lt;/var&gt;);
}
&lt;strong&gt;main&lt;/strong&gt;.act-playing {
    color : var(&lt;var&gt;--cpu-playing-color&lt;/var&gt;);
}
&lt;strong&gt;a&lt;/strong&gt;, &lt;strong&gt;button&lt;/strong&gt; (je vous la fait courte) {
     color : &lt;em&gt;currentColor&lt;/em&gt;;
}
&lt;strong&gt;svg&lt;/strong&gt; {
     fill : &lt;em&gt;currentColor&lt;/em&gt;;
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;
Bien plus pratique que &lt;code&gt;color : &lt;em&gt;inherit&lt;/em&gt;&lt;/code&gt;, car pouvant s'appliquer sur d'autres propriétés.&lt;br /&gt;
À chaque coup, je gagne.
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;&lt;em&gt;currentColor&lt;/em&gt;&lt;/code&gt; est une Valeur Magique en css. &lt;q&gt;Magique&lt;/q&gt; dans le sens Noble du terme, au sens que justement, ce n'est pas une constante arbitraire (par rapport au sens commun en informatique, et qui tient de l'insulte) mais qu'elle fait référence à son contexte et elle permet de gagner un temps fou.
&lt;/p&gt;
&lt;p&gt;
Sauf que, hélas, et &lt;a href="https://stackoverflow.com/questions/39561566/could-currentbackgroundcolor-become-a-valid-useful-css-color-value-keyword"&gt;je ne suis pas seul à m'en plaindre&lt;/a&gt;, on n'a pas de &lt;code&gt;currentBackground&lt;/code&gt;…
&lt;/p&gt;

&lt;p&gt;
Et c'est tout à fait normal&amp;nbsp;: &lt;code&gt;background&lt;/code&gt; a été discuté jusqu'ici dans ce billet en tant qu'écriture raccourcie de la propriété &lt;code&gt;background-color&lt;/code&gt;. &lt;a href="https://developer.mozilla.org/fr/docs/Web/CSS/background#Syntaxe_formelle"&gt;La propriété &lt;code&gt;background&lt;/code&gt; est en fait composite, très complexe&lt;/a&gt;&amp;nbsp;: On peut créer des arc-en-ciels, étirer une image, mettre des motifs svg embarqués. Retenez que &lt;code&gt;background-color&lt;/code&gt; est la dernière composante définissant le fond d'un élément à être interprétée, lequel fond est &lt;a href="https://drafts.csswg.org/css-backgrounds-3/#backgrounds"&gt;défini par le standard comme ayant de multiples couches de rendus.&lt;/a&gt;
&lt;/p&gt;

&lt;h3 id="le_probleme"&gt;Alors quel est le problème ?&lt;/h3&gt;

&lt;p&gt;
Et ben tout simplement, je ne peux pas inverser la couleur et le fond hérités.
&lt;/p&gt;
&lt;p&gt;
Ainsi 
&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&lt;strong&gt;button&lt;/strong&gt;:hover {
    background : &lt;em&gt;currentColor&lt;/em&gt;;
    color : &lt;del&gt;currentBackground&lt;/del&gt;;
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;
ça marche pas, puisque la propriété n'existe pas.
&lt;/p&gt;
&lt;p&gt;
Et 
&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&lt;strong&gt;button&lt;/strong&gt;:hover {
    color : var(&lt;var&gt;--cpu-background&lt;/var&gt;);
    background : var(&lt;var&gt;--cpu-color&lt;/var&gt;);
}
.act-playing &lt;strong&gt;button&lt;/strong&gt;:hover {
    color : var(&lt;var&gt;--cpu-playing-background&lt;/var&gt;);
    background : var(&lt;var&gt;--cpu-playing-color&lt;/var&gt;);
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;
Si vous aviez voulu mettre une des variables de couleur de fond à &lt;code&gt;&lt;em&gt;transparent&lt;/em&gt;&lt;/code&gt;... ça marchera pas non plus, vous vous retrouverez avec des boutons  avec du texte totalement transparent qui ne se distinguera pas du fond. &lt;small&gt;blanc, noir, rose, bleu schtroumpf, qu'importe la valeur que vous avez choisi&lt;/small&gt; ça sera &lt;span style="background:black;color:transparent"&gt;illisible&lt;/span&gt;&amp;nbsp;!
&lt;/p&gt;

&lt;p&gt;
Et si la couleur de texte est transparente et que la couleur de fond est fixée sur la couleur courante pour le même bloc, vous aurez une &lt;span style="outline : 1px solid gray;background:currentColor;color:transparent"&gt;superbe disparition&lt;/span&gt;&amp;nbsp;!&lt;br /&gt;
&lt;small&gt;(pourtour ajouté pour voir le bloc)&lt;/small&gt;
&lt;/p&gt;

&lt;h3 id="essayez"&gt;Essayez vous-même ! &lt;/h3&gt;

&lt;cpu-audio id="bac_a_sable" title="@HalluFMR #15 : Péritel (25/03/2015)" poster="https://dascritch.net/vrac/.blog2/radio/.1409-Hallucinarium-FMR_s.jpg" canonical="https://dascritch.net/post/2014/12/17/micro-%40HalluFMR-15-%3A-P%C3%A9ritel"&gt;
&lt;strong&gt;&lt;a href="https://dascritch.net"&gt;Pour lire ce billet, il est conseiller d'aller sur mon site dascritch.net. Si vous lisez ce texte, c'est que probablement vous n'y êtes pas et donc vous ne pouvez expérimenter avec l'édition interactive.&lt;/a&gt;&lt;/strong&gt;
&lt;audio controls id="exemple"&gt;
      &lt;source src="https://dascritch.net/vrac/Emissions/AtHalluFMR/15-AtHalluFMR%2817-12-14%29.ogg" type="audio/ogg" /&gt;
      &lt;source src="https://dascritch.net/vrac/Emissions/AtHalluFMR/podcast/15-AtHalluFMR%2817-12-14%29.mp3" type="audio/mpeg" /&gt;
&lt;/audio&gt;
&lt;/cpu-audio&gt;

&lt;p&gt;
Le bloc de code CSS ci-dessous est éditable, et il impacte directement le lecteur au-dessus. &lt;a href="https://dascritch.github.io/cpu-audio/INSTALL#personnalization-via-css-variables"&gt;Sur le détail des variables CSS du lecteur, je vous renvoie à la doc.&lt;/a&gt;
&lt;/p&gt;

&lt;pre&gt;&lt;style scoped style="display:block" contentEditable&gt;
#bac_a_sable {
--cpu-color : currentColor;
--cpu-background : transparent;
/* les lignes suivantes pour reprendre les définitions du dessus quand le composant est en lecture */
--cpu-playing-background : var(--cpu-background);
--cpu-playing-color : var(--cpu-color);
}
&lt;/style&gt;&lt;/pre&gt;

&lt;p&gt;
Évidemment, y'en a qui vont me dire &lt;q&gt;ça marche pas sur mon appli de news&lt;/q&gt;, donc voici une capture d'écran de ce que vous devriez voir&amp;nbsp;:
&lt;/p&gt;

&lt;figure&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/webdev/1906-tagcpupm-webshare/1906-WebShare-transparence-rendus.png" alt="" /&gt;
&lt;figcaption&gt;Le rendu du &lt;em lang="en"&gt;player&lt;/em&gt; en attente à gauche, lors d'un survol souris ou d'un clic sur le bouton de lecture à droite,&lt;br /&gt;lequel devient malencontreusement invisible.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id="reve_background_opacity"&gt;Où tu rêves d'une licorne rose invisible&lt;/h3&gt;

&lt;p&gt;
Alors il y aurait une bonne astuce : au lieu d'utiliser &lt;code&gt;&lt;em&gt;transparent&lt;/em&gt;&lt;/code&gt;, spécifier une couleur de fond avec une transparence totale genre &lt;code&gt;&lt;em&gt;#ff777700&lt;/em&gt;&lt;/code&gt; (le fameux &lt;a href="https://fr.wikipedia.org/wiki/Licorne_rose_invisible"&gt;rose invisible de la légendaire licorne&lt;/a&gt;, qui est même &lt;a href="https://www.youtube.com/watch?v=UZDYPvbY6d8&amp;amp;t=1147&amp;amp;list=PLsbx1DYyydS-ie6wXA3Qu5zHLPWhilejW&amp;amp;index=6"&gt;enseignée en Zététique&lt;/a&gt;), et pouvoir mettre la transparence à opacité totale quand je tente d'utiliser cette &lt;q&gt;couleur&lt;/q&gt; en guise de couleur de police/remplissage.
&lt;/p&gt;

&lt;figure&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/webdev/1906-tagcpupm-webshare/1906-WebShare-licorneroseinvisible.png" alt="" /&gt;
&lt;figcaption&gt;La fameuse licorne dans une représentation improbable de sa couleur impossible.&lt;br /&gt;
&lt;small&gt;&lt;a href="https://commons.wikimedia.org/wiki/File:Invisible_Pink_Unicorn.svg"&gt;CC-BY Bingo Pajama Bee via Wikipedia&lt;/a&gt;, loués soient-ils&lt;/small&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
Mais là, il me manque (au choix)&amp;nbsp;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;soit une propriété css &lt;code&gt;background-opacity&lt;/code&gt; (et son pendant &lt;code&gt;color-opacity&lt;/code&gt;),&lt;/li&gt;
&lt;li&gt;soit un transformateur standard de valeur css &lt;em lang="xx-advertising-quezac"&gt;que s'appelerio&lt;/em&gt; &lt;code&gt;plain-color()&lt;/code&gt; qui me rabote une couleur avec opacité en couleur sans opacité,&lt;/li&gt;
&lt;li&gt;soit des billes car ça existe peut-être déjà (j'ai pas dit que je connaissais à fond les CSS).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="tentative_rgba_vars"&gt;Tentative 1 : CSS pure, &lt;code&gt;rgba()&lt;/code&gt; et deux variables&lt;/h3&gt;
&lt;p&gt;
J'ai bien trouvé &lt;strong&gt;une &lt;a href="https://stackoverflow.com/questions/40010597/how-do-i-apply-opacity-to-a-css-color-variable/41265350#41265350"&gt;solution amusante avec la fonction css &lt;code&gt;rgba()&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; sous la forme&lt;br /&gt;
&lt;code&gt;background : rgba(var(&lt;var&gt;--background-color&lt;/var&gt;), var(&lt;var&gt;--background-opacity&lt;/var&gt;))&lt;/code&gt;&lt;br /&gt;
mais comme cette astuce joue sur le fait que &lt;code&gt;var()&lt;/code&gt; ne fait que restituer une chaine de caractère sans l'avoir interprété, elle induit&amp;nbsp;:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;que toutes les couleurs (encre et fond) paramétrées par l'intégrateur soient totalement opaques,&lt;/li&gt;
&lt;li&gt;que je doive introduire une propriété de plus à part pour la gestion d'opacité du fond,&lt;/li&gt;
&lt;li&gt;que la syntaxe de couleur suive strictement la syntaxe &lt;code&gt;&lt;em&gt;rrr&lt;/em&gt;,&amp;nbsp;&lt;em&gt;ggg&lt;/em&gt;,&amp;nbsp;&lt;em&gt;bbb&lt;/em&gt;&lt;/code&gt;, ce qui multiplie les risques d'erreurs,&lt;/li&gt;
&lt;li&gt;que l'intégrateur/utilisateur ne peut donc pas utiliser la syntaxe &lt;code&gt;hsl()&lt;/code&gt;/&lt;code&gt;hsla()&lt;/code&gt; que nombre de graphistes et intégrateurs trouvent extrêmement pratique,&lt;/li&gt;
&lt;li&gt;ni &lt;a href="https://dascritch.net/post/2014/08/26/Le-web-est-construit-par-des-humains"&gt;les couleurs nommées prédéfinies comme &lt;code&gt;&lt;em&gt;rebecca purple&lt;/em&gt;&lt;/code&gt;&lt;/a&gt; (&lt;a href="https://dascritch.net/post/2014/09/03/micro-%40HalluFMR-1-%3A-Rebecca-purple"&gt;version audio du billet&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;et seraient aussi bloqués ceux qui auraient voulu mettre un motif plutôt qu'une couleur unie.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Pour toutes ces raisons, ce hack me semble &lt;a href="https://dascritch.net/post/2013/03/26/Dirty-Hacky-%3A-je-parse-en-HTML-.357-SW"&gt;limite pour l'Inspecteur Hacky&lt;/a&gt;, donc pour l'instant ⇒ c'est non.
&lt;/p&gt;
&lt;h3 id="tentative_polyfill_javascript"&gt;Tentative 2 : Polyfill javascript pour déduire une couleur totalement opaque&lt;/h3&gt;
&lt;p&gt;
Certains m'ont suggéré &lt;strong&gt;d'utiliser/créer un &lt;em&gt;polyfill&lt;/em&gt; en javascript pour extraite la couleur opaque&lt;/strong&gt; en &lt;a href="https://dev.to/oleggromov/observing-style-changes---d4f"&gt;surveillant les modifications&lt;/a&gt; sur la &lt;a href="https://davidwalsh.name/css-variables-javascript"&gt;variable d'environnement&lt;/a&gt;, et en définissant une autre variable d'environnement à la volée avec le canal alpha complètement opaque. L'idée &lt;strong&gt;semblait&lt;/strong&gt; être une bonne idée, puisque les variables CSS peuvent changer suivant les contextes (position de l'élément dans le DOM, taille de la fenêtre, &lt;code&gt;:hover , :focus&lt;/code&gt;, etc...). Les innocents…
&lt;/p&gt;
&lt;p&gt;
Évidemment, &lt;a href="https://developer.mozilla.org/fr/docs/Web/CSS/Type_color"&gt;il faut convertir la couleur CSS qui peut être retournée en n'importe quelle notation valide&lt;/a&gt; vers un format RGBA ou HLSA (peu importe, tant qu'on peut avoir la valeur alpha à part). J'ai vérifié &lt;a href="https://zellwk.com/blog/css-values-in-js/#getting-computed-styles"&gt;avec la méthode &lt;code&gt;window.getComputedStyle()&lt;/code&gt;&lt;/a&gt; en l'appliquant sur un élément de référence, seul moyen de résoudre les contextes comme &lt;code&gt;currentColor&lt;/code&gt;. Outre que créer un élément de référence uniquement dans ce but est une méthode qui pue un peu, la fonction que j'appelle &lt;a href="https://drafts.csswg.org/cssom/#resolved-values"&gt;retourne à peu près le format qu'elle veut&lt;/a&gt;, selon l'envie du navigateur, l'historique de la propriété et le système derrière. Ainsi, on peut tout à fait imaginer qu'un écran passif travaille en HLS, ou qu'une évolution prochaine du standard passe d'un rendu de 8 à 16&amp;nbsp;bits par canal couleur. De petites fonctions pèteront le &lt;em lang="en"&gt;webcomponent&lt;/em&gt; à la gueule des utilisateurs sans que vous ne voyiez rien venir.
&lt;/p&gt;
&lt;p&gt;
Donc il nous faut une &lt;a href="https://dascritch.net/tag/regex"&gt;regex&lt;/a&gt; convertisseur magique qui n'existe pas en standard en pariant très fort que les navigateurs ne retournent que du &lt;code&gt;rgb()&lt;/code&gt; ou du &lt;code&gt;rgba()&lt;/code&gt;.&lt;br /&gt;
Là aussi, &lt;strong&gt;j'ai tenté, j'ai abandonné&amp;nbsp;: beaucoup trop de taf pour un résultat incertain et un usage marginal.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Si néanmoins vous vous le sentez, tentez de le faire&amp;nbsp;: j'aurais toute une liste de cas d'usages à vous faire tester, vous allez en suer et vous finirez par écrire un billet technique sur le côté complexe et vain de cet exercice. Une bien maigre compensation, mais qui vous permettra de proposer une conf à un devfest.
&lt;/p&gt;

&lt;p&gt;
J'ai même réfléchi à faire un &lt;code&gt;filter : invert(&lt;em&gt;100%&lt;/em&gt;);&lt;/code&gt; plutôt qu'inverser les variables de couleurs, mais le rendu n'était pas plaisant dans nombre de cas.
&lt;/p&gt;

&lt;h3 id="voir_en_peinture"&gt;Et là, tu peux plus voir cette exception en peinture&lt;/h3&gt;
&lt;p&gt;
Mais tu sais que c'est normal et tu dois l'accepter. Je dois être un genre de fou à la Van Gogh. LIBÉREZ LA PALETTE CHROMATIQUE&amp;nbsp;!
&lt;/p&gt;


&lt;p&gt;
Alors évidemment, il y aura toujours des personnes qui vous diront «&amp;nbsp;&lt;em&gt;Ahlalalala&amp;nbsp;! Mais il suffisait simplement de passer par un pré-processeur CSS pour obtenir cet effet&lt;/em&gt;&amp;nbsp;». &lt;strong&gt;Sauf que&lt;/strong&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ces personnes n'ont pas lu l'ensemble de cet article&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;Ni le chapitre d'un article précédant expliquant &lt;strong&gt;&lt;a href="https://dascritch.net/post/2018/11/06/Reconstruire-son-lecteur-audio-pour-le-web#mes_regles"&gt;les contraintes d'écriture d'un web-component réutilisable&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;Que je veux que ma bibliothèque javascript soit utilisable directement en insérant le script et en ajoutant la balise &lt;code&gt;&amp;lt;&lt;strong&gt;cpu-audio&lt;/strong&gt;&amp;gt;&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;Qu'elle soit configurable même par des gens qui n'ont qu'un minimum de bagage HTML &lt;a href="https://dascritch.github.io/cpu-audio/applications/live_config.html"&gt;avec une bête page statique&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Qu'elle utilise en priorité les standards du web et en évitant les rustines,&lt;/li&gt;
&lt;li&gt;Et sans avoir à installer une suite d'intégration complexe, genre NPM.js je-te-télécharge-internet-pour-changer-une-couleur.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Donc nous sommes dans un cas limite qui est actuellement bloqué, et qu'on ne tentera pas de palier dans l'immédiat car elle n'impacte qu'un cas de paramétrage d'aspect très marginal, et qui est compensable.
&lt;/p&gt;

&lt;figure&gt;
&lt;img src="https://dascritch.net/vrac/.blog2/webdev/1906-tagcpupm-webshare/1906-WebShare-van-gogh.jpg" alt="" /&gt;
&lt;figcaption&gt;
Désolé Larcenet*, on s'est parfois engueulés ensemble, mais j'ai pas pu m'empêcher de citer dans mon billet technique le dos de la couverture du deuxième tome de tes fabuleuses « &amp;nbsp;&lt;em&gt;Aventure rocambolesque&lt;/em&gt;&amp;nbsp;», celui avec Vincent Van Gogh. C'est chez Dargaud. Achetez-le&amp;nbsp;!
&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;
Eh mais, du coup, je peux clore &lt;a href="https://github.com/dascritch/cpu-audio/issues/29"&gt;ce ticket #29 : &lt;em lang="en"&gt;Some css vars settings won't be useful&lt;/em&gt;&lt;/a&gt;, non&amp;nbsp;?
&lt;/p&gt;

&lt;p&gt;
Non&amp;nbsp;:
&lt;/p&gt;

&lt;h3 id="couleur_tombee_du_ciel"&gt;La couleur tombée du Ciel&lt;/h3&gt;

&lt;p&gt;
J'ai écrit cet article en Avril 2019.&lt;br /&gt;
Entretemps, &lt;a href="https://github.com/w3c/css-houdini-drafts/wiki"&gt;un nouveau groupe d'API natifs commence à arriver dans les navigateurs&amp;nbsp;: &lt;strong&gt;CSS Houdini&lt;/strong&gt;.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Et ce groupe &lt;a href="https://codepen.io/collection/XwgeMo/"&gt;est tellement stupéfiant&lt;/a&gt; qu'on dirait &lt;a href="https://furyosa.com/un-trailer-pour-color-out-of-space-de-richard-stanley/"&gt;une nouvelle de Lovecraft adaptée part Richard Stanley&lt;/a&gt; (&lt;em lang="en"&gt;Personal message&amp;nbsp;: If you read me, I salute you, by the way. You're welcome for a craft beer.&lt;/em&gt;).
&lt;/p&gt;
&lt;p&gt;
L'idée est d'étendre les variables CSS pour leur faire porter une partie d'attributs, via l'API accessible en javscript&amp;nbsp;: &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/CSS/RegisterProperty"&gt;&lt;code&gt;CSS.registerProperty&lt;/code&gt;&lt;/a&gt;.&lt;br /&gt;
Ce qui permet d'étendre &lt;a href="https://css-houdini.rocks/background-properties"&gt;les possibilités des propriété css &lt;code&gt;background&lt;/code&gt;&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
L'idée est géniale, audacieuse, mais je ne la mettrais pas dans ma bibliothèque, car elle relève plus de la coquetterie de chaque site que de réellement la responsabilité de mon web-component. De plu, il est probable que les performances de rendu navigateur impactent l'expérience utilisateur si vous êtes trop gourmands.&lt;br /&gt;
Néanmoins, l'usage des variables CSS dans mon code en laisse la possibilité à tout intégrateur aventureux.
&lt;/p&gt;

&lt;p&gt;
La prochaine fois, on va s'amuser avec des objets DOM incongrus, des méthodes javascripts et des fichiers de sous-titrage. Et croyez-moi, c'est à la fois instructif et éclairant quand une norme a des limites pour rester dans son intention.
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2019/11/13/Deux-couleurs-bizarres-en-CSS#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2019/11/13/Deux-couleurs-bizarres-en-CSS#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3160</wfw:commentRss>
              </item>
          <item>
        <title>5 ans après Supplément Week-End</title>
        <link>https://dascritch.net/post/2019/10/30/5-ans-apr%C3%A8s-Suppl%C3%A9ment-Week-End</link>
        <guid isPermaLink="false">urn:md5:c5496ac704ce6ce2f542a6c9a836e00e</guid>
        <pubDate>Wed, 30 Oct 2019 11:05:00 +0100</pubDate>
        <dc:creator>Da Scritch</dc:creator>
                  <category>Vide-Grenier</category>
                        <description>Je tue les flux rss encore existant. Ce billet est uniquement technique, ne plus tenir compte          &lt;p&gt;
Ce billet sert juste à invalider les derniers pointeurs sur l'émission Supplément Week-End, qui a été terminée en 2014. Il sera supprimé après une opération technique côté &lt;a href="https://podcloud.fr"&gt;podcloud&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Le «&amp;nbsp;&lt;em&gt;Supplément Week-End&lt;/em&gt;&amp;nbsp;» est devenu par la suite &lt;a href="https://www.facebook.com/fmr.crossover"&gt;«&amp;nbsp;&lt;em&gt;Cross/Over&lt;/em&gt;&amp;nbsp;»&lt;/a&gt; avec une nouvelle équipe menée par Dusport et Ultimatom.
&lt;/p&gt;
&lt;p&gt;
DaScritch a créé l'émission &lt;a href="http://cpu.pm"&gt;«&amp;nbsp;&lt;em&gt;CPU (Carré Petit Utile)&lt;/em&gt;&amp;nbsp;»&lt;/a&gt; sur des sujets numériques.
&lt;/p&gt;

&lt;p&gt;
Merci de votre compréhension.
&lt;/p&gt;

&lt;p style="visibility:hidden"&gt;
&lt;a href="https://podcloud.fr/podcast/supplement-week-end-emissions?5db95c955e7d4a5e17aa6323" target="_blank"&gt;Retrouvez Supplément Week-End (émissions) sur podCloud&lt;/a&gt;
&lt;br /&gt;
&lt;a href="https://podcloud.fr/podcast/da-scritch-net-works?5db960b55e7d4a5c48aa6314" target="_blank"&gt;Retrouvez da scritch net works sur podCloud&lt;/a&gt;
&lt;/p&gt;</description>
        
                  <comments>https://dascritch.net/post/2019/10/30/5-ans-apr%C3%A8s-Suppl%C3%A9ment-Week-End#comment-form</comments>
          <wfw:comment>https://dascritch.net/post/2019/10/30/5-ans-apr%C3%A8s-Suppl%C3%A9ment-Week-End#comment-form</wfw:comment>
          <wfw:commentRss>https://dascritch.net/feed/atom/comments/3170</wfw:commentRss>
              </item>
      </channel>
</rss>