<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>bisko.be</title><description>Blog personnel et écrits de bisko - réflexions sur le développement, les aventures et la vie.</description><link>https://bisko.be/fr/</link><language>fr</language><item><title>Faire tourner Ollama avec de vieux GPU sur CachyOS</title><link>https://bisko.be/fr/posts/dev/running-ollama-with-older-gpus-on-cachyos/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/running-ollama-with-older-gpus-on-cachyos/</guid><description>Aujourd&apos;hui, je migrais ma VM Windows 11 vers Linux, pour avoir plus de flexibilité sur les services qui y tournent, et je suis tombé sur un problème : Ollama refusait de tourner sur mes vieux GPU, une GTX1070 et une GTX970</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h3 id=&quot;tldr&quot;&gt;TL;DR;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;ollama-cuda&lt;/code&gt; sur CachyOS ne supporte (à l’heure actuelle) que &lt;code&gt;compute &gt;= 7.5&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si vous avez de vieux GPU avec un &lt;code&gt;compute&lt;/code&gt; inférieur, vous DEVEZ faire l’une de ces 2 choses :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Compiler &lt;code&gt;ollama-cuda&lt;/code&gt; depuis les sources, avec le support des anciennes cibles de compute&lt;/li&gt;
&lt;li&gt;Installer &lt;code&gt;ollama-vulkan&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J’ai choisi &lt;code&gt;ollama-vulkan&lt;/code&gt; et ça marche parfaitement !&lt;/p&gt;
&lt;h3 id=&quot;lheure-du-récit&quot;&gt;L’heure du récit&lt;/h3&gt;
&lt;p&gt;Aujourd’hui, j’ai eu l’inspiration d’enfin éteindre ma VM Windows 11 et de la migrer vers Linux.&lt;/p&gt;
&lt;p&gt;Il fallait que je puisse faire tourner :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ollama - pour la magie des modèles en local&lt;/li&gt;
&lt;li&gt;Docker - pour le développement à distance&lt;/li&gt;
&lt;li&gt;Steam - pour jouer&lt;/li&gt;
&lt;li&gt;Jellyfin - pour l’archive de vidéos familiales&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je vais me concentrer uniquement sur Ollama, parce que l’expérience était intéressante et qu’elle m’a fait me demander pourquoi les choses ne sont pas plus évidentes.&lt;/p&gt;
&lt;p&gt;La machine contient 2 GPU :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GTX 1070 - 8 Go&lt;/li&gt;
&lt;li&gt;GTX 970 - 4 Go&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je voulais faire tourner Ollama dessus, pour jouer avec des modèles locaux et voir comment je pourrais l’intégrer dans certains projets. Par exemple : anonymiser des données en local, monter une implémentation non destructive d’OpenClaw adaptée à mes cas d’usage, faire de l’OCR local pour les documents que je scanne avec mon téléphone, automatiser certaines tâches de la gestion quotidienne d’une maison.&lt;/p&gt;
&lt;p&gt;Alors naturellement, j’ai installé &lt;code&gt;ollama&lt;/code&gt; et &lt;code&gt;ollama-cuda&lt;/code&gt;, puisque j’ai 2 GPU Nvidia là-dedans, en m’attendant à ce que ça marche sans souci, vu que ça fonctionnait sous Windows quelques minutes plus tôt.&lt;/p&gt;
&lt;p&gt;J’ai lancé Ollama, chargé &lt;code&gt;qwen3:8b&lt;/code&gt; pour un test rapide et… ça tournait sur le CPU 🤔&lt;/p&gt;
&lt;p&gt;Les GPU étaient parfaitement capables de le garder en VRAM, mais pour une raison quelconque Ollama choisissait de le faire tourner sur le CPU.&lt;/p&gt;
&lt;p&gt;Après avoir essayé de comprendre à partir des logs, j’ai demandé un coup de main à Claude, qui est arrivé à cette conclusion plutôt décourageante :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;The&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; logs&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; tell&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; the&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; story&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; clearly.&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Both&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; your&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GPUs&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; are&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; detected&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; but&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; then&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; filtered&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; out&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; because&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; they&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; fail&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CUDA&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initialization:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  &quot;filtering device which didn&apos;t fully initialize&quot;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; id=GPU-eb132a13-b9f4-40e3-d85d-60f211dfd21e&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ...&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; library=CUDA&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  &quot;filtering device which didn&apos;t fully initialize&quot;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; id=GPU-550263c8-37e2-2a25-c0b6-10cc7511ed20&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ...&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; library=CUDA&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  The&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; reason&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; the&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CUDA&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; library&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; bundled&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; with&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Ollama&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0.17.4&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; was&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; compiled&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; these&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; architectures&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; only:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  CUDA.0.ARCHS&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;=750,800,860,870,880,890,900,1000,1030,1100,1200,1210&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  The&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; minimum&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; supported&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; compute&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; capability&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 7.5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (Turing &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; RTX&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; 20xx&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; series&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;). Your GPUs are older than that:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  ┌──────────┬────────────────────┬──────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;   GPU&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Compute&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Capability&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Architecture&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  ├──────────┼────────────────────┼──────────────┤&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GTX&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1070&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; │&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 6.1&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;                │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Pascal&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;       │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  ├──────────┼────────────────────┼──────────────┤&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GTX&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 970&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  │&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 5.2&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;                │&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Maxwell&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  └──────────┴────────────────────┴──────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  Neither&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; the&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; supported&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list,&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; so&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CUDA&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; initialization&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; fails&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; both,&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Ollama&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; falls&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; back&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CPU-only&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; inference.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  Your&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; options:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  1.&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Downgrade&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Ollama&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; an&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; older&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; version&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; that&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; still&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; included&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Pascal/Maxwell&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; support&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (pre-0.6.x &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;era&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; had&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; broader&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; arch&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; coverage,&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; but&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; check&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; release&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; notes&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; specifics&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  2.&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Build&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Ollama&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; from&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; with&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; CUDA_ARCHITECTURES=&quot;52;61;75;80;86&quot;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; include&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; your&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GPU&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; architectures.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;  3.&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Upgrade&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; GPUs&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; to&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; at&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; least&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; an&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; RTX&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 2060&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; newer&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (compute &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;7.5+&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Franchement, ça m’a un peu douché, parce que je veux exploiter ces GPU au maximum avant de passer à un nouveau.&lt;/p&gt;
&lt;p&gt;Je n’avais pas envie de recompiler Ollama depuis les sources, vu que ça devrait fonctionner out of the box, et j’étais très perplexe de voir que ce n’était pas le cas, alors que sous Windows ces architectures étaient bien supportées.&lt;/p&gt;
&lt;p&gt;Ces cartes étaient même indiquées comme supportées sur le site d’Ollama !&lt;/p&gt;
&lt;p&gt;Pour résumer des heures de recherches Google :&lt;/p&gt;
&lt;p&gt;Il se trouve que &lt;code&gt;ollama-cuda&lt;/code&gt; ne vient qu’avec les prérequis listés plus haut… et la suggestion était d’installer &lt;code&gt;ollama-vulkan&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Après ça, tout s’est mis à fonctionner très bien !&lt;/p&gt;</content:encoded><category>dev</category><category>linux</category><category>llm</category><category>ollama</category><category>cachyos</category><category>vulcan</category><category>cuda</category></item><item><title>[Linux] Récupérer une session `apt dist-upgrade` déconnectée</title><link>https://bisko.be/fr/posts/dev/linux-recovering-a-disconnected-apt-dist-upgrade-session/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/linux-recovering-a-disconnected-apt-dist-upgrade-session/</guid><description>Aujourd&apos;hui, je mettais à jour mon installation Proxmox à distance via la console intégrée, mais j&apos;ai oublié ce que j&apos;étais en train de faire et j&apos;ai fermé l&apos;onglet en plein milieu. Résultat : impossible de me reconnecter, car les paquets étaient déjà en cours de mise à jour en arrière-plan et la mise à jour avait posé une question sur le remplacement d&apos;un fichier et attendait ma réponse</description><pubDate>Wed, 23 Oct 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Aujourd’hui, je mettais à jour mon installation Proxmox à distance via la console intégrée, mais j’ai oublié ce que j’étais en train de faire et j’ai fermé l’onglet en plein milieu.&lt;/p&gt;
&lt;p&gt;Résultat : impossible de me reconnecter, car les paquets étaient déjà en cours de mise à jour en arrière-plan et la mise à jour avait posé une question sur le remplacement d’un fichier et attendait ma réponse.&lt;/p&gt;
&lt;p&gt;Je pouvais donc me connecter en SSH, mais je ne pouvais rien faire, puisque le processus attendait toujours une réponse sur une console à laquelle je n’arrivais pas à me connecter, l’interface ne s’ouvrant pas.&lt;/p&gt;
&lt;p&gt;Après avoir fouillé un peu, je suis tombé sur un &lt;a href=&quot;https://serverfault.com/questions/19634/how-to-reconnect-to-a-disconnected-ssh-session&quot;&gt;fil Serverfault&lt;/a&gt; qui mentionnait l’utilisation de &lt;code&gt;reptyr&lt;/code&gt; pour reprendre la main sur une session de terminal via SSH.&lt;/p&gt;
&lt;p&gt;Je note ici ce que j’ai fait exactement pour récupérer la session et terminer la mise à jour :&lt;/p&gt;
&lt;p&gt;D’après &lt;a href=&quot;https://serverfault.com/questions/19634/how-to-reconnect-to-a-disconnected-ssh-session#comment1506308_979180&quot;&gt;ce commentaire&lt;/a&gt; :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;git&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; clone&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; https://github.com/nelhage/reptyr&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;cd&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; reptyr&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;make&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; install&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cela a installé &lt;code&gt;reptyr&lt;/code&gt; sur la machine.&lt;/p&gt;
&lt;p&gt;Ensuite, j’ai cherché toutes les sessions ouvertes avec &lt;code&gt;ps ax | grep pts&lt;/code&gt; pour trouver le processus qui m’intéressait.&lt;/p&gt;
&lt;p&gt;Puis j’ai trouvé le processus le plus haut dans l’arbre d’appels auquel un &lt;code&gt;pts&lt;/code&gt; était assigné, et je m’y suis attaché via son PID :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;reptyr&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -T&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1390511&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Et j’ai enfin pu terminer la mise à jour ! 🎉&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category></item><item><title>Un hibiscus sous les rayons du matin</title><link>https://bisko.be/fr/posts/blog/hibiscus-plant-under-the-morning-rays/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/hibiscus-plant-under-the-morning-rays/</guid><pubDate>Sun, 21 Aug 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Grande fleur d&amp;amp;#x27;hibiscus rouge au premier plan avec des boutons au-dessus, sur fond de ciel bleu parsemé de fins nuages et de maisons de village en arrière-plan&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_2327-b97d8968.C7nMUQ33_Z1YnOwk.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>flower</category><category>flowers</category><category>nature</category></item><item><title>Timelapse : Porto au bord du fleuve</title><link>https://bisko.be/fr/posts/blog/timelapse-porto-by-the-river/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/timelapse-porto-by-the-river/</guid><description>Il y a quelques jours, nous avons eu un meetup d&apos;équipe à Porto. J&apos;ai enfin rencontré quelques collègues que je ne voyais que par Zoom depuis deux ans. Nous avons passé deux jours dans l&apos;incroyable espace de coworking Porto I/O Riverside. L&apos;espace dispose d&apos;un super balcon dont nous avons largement profité et où nous avons eu</description><pubDate>Tue, 07 Jun 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Il y a quelques jours, nous avons eu un meetup d’équipe à &lt;a href=&quot;https://en.wikipedia.org/wiki/Porto&quot;&gt;Porto&lt;/a&gt;. J’ai enfin rencontré quelques collègues que je ne voyais que par Zoom depuis deux ans.&lt;/p&gt;
&lt;p&gt;Nous avons passé deux jours dans l’incroyable espace de coworking &lt;a href=&quot;https://porto.io/en/location/riverside/&quot;&gt;Porto I/O Riverside&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L’espace dispose d’un super balcon dont nous avons largement profité, et nous y avons eu pas mal de discussions productives quand nous ne nous perdions pas à regarder simplement le trafic des bateaux sur le fleuve&lt;/p&gt;
&lt;p&gt;Pendant l’un de ces moments où nous étions assis tranquillement à admirer le paysage, j’ai réussi à capturer un très joli timelapse.&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Photography</category><category>Timelapse</category><category>travel</category><category>boats</category><category>Porto</category><category>Portugal</category><category>river</category><category>roofs</category></item><item><title>[Linux] Syncthing – système de fichiers en lecture seule lorsqu’il tourne en tant que service</title><link>https://bisko.be/fr/posts/dev/linux-syncthing-read-only-file-system-when-running-as-service/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/linux-syncthing-read-only-file-system-when-running-as-service/</guid><description>J’utilise Syncthing depuis un moment pour synchroniser ma copie de travail avec un serveur de dev local, depuis quelques mois. Au début, je l’utilisais en me connectant et en le lançant à la main via la CLI. Ça marchait bien, donc je n’ai pas réfléchi à deux fois quand je suis passé à un lancement en tant que service.</description><pubDate>Wed, 06 Apr 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;J’utilise &lt;a href=&quot;https://syncthing.net/&quot;&gt;Syncthing&lt;/a&gt; depuis un moment pour synchroniser ma copie de travail avec un serveur de dev local, depuis quelques mois.&lt;/p&gt;
&lt;p&gt;Au début, je l’utilisais en me connectant et en le lançant à la main via la CLI. Ça marchait bien, donc je n’ai pas réfléchi à deux fois quand je suis passé à un lancement en tant que service. Il a démarré, il a synchronisé des données, tout allait bien.&lt;/p&gt;
&lt;p&gt;Jusqu’à ce que ça ne soit plus le cas, bien sûr ! 🙂&lt;/p&gt;
&lt;p&gt;Il s’avère que je n’avais pas remarqué toute une série d’erreurs qui apparaissaient dans les logs, indiquant que le système de fichiers du serveur de dev était en lecture seule, ce qui empêchait Syncthing de synchroniser quoi que ce soit.&lt;/p&gt;
&lt;p&gt;Je pensais que c’était un bug et qu’il affichait simplement &lt;code&gt;Out of Sync&lt;/code&gt; pour les dossiers, mais qu’il synchronisait quand même. Eh bien, je me trompais.&lt;/p&gt;
&lt;p&gt;Après avoir débogué pendant quelques heures sans trouver le moindre indice sur les forums à coups de recherches Google, je suis tombé sur un &lt;a href=&quot;https://wiki.archlinux.org/title/syncthing#read-only_file_system_error_on_/etc_although_run_as_root&quot;&gt;article sur Syncthing dans l’ArchWiki&lt;/a&gt;, qui décrivait exactement mon cas :&lt;/p&gt;
&lt;p&gt;read-only file system error on /etc although run as root&lt;/p&gt;
&lt;p&gt;C’était exactement mon cas d’usage, sauf que le dossier problématique n’était pas &lt;code&gt;/etc&lt;/code&gt;, mais &lt;code&gt;/usr/local/src&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Bref, après avoir lu ce que ça disait, il s’avère que si vous lancez Syncthing (ou n’importe quoi d’autre) via &lt;code&gt;systemd&lt;/code&gt; et que &lt;code&gt;ProtectSystem&lt;/code&gt; est réglé sur &lt;code&gt;full&lt;/code&gt; pour le service, certains répertoires seront en lecture seule par défaut. &lt;code&gt;/usr&lt;/code&gt; fait partie de ces chemins.&lt;/p&gt;
&lt;p&gt;Pour corriger ça, il faut ajouter une nouvelle ligne dans la configuration du service et redémarrer le service (sans oublier &lt;code&gt;daemon-reload&lt;/code&gt;) :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ReadWritePaths=/usr/local/src&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Après ça, Syncthing devrait fonctionner correctement.&lt;/p&gt;</content:encoded><category>dev</category><category>Homelab</category><category>linux</category><category>permissions</category><category>read-only</category><category>syncthing</category><category>systemd</category></item><item><title>Accès refusé</title><link>https://bisko.be/fr/posts/blog/access-denied/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/access-denied/</guid><pubDate>Sat, 31 Jul 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Trois guêpes rampent autour d&amp;amp;#x27;un trou rouillé dans le poteau d&amp;amp;#x27;un portail en métal, l&amp;amp;#x27;une d&amp;amp;#x27;elles perchée sur une clé coincée dans la serrure, à côté de fleurs blanches&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_4506-8e7e236d.BcqhatkL_zWajt.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>door</category><category>insect</category><category>insects</category><category>key</category><category>lock</category><category>nature</category><category>wasp</category><category>wasps</category></item><item><title>Coucher de soleil sur la lavande</title><link>https://bisko.be/fr/posts/blog/lavender-sunset/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/lavender-sunset/</guid><pubDate>Sat, 03 Jul 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Épis de lavande en contre-jour, en silhouette, avec le soleil bas qui rayonne derrière la tige la plus haute, sur un ciel bleu et des arbres sombres&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/image_534908fa-cab6-4233-832b-e401bab27a30.img_3963-ccdc9838.CHRt9-9J_ZxRqVE.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>Uncategorized</category><category>flower</category><category>sun</category></item><item><title>Timelapse : un orage qui approche</title><link>https://bisko.be/fr/posts/blog/timelapse-a-storm-rolling-over/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/timelapse-a-storm-rolling-over/</guid><pubDate>Sat, 26 Jun 2021 00:00:00 GMT</pubDate><content:encoded/><category>blog</category><category>Photography</category><category>clouds</category><category>storm</category><category>Timelapse</category><category>weather</category></item><item><title>Rayons de soleil sur fond jaune</title><link>https://bisko.be/fr/posts/blog/sunrays-on-yellow/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/sunrays-on-yellow/</guid><pubDate>Sat, 05 Jun 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Fleurs d&amp;amp;#x27;onagre jaunes baignées de soleil, aux étamines délicates, sur un arrière-plan flou de feuillage vert et de ciel lumineux&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/image_42f35f6f-2341-47f4-a7a0-eb0a75d3678f.img_3167-8b4daa1a.WUo3hBS8_BI9FB.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>flower</category><category>sunrays</category><category>yellow</category></item><item><title>Roses</title><link>https://bisko.be/fr/posts/blog/roses/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/roses/</guid><pubDate>Sun, 23 May 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Des roses rouge vif en pleine floraison et des boutons sur un rosier grimpant, sur fond de ciel bleu, avec le bord d&amp;amp;#x27;un toit à droite&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_2866-bd30e710.fEDlZ8s7_Z3rCvg.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category></item><item><title>Nuageux avec un risque de tulipes</title><link>https://bisko.be/fr/posts/blog/cloudy-with-a-chance-of-tulips/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/cloudy-with-a-chance-of-tulips/</guid><description>Retour en 2013, quand je rendais visite à mon grand-père au village. J&apos;ai trouvé cette jolie tulipe coupée et jetée au bord de la route.</description><pubDate>Mon, 03 May 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Tulipe rouge en contre-jour, vue d&amp;amp;#x27;en dessous sur un ciel bleu profond avec des nuages blancs, une feuille verte se dressant à côté&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1936&quot; height=&quot;2592&quot; src=&quot;/_astro/img_1645-bb728269.BHDQHNQt_1vNnmk.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Retour en 2013, quand je rendais visite à mon grand-père au village. J’ai trouvé cette jolie tulipe coupée et jetée au bord de la route.&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>clouds</category><category>flower</category><category>flowers</category><category>nature</category><category>red</category><category>sky</category><category>travel</category></item><item><title>[Linux] Exécuter plusieurs commandes sur plusieurs serveurs en parallèle</title><link>https://bisko.be/fr/posts/dev/linux-running-multiple-commands-on-multiple-servers-in-parallel/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/linux-running-multiple-commands-on-multiple-servers-in-parallel/</guid><description>J’ai chez moi un cluster de Raspberry Pi qui font tourner Docker Swarm. Pour garder le contrôle sur tout ça, ils utilisent tous la même configuration : utilisateurs, versions de Docker, etc. Parfois, certaines mises à jour demandent d’exécuter la même chose sur tous les nœuds du cluster – par exemple – créer un nouveau réseau Docker macvlan. Pour</description><pubDate>Mon, 19 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;J’ai chez moi un cluster de Raspberry Pi qui font tourner Docker Swarm. Pour garder le contrôle sur tout ça, ils utilisent tous la même configuration : utilisateurs, versions de Docker, etc.&lt;/p&gt;
&lt;p&gt;Parfois, certaines mises à jour demandent d’exécuter la même chose sur tous les nœuds du cluster – par exemple – créer un nouveau réseau Docker macvlan.&lt;/p&gt;
&lt;p&gt;Pour ça, il faut soit lancer les mêmes commandes à la main sur tous les nœuds, en se connectant en &lt;strong&gt;ssh&lt;/strong&gt; sur chacun d’eux, en exécutant les commandes puis en passant au suivant.&lt;/p&gt;
&lt;p&gt;Comme j’essaie de me faciliter la vie sur le long terme et de garder les choses aussi organisées que possible, je me suis mis à chercher des moyens d’exécuter des commandes sur tous les nœuds en même temps.&lt;/p&gt;
&lt;h3 id=&quot;itération-1--un-script-python-maison&quot;&gt;Itération 1 : un script Python maison&lt;/h3&gt;
&lt;p&gt;La première itération a consisté à écrire un script Python maison. D’un côté, ça me permettait d’apprendre un peu mieux Python ; de l’autre, je ne trouvais pas de moyen correct d’exécuter des commandes de façon plus native.&lt;/p&gt;
&lt;p&gt;Comme on peut s’y attendre (eh, j’ai encore peu d’expérience dans ce langage 🙂 ), c’est devenu un gros bazar assez vite, et ça cassait très facilement.&lt;/p&gt;
&lt;p&gt;Il me fallait trouver une autre solution, sans avoir à réapprendre ce que j’avais fait il y a 3 semaines et ce qui avait planté la dernière fois.&lt;/p&gt;
&lt;h3 id=&quot;itération-2--pssh&quot;&gt;Itération 2 : &lt;code&gt;pssh&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;En fouillant sur Google, je suis tombé sur &lt;code&gt;[pssh](https://linux.die.net/man/1/pssh)&lt;/code&gt;, qui permet d’exécuter des commandes en parallèle via SSH.&lt;/p&gt;
&lt;p&gt;Tout bien considéré, c’était plutôt facile à mettre en place.&lt;/p&gt;
&lt;p&gt;Le problème, c’est que pour exécuter certaines choses, j’avais besoin de passer par &lt;code&gt;sudo&lt;/code&gt;. Faire circuler des mots de passe n’était pas l’idéal, alors j’ai dû chercher à nouveau comment envoyer le mot de passe &lt;code&gt;sudo&lt;/code&gt; quand le serveur distant le demandait.&lt;/p&gt;
&lt;p&gt;Il s’avère que c’est assez simple si on tombe sur le bon &lt;a href=&quot;https://unix.stackexchange.com/a/487558/134974&quot;&gt;commentaire StackOverflow&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;la-version-tldr&quot;&gt;La version TL;DR; :&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;stty&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -echo&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;printf&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;Password: &quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;read&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; PASS&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;stty&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; echo&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;${&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;PASS&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;}&quot;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;pssh&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -h&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;HOSTFIL&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;E&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -o&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; /tmp/output&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -t&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -I&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;`&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;cat&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; ./commands.sh`&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Le &lt;code&gt;-I &quot;`cat ./commands.sh`&quot;&lt;/code&gt; doit obligatoirement être écrit comme ça (entouré de guillemets et d’accents graves), sinon les commandes ne s’exécutent pas correctement. Le mot de passe sera envoyé comme une commande à part et non récupéré comme une entrée de &lt;strong&gt;sudo&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;L’autre subtilité : vu la façon dont tout ça est configuré, il faut lancer &lt;code&gt;sudo&lt;/code&gt; avec le paramètre &lt;code&gt;-S&lt;/code&gt; pour qu’il lise correctement le mot de passe.&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category></item><item><title>Nuit étoilée</title><link>https://bisko.be/fr/posts/blog/starry-night/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/starry-night/</guid><description>Récemment, nous sommes partis en vacances dans les montagnes bulgares. Une des nuits, le ciel était assez dégagé pour tenter le nouveau mode photo de nuit de l&apos;iPhone 12. Les premiers essais étaient un peu bruités et ne montraient pas beaucoup de détails. Heureusement, j&apos;ai partagé cette photo avec mon cousin et il m&apos;a dit que</description><pubDate>Tue, 09 Feb 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Récemment, nous sommes partis en vacances dans les montagnes bulgares.&lt;/p&gt;
&lt;p&gt;Une des nuits, le ciel était assez dégagé pour tenter le nouveau mode photo de nuit de l’iPhone 12.&lt;/p&gt;
&lt;p&gt;Les premiers essais étaient un peu bruités et ne montraient pas beaucoup de détails.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Faible lueur verte d&amp;amp;#x27;aurore au-dessus de pins et d&amp;amp;#x27;étoiles, vue depuis un balcon sous l&amp;amp;#x27;avancée d&amp;amp;#x27;un toit&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_1381-10c608c2.DVecqBvr_Z1VJ5i5.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Heureusement, j’ai partagé cette photo avec mon cousin et il m’a dit que je devrais peut-être essayer de photographier en RAW, car ce format conserve plus d’informations que l’on peut retoucher après coup.&lt;/p&gt;
&lt;p&gt;J’ai donc activé l’enregistrement des photos en ProRAW. Le résultat était similaire à la photo ci-dessus, mais ensuite je suis allé retoucher la photo dans l’app Photos sur iOS, sans utiliser d’outil externe.&lt;/p&gt;
&lt;p&gt;Après quelques réglages, les détails ont commencé à ressortir plutôt bien sur le fond de ciel sombre.&lt;/p&gt;
&lt;p&gt;Le résultat final me plaît beaucoup !&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Ciel étoilé sombre avec une brume pâle et lumineuse au-dessus de pins éclairés en vert, encadré par la rambarde d&amp;amp;#x27;un balcon&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_1380-3c06f94f.9xJS155n_VMvSG.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Et une anecdote amusante au sujet de la photo : la forte lueur dans le ciel est en fait de la fumée de la cheminée de l’hôtel, que je n’ai vue qu’en prenant les photos, pas à l’œil nu. Il faisait telllement noir.&lt;/p&gt;
&lt;p&gt;Je continuerai certainement à expérimenter la photographie en mode Nuit à l’avenir, sous des ciels plus dégagés et plus sombres !&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>night-photos</category><category>travel</category></item><item><title>Weirdy le bonhomme de neige</title><link>https://bisko.be/fr/posts/blog/weirdy-the-snowman/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/weirdy-the-snowman/</guid><description>Parfois, la neige est tout simplement trop gelée pour former une vraie boule de bonhomme de neige. Dans ce cas, pourquoi ne pas le construire brique par brique, ou couche par couche, comme une structure en Lego ?</description><pubDate>Sun, 31 Jan 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Bonhomme de neige coiffé d&amp;amp;#x27;une passoire en métal, avec un nez en carotte, des yeux cerclés de rouge et une bouche rouge, des bras en bâtons turquoise, posé sur une table en bois enneigée&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/image_af25d50e-4c23-444f-9224-f7c5c1bceca3.img_0953-83f032c2.C2lW_tiM_1jpdxL.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Parfois, la neige est tout simplement trop gelée pour former une vraie boule de bonhomme de neige. Dans ce cas, pourquoi ne pas le construire brique par brique, ou couche par couche, comme une structure en Lego ?&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>Winter</category><category>ice</category><category>snowman</category></item><item><title>La sauterelle</title><link>https://bisko.be/fr/posts/blog/the-grasshopper/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/the-grasshopper/</guid><description>J&apos;ai trouvé ce petit bonhomme en train de buller à côté de ma voiture par un matin plutôt glacial.</description><pubDate>Tue, 08 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Sauterelle verte semblable à une sauterelle-cigale, debout sur de l&amp;amp;#x27;asphalte gris et rugueux, ses longues antennes traînant derrière elle, avec de l&amp;amp;#x27;herbe floue à l&amp;amp;#x27;arrière-plan&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_0416-de3b3257.C7SwA0Oo_ZcuH8m.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;J’ai trouvé ce petit bonhomme en train de buller à côté de ma voiture par un matin plutôt glacial.&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>Animals</category><category>cold</category><category>grasshopper</category><category>green</category><category>morning</category><category>Photography</category></item><item><title>Le « crayon »</title><link>https://bisko.be/fr/posts/blog/the-pencil/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/the-pencil/</guid><description>Lors d’un récent voyage, nous sommes allés à la montagne. Un chouette endroit isolé. Juste quelques maisons et un restaurant. À côté d’un lac artificiel/barrage abandonné. Les moustiques et la chaleur étaient nos pires ennemis, mais nous avons réussi à nous débrouiller. Comme il n’y avait pas grand-chose à faire dans les environs, il a fallu improviser des activités.</description><pubDate>Sun, 08 Nov 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Bâton de bois flotté usé avec une pointe taillée et plusieurs petits trous, posé sur un plancher en bois sombre&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_3189-041bec7e.ylsLA4bE_Zu4r9W.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Lors d’un récent voyage, nous sommes allés à la montagne. Un chouette endroit isolé. Juste quelques maisons et un restaurant. À côté d’un lac artificiel/barrage abandonné.&lt;/p&gt;
&lt;p&gt;Les moustiques et la chaleur étaient nos pires ennemis, mais nous avons réussi à nous débrouiller.&lt;/p&gt;
&lt;p&gt;Comme il n’y avait pas grand-chose à faire dans les environs, il a fallu improviser des activités. Heureusement, mon fils est tombé sur une grosse pierre rectangulaire et a trouvé ça vraiment fascinant de la trimballer partout. Moi aussi, je trouvais ça fascinant.&lt;/p&gt;
&lt;p&gt;Chaque face avait une texture différente, un peu comme différents papiers de verre.&lt;/p&gt;
&lt;p&gt;Nous avions aussi un tas de vieilles branches, tombées des arbres autour de l’endroit.&lt;/p&gt;
&lt;p&gt;Après mûre réflexion pendant quelques secondes, nous avons commencé à explorer le merveilleux monde de l’affûtage de bâtons.&lt;/p&gt;
&lt;p&gt;L’un des bâtons est devenu exactement comme un crayon ! Il avait un trou de la taille parfaite pour y glisser une petite mine de graphite d’un vrai crayon, et ça a marché !&lt;/p&gt;
&lt;p&gt;Nous avons dessiné par terre avec, et c’était génial.&lt;/p&gt;</content:encoded><category>blog</category><category>Quick &amp;amp; Easy</category><category>travel</category><category>Adventures</category><category>forest</category><category>stone</category><category>woodwork</category></item><item><title>Perce-neige</title><link>https://bisko.be/fr/posts/blog/snowdrops/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/snowdrops/</guid><description>Retour en 2007.</description><pubDate>Thu, 08 Oct 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Trois fleurs de perce-neige blanches aux marques vertes, penchées sur de fines tiges, à côté d&amp;amp;#x27;un tronc d&amp;amp;#x27;arbre et d&amp;amp;#x27;une clôture en bois&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1024&quot; height=&quot;768&quot; src=&quot;/_astro/c7a42ddf-26db-487f-8ca3-20b5ef6704dc_1_105_c-bd84ccbc.nK60jHnF_Z1KzMGp.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Retour en 2007.&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>flowers</category><category>snowdrops</category></item><item><title>Deviner le mot de passe numérique d&apos;un fichier zip uniquement avec des utilitaires en ligne de commande</title><link>https://bisko.be/fr/posts/dev/guessing-a-numeric-zip-file-password-only-with-command-line-utilities/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/guessing-a-numeric-zip-file-password-only-with-command-line-utilities/</guid><description>Aujourd&apos;hui j&apos;ai reçu ma facture mensuelle de mon fournisseur internet et quelque chose m&apos;a semblé bizarre. La facture, contenue dans le mail, était dans un fichier ZIP avec un mot de passe. Sans parler de l&apos;étrangeté de recevoir une pièce jointe sous forme de fichier ZIP de nos jours (spam, malware, phishing, etc.), le</description><pubDate>Mon, 14 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Aujourd’hui j’ai reçu ma facture mensuelle de mon fournisseur internet et quelque chose m’a semblé bizarre.&lt;/p&gt;
&lt;p&gt;La facture, contenue dans le mail, était dans un fichier ZIP avec un mot de passe.&lt;/p&gt;
&lt;p&gt;Sans parler de l’étrangeté de recevoir une pièce jointe sous forme de fichier ZIP de nos jours (spam, malware, phishing, etc.), le mot de passe qu’ils avaient choisi m’a paru très faible.&lt;/p&gt;
&lt;p&gt;C’est la date de naissance du titulaire du compte au format &lt;code&gt;YYMMDD&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;J’ai fait un calcul très grossier dans ma tête pendant que j’étais à la salle de sport et le résultat était un nombre très réduit de combinaisons possibles. Après avoir utilisé un outil en ligne pour calculer le nombre de jours écoulés (puisque toutes les combinaisons ne donneraient pas une date valide) depuis le 1900-01-01, il s’avère que les combinaisons sont seulement 44 075 (jusqu’au 2020-09-14).&lt;/p&gt;
&lt;p&gt;Sachant que des outils optimisés utilisant la puissance du GPU pour craquer des hashs peuvent faire des millions de tentatives par seconde, je voulais voir à quelle vitesse le mot de passe pouvait être deviné sans les utiliser, en me servant uniquement de la ligne de commande Linux/macOS (n’ayant accès qu’à un VPS depuis la salle de sport).&lt;/p&gt;
&lt;p&gt;J’ai concocté le code suivant qui fonctionne sur macOS :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;echo {1..44000} | xargs -P 16 -n 1 -I{} date -v &quot;-{}d&quot; +&quot;%y%m%d&quot; | xargs -P 16 -I{} sh -c &apos;unzip -qqoP &quot;{}&quot; 0417160508.zip &amp;#x26;&amp;#x26; echo &quot;{}&quot; &amp;#x26;&amp;#x26; exit 255&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La commande est assez simple dans son fonctionnement, même si elle paraît compliquée.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;echo {1..44000}&lt;/code&gt; génère les nombres de 1 à 44 000 et les transmet à l’étape suivante.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xargs -P 16 -n 1 -I{} date -v &quot;-{}d&quot; +&quot;%y%m%d&quot;&lt;/code&gt; – prend l’entrée de la première étape et génère des dates au format &lt;code&gt;YYMMDD&lt;/code&gt; en exploitant la fonctionnalité de &lt;code&gt;date&lt;/code&gt; permettant « d’augmenter » une date d’une quantité spécifique. Dans ce cas, cela va soustraire X jours à la date actuelle. Où X est le nombre généré à la première étape. Ainsi, on peut générer des dates depuis aujourd’hui jusque dans les années 1900.&lt;/p&gt;
&lt;p&gt;La troisième étape est la plus intéressante, donc je vais la diviser en deux parties :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;xargs -P 16 -I{} sh -c &apos;...&apos;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Cela prend les dates générées à l’étape 2 et exécute une commande sur chacune de ces dates. &lt;code&gt;-P 16&lt;/code&gt; signifie ici que cela va s’exécuter sur 16 processus parallèles, pour accélérer le traitement des données. La même astuce est appliquée à l’étape 2 pour accélérer la génération des dates.&lt;/p&gt;
&lt;p&gt;La deuxième partie est l’endroit où les tentatives ont lieu :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;unzip -qqoP &quot;{}&quot; 0417160508.zip &amp;#x26;&amp;#x26; echo &quot;{}&quot; &amp;#x26;&amp;#x26; exit 255&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ce que cela fait, c’est d’abord essayer de décompresser le fichier zip en utilisant le mot de passe généré à l’étape 2. Si c’est réussi, cela affiche (&lt;code&gt;echo&lt;/code&gt;) le mot de passe deviné puis &lt;code&gt;exit 255&lt;/code&gt; force &lt;code&gt;xargs&lt;/code&gt; à arrêter l’exécution. On ne veut pas continuer à deviner si le mot de passe a été trouvé.&lt;/p&gt;
&lt;p&gt;En somme, c’était une assez mauvaise décision de choisir cela comme mot de passe pour le fichier, car exécuter la commande ci-dessus prend seulement environ 10 secondes pour deviner le bon mot de passe de ma facture. Pas beaucoup plus pour n’importe qui d’autre.&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category></item><item><title>Graffitis autour du monde : Burgas, Bulgarie</title><link>https://bisko.be/fr/posts/blog/graffiti-around-the-world-burgas-bulgaria/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/graffiti-around-the-world-burgas-bulgaria/</guid><description>Récemment, je suis tombé sur cette photo d&apos;un ami. Elle a clairement sa place dans la série !</description><pubDate>Tue, 08 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Fresque murale colorée dans la rue représentant un escargot orange avec une coquille en spirale jaune surmontée de champignons, de créatures aux yeux écarquillés, d&amp;amp;#x27;un OVNI et d&amp;amp;#x27;un extraterrestre vert&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1440&quot; height=&quot;1087&quot; src=&quot;/_astro/img_1545-6a461b59.DrLukEK8_ozvWH.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Le Psy-Escargot&lt;/p&gt;
&lt;p&gt;Récemment, je suis tombé sur cette photo d’un ami. Elle a clairement sa place dans la série !&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category></item><item><title>La nouvelle roue</title><link>https://bisko.be/fr/posts/blog/the-new-wheel/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/the-new-wheel/</guid><description>Lors d&apos;un récent séjour dans un village de montagne, nous avons trouvé ce camion auquel il manquait une des roues arrière. Notre fils n&apos;était pas content que le camion soit blessé, alors nous avons décidé de lui improviser une roue. Après avoir trouvé un bouchon de bouteille d&apos;eau, nous avons fait un peu de magie au couteau pour retirer une partie du bouchon afin de l&apos;ajuster à la taille</description><pubDate>Sat, 08 Aug 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Camion toupie jaune en jouet, avec une roue arrière bleue fabriquée à la main qui ne correspond pas à la roue avant, noire avec un moyeu jaune&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_1070-1bce5de4.PNKa8g3z_Z1B6f9F.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Lors d’un récent séjour dans un village de montagne, nous avons trouvé ce camion auquel il manquait une des roues arrière.&lt;/p&gt;
&lt;p&gt;Notre fils n’était pas content que le camion soit blessé, alors nous avons décidé de lui improviser une roue.&lt;/p&gt;
&lt;p&gt;Après avoir trouvé un bouchon de bouteille d’eau, nous avons fait un peu de magie au couteau pour en retirer une partie et l’ajuster à la bonne taille.&lt;/p&gt;
&lt;p&gt;Après une petite intervention au briquet pour faire fondre le plastique, nous avons réussi à le souder à l’essieu de la roue manquante.&lt;/p&gt;
&lt;p&gt;Et ça marche vraiment !&lt;/p&gt;
&lt;p&gt;Regardez-le filer !&lt;/p&gt;</content:encoded><category>blog</category><category>Quick &amp;amp; Easy</category><category>Second Chances</category><category>diy</category><category>fixing</category><category>toys</category></item><item><title>Gérer le code spaghetti en PHP : utiliser des fonctions anonymes pour extraire des morceaux de code de template</title><link>https://bisko.be/fr/posts/dev/dealing-with-spaghetti-code-in-php-using-anonymous-functions-to-extract-pieces-of-template-code/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/dealing-with-spaghetti-code-in-php-using-anonymous-functions-to-extract-pieces-of-template-code/</guid><description>Récemment, j’ai aidé un ami à comprendre du code et à voir comment le modifier pour qu’il fonctionne bien avec des appels asynchrones vers le backend. Un bonus serait de pouvoir l’écrire de façon plus modulaire et réutilisable. Le code est un plugin WordPress qui a été écrit</description><pubDate>Sat, 08 Aug 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Récemment, j’ai aidé un ami à essayer de comprendre du code et à voir comment le modifier pour qu’il fonctionne bien avec des appels asynchrones vers le backend. Un bonus serait de pouvoir l’écrire de façon plus modulaire et réutilisable.&lt;/p&gt;
&lt;p&gt;Le code est un plugin WordPress écrit avec une approche très legacy : un mélange de logique métier et de logique frontend au même endroit. Des manipulations de données faites en plein milieu du code de template, et ainsi de suite.&lt;/p&gt;
&lt;p&gt;Bref, ce qu’on voyait sur les sites PHP au début des années 2000, avant toutes les super additions OOP au langage et avant l’arrivée d’un tas de frameworks matures.&lt;/p&gt;
&lt;p&gt;Le cas sur lequel j’ai planché aujourd’hui était le suivant : vous avez un tableau qui affiche plein d’entrées. Il fallait ajouter plusieurs filtres au tableau et le faire fonctionner via AJAX pour rafraîchir rapidement l’UI, sans recharger toute la page d’administration de WordPress.&lt;/p&gt;
&lt;p&gt;Filtrer les données était facile : un petit &lt;code&gt;array_filter&lt;/code&gt; en ligne pour filtrer les données avant de les passer au code du template (pour garder le même style de code, c’était aussi dans le fichier de template 😇).&lt;/p&gt;
&lt;p&gt;Le problème est arrivé quand on a commencé à vouloir rendre le tableau affichable via AJAX.&lt;/p&gt;
&lt;p&gt;Il se trouve au milieu d’un tas d’autre code de template et de code métier. Si on voulait limiter la sortie AJAX au seul tableau, on n’avait que quelques options.&lt;/p&gt;
&lt;p&gt;La première serait d’entourer le HTML avant et après le tableau de GROS blocs &lt;code&gt;if&lt;/code&gt; pour s’assurer qu’il ne soit pas rendu.&lt;/p&gt;
&lt;p&gt;Une autre serait d’extraire le template dans un fichier séparé et de l’inclure dans l’action AJAX que l’on définirait dans le code du plugin.&lt;/p&gt;
&lt;p&gt;Les fonctions anonymes à la rescousse !&lt;/p&gt;
&lt;p&gt;En réfléchissant à la façon la plus simple de gérer ça, j’ai essayé de définir une fonction PHP normale contenant le code du tableau, mais il y avait un problème.&lt;/p&gt;
&lt;p&gt;Le code s’exécute dans une méthode de classe. Il y a des références à &lt;code&gt;$this&lt;/code&gt; dans le template du tableau. Si on ne veut pas trop changer le code, on voudrait passer &lt;code&gt;$this&lt;/code&gt; en argument de la fonction. Eh bien ça ne marche pas trop, car on ne peut pas passer &lt;code&gt;$this&lt;/code&gt; en paramètre 🤷‍♂️.&lt;/p&gt;
&lt;p&gt;J’étais un peu déçu à l’idée de devoir réécrire un tas de choses dans le template, et il y avait pas mal de références qu’on voulait garder en tête pour que tout continue de fonctionner.&lt;/p&gt;
&lt;p&gt;Puis je me suis rappelé que le site ne tourne pas sous PHP 5.2 mais sous PHP 7, et que les fonctions anonymes seraient donc supportées.&lt;/p&gt;
&lt;p&gt;Elles ont cette fonctionnalité bien pratique qui permet de définir quelles variables du scope appelant seront passées à la fonction quand elle est appelée. Par exemple :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;php&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;$table_function &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; function&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;() &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;use&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; ( $pages, $current_page, $items ) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // ... Table render code&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cela vous permet de référencer directement &lt;code&gt;$pages&lt;/code&gt; ou &lt;code&gt;$items&lt;/code&gt; dans le corps de la fonction.&lt;/p&gt;
&lt;p&gt;Ce qui est génial, c’est qu’on peut aussi passer &lt;code&gt;$this&lt;/code&gt; comme variable dans le scope de la fonction !&lt;/p&gt;
&lt;p&gt;On a donc pu extraire complètement le code de rendu du tableau dans une fonction séparée, qu’on peut appeler de façon isolée pendant l’appel AJAX !&lt;/p&gt;
&lt;p&gt;Bien sûr, il faut faire très attention aux variables utilisées dans le corps de la fonction, car elles doivent être définies ; soyez donc prudent quant à l’endroit où la fonction AJAX peut être appelée.&lt;/p&gt;
&lt;p&gt;Pour nous, cela signifie qu’on va ajouter une toute petite action dans la classe principale qui fera toujours le &lt;code&gt;require&lt;/code&gt; du fichier, mais on aura plus de contrôle pour désactiver toutes les autres sorties qui se produiraient.&lt;/p&gt;</content:encoded><category>dev</category><category>Snippets</category><category>lambda-functions</category><category>php</category><category>WordPress</category></item><item><title>Graffitis à travers le monde : Chevaux</title><link>https://bisko.be/fr/posts/blog/graffiti-around-the-world-horses/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/graffiti-around-the-world-horses/</guid><description>Aire de jeux pour enfants à Sofia, en Bulgarie</description><pubDate>Wed, 08 Jul 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Fresque de dix têtes de chevaux cubistes stylisées en jaune, noir, violet, gris, orange, bleu, blanc et marron sur un fond bleu et rose&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;6435&quot; height=&quot;2755&quot; src=&quot;/_astro/img_1222-8152ca52.D5sLohsY_Z2jrb7b.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aire de jeux pour enfants à Sofia, en Bulgarie&lt;/strong&gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Graffiti</category><category>horses</category><category>Photography</category><category>travel</category></item><item><title>Timelapse : atterrissage en soirée à l&apos;aéroport Pearson de Toronto</title><link>https://bisko.be/fr/posts/blog/timelapse-evening-landing-at-toronto-pearaon-airport/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/timelapse-evening-landing-at-toronto-pearaon-airport/</guid><description>Atterrissage en soirée à l&apos;aéroport Pearson de Toronto – 28 septembre 2018</description><pubDate>Mon, 08 Jun 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Atterrissage en soirée à l’aéroport Pearson de Toronto – 28 septembre 2018&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>travel</category><category>Airplane</category><category>Canada</category><category>Landing</category><category>Timelapse</category><category>Toronto</category></item><item><title>La girafe</title><link>https://bisko.be/fr/posts/blog/the-giraffe/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/the-giraffe/</guid><description>Un joli motif est apparu en jouant avec des Lego Duplo</description><pubDate>Fri, 08 May 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Mur de briques de jeu rectangulaires colorées en violet, jaune, rouge, bleu et vert, avec une petite plaquette girafe servant de toise près du haut&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2734&quot; height=&quot;3645&quot; src=&quot;/_astro/img_0214-37c92416.DWchMgfS_ZILsQg.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Un joli motif est apparu en jouant avec des Lego Duplo&lt;/p&gt;</content:encoded><category>blog</category><category>Animals</category><category>Photography</category><category>blocks</category><category>building</category><category>duplo</category><category>lego</category></item><item><title>Arduino/ESP32 : désactiver le watchdog des tâches</title><link>https://bisko.be/fr/posts/dev/arduino-esp32-disabling-the-task-watchdog/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/arduino-esp32-disabling-the-task-watchdog/</guid><description>Récemment, je me suis amusé avec les fonctionnalités multicœur de l’ESP32 et l’épinglage de tâches sur des cœurs spécifiques. J’utilisais AutoConnect pour gérer la connexion WiFi sans stocker d’identifiants dans le code et proposer des mises à jour OTA via l’interface web. C’était pour un projet qui devait contrôler des ventilateurs CPU PWM à 4 broches qui se trouvent dans</description><pubDate>Wed, 29 Apr 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Récemment, je me suis amusé avec les fonctionnalités multicœur de l’ESP32 et l’épinglage de tâches sur des cœurs spécifiques.&lt;/p&gt;
&lt;p&gt;J’utilisais &lt;a href=&quot;https://github.com/Hieromon/AutoConnect&quot;&gt;AutoConnect&lt;/a&gt; pour gérer la connexion WiFi sans stocker d’identifiants dans le code et proposer des mises à jour OTA via l’interface web.&lt;/p&gt;
&lt;p&gt;C’était pour un projet qui devait contrôler des ventilateurs CPU PWM à 4 broches qui se trouvent dans mon placard serveur, pour refroidir l’air à l’intérieur. Pour cela, je voulais séparer la logique en deux tâches.&lt;/p&gt;
&lt;p&gt;Une tâche pour gérer les API, la lecture des capteurs, les mises à jour, le WiFi, etc., et une tâche pour gérer l’interruption et le contrôle PWM des ventilateurs.&lt;/p&gt;
&lt;p&gt;Tout allait bien, les tâches étaient créées, mais à l’exécution du code, si je mettais l’ESP32 dans le mode où il faut se connecter à lui pour lui dire de rejoindre votre réseau WiFi, il se mettait à avoir un comportement étrange : il réinitialisait le contrôleur toutes les quelques secondes et je n’arrivais pas à établir la connexion.&lt;/p&gt;
&lt;p&gt;Ce fut un moment pénible, car il fallait démonter le contrôleur de son emplacement et le brancher en USB pour flasher un nouveau firmware.&lt;/p&gt;
&lt;p&gt;Après ça, j’ai remarqué que l’erreur venait du watchdog :&lt;/p&gt;
&lt;p&gt;Task watchdog got triggered. The following tasks did not feed the watchdog in time:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;IDLE (CPU 1)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Tasks currently running:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;CPU 0: ManageTask&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;CPU 1: ControllerTask&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En fouillant un peu, il s’avère que c’est déclenché par le Task Watchdog de l’ESP32, qui s’assure que les tâches aient leur tour d’exécution sur le CPU.&lt;/p&gt;
&lt;p&gt;Il semblait aussi qu’AutoConnect n’était pas très flexible dans le contexte d’une tâche, comparé à une exécution en dehors, directement avec tout le reste du code et des fonctionnalités.&lt;/p&gt;
&lt;p&gt;Après avoir creusé un peu et essayé différentes choses, il semble que le moyen le plus simple de s’en sortir soit de simplement désactiver le watchdog et d’espérer que tout s’exécute à temps 🙂 La tâche n’est pas critique, donc ce n’est pas grave d’attendre plus longtemps qu’elle termine ce qu’elle fait.&lt;/p&gt;
&lt;p&gt;Pour désactiver le watchdog, il faut faire deux choses :&lt;/p&gt;
&lt;p&gt;D’abord, inclure l’en-tête &lt;code&gt;esp_task_wdt.h&lt;/code&gt;. Pour cela, ajoutez &lt;code&gt;#include &amp;#x3C;esp_task_wdt.h&gt;&lt;/code&gt; dans votre section d’includes.&lt;/p&gt;
&lt;p&gt;Ensuite, faire en sorte que le watchdog ne réinitialise pas le contrôleur et attende plus longtemps. Pour cela, ajoutez &lt;code&gt;esp_task_wdt_init(30, false);&lt;/code&gt; au début du code de votre tâche.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;cpp&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; manage_core_task&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;void&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;pv_parameters&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;    esp_task_wdt_init&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;30&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#6A737D&quot;&gt;    // .... rest of the code ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cela règle le délai du watchdog à 30 &lt;strong&gt;SECONDES&lt;/strong&gt; et désactive la réinitialisation du contrôleur s’il se déclenche.&lt;/p&gt;
&lt;p&gt;Si vous voulez que le contrôleur se réinitialise quand même après le déclenchement du watchdog, changez le second paramètre de l’appel de fonction de &lt;code&gt;false&lt;/code&gt; à &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category><category>arduino</category><category>code</category><category>esp32</category><category>espressif</category><category>multi-core</category><category>multi-threading</category></item><item><title>🌼 &amp; 🐝</title><link>https://bisko.be/fr/posts/blog/%F0%9F%8C%BC-%F0%9F%90%9D/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/%F0%9F%8C%BC-%F0%9F%90%9D/</guid><pubDate>Tue, 14 Apr 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Abeille sur un chrysanthème blanc semblable à une marguerite, entourée de fleurs blanches, jaunes, roses et orange-rouge dans un massif&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1024&quot; height=&quot;768&quot; src=&quot;/_astro/image-1-c44a4a22.DM-UJBpr_ZsDCIE.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>bee</category><category>bees</category><category>flower</category><category>flowers</category></item><item><title>Quand le voyage a besoin de faire une pause</title><link>https://bisko.be/fr/posts/blog/when-travel-needs-a-break-from-travel/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/when-travel-needs-a-break-from-travel/</guid><description>Quand un enfant estime que les valises de voyage ont besoin de repos.</description><pubDate>Sat, 14 Mar 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Tente pop-up orange installée à l&amp;amp;#x27;intérieur, avec un matelas et trois valises dedans, dans un salon ensoleillé avec un canapé et un toboggan d&amp;amp;#x27;enfant&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1024&quot; height=&quot;768&quot; src=&quot;/_astro/image-ef37b29d.BszBkRqS_1jMq5e.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Quand un enfant estime que les valises de voyage ont besoin de repos.&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>fun</category><category>travel</category></item><item><title>Graffiti à travers le monde : Dublin</title><link>https://bisko.be/fr/posts/blog/graffiti-around-the-world-dublin/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/graffiti-around-the-world-dublin/</guid><description>Il y a quelques mois, nous sommes allés à Dublin en voyage et j&apos;ai été surpris par le nombre de bons artistes graffeurs qu&apos;on y trouve. En voici quelques-uns.</description><pubDate>Fri, 14 Feb 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Il y a quelques mois, nous sommes allés à Dublin en voyage et j’ai été surpris par le nombre de bons artistes graffeurs qu’on y trouve.&lt;/p&gt;
&lt;p&gt;En voici quelques-uns.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Street art en style pochoir représentant une jeune femme avec un petit oiseau sur l&amp;amp;#x27;épaule, peint sur un boîtier électrique à côté d&amp;amp;#x27;une vitrine Powers Irish Whiskey&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7482-63b60082.Bxx3TjUc_1oK5zc.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Boîtier électrique peint montrant deux personnages en perruque poudrée dans une loge de théâtre, l&amp;amp;#x27;un au long nez tenant une rose jaune, un homme derrière eux&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7716-cf4a09eb.BXnFmORL_Zwb0W.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Fresque de nuit sur un boîtier électrique montrant deux femmes qui prennent des selfies avec leur téléphone, l&amp;amp;#x27;une assise sur les genoux de l&amp;amp;#x27;autre, entourées d&amp;amp;#x27;étoiles dorées&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7465-a1ef02f7.dem_I3k3_1u9UWt.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Boîtier électrique peint en cassette audio rétro avec des rayures arc-en-ciel, portant les inscriptions Mixtape for Dublin et Stereo 120&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7670-a65a7a2d.6pMYI6Bw_Z15AP4O.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Fresque murale rouge d&amp;amp;#x27;un vieux marin barbu qui fume la pipe à côté d&amp;amp;#x27;un petit chien, avec les mots Auld Dubliner sur une enseigne façon vitrail&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_7672-dbb3a83b.DFWmxWvS_ZOjwzR.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Boîtier électrique peint d&amp;amp;#x27;un chef de chœur aux cheveux bouclés face à une chorale de chanteurs aux cheveux orange, bouche ouverte, en surplis blancs&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_7362-681994c0.Cob4Td7H_2gJf3X.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>blog</category><category>Graffiti</category><category>Dublin</category><category>Ireland</category><category>Photography</category><category>travel</category></item><item><title>Configurer une YubiKey pour signer ses commits Git</title><link>https://bisko.be/fr/posts/dev/setting-up-a-yubikey-for-git-commit-signing/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/setting-up-a-yubikey-for-git-commit-signing/</guid><description>J’utilise une YubiKey comme clé d’authentification à deux facteurs et pour signer mes commits Git. Jusqu’à il y a quelques jours, j’utilisais une YubiKey 4. Comme mon ordinateur actuel n’a aucun port USB-A, je me trimballais des adaptateurs USB-A vers USB-C dans mon sac à dos et utiliser la clé était devenu une corvée pour le</description><pubDate>Wed, 08 Jan 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;J’utilise une YubiKey comme clé d’&lt;a href=&quot;https://fr.wikipedia.org/wiki/Authentification_multifacteur&quot;&gt;authentification à deux facteurs&lt;/a&gt; et pour signer mes commits Git. Jusqu’à il y a quelques jours, j’utilisais une YubiKey 4. Comme mon ordinateur actuel n’a aucun port USB-A, je jongle depuis un an avec des adaptateurs USB-A vers USB-C dans mon sac à dos, et utiliser la clé est devenu une vraie galère. C’est pour ça que j’ai décidé qu’il était temps de passer à ma « nouvelle » YubiKey 5C, et de ne plus avoir à jongler avec ces adaptateurs.&lt;/p&gt;
&lt;p&gt;En fait, j’ai cette clé depuis un moment : je l’avais commandée en même temps qu’une YubiKey 4 de remplacement, à cause du problème du &lt;a href=&quot;https://www.yubico.com/2017/10/infineon-rsa-key-generation-issue/&quot;&gt;TPM Infineon&lt;/a&gt; qu’ils avaient identifié, mais ce n’est que maintenant que je me décide à passer à la nouvelle clé.&lt;/p&gt;
&lt;p&gt;L’autre raison de le faire maintenant, c’est que mes anciennes clés GPG ont expiré et que j’ai dû les réémettre, donc je peux utiliser la clé pour signer mes commits Git.&lt;/p&gt;
&lt;h3 id=&quot;la-folie-gpg&quot;&gt;La folie GPG&lt;/h3&gt;
&lt;p&gt;Si vous avez déjà eu affaire aux clés GPG (ou si c’est le cas en ce moment), vous savez qu’il peut être assez difficile de tout mettre en place correctement et en toute sécurité quand on ne l’a jamais fait. Garder les clés maîtresses hors ligne, faire circuler les clés publiques, réémettre les clés quand elles expirent, éventuellement les signer avec les clés précédentes pour les vérifier, révoquer des clés… Il n’est déjà pas facile de suivre les bonnes pratiques en théorie. Quand il s’agit de les appliquer en pratique, ça devient extrêmement compliqué.&lt;/p&gt;
&lt;p&gt;La plupart des tutoriels en ligne expliquent comment générer ses clés en ligne de commande, en naviguant dans des menus au design peu commun, et c’est une vraie plaie à mettre en place. La plupart disent d’utiliser une machine hors ligne, comme un Raspberry PI, et/ou de générer les clés maîtresses et les sous-clés hors ligne, puis de garder la clé maîtresse loin de votre ordinateur.&lt;/p&gt;
&lt;p&gt;🤯&lt;/p&gt;
&lt;p&gt;Je me coltine ça chaque début de janvier depuis presque 4 ans. Je redoute le moment où j’obtiens l’erreur suivante, qui m’indique que mes clés de signature ont expiré.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;error: gpg failed to sign the data&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;fatal: failed to write commit object&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cette année, j’ai décidé qu’il était temps d’essayer de rendre ce processus beaucoup plus simple, en utilisant la génération de certificats intégrée et en évitant toute la galère de la génération de clés GPG et compagnie.&lt;/p&gt;
&lt;h3 id=&quot;génération-des-clés-directement-sur-la-yubikey&quot;&gt;Génération des clés directement sur la YubiKey&lt;/h3&gt;
&lt;p&gt;Il faut toujours passer par l’interface en ligne de commande, mais c’est un peu plus évident, car il y a moins d’étapes.&lt;/p&gt;
&lt;p&gt;Il faut d’abord configurer la carte/l’appareil.&lt;/p&gt;
&lt;h3 id=&quot;configuration-de-la-cartede-lappareil&quot;&gt;Configuration de la carte/de l’appareil&lt;/h3&gt;
&lt;p&gt;Lancez &lt;code&gt;gpg --card-status&lt;/code&gt; dans le terminal et vous devriez voir quelque chose comme ceci :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Reader ………..: Yubico Yubikey 4 OTP U2F CCID&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Application ID …: &amp;#x3C;Serial number&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Version ……….: 2.1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Manufacturer …..: Yubico&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Serial number ….: &amp;#x3C;Device serial number&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Name of cardholder: unspecified&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Language prefs …: en&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Sex …………..: unspecified&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;URL of public key : \[not set\]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Login data …….: &amp;#x3C;e-mail or nothing&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Signature PIN ….: not forced&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Key attributes …: rsa4096 rsa4096 rsa4096&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Max. PIN lengths .: 127 127 127&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;PIN retry counter : 3 0 3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Signature counter : 9&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Si vous voyez quelque chose de similaire et qu’aucune erreur n’apparaît, vous pouvez continuer.&lt;/p&gt;
&lt;p&gt;Lancez &lt;code&gt;gpg --card-edit&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Vous arriverez dans une interface en ligne de commande qui affiche les mêmes informations qu’au début, puis une invite de commande en bas : &lt;code&gt;gpg/card&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Tapez &lt;code&gt;admin&lt;/code&gt; et appuyez sur Entrée.&lt;/p&gt;
&lt;p&gt;Vous pouvez maintenant taper &lt;code&gt;help&lt;/code&gt; pour découvrir comment modifier les informations du titulaire et les codes PIN de la carte.&lt;/p&gt;
&lt;p&gt;Il y a une chose que vous &lt;strong&gt;&lt;em&gt;DEVEZ&lt;/em&gt;&lt;/strong&gt; faire : changer les codes PIN par défaut de la carte. Il y en a deux. Le premier est le code PIN que vous utilisez pour accéder aux clés de la carte. Le second est le PIN « Admin » ou PUK (Personal Unblocking Code, code de déblocage personnel).&lt;/p&gt;
&lt;p&gt;Pour cela, tapez &lt;code&gt;passwd&lt;/code&gt; et vous verrez un menu :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg/card&gt; passwd  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg: OpenPGP card no. &amp;#x3C;Serial number&gt; detected&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;1 - change PIN  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;2 - unblock PIN  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;3 - change Admin PIN  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;4 - set the Reset Code  &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Q - quit&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tapez &lt;code&gt;1&lt;/code&gt; et suivez les instructions pour changer votre PIN. Le PIN par défaut est &lt;code&gt;123456&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Ensuite, choisissez &lt;code&gt;3&lt;/code&gt; pour changer le PIN Admin. Celui par défaut est &lt;code&gt;12345678&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Une fois les deux PIN changés, revenez au menu principal pour terminer la mise à jour des informations de la clé.&lt;/p&gt;
&lt;p&gt;Les commandes que vous pouvez utiliser sont :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; – pour changer le nom du titulaire&lt;/li&gt;
&lt;li&gt;&lt;code&gt;login&lt;/code&gt; – pour changer l’adresse e-mail ou l’identifiant du titulaire&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Après cela, nous pouvons passer à la génération des clés proprement dite.&lt;/p&gt;
&lt;h3 id=&quot;génération-des-clés&quot;&gt;Génération des clés&lt;/h3&gt;
&lt;p&gt;Il est maintenant temps de générer les clés.&lt;/p&gt;
&lt;p&gt;Pour cela, tapez &lt;code&gt;generate&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On vous demandera &lt;code&gt;Make off-card backup of encryption key? (Y/n)&lt;/code&gt;, mais comme l’indique la documentation de YubiKey, il ne s’agit que d’une sauvegarde factice qui ne crée pas de sauvegarde complète des clés secrètes, donc peu importe que vous répondiez &lt;code&gt;Yes&lt;/code&gt; ou &lt;code&gt;No&lt;/code&gt;. Je réponds &lt;code&gt;No(n)&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;S’il y a déjà des clés stockées sur la carte, on vous demandera si vous voulez les remplacer :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg: Note: keys are already stored on the card!&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Replace existing keys? (y/N)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Assurez-vous de ne pas remplacer quelque chose d’important dont vous n’avez pas de sauvegarde, puis continuez avec &lt;code&gt;Y&lt;/code&gt;. S’il y a quelque chose d’important, mieux vaut quitter tout le processus avec &lt;code&gt;Ctrl+C&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On vous demandera le code PIN de la carte que vous avez défini plus tôt.&lt;/p&gt;
&lt;p&gt;Ensuite, vous devrez choisir la durée de validité des clés :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Please specify how long the key should be valid.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        0 = key does not expire&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      &amp;#x3C;n&gt; = key expires in n days&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;     &amp;#x3C;n&gt;w = key expires in n weeks&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;     &amp;#x3C;n&gt;m = key expires in n months&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;     &amp;#x3C;n&gt;y = key expires in n years&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt; Key is valid for? (0)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Si vous voulez que les clés ne soient valides qu’un an, tapez &lt;code&gt;1y&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;On vous demandera de confirmer la date d’expiration. Vérifiez que tout est correct et confirmez.&lt;/p&gt;
&lt;p&gt;Ensuite, on vous demandera de saisir les informations du propriétaire de la clé :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Is this correct? (y/N) y&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;GnuPG needs to construct a user ID to identify your key.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Real name: &amp;#x3C;Your name&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Email address: &amp;#x3C;Your e-mail&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Comment: &amp;#x3C;Comment is optional&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt; You selected this USER-ID:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;     &quot;&amp;#x3C;Your name&gt; &amp;#x3C;comment&gt; &amp;#x3C;your e-mail&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt; Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Type `O` to confirm if everything seems correct.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Ensuite, on vous demandera votre PIN Admin ou PUK. C’est nécessaire, car cela effectue une opération d’écriture sur la carte.&lt;/p&gt;
&lt;p&gt;Si tout est correct, la YubiKey se mettra à clignoter et continuera un bon moment (pour moi, environ cinq minutes).&lt;/p&gt;
&lt;p&gt;Une fois terminé, vous verrez le message suivant :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg: key &amp;#x3C;Short ID&gt; marked as ultimately trusted&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;gpg: revocation certificate stored as &apos;/Users/bisko/.gnupg/openpgp-revocs.d/&amp;#x3C;LONG ID&gt;.rev&apos; public and secret key created and signed.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Notez bien le &lt;code&gt;&amp;#x3C;Short ID&gt;&lt;/code&gt;, car nous l’utiliserons plus tard.&lt;/p&gt;
&lt;p&gt;À ce stade, vous pouvez quitter l’invite GPG avec &lt;code&gt;quit&lt;/code&gt; ou &lt;code&gt;Ctrl+C&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Il est maintenant temps de sauvegarder la clé publique, afin de pouvoir réutiliser la clé sur un autre ordinateur.&lt;/p&gt;
&lt;p&gt;Pour cela, lancez la commande suivante :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --armor&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --export&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Short&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Short&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.asc&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Cela exportera la clé publique dans un fichier nommé &lt;code&gt;&amp;#x3C;Short ID&gt;.asc&lt;/code&gt;. Il vous servira plus tard si vous voulez utiliser la YubiKey sur un autre ordinateur ou si vous perdez votre configuration GPG.&lt;/p&gt;
&lt;p&gt;Pour restaurer la clé publique dans votre trousseau, il faut faire :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --import&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Short&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;.asc&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; key&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Short&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; public&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; key&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;Your Name &amp;#x3C;your@email&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; imported&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; Total&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; processed:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;gpg:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; imported:&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 1&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Une remarque très importante ici.&lt;/em&gt;&lt;/strong&gt; S’il s’agit d’une nouvelle installation de GPG ou d’un autre ordinateur, GPG ne reconnaîtra pas tout seul les clés présentes sur la carte. Vous devez lancer &lt;code&gt;gpg --card-status&lt;/code&gt; pour qu’il lise la carte et détecte les clés qui s’y trouvent.&lt;/p&gt;
&lt;h3 id=&quot;configurer-git-pour-la-signature&quot;&gt;Configurer Git pour la signature&lt;/h3&gt;
&lt;p&gt;Pour configurer Git afin qu’il signe vos commits, vous devez ajouter ce qui suit à votre &lt;code&gt;~/.gitconfig&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Dans la section &lt;code&gt;[user]&lt;/code&gt;, ajoutez (ou mettez à jour) la ligne suivante :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;signingkey = 0x&amp;#x3C;Short ID&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ensuite, si vous voulez signer tous vos commits, ajoutez ce qui suit à la fin du fichier :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;ini&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;[gpg]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  program&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; = /usr/local/bin/gpg&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;[commit]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;  gpgsign&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; = true&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Git signera alors tous vos commits.&lt;/p&gt;
&lt;p&gt;Pour configurer GitHub, vous devez ajouter votre clé publique à votre profil. Pour cela, allez dans &lt;code&gt;GitHub -&gt; Settings -&gt; SSH and GPG keys -&gt; New GPG key&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Vous verrez alors une zone de texte dans laquelle vous devez coller tout le contenu du fichier &lt;code&gt;&amp;#x3C;Short ID&gt;.asc&lt;/code&gt; que nous avons généré plus haut.&lt;/p&gt;
&lt;p&gt;Si vous voulez copier le contenu du fichier (sur macOS), vous pouvez faire :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cat &amp;#x3C;Short ID&gt;.asc | pbcopy&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Cela copiera le contenu de tout le fichier dans le presse-papiers.&lt;/p&gt;
&lt;p&gt;Collez-le dans la zone de texte sur GitHub et cliquez sur le bouton &lt;code&gt;Add GPG key&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Après ça, vous pouvez essayer de faire un commit et un push vers GitHub, et vous devriez voir le joli badge &lt;code&gt;Verified&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&quot;débogage&quot;&gt;Débogage&lt;/h3&gt;
&lt;p&gt;Parfois, les choses ne fonctionnent pas du premier coup. Pour obtenir plus d’informations, vous pouvez essayer ce qui suit :&lt;/p&gt;
&lt;h3 id=&quot;signer-avec-gpg&quot;&gt;Signer avec GPG&lt;/h3&gt;
&lt;p&gt;Essayez d’abord de signer quelque chose avec la clé :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gpg -s &amp;#x3C;file&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Si ça échoue, essayez de comprendre pourquoi. Je ne suis pas expert, donc je ne pourrai pas vous aider sur ce point.&lt;/p&gt;
&lt;p&gt;Regardez la sortie de Git avecGIT_TRACE=1 git commit -am “test”&lt;/p&gt;
&lt;p&gt;Cela vous donnera le détail de tout ce que Git fait quand il essaie de faire le commit et de le signer. Cela devrait vous donner une idée de la raison de l’échec de la signature.&lt;/p&gt;
&lt;p&gt;Vous pouvez aussi y voir que Git exécute la commande suivante :&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sh&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;/usr/local/bin/gpg&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --status-fd=2&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -bsau&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Key&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; I&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;D&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vous pouvez essayer de l’exécuter manuellement pour voir si elle vous donne une meilleure erreur.&lt;/p&gt;</content:encoded><category>dev</category><category>Snippets</category><category>Technology</category><category>git</category><category>github</category><category>gpg</category><category>key</category><category>public-key</category><category>secrets</category><category>sign</category><category>yubikey</category></item><item><title>e1000e  eth0: Detected Hardware Unit Hang</title><link>https://bisko.be/fr/posts/dev/e1000e-device-id-eth0-detected-hardware-unit-hang/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/e1000e-device-id-eth0-detected-hardware-unit-hang/</guid><description>Récemment, mon serveur maison et hôte de VM a commencé à perdre sa connectivité réseau de façon aléatoire. De l&apos;extérieur, on aurait dit qu&apos;il fonctionnait toujours, mais impossible d&apos;y accéder à distance, quelle que soit la méthode. L&apos;adaptateur ethernet semblait actif d&apos;après le switch, donc le problème devait se trouver quelque part côté logiciel. Ce ne serait pas</description><pubDate>Wed, 18 Dec 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Récemment, mon serveur maison et hôte de VM a commencé à perdre sa connectivité réseau de façon aléatoire. De l’extérieur, on aurait dit qu’il fonctionnait toujours, mais impossible d’y accéder à distance, quelle que soit la méthode. L’adaptateur ethernet semblait actif d’après le switch, donc le problème devait se trouver quelque part côté logiciel.&lt;/p&gt;
&lt;p&gt;Ce ne serait pas la première fois qu’un pilote est à l’origine d’une connexion réseau qui plante. Par le passé, je me suis déjà fait avoir par des pilotes WiFi buggés sur des machines Linux et Windows.&lt;/p&gt;
&lt;p&gt;Après avoir fouillé un peu dans les logs système, je suis tombé sur ceci :&lt;/p&gt;
&lt;p&gt;vmhost kernel: e1000e 0000:00:1f.6 eth0: Detected Hardware Unit Hang:&lt;br&gt;
vmhost kernel:   TDH                  &amp;#x3C;0&gt;&lt;br&gt;
vmhost kernel:   TDT                  &amp;#x3C;1&gt;&lt;br&gt;
vmhost kernel:   next_to_use          &amp;#x3C;1&gt;&lt;br&gt;
vmhost kernel:   next_to_clean        &amp;#x3C;0&gt;&lt;br&gt;
vmhost kernel: buffer_info[next_to_clean]:&lt;br&gt;
vmhost kernel:   time_stamp           &amp;#x3C;10fbc2f81&gt;&lt;br&gt;
vmhost kernel:   next_to_watch        &amp;#x3C;0&gt;&lt;br&gt;
vmhost kernel:   jiffies              &amp;#x3C;10fbc3871&gt;&lt;br&gt;
vmhost kernel:   next_to_watch.status &amp;#x3C;0&gt;&lt;br&gt;
vmhost kernel: MAC Status             &amp;#x3C;40080083&gt;&lt;br&gt;
vmhost kernel: PHY Status             &amp;#x3C;796d&gt;&lt;br&gt;
vmhost kernel: PHY 1000BASE-T Status  &amp;#x3C;7800&gt;&lt;br&gt;
vmhost kernel: PHY Extended Status    &amp;#x3C;3000&gt;&lt;br&gt;
vmhost kernel: PCI Status             &amp;#x3C;10&gt;&lt;br&gt;
vmhost kernel: e1000e 0000:00:1f.6 eth0: Reset adapter unexpectedly&lt;br&gt;
vmhost kernel: vmbr0: port 1(eth0) entered disabled state&lt;/p&gt;
&lt;p&gt;Ensuite, il réinitialisait l’adaptateur réseau, puis recommençait un peu plus tard, jusqu’à ce que la machine passe complètement hors ligne.&lt;/p&gt;
&lt;p&gt;En cherchant des réponses en ligne, je suis tombé sur &lt;a href=&quot;https://serverfault.com/questions/616485/e1000e-reset-adapter-unexpectedly-detected-hardware-unit-hang&quot;&gt;ce fil ServerFault&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cause&lt;/p&gt;
&lt;p&gt;D’après différentes sources et listes de rapports de bugs, la meilleure façon de reproduire le problème semble être de mettre l’appareil dans une situation de forte bande passante, c’est-à-dire de faire transiter de grandes quantités de données qui saturent l’interface.&lt;/p&gt;
&lt;p&gt;Dans mon cas, ça arrivait généralement quand je diffusais des médias depuis le serveur Plex local vers un appareil. À cause de la façon dont le réseau est configuré, la VM Windows qui fait tourner Plex doit récupérer le fichier média depuis un partage réseau NFS sur un autre appareil, le transcoder dans la VM, puis l’envoyer à l’appareil de lecture.&lt;/p&gt;
&lt;p&gt;Ça représente beaucoup de trafic réseau, généralement ~40-100 mbit/s, selon l’appareil qui lit le fichier et la qualité du fichier source.&lt;/p&gt;
&lt;p&gt;Le même problème s’est manifesté en streamant des jeux via Steam Link vers notre Apple TV. La connexion est filaire, mais il n’est pas rare que le réseau tombe. Je pense que c’est lié au même problème, mais je garde un œil dessus pour voir si ça se reproduit après le correctif.&lt;/p&gt;
&lt;p&gt;Correctif possible&lt;/p&gt;
&lt;p&gt;Il semblerait qu’un correctif possible consiste à désactiver &lt;strong&gt;GSO&lt;/strong&gt; &lt;em&gt;(Generic Segmentation Offload)&lt;/em&gt;, &lt;strong&gt;TSO&lt;/strong&gt; &lt;em&gt;(TCP Segmentation Offload)&lt;/em&gt; et &lt;strong&gt;GRO&lt;/strong&gt; &lt;em&gt;(Generic Receive Offload)&lt;/em&gt; sur l’interface réseau* :&lt;/p&gt;
&lt;p&gt;ethtool -K eth0 gso off gro off tso off&lt;/p&gt;
&lt;p&gt;J’ai appliqué ça à ma configuration et j’attends de voir si ça résout vraiment le problème sur le long terme.&lt;/p&gt;
&lt;p&gt;Notes de bas de page&lt;/p&gt;
&lt;p&gt;* Ces options servent à déléguer la segmentation des paquets au contrôleur d’interface réseau afin de réduire l’utilisation du CPU de la machine. Plus de détails dans &lt;a href=&quot;https://en.wikipedia.org/wiki/Large_send_offload&quot;&gt;cet article de Wikipédia&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>dev</category><category>Homelab</category><category>bandwidth</category><category>bug</category><category>network</category><category>nic</category><category>plex</category><category>proxmox</category><category>steam</category><category>streaming</category></item><item><title>La citrouille</title><link>https://bisko.be/fr/posts/blog/the-pumpkin/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/the-pumpkin/</guid><description>Photo prise au Simple Food Punkt</description><pubDate>Sun, 03 Nov 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Une citrouille sculptée dans une poêle ? Pas sûr.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_8045-99331106.C4JicSzy_20be15.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Photo prise au &lt;a href=&quot;https://www.facebook.com/Simple.Food.Punkt/&quot;&gt;Simple Food Punkt&lt;/a&gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category><category>fun</category><category>Halloween</category><category>Orange</category><category>pumpkin</category></item><item><title>Snippets : faire tourner un registre d&apos;images Docker local/privé avec swarm</title><link>https://bisko.be/fr/posts/dev/snippets-running-a-local-private-swarm-docker-image-registry/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/snippets-running-a-local-private-swarm-docker-image-registry/</guid><description>Aujourd&apos;hui, j&apos;essayais de générer une image Docker à partir d&apos;un projet Node.js et je voulais la déployer sur mon swarm de test local. Malheureusement, quand on construit une image Docker en local, elle n&apos;est stockée et accessible que sur le nœud où elle a été créée, et les autres nœuds du swarm n&apos;y ont pas accès. La</description><pubDate>Fri, 11 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Aujourd’hui, j’essayais de générer une image Docker à partir d’un projet Node.js et je voulais la déployer sur mon swarm de test local.&lt;/p&gt;
&lt;p&gt;Malheureusement, quand on construit une image Docker en local, elle n’est stockée et accessible que sur le nœud où elle a été créée, et les autres nœuds du swarm n’y ont pas accès.&lt;/p&gt;
&lt;p&gt;Pour régler ça, il faut pousser l’image vers un registre Docker où tous les nœuds du swarm pourront la récupérer.&lt;/p&gt;
&lt;p&gt;Création du registre&lt;/p&gt;
&lt;p&gt;Pour instancier un service de registre dans le swarm, lancez :&lt;/p&gt;
&lt;p&gt;docker service create —name registry —publish 5000:5000 registry:latest&lt;/p&gt;
&lt;p&gt;Cela va créer le service de registre et l’exécuter dans le swarm, le rendant accessible à tous les nœuds du swarm.&lt;/p&gt;
&lt;p&gt;Pousser une image vers le registre&lt;/p&gt;
&lt;p&gt;Pour pousser une image vers le registre, il y a deux choses à faire : taguer l’image, puis la pousser.&lt;/p&gt;
&lt;p&gt;Voici un exemple pour construire et taguer l’image en une seule fois :&lt;/p&gt;
&lt;p&gt;docker build . -t localhost.localdomain:5000/&lt;image-name&gt;:latest&lt;/image-name&gt;&lt;/p&gt;
&lt;p&gt;Et comment la pousser vers le registre :&lt;/p&gt;
&lt;p&gt;docker push localhost.localdomain:5000/&lt;image-name&gt;:latestUtiliser l’image dans un service/conteneur/etc.&lt;/image-name&gt;&lt;/p&gt;
&lt;p&gt;Pour utiliser l’image dans un service ou un conteneur, on indique le chemin complet vu plus haut, c’est-à-dire &lt;code&gt;localhost.localdomain:5000/&amp;#x3C;image-name&gt;:latest&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Les nœuds du swarm auront accès à l’image et pourront la récupérer et l’exécuter.&lt;/p&gt;
&lt;p&gt;Remarque importante sur l’adresse du registre&lt;/p&gt;
&lt;p&gt;Dans la plupart des tutoriels en ligne, l’URL du registre est donnée sous la forme &lt;code&gt;localhost:5000&lt;/code&gt;. Malheureusement, ça ne fonctionne pas et on obtient généralement un timeout quand on essaie de l’utiliser. Si on la remplace par &lt;code&gt;localhost.localdomain&lt;/code&gt;, ça marche !&lt;/p&gt;
&lt;p&gt;Je ne sais pas pourquoi ça se passe ainsi, alors que &lt;code&gt;localhost&lt;/code&gt; et &lt;code&gt;localhost.localdomain&lt;/code&gt; se résolvent tous les deux en &lt;code&gt;127.0.0.1&lt;/code&gt;.&lt;/p&gt;</content:encoded><category>dev</category><category>Homelab</category><category>Snippets</category><category>Technology</category><category>docker</category><category>docker-swarm</category><category>registry</category><category>swarm</category></item><item><title>Timelapse : roulage et décollage de l&apos;aéroport international d&apos;Orlando</title><link>https://bisko.be/fr/posts/blog/timelapse-taxiing-and-takeoff-from-orlando-international-airport/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/timelapse-taxiing-and-takeoff-from-orlando-international-airport/</guid><description>C&apos;était le début du voyage retour, après la fin de notre formidable Automattic Grand Meetup 2019. De bons moments avec des gens géniaux ! 🤩</description><pubDate>Tue, 01 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Filmé avec un iPhone X depuis le hublot de l’avion&lt;/p&gt;
&lt;p&gt;C’était le début du voyage retour, après la fin de notre formidable Automattic Grand Meetup 2019. De bons moments avec des gens géniaux ! 🤩&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Photography</category><category>travel</category><category>Airplane</category><category>Flying</category><category>Orlando_FL</category><category>Timelapse</category></item><item><title>Timelapse : atterrissage dans le brouillard à Francfort</title><link>https://bisko.be/fr/posts/blog/timelapse-landing-in-foggy-frankfurt/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/timelapse-landing-in-foggy-frankfurt/</guid><description>Francfort était l&apos;une des escales sur la route de notre Grand Meetup annuel d&apos;Automattic. Ce jour-là, il y avait pas mal de brouillard et l&apos;atterrissage a été une expérience assez particulière. On survole une couverture de nuages comme de la laine, et puis hop, on se pose sur la piste ! Voici une photo bonus de ce qu&apos;on voyait de la ville pendant la</description><pubDate>Tue, 10 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Filmé avec un iPhone X depuis le hublot de l’avion&lt;/p&gt;
&lt;p&gt;Francfort était l’une des escales sur la route de notre Grand Meetup annuel d’Automattic. Ce jour-là, il y avait pas mal de brouillard et l’atterrissage a été une expérience assez particulière. On survole une couverture de nuages comme de la laine, et puis hop, on se pose sur la piste !&lt;/p&gt;
&lt;p&gt;Voici une photo bonus de ce qu’on voyait de la ville pendant la descente.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Vue aérienne depuis un avion d&amp;amp;#x27;une épaisse couche de brouillard et de nuages, avec deux cheminées qui en émergent et des collines sombres au loin&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_6547-fa702d62.ByzaITRP_2k3iLQ.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Photography</category><category>travel</category><category>Airplane</category><category>Frankfurt</category><category>Landing</category><category>Timelapse</category></item><item><title>L&apos;avocat : ça germe !</title><link>https://bisko.be/fr/posts/blog/the-avocado-sprouting/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/the-avocado-sprouting/</guid><description>C&apos;est notre première tentative réussie de faire germer un avocat !</description><pubDate>Sat, 03 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Noyau d&amp;amp;#x27;avocat fendu en deux dans un pot de terre, avec une fine pousse brune et une pointe verte recourbée qui sort de la fente&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5899-f2ad7864.YgnFMYgT_1cfcKJ.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;C’est notre première tentative réussie de faire germer un avocat !&lt;/p&gt;</content:encoded><category>blog</category><category>The Avocado</category><category>Avocado</category><category>Gardening</category><category>Plant</category><category>Sprout</category></item><item><title>Snippets : remapper la touche Section des claviers Apple sur l&apos;accent grave ( § vers ` )</title><link>https://bisko.be/fr/posts/dev/snippets-map-apple-keyboard-section-sign-key-to-back-quote-%C2%A7-to/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/snippets-map-apple-keyboard-section-sign-key-to-back-quote-%C2%A7-to/</guid><description>J&apos;utilise des claviers Apple depuis un moment, mais quand on vit en Europe, il n&apos;est pas facile de trouver les modèles avec la disposition US auxquels je suis habitué. Sur macOS, il existe une façon « facile » de remapper le clavier avec une simple commande dans le terminal : watch -n1 -x hidutil property -m ‘{“ProductID”:592, “VendorID”:1452}’ –set ‘{“UserKeyMapping”:[{“HIDKeyboardModifierMappingSrc”:0x700000035,”HIDKeyboardModifierMappingDst”:0x700000064}]}’ Ce que ce</description><pubDate>Wed, 31 Jul 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;J’utilise des claviers Apple depuis un moment, mais quand on vit en Europe, il n’est pas facile de trouver les modèles avec la disposition US auxquels je suis habitué.&lt;/p&gt;
&lt;p&gt;Sur macOS, il existe une façon « facile » de remapper le clavier avec une simple commande dans le terminal :&lt;/p&gt;
&lt;p&gt;watch -n1 -x hidutil property -m ’{“ProductID”:592, “VendorID”:1452}’ —set ’{“UserKeyMapping”:[{“HIDKeyboardModifierMappingSrc”:0x700000035,“HIDKeyboardModifierMappingDst”:0x700000064}]}’&lt;/p&gt;
&lt;p&gt;Ce que fait ce morceau de code, c’est changer le mappage de la touche Section ( § ) pour qu’elle écrive la touche accent grave/tilde ( &lt;code&gt;`/ ~&lt;/code&gt; ).&lt;/p&gt;
&lt;p&gt;La partie &lt;code&gt;watch -n1 -x&lt;/code&gt; répète l’opération toutes les secondes, parce que macOS aime parfois perdre le réglage, généralement quand l’ordinateur se met en veille ou quand le clavier est débranché puis rebranché.&lt;/p&gt;
&lt;p&gt;Notez que sur certaines versions de macOS, l’utilitaire &lt;code&gt;watch&lt;/code&gt; n’est pas installé et doit être récupéré via quelque chose comme &lt;a href=&quot;https://brew.sh/&quot;&gt;Homebrew&lt;/a&gt; ou &lt;a href=&quot;https://www.macports.org/&quot;&gt;MacPorts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Le code ci-dessus fonctionne avec le clavier externe Apple en USB, disposition européenne avec lettres bulgares. Il faudra peut-être ajuster légèrement les valeurs hexadécimales des touches pour d’autres types de claviers.&lt;/p&gt;
&lt;p&gt;Une variante de la commande fonctionne bien pour le même type de clavier sur le MacBook Pro lui-même. Il suffit d’inverser la position des valeurs &lt;code&gt;0x700000035&lt;/code&gt; et &lt;code&gt;0x700000064&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;J’ai pensé à écrire un outil pour faire ça automatiquement, mais pour l’instant, je crois qu’il vaut mieux investir dans un nouveau clavier avec la bonne disposition 🙂&lt;/p&gt;</content:encoded><category>dev</category><category>Uncategorized</category></item><item><title>Fleurs violettes</title><link>https://bisko.be/fr/posts/blog/purple-flowers/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/purple-flowers/</guid><description>Aperçues lors d&apos;un voyage à Borovets, dans le massif de Rila.</description><pubDate>Fri, 28 Jun 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Fleurs violettes semblables à des asters et boutons ronds sur des tiges vertes velues, à contre-jour sous un soleil éclatant dans un ciel bleu, avec des conifères sombres à l&amp;amp;#x27;arrière-plan&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5256-c4ebab4e.B9-0LH79_ZcCswB.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Aperçues lors d’un voyage à &lt;a href=&quot;https://en.wikipedia.org/wiki/Borovets&quot;&gt;Borovets&lt;/a&gt;, dans le &lt;a href=&quot;https://en.wikipedia.org/wiki/Rila&quot;&gt;massif de Rila&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>flower</category><category>flowers</category><category>purple</category><category>sun</category></item><item><title>Musée rétro</title><link>https://bisko.be/fr/posts/blog/retro-museum/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/retro-museum/</guid><description>Pendant nos vacances d&apos;été sur la mer Noire, nous avons fait un saut à Varna, puisque nous séjournions dans un complexe hôtelier tout près. Nous y sommes tombés par hasard sur un musée rétro très intéressant. J&apos;ai eu l&apos;agréable surprise d&apos;y retrouver presque tout ce que j&apos;utilisais quand j&apos;étais jeune. Tellement de bons souvenirs</description><pubDate>Tue, 25 Jun 2019 00:00:00 GMT</pubDate><content:encoded>&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Vitrine de jouets et puzzles bulgares d&amp;amp;#x27;époque : Rubik&amp;amp;#x27;s cubes, casse-tête en serpent et jeux de société comme Ne se sardi et Idvat tankove&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5095-fff7354b.B87XGoKK_spbqC.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Étagères de réveils de l&amp;amp;#x27;ère soviétique, dont des réveils Slava jaunes en forme de poussin, des modèles ronds en métal et des modèles de bureau rectangulaires&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5094-03b89044.PJIIKBDz_ZrumKn.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Vitrine remplie d&amp;amp;#x27;anciens billets de leva bulgares en liasses et en éventails, avec des pièces éparses et des bandeaux de banque&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_5092-fe5af8eb.D8cpVmlj_Z2gS5rt.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Vitrine d&amp;amp;#x27;articles de soins capillaires rétro : sèche-cheveux jaunes et orange, fers à friser, bigoudis et appareils de massage vibrants en boîte&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_5091-0793f161.ByQJsy2P_Z1u1ItY.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Deux aspirateurs anciens turquoise aux embouts crème, avec leurs tuyaux, posés dans une vitrine en verre&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5090-2e051edf.CX0aDctc_Zqdst9.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Set de compas de dessin technique sur du velours bleu, à côté de crayons de couleur, de stylos à bille et d&amp;amp;#x27;écussons brodés de sport scolaire&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_5089-f1b68d98.DkuBHl-h_Zx4MsX.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Anciennes machines à laver avec essoreuse et boîtes de lessive sur le sol d&amp;amp;#x27;un musée, avec des voitures anciennes garées à l&amp;amp;#x27;arrière-plan&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3024&quot; height=&quot;4032&quot; src=&quot;/_astro/img_5088-53896321.yYoU5Fok_Z15PUQh.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Collection d&amp;amp;#x27;instruments de musique jouets : mélodicas, flûtes à bec et harmonicas, à côté d&amp;amp;#x27;un coffret de jeux et de cartes à jouer&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5086-09a7e3df.D4AuUo7d_Z16eSYx.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;img alt=&quot;Baby-foot vert avec des figurines rouges et blanches, entouré de poupées matriochkas, d&amp;amp;#x27;un Rubik&amp;amp;#x27;s cube et de jeux électroniques portables&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_5085-b5ba1d92.CTJokrFJ_Z8Erqh.webp&quot; &gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Les photos ont été prises au &lt;a href=&quot;https://www.tripadvisor.com/Attraction_Review-g295392-d8441907-Reviews-The_Retro_Museum_In_Varna-Varna_Varna_Province.html&quot;&gt;Musée rétro, situé à Varna, en Bulgarie&lt;/a&gt; (lien TripAdvisor, car le site du musée semble être mort).&lt;/p&gt;
&lt;p&gt;Pendant nos vacances d’été sur la &lt;a href=&quot;https://en.wikipedia.org/wiki/Black_Sea&quot;&gt;mer Noire&lt;/a&gt;, nous avons fait un saut à &lt;a href=&quot;https://en.wikipedia.org/wiki/Varna&quot;&gt;Varna&lt;/a&gt;, puisque nous séjournions dans un complexe hôtelier tout près. Nous y sommes tombés par hasard sur un musée rétro très intéressant.&lt;/p&gt;
&lt;p&gt;J’ai eu l’agréable surprise d’y retrouver presque tout ce que j’utilisais quand j’étais jeune. Plein de bons souvenirs de mon enfance ont refait surface pendant la visite.&lt;/p&gt;
&lt;p&gt;Un endroit à voir absolument quand on passe par Varna !&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>memories</category><category>museum</category><category>retro</category><category>Varna</category></item><item><title>Mer de marguerites</title><link>https://bisko.be/fr/posts/blog/sea-of-daisies/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/sea-of-daisies/</guid><description>Photo prise près de Chorul.</description><pubDate>Fri, 31 May 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Prairie dense de marguerites blanches au cœur jaune sur de hautes tiges vertes, avec quelques fleurs de trèfle roses parmi l&amp;amp;#x27;herbe&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_4633-ced55558.CA2pVc_h_cVSP7.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Photo prise près de &lt;a href=&quot;https://en.wikipedia.org/wiki/Chorul&quot;&gt;Chorul&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Photography</category><category>daisy</category><category>flower</category><category>flowers</category></item><item><title>Timelapse(s) : Excursion à Montserrat</title><link>https://bisko.be/fr/posts/blog/timelapses-trip-to-montserrat/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/timelapses-trip-to-montserrat/</guid><description>Lors de notre récente rencontre d&apos;équipe à Barcelone, nous sommes partis en excursion à la montagne de Montserrat. Nous avions choisi un jour très nuageux, mais les nuages étaient quand même assez hauts pour que nous puissions voir la vallée, avant qu&apos;il se mette à pleuvoir. Voici deux timelapses de cette excursion :</description><pubDate>Wed, 08 May 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Lors de notre récente rencontre d’équipe à Barcelone, nous sommes partis en excursion à la &lt;a href=&quot;https://en.wikipedia.org/wiki/Montserrat_(mountain)&quot;&gt;montagne de Montserrat&lt;/a&gt;. Nous avions choisi un jour très nuageux, mais les nuages étaient quand même assez hauts pour que nous puissions voir la vallée, avant qu’il se mette à pleuvoir.&lt;/p&gt;
&lt;p&gt;Voici deux timelapses de cette excursion :&lt;/p&gt;
&lt;p&gt;La magie des nuages !&lt;/p&gt;
&lt;p&gt;La descente avec l’&lt;a href=&quot;https://en.wikipedia.org/wiki/Aeri_de_Montserrat&quot;&gt;Aeri de Montserrat&lt;/a&gt;.&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>travel</category><category>Barcelona</category><category>Montseratt</category><category>Spain</category><category>Timelapse</category></item><item><title>Timelapse : atterrissage à l&apos;aéroport de Barcelone</title><link>https://bisko.be/fr/posts/blog/timelapse-landing-at-barcelona-airport/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/timelapse-landing-at-barcelona-airport/</guid><pubDate>Sat, 04 May 2019 00:00:00 GMT</pubDate><content:encoded/><category>blog</category><category>Adventures</category><category>travel</category><category>Airplane</category><category>Barcelona</category><category>Landing</category><category>Spain</category><category>Timelapse</category></item><item><title>Le chat gris</title><link>https://bisko.be/fr/posts/blog/the-grey-cat/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/the-grey-cat/</guid><description>On a trouvé ce petit gars quelque part près de la maison ! Il est joli et il adore les friandises !</description><pubDate>Thu, 21 Mar 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img alt=&quot;Chat gris aux yeux jaunes debout à côté d&amp;amp;#x27;un tronc d&amp;amp;#x27;arbre sur une pente herbeuse couverte de feuilles, près d&amp;amp;#x27;un gros rocher et d&amp;amp;#x27;un mur en béton&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_1995-f9f8058b.DJx6IsPU_1JdhCg.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;On a trouvé ce petit gars quelque part près de la maison ! Il est joli et il adore les friandises !&lt;/p&gt;</content:encoded><category>blog</category><category>Animals</category><category>Photography</category><category>cat</category><category>grey</category></item><item><title>Réinitialiser/Redémarrer la télécommande de l&apos;Apple TV</title><link>https://bisko.be/fr/posts/dev/resetting-restarting-apple-tv-remote/</link><guid isPermaLink="true">https://bisko.be/fr/posts/dev/resetting-restarting-apple-tv-remote/</guid><description>Hier soir, pendant la visite d&apos;invités, j&apos;ai réussi à plonger notre télécommande Apple TV sous l&apos;eau. Le manque de sommeil et des verres instables, ça donne des accidents. La télécommande fonctionnait très bien hier soir, mais aujourd&apos;hui, elle ne marche plus. Aucune réaction, quoi que je fasse. J&apos;ai essayé de la cogner contre ma main, de la secouer pour en faire sortir l&apos;eau. Ça</description><pubDate>Sun, 17 Feb 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hier soir, pendant la visite d’invités, j’ai réussi à plonger notre télécommande Apple TV sous l’eau. Le manque de sommeil et des verres instables, ça donne des accidents.&lt;/p&gt;
&lt;p&gt;La télécommande fonctionnait très bien hier soir, mais aujourd’hui, elle ne marche plus. Aucune réaction, quoi que je fasse. J’ai essayé de la cogner contre ma main, de la secouer pour en faire sortir l’eau. Ça n’a servi à rien.&lt;/p&gt;
&lt;p&gt;On a pensé qu’elle était fichue et on a commencé à chercher le sachet de riz dans les placards.&lt;/p&gt;
&lt;p&gt;Je suis allé sur internet, surtout pour rire, pour voir si je pouvais essayer de la « redémarrer ».&lt;/p&gt;
&lt;p&gt;Un guide bien utile m’a indiqué de maintenir enfoncés les boutons Volume Plus et Menu pendant 2-3 secondes pour réinitialiser la télécommande et la mettre en mode d’appairage.&lt;/p&gt;
&lt;p&gt;J’ai été vraiment surpris quand &lt;strong&gt;ça a vraiment&lt;/strong&gt; &lt;strong&gt;marché&lt;/strong&gt; !&lt;/p&gt;
&lt;p&gt;Donc, si quelque chose cloche, essayez d’abord de réinitialiser la télécommande. Si ça ne marche pas, vous pourrez toujours tenter le riz et l’intervention matérielle.&lt;/p&gt;
&lt;p&gt;TL;DR;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Maintenez Menu + Volume Plus pendant 2-3 secondes&lt;/li&gt;
&lt;li&gt;Attendez quelques secondes&lt;/li&gt;
&lt;li&gt;Essayez d’interagir avec l’Apple TV&lt;/li&gt;
&lt;/ul&gt;</content:encoded><category>dev</category><category>Apple</category><category>Technology</category><category>AppleTV</category><category>Have you tried turning it off and on again?</category><category>remote</category><category>reset</category><category>restart</category></item><item><title>Le vieux tram</title><link>https://bisko.be/fr/posts/blog/the-old-tram/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/the-old-tram/</guid><description>Voir cette publication sur Instagram Une publication partagée par Biser Perchinkov (@biskobe) Dans les derniers jours de 2018, nous sommes allés à une fête secrète avec des amis. La grande surprise, c&apos;était le lieu ! C&apos;était dans l&apos;un des deux plus vieux trams encore en service en Bulgarie ! Il a été construit il y a presque un siècle et</description><pubDate>Fri, 04 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;[&lt;/p&gt;
&lt;p&gt;Voir cette publication sur Instagram&lt;/p&gt;
&lt;p&gt;](&lt;a href=&quot;https://www.instagram.com/p/Br8XYN5j0z9/?utm_source=ig_embed&amp;#x26;utm_campaign=loading&quot;&gt;https://www.instagram.com/p/Br8XYN5j0z9/?utm_source=ig_embed&amp;#x26;utm_campaign=loading&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.instagram.com/p/Br8XYN5j0z9/?utm_source=ig_embed&amp;#x26;utm_campaign=loading&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.instagram.com/p/Br8XYN5j0z9/?utm_source=ig_embed&amp;#x26;utm_campaign=loading&quot;&gt;Une publication partagée par Biser Perchinkov (@biskobe)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dans les derniers jours de 2018, nous sommes allés à une fête secrète avec des amis.&lt;/p&gt;
&lt;p&gt;La grande surprise, c’était l’endroit où elle se tenait ! C’était dans l’un des deux plus vieux trams encore en service en Bulgarie !&lt;/p&gt;
&lt;p&gt;Il a été construit il y a presque un siècle et vous ramène vraiment à cette époque, même s’il a été un peu modernisé avec des lumières, du chauffage et un peu de musique/médias pour permettre aux guides de parler des curiosités le long du trajet.&lt;/p&gt;
&lt;p&gt;J’ai pas mal apprécié, car l’un des organisateurs travaille au dépôt de tramways et nous avions une place au premier rang pour voir comment le conducteur le manœuvre. On a eu droit à un cours accéléré sur le rôle de tous les leviers et on a pu sonner la cloche ! Toma a aussi eu la chance d’essayer de faire avancer le tram, mais il s’avère qu’il faut pas mal de force pour le conduire ! Peut-être dans quelques années 😝&lt;/p&gt;
&lt;p&gt;Les passants aussi appréciaient le spectacle, car les trams rétro ne sont pas monnaie courante ici.&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Winter</category><category>joy</category><category>machinery</category><category>party</category><category>tram</category><category>travel</category></item><item><title>Des bandes originales de jeux incroyables – Stellaris</title><link>https://bisko.be/fr/posts/blog/amazing-game-soundtracks-stellaris/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/amazing-game-soundtracks-stellaris/</guid><description>Il y a quelque temps, je me suis offert Stellaris et j’y ai rapidement perdu quelques heures. Je ne vais pas parler du jeu en lui-même ici. On en a déjà pas mal parlé dans des tests, des let’s plays et ainsi de suite. Comme je suis incapable d’expliquer avec des mots à quel point c’est génial, je vais simplement dire : écoutez</description><pubDate>Mon, 02 Apr 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Il y a quelque temps, je me suis offert &lt;a href=&quot;https://en.wikipedia.org/wiki/Stellaris_(video_game)&quot;&gt;Stellaris&lt;/a&gt; et j’y ai rapidement perdu quelques heures. Je ne vais pas parler du jeu en lui-même ici. On en a déjà pas mal parlé dans des tests, des let’s plays et ainsi de suite.&lt;/p&gt;
&lt;p&gt;Comme je suis incapable d’expliquer avec des mots à quel point c’est génial, je vais simplement dire : écoutez-la. Fermez les yeux, imaginez-vous en pleine aventure dans l’espace profond ou n’importe où votre esprit vous emmène, et profitez.&lt;/p&gt;
&lt;p&gt;( ou si vous n’avez pas Spotify, essayez &lt;a href=&quot;https://www.youtube.com/results?search_query=stellaris+soundtrack&quot;&gt;les résultats de recherche YouTube&lt;/a&gt; )&lt;/p&gt;</content:encoded><category>blog</category><category>Music</category><category>games</category><category>ost</category><category>soundtrack</category><category>stellaris</category></item><item><title>Plongée dans les souvenirs : des roses et des abeilles</title><link>https://bisko.be/fr/posts/blog/diving-back-in-memories-of-roses-and-bees/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/diving-back-in-memories-of-roses-and-bees/</guid><description>Il y a quelques jours, je fouillais dans ma collection de photos quand je suis tombé sur l’un de mes clichés préférés. L’histoire de cette photo est plutôt intéressante. Mon père venait d’acheter un nouvel appareil photo numérique, un Canon PowerShot A610, quelques jours plus tôt. J’étais impatient de l’essayer, mais il ne m’a pas laissé la moindre chance de faire quelques photos avec, car il l’explorait et l’apprivoisait dans les moindres recoins</description><pubDate>Sun, 10 Dec 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Il y a quelques jours, je fouillais dans ma collection de photos quand je suis tombé sur l’un de mes clichés préférés.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Une abeille explorant la rose&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2592&quot; height=&quot;1944&quot; src=&quot;/_astro/img_0350-258314a7.DVI6yd6N_6PkwW.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;L’histoire de cette photo est plutôt intéressante.&lt;/p&gt;
&lt;p&gt;Mon père avait acheté un nouvel appareil photo numérique, un Canon PowerShot A610, quelques jours plus tôt. J’étais impatient de l’essayer, mais il ne m’a pas laissé la moindre chance de prendre quelques photos avec, car il était en train de l’explorer et de l’apprivoiser dans les moindres recoins. Après tout, c’était notre premier appareil numérique « avancé ».&lt;/p&gt;
&lt;p&gt;Le jour de la photo, mon père et moi sommes sortis faire une course au magasin, et il avait pris l’appareil avec lui. Je lui ai demandé de me le confier pour le porter et voir si je pouvais photographier quelque chose. Tandis qu’on discutait pour savoir si j’étais assez capable de porter l’appareil sans le casser, nous avons marché 5-6 minutes et nous passions juste devant un rosier quand j’ai vu des abeilles voleter autour.&lt;/p&gt;
&lt;p&gt;À ce moment-là, je savais que je voulais photographier la jolie fleur de rose que vous voyez plus haut. J’ai sorti l’appareil, je l’ai allumé, j’ai attendu qu’une abeille se pose sur la fleur et j’ai pris la photo.&lt;/p&gt;
&lt;p&gt;Et voilà. Ma toute première photo avec cet appareil.&lt;/p&gt;
&lt;p&gt;Encore aujourd’hui, cette photo reste l’une de mes préférées.&lt;/p&gt;</content:encoded><category>blog</category><category>Photography</category><category>bee</category><category>bees</category><category>flower</category><category>nature</category><category>outside</category><category>rose</category></item><item><title>Trucs de papa : Bébé, on ne peut pas mettre un jeu en ligne en pause !</title><link>https://bisko.be/fr/posts/blog/dad-things-baby-you-cant-pause-an-online-game/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/dad-things-baby-you-cant-pause-an-online-game/</guid><description>Alors… la boucle est bouclée. Aujourd’hui, en profitant des derniers jours de mon congé paternité, que l’incroyable Automattic m’a permis de prendre, j’ai décidé de plonger tête la première dans la nostalgie et de jouer à du bon vieux StarCraft. Ça paraît tout à fait normal, non ? Eh bien oui ! À part que j’ai le bébé avec moi au bureau</description><pubDate>Tue, 05 Dec 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Alors… la boucle est bouclée.&lt;/p&gt;
&lt;p&gt;Aujourd’hui, en profitant des derniers jours de mon congé paternité, que l’incroyable &lt;a href=&quot;https://automattic.com&quot;&gt;Automattic&lt;/a&gt; m’a permis de prendre, j’ai décidé de plonger tête la première dans la nostalgie et de jouer à du bon vieux StarCraft.&lt;/p&gt;
&lt;p&gt;Ça paraît tout à fait normal, non ? Eh bien oui ! À part que j’ai le bébé avec moi au bureau, pour pouvoir m’occuper de lui pendant que maman fait d’autres choses.&lt;/p&gt;
&lt;p&gt;Tout se passait à merveille : le bébé dormait, j’ai trouvé une partie sympa, je l’ai lancée et, en plein milieu, le bébé s’est réveillé. Pas de souci. Je l’ai réconforté un moment, mais il était grognon, alors j’ai quitté la partie pour me concentrer sur lui. Impossible de se concentrer à la fois sur le jeu et sur le bébé.&lt;/p&gt;
&lt;p&gt;Alors, tout en berçant le bébé dans mes bras, en lui murmurant des mots doux et en essayant de le calmer, j’ai jeté un œil à l’écran et j’ai vu plusieurs messages du créateur de la partie qui disaient :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Pourquoi rejoindre une partie si c’est pour partir ? »&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Envoyés encore et encore.&lt;/p&gt;
&lt;p&gt;Au début, j’ai commencé à répondre que j’avais un bébé dans les bras et que je devais m’occuper de lui, mais là, j’ai pris en pleine figure des flashbacks de mes jeunes années, quand je haussais la voix, plein d’angoisse, pour dire à ma mère qu’on ne peut pas mettre un jeu en ligne en pause.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Oh mon dieu, maman, on ne peut pas mettre un jeu en ligne en pause !!!!1!1!1!!1!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;À ce moment-là, j’ai compris qu’il allait falloir que je renonce aux jeux en ligne pendant un petit moment.&lt;/p&gt;
&lt;p&gt;Bon, tant pis… ¯\_(ツ)_/¯&lt;/p&gt;
&lt;p&gt;Au moins, maintenant, je peux me concentrer sur mon backlog toujours grandissant de jeux solo. The Witcher 3 ne va pas se finir tout seul !&lt;/p&gt;</content:encoded><category>blog</category><category>Gaming</category><category>Parenting</category><category>baby</category></item><item><title>Graffitis à travers le monde – Montréal</title><link>https://bisko.be/fr/posts/blog/graffiti-around-the-world-montreal/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/graffiti-around-the-world-montreal/</guid><description>Il y a quelques semaines, j’étais à Montréal pour un meetup d’équipe, et en me baladant dans les rues, j’ai vraiment apprécié la culture du graffiti là-bas. J’ai adoré à quel point ils sont colorés et/ou ludiques comparés à ceux d’autres endroits où je suis passé par le passé. Quelques-uns de mes préférés :</description><pubDate>Tue, 06 Jun 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Il y a quelques semaines, j’étais à Montréal pour un meetup d’équipe, et en me baladant dans les rues, j’ai vraiment apprécié la culture du graffiti là-bas. J’ai adoré à quel point ils sont colorés et/ou ludiques comparés à ceux d’autres endroits où je suis passé par le passé.&lt;/p&gt;
&lt;p&gt;Quelques-uns de mes préférés :&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Un hydralisk !&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2694&quot; height=&quot;3495&quot; src=&quot;/_astro/img_7084-8397910a.ZIxhC7qM_1z6wBb.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Je ne suis pas sûr d’avoir raison, mais avoir beaucoup joué à StarCraft par le passé me fait toujours penser que ces créatures sont des hydralisks&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Immense fresque d’une femme âgée avec des lunettes et un chignon gris, entourée de colombes et d’immeubles violets, à un coin de rue&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2101&quot; height=&quot;2115&quot; src=&quot;/_astro/img_7096-cd130da6.CQOvGu0o_ZRu3Go.webp&quot; &gt;&lt;img alt=&quot;Vue de nuit d’une fresque de Mary Poppins avec des parapluies, Big Ben et de la peinture bleue qui coule sur un immeuble blanc, couvert de tags&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2387&quot; height=&quot;2357&quot; src=&quot;/_astro/img_7083-a1cb125f.CBVRLzF4_Z1ImeId.webp&quot; &gt;&lt;img alt=&quot;Fresque colorée de monstres cyclopes en boules de glace sur un immeuble rose et violet au-dessus d’un restaurant Dirty Dogs, avec un vélo devant&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;4032&quot; height=&quot;3024&quot; src=&quot;/_astro/img_7098-99273db4.Bqxpgo6f_y2ISn.webp&quot; &gt;&lt;img alt=&quot;Fresque au pochoir d’hommes avec des parapluies jaunes sur un mur bleu, qui s’estompe en brun rouille vers le bas, à côté d’un escalier métallique&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;3384&quot; height=&quot;2901&quot; src=&quot;/_astro/img_7344-7ed4ce8e.CovT3-V7_hGgJI.webp&quot; &gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Graffiti</category><category>montreal</category><category>Photography</category><category>travel</category></item><item><title>La peur des chiens</title><link>https://bisko.be/fr/posts/blog/fear-of-dogs/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/fear-of-dogs/</guid><description>Quand j’étais petit, vers 5-6 ans, le chien d’un voisin m’a mordu pendant que je jouais avec lui. Ce n’était pas très grave, juste une égratignure, mais pour mon esprit d’enfant, ce fut une expérience horrible. Après l’incident, j’ai développé une énorme peur des chiens. Je m’enfuyais devant eux et me cachais à la maison ou dans</description><pubDate>Fri, 31 Mar 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Quand j’étais petit, probablement vers 5-6 ans, le chien d’un voisin m’a mordu pendant que je jouais avec lui. Ce n’était pas très grave, juste une égratignure, mais pour mon esprit d’enfant, ce fut une expérience horrible.&lt;/p&gt;
&lt;p&gt;Après l’incident, j’ai développé une énorme peur des chiens. Je m’enfuyais devant eux et me cachais à la maison ou dans la cour d’un voisin. Si c’était le chien d’un ami, je restais sur mes gardes et je courais dans une autre pièce, ou n’importe où le chien ne pouvait pas m’atteindre, dès qu’il bougeait ne serait-ce qu’un tout petit peu.&lt;/p&gt;
&lt;p&gt;En grandissant, je suis resté loin des chiens, mais avec le temps, j’ai commencé à m’y habituer. Le premier chien devant lequel je ne me suis pas enfui en hurlant était celui de mes cousins – un &lt;a href=&quot;https://en.wikipedia.org/wiki/Rough_Collie&quot;&gt;Colley à poil long&lt;/a&gt; nommé Clara.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;clara&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1505&quot; height=&quot;1027&quot; src=&quot;/_astro/clara-de4f7f1b.CfG1RsCF_Z112bUQ.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Clara dans toute sa splendeur 🙂&lt;/p&gt;
&lt;p&gt;C’était tout simplement la meilleure chienne. Ses propriétaires l’avaient très bien dressée et elle était très calme, enfin, sauf pendant les orages. Elle avait une peur bleue du tonnerre : il fallait la tenir fermement et garder les portes fermées, sinon elle s’enfuyait et essayait de se cacher quelque part très loin de l’orage.&lt;/p&gt;
&lt;p&gt;Passer mes étés au village et la voir venir de temps en temps m’a vraiment aidé à réduire ma peur des chiens et mon anxiété générale à leur égard.&lt;/p&gt;
&lt;p&gt;Ici, en Bulgarie, beaucoup de chiens errants vivent encore en liberté et peuvent représenter une menace de temps en temps, car les meutes peuvent facilement atteindre 5 à 10 chiens, voire plus. Ça m’a toujours fait peur et m’a rendu anxieux quand je marchais dehors dans le noir et que j’entendais des aboiements derrière moi.&lt;/p&gt;
&lt;p&gt;Avec le temps, j’ai fini par comprendre que les chiens ne sont pas si effrayants et j’ai appris à distinguer les chiens agressifs des chiens amicaux qui veulent simplement jouer.&lt;/p&gt;
&lt;p&gt;Le week-end dernier, j’ai été fier de moi.&lt;/p&gt;
&lt;p&gt;Depuis quelques mois, nous avions remarqué un chien errant qui rôdait autour de la maison de vacances. Au début, j’avais très peur de voir un chien inconnu tourner autour de nous. Après quelques visites, j’ai remarqué que ce chien n’était pas si effrayant 🙂 Il venait, nous regardait, puis repartait.&lt;/p&gt;
&lt;p&gt;Il m’a fallu un peu de courage, mais finalement j’ai réussi à le rassembler : j’ai acheté de la nourriture en boîte et je suis sorti avec la pâtée dans un récipient en plastique, en appelant le chien pour qu’il vienne faire un bon repas.&lt;/p&gt;
&lt;p&gt;C’est drôle : le chien semblait avoir plus peur de moi que moi de lui. Après quelques appels, et alors que je faisais un pas en arrière, il s’est approché de la gamelle improvisée et a commencé à manger.&lt;/p&gt;
&lt;p&gt;Victoire ! 🙂&lt;/p&gt;
&lt;p&gt;C’était aussi amusant de le voir dans les rétroviseurs courir derrière nous pendant que nous quittions la maison.&lt;/p&gt;
&lt;p&gt;La mère de Radi l’a même appelé Bear.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Bear qui vole le récipient.&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;2076&quot; height=&quot;1594&quot; src=&quot;/_astro/img_5556-54e1db0f.Dxlc4oQQ_1RmVVu.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;– Le récipient est à moi maintenant !&lt;/p&gt;</content:encoded><category>blog</category><category>Uncategorized</category></item><item><title>Patinage sur glace</title><link>https://bisko.be/fr/posts/blog/ice-skating/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/ice-skating/</guid><description>Ça fait presque un mois que c’est arrivé, mais je ne l’oublierai jamais 🙂 Le dernier jour de l’année dernière, mon cousin a proposé qu’on aille à la patinoire. Je n’y étais jamais allé et j’avais une peur bleue de me casser tous les membres. Heureusement, j’avais un peu d’expérience en roller quand</description><pubDate>Mon, 30 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ça fait presque un mois que c’est arrivé, mais je ne l’oublierai jamais 🙂&lt;/p&gt;
&lt;p&gt;Le dernier jour de l’année dernière, mon cousin a proposé qu’on aille à la patinoire. Je n’y étais jamais allé et j’avais une peur bleue de me casser tous les membres.&lt;/p&gt;
&lt;p&gt;Heureusement, j’avais fait un peu de roller quand j’étais gamin, et ça a pas mal aidé mon estime de moi. Je savais que ce serait à peu près la même chose. Évidemment, je n’étais pas vraiment préparé à ce qui s’est passé quand j’ai enfilé mes patins et posé le pied sur la glace – Que c’était glissant !&lt;/p&gt;
&lt;p&gt;Ma peur a vite disparu et j’ai réussi à patiner sans m’accrocher à la rambarde. Toute mon ancienne expérience du roller est revenue et j’ai pu me tenir debout sur la glace sans aide.&lt;/p&gt;
&lt;p&gt;C’était une expérience incroyablement amusante et j’y retournerais sans hésiter ! 🙂&lt;/p&gt;
&lt;p&gt;En bonus, j’ai réussi à filmer une vue « à la première personne » de la chute de mon cousin sur la glace :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.instagram.com/p/BOrgVw6j8O3/?taken-by=biskobe&quot;&gt;https://www.instagram.com/p/BOrgVw6j8O3/?taken-by=biskobe&lt;/a&gt;&lt;/p&gt;</content:encoded><category>blog</category><category>Adventures</category><category>Winter</category><category>fun</category><category>ice</category><category>skating</category></item><item><title>Comment obtenir un numéro EORI permanent par voie électronique, ou pourquoi le papier ne mourra jamais.</title><link>https://bisko.be/fr/posts/blog/%D0%BA%D0%B0%D0%BA-%D0%B4%D0%B0-%D1%81%D0%B8-%D0%B8%D0%B7%D0%B2%D0%B0%D0%B4%D0%B8%D0%BC-%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B5%D0%BD-eori-%D0%BD%D0%BE%D0%BC%D0%B5%D1%80-%D0%BF%D0%BE-%D0%B5/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/%D0%BA%D0%B0%D0%BA-%D0%B4%D0%B0-%D1%81%D0%B8-%D0%B8%D0%B7%D0%B2%D0%B0%D0%B4%D0%B8%D0%BC-%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B5%D0%BD-eori-%D0%BD%D0%BE%D0%BC%D0%B5%D1%80-%D0%BF%D0%BE-%D0%B5/</guid><description>Précision importante : cet article date de 2017 🙂 Les commentaires contiennent plusieurs mises à jour du processus, jetez-y un œil aussi. Mise à jour du commentaire 1 J&apos;ai aussi reçu un mail de quelqu&apos;un d&apos;autre qui a refait ce processus récemment (septembre 2020), mais j&apos;attends toujours de savoir à quoi ressemble la procédure actuellement. Si vous avez quand même envie de lire à quoi ressemblait le processus en 2017, vous</description><pubDate>Fri, 06 Jan 2017 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Précision importante : cet article date de 2017 🙂 Les commentaires contiennent plusieurs mises à jour du processus, jetez-y un œil aussi.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bisko.be/2017/01/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d1%81%d0%b8-%d0%b8%d0%b7%d0%b2%d0%b0%d0%b4%d0%b8%d0%bc-%d0%bf%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b5%d0%bd-eori-%d0%bd%d0%be%d0%bc%d0%b5%d1%80-%d0%bf%d0%be-%d0%b5/#comment-16503&quot;&gt;Mise à jour du commentaire 1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J’ai aussi reçu un mail de quelqu’un d’autre qui a refait ce processus récemment (septembre 2020), mais j’attends toujours de savoir à quoi ressemble la procédure actuellement.&lt;/p&gt;
&lt;p&gt;Si vous avez quand même envie de lire à quoi ressemblait le processus en 2017, vous pouvez lire l’article en entier.&lt;/p&gt;
&lt;p&gt;Sinon – &lt;a href=&quot;https://bisko.be/2017/01/%D0%BA%D0%B0%D0%BA-%D0%B4%D0%B0-%D1%81%D0%B8-%D0%B8%D0%B7%D0%B2%D0%B0%D0%B4%D0%B8%D0%BC-%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B5%D0%BD-eori-%D0%BD%D0%BE%D0%BC%D0%B5%D1%80-%D0%BF%D0%BE-%D0%B5/#comments&quot;&gt;direction les commentaires&lt;/a&gt;, pour voir ce qui a changé et quels nouveaux casse-tête rencontrent les gens.&lt;/p&gt;
&lt;h4 id=&quot;article-original-de-2017&quot;&gt;&lt;em&gt;&lt;strong&gt;Article original de 2017&lt;/strong&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p&gt;TL;DR; et les étapes concrètes se trouvent à la fin du post 🙂&lt;/p&gt;
&lt;p&gt;Vers Noël, je suis tombé sur une très bonne promo : un SSD Transcend de 480 Go à 86 $ – score ! Problème : il venait d’Amazon.com, ce qui voulait dire qu’il serait bloqué à la douane.&lt;/p&gt;
&lt;p&gt;Le prix et la cupidité l’ont emporté, je l’ai commandé le 28 décembre et le 3 janvier il était déjà à Sofia. Livraison par DHL, tout était parfait. Les employés de DHL m’ont expliqué qu’il leur fallait une procuration, une description de la marchandise en bulgare et le fameux numéro EORI.&lt;/p&gt;
&lt;p&gt;Les deux premiers points sont triviaux. Une visite chez le notaire et une ligne de texte libre.&lt;/p&gt;
&lt;p&gt;Le numéro EORI, en revanche, c’était une tout autre histoire.&lt;/p&gt;
&lt;p&gt;Comme le sait quiconque s’est déjà frotté aux douanes, il existe deux types de numéro EORI : permanent et temporaire. Le temporaire s’obtient sur-le-champ et n’est valable que pour une livraison précise. S’il en faut un pour de futurs colis, il faut en refaire un à chaque fois.&lt;/p&gt;
&lt;p&gt;Des connaissances m’avaient dit que le numéro EORI permanent s’obtenait gratuitement via le système en ligne de la douane. DHL, de son côté, demandait une certaine somme pour s’en charger. J’ai foi dans les systèmes électroniques (que je suis bête) et j’ai décidé d’économiser un peu d’argent.&lt;/p&gt;
&lt;p&gt;Le 3 dans l’après-midi, je me suis assis et j’ai commencé à me demander comment ça marchait et comment « enregistrer » exactement un numéro EORI.&lt;/p&gt;
&lt;p&gt;Le portail électronique des douanes (ecustoms.bg) est inutile si on y accède directement. Pourquoi ? Parce qu’il exige que vous y soyez déjà inscrit. Je répète : pour y accéder, il faut déjà y être inscrit. Comment s’y inscrire quand on ne l’est pas, ça reste pour moi un mystère. L’autre drame, plus petit, c’est qu’il exige une signature électronique pour être accessible.&lt;/p&gt;
&lt;p&gt;Jusque-là, tout va bien (non). J’ouvre Google et je me mets à lancer des incantations pour comprendre comment déposer ma précieuse demande. Quelques recherches plus tard, je tombe sur la page suivante : &lt;em&gt;&lt;a href=&quot;http://ecustoms.bg/eportal/public/Controler?control=UpdateForm&amp;#x26;doc%5C_def%5C_id=24&amp;#x26;row%5C_id=1&amp;#x26;param%5C_selector=4&quot;&gt;http://ecustoms.bg/eportal/public/Controler?control=UpdateForm&amp;#x26;doc\_def\_id=24&amp;#x26;row\_id=1&amp;#x26;param\_selector=4&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Screen Shot 2017-01-06 at 11.13.28.png&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; fetchpriority=&quot;auto&quot; width=&quot;1287&quot; height=&quot;860&quot; src=&quot;/_astro/Screen-Shot-2017-01-06-at-11.13.28-f052b73c.B7w6nr_s_1fJCpg.webp&quot; &gt;&lt;/p&gt;
&lt;p&gt;Jusque-là, ça va, je lis le texte, j’arrive à peine à voir le lien caché sur « ici », je clique et… rien. Le lien me renvoie vers un système en panne : &lt;em&gt;&lt;a href=&quot;https://ecustoms.bg:18443/eportal/servlet/Controler?control=ReaderForm&amp;#x26;doc%5C_def%5C_id=3&amp;#x26;row%5C_id=5&quot;&gt;https://ecustoms.bg:18443/eportal/servlet/Controler?control=ReaderForm&amp;#x26;doc\_def\_id=3&amp;#x26;row\_id=5&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Pendant un moment, je marmonne diverses incantations en espérant que ce n’est pas un de ces systèmes en ligne qui ne fonctionnent que de 9h à 17h les jours ouvrés, mais je ne me décourage pas et je continue.&lt;/p&gt;
&lt;p&gt;Nouvelles incantations sur Google et, après quelques tentatives infructueuses, par un grand hasard je tombe sur : &lt;a href=&quot;https://eori.customs.bg:8443/&quot;&gt;https://eori.customs.bg:8443/&lt;/a&gt;. Suivent surprise, exclamation, fête, etc.&lt;/p&gt;
&lt;p&gt;Je branche vite la signature électronique et je me mets fébrilement à explorer l’interface, qui se compose en tout et pour tout de 4 boutons, dont deux sont &lt;strong&gt;Quitter&lt;/strong&gt; et un &lt;strong&gt;Actualiser&lt;/strong&gt;. Le dernier était quelque chose du genre « Inscription », mais comme il n’est plus visible une fois l’inscription faite, je ne peux pas vous dire exactement ce qui y était écrit.&lt;/p&gt;
&lt;p&gt;Clic, un formulaire s’affiche avec plusieurs types de champs et des codes bizarres dessus. J’ai rempli ceux dont je savais de quoi il s’agissait, mais les autres étaient terra incognita. Certains étaient en gras, d’autres non, mais on ne savait pas lesquels étaient obligatoires ou pas.&lt;/p&gt;
&lt;p&gt;Retour sur Google. Incantations – rien. À la fin, j’ai décidé de chercher des phrases précises tirées des champs et, par hasard, j’ai réussi à tomber sur &lt;a href=&quot;http://ecustoms.bg/eportal/public/DocumentViewer?row_id=265&quot;&gt;http://ecustoms.bg/eportal/public/DocumentViewer?row_id=265&lt;/a&gt; , qui s’est révélé être le règlement portant création de l’enregistrement EORI-BG. Quelle merveille. Au lieu de quelques petites infobulles avec une courte description du champ, il faut fouiller dans des règlements et des lois pour remplir un formulaire. C’est la vie, ou en version bulgare : ici, c’est comme ça.&lt;/p&gt;
&lt;p&gt;Ce n’est pas un règlement qui va m’arrêter. Je le lis en diagonale et j’arrive tout au fond, où je vois plusieurs exemples de formulaires utilisés pour la version papier de la demande. Je termine de remplir mon formulaire, j’enregistre, je signe avec la signature électronique et je commence à espérer.&lt;/p&gt;
&lt;p&gt;Début du processus vers 18 h, fin à 21 h 43. Pour une seule demande en ligne.&lt;/p&gt;
&lt;p&gt;Cela aurait été plus rapide si j’étais allé dans l’une des douanes de Sofia pour le faire sur place, sauf que ce numéro EORI est délivré selon l’adresse permanente, et moi je suis encore domicilié à Montana. Oui, mais il n’y a pas de bureau de douane à Montana. Le plus proche est à Lom, à environ 40 km de Montana. Moi, je suis à Sofia. Si on dépose la demande sur papier, il faut y aller deux fois, ce qui ne me plaît pas du tout. Dehors, il y a de la neige, ça ne peut se faire qu’en semaine, et toutes les autres joies de l’administration publique.&lt;/p&gt;
&lt;p&gt;Jusque-là, je crois encore aux systèmes électroniques et je me réjouis de ne pas avoir à aller à l’autre bout de la Bulgarie pour un truc aussi minuscule (et de faire quelques économies, hein, c’est de là que tout est parti).&lt;/p&gt;
&lt;p&gt;Deux jours passent, on est jeudi, aucun mouvement sur la demande. Je commence légèrement à douter. J’appelle le Service Desk de la douane, où l’employée m’explique très poliment que le délai est de 5 jours ouvrés et que si rien n’est fait après, je n’ai qu’à rappeler. Bon, j’attendrai.&lt;/p&gt;
&lt;p&gt;Dans la journée, je lis des témoignages sur ces fameuses demandes EORI en ligne et sur l’expérience des gens, et c’est toujours la même chose : si tu as de la chance, tu l’as, sinon, tu attends. Quelqu’un avait mentionné qu’on avait demandé à la douane régionale et qu’on lui avait répondu qu’aucune demande de ce genre n’était arrivée chez eux. Là, ma foi dans le système électronique commence à vaciller dangereusement.&lt;/p&gt;
&lt;p&gt;Aujourd’hui, vendredi, j’ai décidé qu’il serait bon de vérifier si je ne serais pas, par hasard, l’une de ces victimes du système électronique. J’appelle la douane de Lom. Une employée aimable me dit d’appeler le service qui s’en occupe. Elle me donne un numéro local de Lom sans l’indicatif et, après quelques questions idiotes sur ce nombre qu’elle me dictait, j’ai fini par comprendre qu’il s’agissait en fait d’un autre téléphone à appeler. On a souri l’un à l’autre au téléphone devant cette situation et j’ai appelé le numéro qu’elle m’avait donné.&lt;/p&gt;
&lt;p&gt;Là, un monsieur, toujours aussi poli, a décroché et, après que je lui ai exposé mon problème, m’a dit qu’ils traitent les demandes à mesure qu’elles arrivent, que rien n’était arrivé chez eux, qu’il allait vérifier ce qui se passait et pourquoi la demande n’était pas parvenue. Il m’a dit de rappeler dans 10 minutes. Je suis content qu’au moins l’attitude de tout le monde dans la chaîne ait été humaine, sans cette hargne et cette arrogance d’époque socialiste. J’ai commencé à attendre et, en moins de 5 minutes, je reçois la notification d’un nouveau mail intitulé : « &lt;strong&gt;Информация за вашата EORI регистрация!&lt;/strong&gt; » YOUPI ! Je l’ai eu !&lt;/p&gt;
&lt;p&gt;Je l’ai envoyé à DHL et maintenant il ne reste plus qu’à ce que le colis soit libéré et que je le reçoive. Youpi ! (encore)&lt;/p&gt;
&lt;p&gt;Pour finir (ou TL;DR;), un guide plus synthétique pour obtenir un numéro EORI permanent en ligne :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Procurez-vous une signature électronique, si vous n’en avez pas.&lt;/li&gt;
&lt;li&gt;Allez sur : &lt;a href=&quot;https://eori.customs.bg:8443/&quot;&gt;https://eori.customs.bg:8443/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Téléchargez &lt;a href=&quot;http://ecustoms.bg/eportal/public/DocumentViewer?row_id=265&quot;&gt;http://ecustoms.bg/eportal/public/DocumentViewer?row_id=265&lt;/a&gt;, pour voir comment remplir les champs. L’information dont vous avez besoin se trouve sur les dernières pages.&lt;/li&gt;
&lt;li&gt;Déposez la demande et signez-la impérativement. Vous devez voir une ligne avec la valeur suivante dans la colonne Действие : &lt;strong&gt;EORI-REG-SIGN&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Attendez un jour ou, si vous vous sentez chanceux, appelez l’antenne régionale de la douane auprès de laquelle vous avez déposé la demande et demandez avec tact s’ils l’ont reçue, parce que le système électronique vous donnerait des erreurs. Ne mentionnez pas que vous êtes pressé.&lt;/li&gt;
&lt;li&gt;Au bout de quelque temps, vous recevrez le précieux numéro EORI.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Quelques remarques :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;La signature électronique doit être à votre nom, car pas mal de données (noms, numéro d’identification personnel, mail) sont extraites de la signature lors du remplissage du formulaire. Autrement dit, impossible de le faire avec la signature d’un ami.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Le système est assez étrange à utiliser et se montre parfois assez capricieux.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Envoyez et signez le formulaire après avoir soigneusement vérifié tous les champs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ça a fonctionné avec Chrome sur Mac et une signature Infonotary.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Note ajoutée à partir du commentaire de &lt;a href=&quot;http://bisko.be/2017/01/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d1%81%d0%b8-%d0%b8%d0%b7%d0%b2%d0%b0%d0%b4%d0%b8%d0%bc-%d0%bf%d0%be%d1%81%d1%82%d0%be%d1%8f%d0%bd%d0%b5%d0%bd-eori-%d0%bd%d0%be%d0%bc%d0%b5%d1%80-%d0%bf%d0%be-%d0%b5/#comment-16471&quot;&gt;Petya&lt;/a&gt; plus bas :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Quand j’essaie de signer avec la signature électronique, le téléchargement d’un fichier (stampitls) démarre. Après deux jours de lutte avec le HelpDesk des Douanes, ils m’&lt;a href=&quot;http://bisko.be/wp-content/uploads/2018/05/stampit-sign-esig.pdf&quot;&gt;ont envoyé une instruction&lt;/a&gt;, grâce à laquelle j’ai réussi à signer.&lt;br&gt;
Et autre chose : si votre adresse est à Sofia et que vous décidez d’obtenir le numéro EORI avec une signature électronique, choisissez &lt;strong&gt;ТМУ Столична&lt;/strong&gt; comme bureau de douane – ça prend environ une heure, alors que si vous choisissez Летище София (l’aéroport de Sofia), ça peut prendre jusqu’à 5 jours ouvrés&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ol&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Митница</category><category>eori</category><category>еори</category><category>митница</category></item><item><title>La loi sur le commerce électronique (ЗЕТ) et les communications commerciales (… non sollicitées…)</title><link>https://bisko.be/fr/posts/blog/%D0%B7%D0%B5%D1%82-%D0%B8-%D1%82%D1%8A%D1%80%D0%B3%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D1%82%D0%B5-%D1%81%D1%8A%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BD%D0%B5%D0%BF%D0%BE%D0%B8%D1%81%D0%BA/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/%D0%B7%D0%B5%D1%82-%D0%B8-%D1%82%D1%8A%D1%80%D0%B3%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D1%82%D0%B5-%D1%81%D1%8A%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BD%D0%B5%D0%BF%D0%BE%D0%B8%D1%81%D0%BA/</guid><description>Aujourd&apos;hui, j&apos;ai encore eu droit à un « Selon la ЗЕТ, art. 6 (1), cette communication commerciale peut être non sollicitée », suivi de 5 pages de vomi remplies de bêtises, sans aucune mise en forme, sans sections clairement séparées, etc. Comme j&apos;en ai marre de lire ce genre de conneries, je me suis plongé dans la ЗЕТ pour voir ce que dit ce fameux</description><pubDate>Tue, 24 Aug 2010 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Aujourd’hui, j’ai encore eu droit à un « Selon la ЗЕТ, art. 6 (1), cette communication commerciale peut être non sollicitée », suivi de 5 pages de vomi remplies de bêtises, sans aucune mise en forme, sans sections clairement séparées, etc.&lt;/p&gt;
&lt;p&gt;Comme j’en ai marre de lire ce genre de conneries, je me suis plongé dans la ЗЕТ pour voir ce que dit ce fameux article 6, et voilà ce que je lis :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Art. 6.&lt;/strong&gt; (1) Le prestataire de services qui envoie des communications commerciales non sollicitées par courrier électronique sans le consentement préalable du destinataire est tenu de garantir que la communication commerciale soit identifiable de manière claire et non équivoque comme non sollicitée dès sa réception par le destinataire.&lt;/p&gt;
&lt;p&gt;(2) (Modifié – ДВ, n° 105 de 2006, en vigueur à partir du 24.12.2006) La Commission de protection des consommateurs tient un registre électronique des adresses électroniques des personnes morales qui ne souhaitent pas recevoir de communications commerciales non sollicitées, selon les modalités fixées par un règlement du Conseil des ministres.&lt;/p&gt;
&lt;p&gt;(3) Il est interdit d’envoyer des communications commerciales non sollicitées aux adresses électroniques inscrites au registre visé à l’al. 2.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jusque-là, tout va bien, tout est clair, je suis d’accord. Pas la peine de pinailler sur les dispositions légales, je vais les supporter ou les bloquer, bla-bla, et je continue ma lecture jusqu’à l’alinéa 4 et qu’est-ce que je vois :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(4) Il est &lt;strong&gt;interdit&lt;/strong&gt; d’envoyer des communications commerciales non sollicitées à des consommateurs &lt;strong&gt;sans leur consentement préalable.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Hein ?! Euh ? D’après ça, il faudrait d’abord qu’ils m’envoient un petit mail pour me demander si je suis d’accord pour recevoir tout ce vomi ou non, mais ils ne le font pas. Ils m’annoncent simplement que, selon l’art. 6 (1), cette communication commerciale peut ne pas avoir été sollicitée par moi, puis ils déversent tout leur vomi dans le même mail. Nulle part ils ne me demandent si je suis d’accord ou pas – on rentre direct dans le lard.&lt;/p&gt;
&lt;p&gt;Je me demande à quel point cette pratique est légale – envoyer du spam sans mon consentement explicite ?&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Random rants</category><category>закони</category><category>спам</category></item><item><title>Phonétique et xorg</title><link>https://bisko.be/fr/posts/blog/phonetics-and-xorg/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/phonetics-and-xorg/</guid><description>Dans l&apos;une des dernières versions de xorg, apparues vers janvier-février de cette année, des changements se sont glissés dans la disposition phonétique, faits par quelqu&apos;un qui n&apos;a manifestement pas pensé à l&apos;utilisateur lambda et qui voulait transformer la phonétique en BDS. Ces changements consistent en l&apos;introduction des guillemets ouvrants et fermants, à la place de</description><pubDate>Sat, 15 May 2010 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Dans l’une des dernières versions de xorg, apparues vers janvier-février de cette année, des changements se sont glissés dans la disposition phonétique, faits par quelqu’un qui n’a manifestement pas pensé à l’utilisateur lambda et qui voulait transformer la phonétique en BDS. Ces changements consistent en l’introduction des guillemets ouvrants et fermants à la place de &amp;#x3C;&gt;, du signe paragraphe à la place de &amp;#x26;, et du signe euro à la place de ^.&lt;/p&gt;
&lt;p&gt;Pour réparer ces forfaits, on ajoute les lignes suivantes dans &lt;strong&gt;~/.bashrc&lt;/strong&gt; :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;xmodmap -e “keycode 16 = 7 ampersand 7 ampersand”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 12 = 3 numbersign 3 numbersign”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 15 = 6 asciicircum 6 asciicircum”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 20 = minus underscore minus underscore”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 59 = comma less comma less”&lt;/p&gt;
&lt;p&gt;xmodmap -e “keycode 60 = period greater period greater”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ensuite, vous vous déconnectez (logout), puis vous vous reconnectez (log-in) au système, et vous devriez retrouver votre ancienne disposition des symboles.&lt;/p&gt;
&lt;p&gt;P.S. Il y a encore un autre changement : à la place du « ь » majuscule (le yer minuscule, x latin), on a mis « ѝ » (i accentué), ce que je trouve utile et que je n’ai donc pas annulé dans les modifications ci-dessus.&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Funny</category><category>Random rants</category><category>Tech</category></item><item><title>Supprimer le verrouillage par code de l&apos;iPhone</title><link>https://bisko.be/fr/posts/blog/removing-iphone-passcode-lock/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/removing-iphone-passcode-lock/</guid><description>Hier, j&apos;ai bu quelques verres et j&apos;ai décidé de mettre un code sur mon iPhone, histoire que personne ne vienne fouiller dedans (stupide paranoïa)… Alors je me suis lancé, j&apos;ai mis le code, je l&apos;ai tapé deux fois dans les réglages, en le réglant sur ce que je croyais être le nombre que je tapais, et puis</description><pubDate>Sat, 14 Nov 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hier, j’ai bu quelques verres et j’ai décidé de mettre un code sur mon iPhone, histoire que personne ne vienne fouiller dedans (stupide paranoïa)… Alors je me suis lancé, j’ai mis le code, je l’ai tapé deux fois dans les réglages, en le réglant sur ce que je croyais être le nombre que je tapais, puis j’ai verrouillé le téléphone (bouton marche/veille). Ensuite j’ai essayé de le déverrouiller, et il semblerait que j’aie réussi à taper deux fois un nombre qui n’était pas celui que je voulais. Du coup, pendant le reste de la soirée, j’ai essayé de trouver quel était ce nombre, mais sans succès.&lt;/p&gt;
&lt;p&gt;Maintenant, avec les idées plus claires, j’ai trouvé un moyen de supprimer le verrouillage par code (en même temps que tous les autres mots de passe du téléphone, cela dit).&lt;/p&gt;
&lt;p&gt;Voici donc les étapes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allez dans le système de fichiers du téléphone (sous Linux c’est facile – consultez &lt;a href=&quot;http://marcansoft.com/blog/2009/10/iphone-syncing-on-linux-part-2/&quot; title=&quot;Marcansoft&quot;&gt;http://marcansoft.com/blog/2009/10/iphone-syncing-on-linux-part-2/&lt;/a&gt; pour accéder au système de fichiers de l’iPod – c’est pareil pour l’iPhone et l’iPod touch).&lt;/li&gt;
&lt;li&gt;Rendez-vous ensuite dans &lt;strong&gt;/private/var/Keychains&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Déplacez le fichier nommé &lt;strong&gt;keychain-2.db&lt;/strong&gt; ailleurs, par exemple dans /&lt;/li&gt;
&lt;li&gt;Rendez-vous ensuite dans &lt;strong&gt;/var/mobile/Library/Preferences/&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Déplacez le fichier nommé &lt;strong&gt;com.apple.springboard.plist&lt;/strong&gt; ailleurs, par exemple dans /&lt;/li&gt;
&lt;li&gt;Il faut ensuite tuer springboard ( &lt;strong&gt;killall SpringBoard&lt;/strong&gt; si vous êtes connecté en SSH) &lt;strong&gt;ou simplement redémarrer&lt;/strong&gt; le téléphone.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Voilà, c’est tout.&lt;/p&gt;
&lt;p&gt;L’effet secondaire de cette manip, c’est que vous perdrez tous vos mots de passe de comptes mail, de comptes Exchange, ainsi que l’ordre des icônes sur le springboard, mais au moins vous n’aurez pas à reflasher le téléphone 🙂&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Random rants</category><category>Tech</category><category>drinkingisbad</category><category>Funny</category><category>iphone</category><category>ipod</category><category>ipod touch</category><category>lock</category><category>lockdown</category><category>passcode</category></item><item><title>Les dernières gouttes de batterie…</title><link>https://bisko.be/fr/posts/blog/last-drops-of-battery/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/last-drops-of-battery/</guid><description>Ce soir, j’ai subi une petite coupure de courant dans mon quartier et j’ai décidé qu’il était temps de mettre à l’épreuve la batterie de mon Acer 5935g. J’ai débranché le câble d’alimentation et j’ai continué ma soirée cinéma avec Dexter S02. Voici donc le résultat final de mon petit test de batterie : 1h30 – films 35 minutes</description><pubDate>Tue, 08 Sep 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ce soir, j’ai subi une petite coupure de courant dans mon quartier et j’ai décidé qu’il était temps de mettre à l’épreuve la batterie de mon Acer 5935g. J’ai débranché le câble d’alimentation et j’ai continué ma soirée cinéma avec Dexter S02.&lt;/p&gt;
&lt;p&gt;Voici donc le résultat final de mon petit test de batterie :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1h30 – films&lt;/li&gt;
&lt;li&gt;35 minutes de navigation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ça fait un total de 2h05 d’autonomie garantie (au minimum), et il me reste encore une réserve de presque une demi-heure de batterie pour terminer quelques textes sur lesquels je travaille.&lt;/p&gt;
&lt;p&gt;En fait, c’est la première fois que je m’approche autant de l’autonomie annoncée dans les spécifications du fabricant.  Je suis content d’avoir choisi Acer 🙂&lt;/p&gt;
&lt;p&gt;Le système sur lequel j’ai testé la batterie :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Acer 5935g (batterie d’origine)&lt;/li&gt;
&lt;li&gt;Windows Vista SP2 64 bits&lt;/li&gt;
&lt;li&gt;GeForce 130M active (pas l’Intel 4500 intégrée)&lt;/li&gt;
&lt;li&gt;Souris Razer Copperhead&lt;/li&gt;
&lt;li&gt;Luminosité à 60 % en permanence&lt;/li&gt;
&lt;li&gt;Skype tournant en arrière-plan&lt;/li&gt;
&lt;li&gt;WiFi activé, connecté au réseau&lt;/li&gt;
&lt;li&gt;KMplayer lisant du DivX (avec plein de sauts dans la vidéo (impossible de regarder un film du début à la fin sans avancer ou reculer 🙂 )&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Prochaine étape : un test sous Linux avec les mêmes activités. Mais il faut d’abord que je l’installe et le configure, ce qui attendra d’avoir un peu de temps libre.&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Tech</category><category>acer</category><category>battery</category><category>cool</category><category>regards</category><category>video</category></item><item><title>Erreur E16 sur un appareil photo Canon</title><link>https://bisko.be/fr/posts/blog/error-e16-canon-camera/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/error-e16-canon-camera/</guid><description>L&apos;histoire a commencé hier, quand mon père m&apos;a écrit que son appareil photo (Canon A610) était cassé et que la seule chose qu&apos;il faisait à l&apos;allumage (en mode prise de vue) était de sortir l&apos;objectif, de le rentrer et d&apos;afficher sur fond noir Error E16. J&apos;ai fouillé sur internet et la plupart des infos disaient que le problème était inconnu et que ça n&apos;arrivait pas</description><pubDate>Wed, 02 Sep 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;L’histoire a commencé hier, quand mon père m’a écrit que son appareil photo (&lt;strong&gt;Canon A610&lt;/strong&gt;) était foutu et que la seule chose qu’il faisait à l’allumage (en mode prise de vue) était de sortir l’objectif, de le rentrer et d’afficher sur fond noir&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Error E16&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;J’ai fouillé sur internet et la plupart des infos disaient que &lt;strong&gt;le problème est inconnu&lt;/strong&gt; et qu’il n’est pas rare, qu’il faut envoyer l’appareil chez Canon et qu’ils le remplaceront.&lt;/p&gt;
&lt;p&gt;Jusque-là, tout va bien, sauf que la garantie de l’appareil a expiré il y a plus d’un an (&lt;strong&gt;il n’est donc plus sous garantie&lt;/strong&gt;, en un mot, puisqu’il a été acheté en mai 2006).&lt;/p&gt;
&lt;p&gt;Du coup, j’étais sans solution, jusqu’à ce que mon père se réveille et essaie la méthode &lt;strong&gt;standard&lt;/strong&gt; pour la technique « jaune » – &lt;strong&gt;LA BASTON&lt;/strong&gt; ! 🙂&lt;/p&gt;
&lt;p&gt;Il s’avère qu’en &lt;strong&gt;secouant fortement ou en tapant&lt;/strong&gt; sur l’appareil, &lt;strong&gt;l’erreur&lt;/strong&gt; a de grandes chances &lt;strong&gt;de disparaître et l’appareil de fonctionner&lt;/strong&gt; normalement.&lt;/p&gt;
&lt;p&gt;Mais cela comporte ses &lt;strong&gt;risques&lt;/strong&gt; : si l’erreur est apparue une fois, elle &lt;strong&gt;réapparaîtra&lt;/strong&gt; probablement, tout est &lt;strong&gt;une question de temps&lt;/strong&gt;. Il faut donc songer à un &lt;strong&gt;nouvel appareil photo&lt;/strong&gt;, le temps de tenir encore avec l’ancien.&lt;/p&gt;
&lt;p&gt;Et il y a même un « chouette » effet secondaire : la vidéo ne fonctionne qu’« à moitié », comme vous pouvez le voir sur le lien suivant : E16 error on Canon A610&lt;/p&gt;
&lt;p&gt;--- ## External Downloads Saved Locally - [&lt;a href=&quot;http://www.youtube.com/watch?v=fQGdaOgQt9M%5C&quot;&gt;http://www.youtube.com/watch?v=fQGdaOgQt9M\&lt;/a&gt;](media/грешка-e16-при-фотоапарат-canon-Canon A610 E16 error video.mkv)&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>camera</category><category>canon</category><category>chinatech</category><category>e16</category><category>error</category><category>fix</category></item><item><title>iPhone 3.0</title><link>https://bisko.be/fr/posts/blog/iphone-30/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/iphone-30/</guid><description>Yaaaaay…. je suis content comme un gamin 😉 Je me suis enfin équipé de la dernière version d&apos;iPhone OS, à savoir la version 3.0 tant attendue. À première vue, c&apos;est un énorme jouet, le temps de découvrir les nouveautés (les vraiment utiles, bien sûr) du nouveau firmware. Voici quelques-unes de celles que je trouve personnellement utiles : Spotlight (premier écran (l&apos;écran zéro, si on considère Home comme le premier) – très</description><pubDate>Fri, 19 Jun 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Yaaaaay…. je suis content comme un gamin 😉&lt;/p&gt;
&lt;p&gt;Je me suis enfin équipé de la dernière version d’iPhone OS, à savoir la version 3.0 tant attendue.&lt;br&gt;
À première vue, c’est un énorme jouet, le temps de découvrir les nouveautés (les vraiment utiles, bien sûr) du nouveau firmware. Voici quelques-unes de celles que je trouve personnellement utiles :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Spotlight&lt;/strong&gt; (premier écran (l’écran zéro, si on considère Home comme le premier) – un vrai bonheur. Tu tapes 3 lettres et hop, tu as appelé la bonne personne ou lancé la chanson que tu voulais. On peut le configurer dans les réglages pour y accéder en double-cliquant sur le bouton Home.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Landscape&lt;/strong&gt; (l’écran à l’horizontale) – juste un kiff total 🙂 . SMS, e-mail, notes – tout en mode paysage … AAAAAAAAAAA (cris de joie)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copier-coller-annuler&amp;#x26;…&lt;/strong&gt; (ce qui manquait jusqu’ici) – la fonctionnalité de copier-coller est très astucieusement pensée (on peut la voir dans les reviews). Jusqu’ici, j’ai trouvé 2 bugs. Quand on copie pour la première fois une image + du texte, seule l’image est copiée. L’autre bug : si vous avez sélectionné quelque chose à copier dans Safari, que vous quittez puis relancez aussitôt, vous voyez d’abord la zone sélectionnée, et ensuite seulement le reste se charge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Journal d’appels&lt;/strong&gt; (call logger) plus détaillé – Phone.app affiche désormais des informations plus détaillées sur les appels passés avec un numéro donné – par exemple la durée de l’appel, quand il a eu lieu, quel en est le statut.&lt;/li&gt;
&lt;li&gt;Possibilité de désactiver le rappel de SMS dans Réglages -&gt; Général -&gt; Messages -&gt; Répéter l’alerte – le salut face aux vibrations et sons qui font sursauter quand on oublie d’ouvrir un SMS pourtant déjà lu depuis l’écran d’accueil.&lt;/li&gt;
&lt;li&gt;Améliorations dans &lt;strong&gt;iPod&lt;/strong&gt; – &lt;strong&gt;Shake to Shuffle&lt;/strong&gt; (tu secoues le téléphone sur le côté et il passe à une chanson au hasard) – pratique, mais il faut le secouer plutôt fort. (note à moi-même : à tester dans la marshrutka et dans les transports en commun) ; dans les podcasts, il y a un &lt;strong&gt;bouton de retour de 30 secondes&lt;/strong&gt; GROS COMME ÇA dans le podcast en cours de lecture. À côté se trouve aussi le &lt;strong&gt;bouton 1x(2x,1/2x)&lt;/strong&gt;, si vous voulez accélérer ou ralentir la vitesse du podcast écouté (ça sonne très drôle, surtout si vous écoutez quelque chose assez vite) ; possibilité de parcourir les podcasts en ligne puis de les télécharger sur votre téléphone.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VITESSE&lt;/strong&gt; – j’ai eu un choc … le téléphone fonctionne au moins 60 % plus vite qu’avec la 2.2.1. Les applications s’ouvrent à la vitesse de la lumière. Elles se ferment pareil. Le son ne saccade même plus quand j’ouvre ou ferme une autre application ou l’iPod lui-même.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je ne vois rien d’autre pour le moment, mais je promets de compléter la liste dès que j’aurai découvert d’autres choses utiles dans le nouveau firmware.&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>cool</category><category>iphone</category><category>update</category></item><item><title>IE daily</title><link>https://bisko.be/fr/posts/blog/ie-daily/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/ie-daily/</guid><description>Si jamais, sans qu&apos;on sache d&apos;où ça vient, les bordures d&apos;un élément se mettent à être « en pointillés cassés » sous IE6,7, essayez de mettre un background sur l&apos;élément, il y a de bonnes chances que le tour soit joué.</description><pubDate>Sat, 30 May 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Si jamais, sans qu’on sache d’où ça vient, les bordures d’un élément se mettent à être « en pointillés cassés » sous IE6,7, essayez de mettre un background sur l’élément, il y a de bonnes chances que le tour soit joué.&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>bug</category><category>ie</category></item><item><title>Will it Lens?</title><link>https://bisko.be/fr/posts/blog/will-it-lens/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/will-it-lens/</guid><description>Les mecs de chez Google sont complètement barrés 🙂 http://googleblog.blogspot.com/2009/04/will-it-lens.html</description><pubDate>Sat, 11 Apr 2009 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Les mecs de chez Google sont complètement barrés 🙂&lt;br&gt;
&lt;a href=&quot;http://googleblog.blogspot.com/2009/04/will-it-lens.html&quot;&gt;http://googleblog.blogspot.com/2009/04/will-it-lens.html&lt;/a&gt;&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>google</category><category>lens</category></item><item><title>Tante Vatsa… ou en voyage avec des petits vieux</title><link>https://bisko.be/fr/posts/blog/lelq-vaca/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/lelq-vaca/</guid><description>Vendredi 13h30… dernières minutes au boulot. Je signe l&apos;ordre de départ, derniers mots, et je file vers la gare centrale. Je monte dans le tram et je me mets tranquillement à calculer mon temps tout en luttant contre mon moi gourmand, sur la question de savoir si je passe par McDonalds pour prendre quelque chose ou pas… J&apos;arrive à le dompter,</description><pubDate>Sun, 09 Nov 2008 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vendredi 13h30… dernières minutes au boulot. Je signe l’ordre de départ, derniers mots, et je file vers la gare centrale. Je monte dans le tram et je me mets tranquillement à calculer mon temps tout en luttant contre mon moi gourmand, sur la question de savoir si je passe par McDonalds pour prendre quelque chose ou pas… J’arrive à le dompter, parce que d’après mes calculs approximatifs, je risquais de ne pas arriver à la gare avant 15h15, l’heure à laquelle j’avais rendez-vous avec baté Irji.&lt;/p&gt;
&lt;p&gt;Évidemment, mes calculs approximatifs étaient complètement faux… je suis arrivé presque 40 minutes en avance… À ce moment-là, mon moi gourmand (que j’appellerai désormais, pour faire court, Cochonnet) a commencé à me seriner : « Tu aurais pu passer prendre un truc à manger, non ! ». Après quelques insultes à l’adresse de Cochonnet, je suis entré dans la gare et je suis resté comme foudroyé… « Putain ! Je n’avais jamais vu autant de monde dans cette gare !!! ». C’était plein à craquer comme… je ne sais pas quoi… une vraie cohue 🙂 . J’ai vu qu’il n’y avait plus de place sur les bancs, alors je suis ressorti et je me suis assis sur les marches sous l’horloge. J’ai envoyé un SMS à Ivan pour lui dire que c’était la folie, ce à quoi j’ai reçu la consigne d’acheter les billets immédiatement :).&lt;/p&gt;
&lt;p&gt;Je suis retourné à l’intérieur et direct aux petits guichets… je suis passé super vite. Normal, évidemment, parce qu’il n’y avait que 2-3 personnes avant moi, alors qu’aux autres guichets c’était la folie totale. J’ai pris les billets, avec places réservées bien sûr, et j’ai de nouveau attendu dehors. Ivan est arrivé vers 15h40, parce que les transports en commun sont des gens méchants, tout comme les taxis 🙂, et nous avons attendu devant le tableau qu’on affiche sur quel quai notre train allait se former. On est là, on attend, on est là, on attend… il est 15h50… toujours aucune information… à ce moment-là, on est en mode « Bon sang de bois », comme toute le reste de la gare.&lt;/p&gt;
&lt;p&gt;À un moment, le système de sonorisation (ou comme ça s’appelle) se met à annoncer quel train est où, et on voit toute la gare se ruer vers les quais…&lt;/p&gt;
&lt;p&gt;Après une bonne séance de bousculade, de coups de coude et de piétinements, qui ferait claquer la langue aux joueurs des équipes de football américain, on arrive sur le quai et on se met à chercher nos places. Ici la voiture 12, là la voiture 12… hop, on traverse tout le train et on arrive à la voiture. On se faufile vite à l’intérieur, vu qu’il est 15h58 et que le train peut partir d’une minute à l’autre, et à l’intérieur… ah, à l’intérieur… Il fallait être soit un microbe pour s’y faufiler, soit un superman pour écarter les gens qui s’agitaient frénétiquement dans les couloirs. Heureusement que nos places étaient dans le 2e compartiment et pas quelque part au milieu, parce qu’il y avait une vraie chance de se retrouver dans une scène de « Bloodsport X ».&lt;/p&gt;
&lt;p&gt;Finalement, on s’est installés et on a attendu que le train démarre. Au bout de deux petites minutes, des petits vieux arrivent avec des places réservées dans notre compartiment et chassent illico les « intrus » (même si on les connaissait, mais bon… le destin). Malheureusement, les 2 vieilles dames pénibles de Berkovitsa sont restées… tout le monde s’est installé et on s’est mis à attendre que le train parte.&lt;/p&gt;
&lt;p&gt;Évidemment, pendant ce temps, je reconnais l’un des vieux, qui habitait près de chez nous il y a quelques années. Lui, par contre, ne me reconnaît pas… visiblement, la démence fait son œuvre 😀&lt;/p&gt;
&lt;p&gt;Je passe sur la plupart des détails, il y en a tellement qu’ils sont difficiles à retenir, mais j’en mentionne un qui m’a carrément fait pleurer de rire :&lt;/p&gt;
&lt;p&gt;&lt;em&gt;…&lt;br&gt;
– Mais lui, il boit son café chez tante Vatsa tous les matins !&lt;br&gt;
– Tante Vatsa ?&lt;br&gt;
– Mais oui, c’est écrit tante Vatsa sur les tasses, et ça se trouve que c’est lavAzza&lt;br&gt;
…&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Et ainsi de suite pendant 4 heures entières d’humour de petits vieux, qui par moments « te déchire le diaphragme et tu descends à Septemvri (la gare) pour qu’on t’en greffe un nouveau ».&lt;/p&gt;
&lt;p&gt;Finalement, on est arrivés à Montana avec environ une heure de retard, mais une heure qui est passée vite 🙂 À ce propos : si vous voyagez dans un compartiment plein de vieux et qu’il y a au moins 2 papys, ne vous plaignez pas, l’ambiance est garantie 😀&lt;/p&gt;</content:encoded><category>blog</category><category>bisko.be</category><category>Funny</category><category>Travel</category></item><item><title>Ici ?</title><link>https://bisko.be/fr/posts/blog/post-2008-11-01/</link><guid isPermaLink="true">https://bisko.be/fr/posts/blog/post-2008-11-01/</guid><description>L&apos;histoire d&apos;une journée bizarre et de l&apos;achat d&apos;un hébergement DreamHost.</description><pubDate>Sat, 01 Nov 2008 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Hier, c’était une journée bizarre…&lt;/p&gt;
&lt;p&gt;Le matin, même en partant un peu tard, je suis arrivé au boulot à l’heure. Visiblement, les bouchons jouaient en ma faveur. La journée a ensuite suivi son cours normal jusqu’à 13 h environ, quand Tsvetan m’a envoyé un lien vers une promo de DreamHost à l’occasion de leur 11e anniversaire.&lt;br&gt;
Je l’ai ouverte et je me suis mis à lire… à chaque ligne du tableau des caractéristiques de l’hébergement, mes yeux devenaient plus grands et plus gourmands (j’en ai même bavé :D ).&lt;br&gt;
Il est vite devenu clair que c’était exactement ce qu’il me fallait et qu’on allait l’acheter, MAIS un problème est apparu : comment payer ? J’ai une carte avec les paiements en ligne activés, mais pas un sou dessus, et Tsvetan a de l’argent, mais pas de paiements en ligne. On tombe sur un os… ou plutôt sur un bloc de granit.&lt;/p&gt;
&lt;p&gt;Étape suivante : il m’envoie de l’argent via ePay.bg et c’est moi qui paie. Tout roule, jusqu’au moment où je découvre que j’y ai le statut d’un parfait demeuré et que ma limite quotidienne est de… 50 leva en réception. Je me mets vite à chercher comment devenir un utilisateur « connu » et je reste sidéré par ce que je lis :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Comment passer au niveau supérieur&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Pour passer au niveau « 2 » – « client connu », vous devez avoir une carte bancaire enregistrée dans votre profil utilisateur, avec laquelle vous payez au moins 5 factures de services (électricité, eau, téléphone, chauffage, etc.) via le système (le paiement d’un service prépayé n’est pas considéré comme le paiement d’une facture de service).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Non mais allez ! Au moins 5 factures… c’est quoi ces conneries ? Je n’ai pas de maison à moi pour laquelle payer ces factures. Des salades. Si encore ils avaient demandé une photo de la carte d’identité ou un truc du genre, d’accord… mais ça, c’est trop, surtout quand tu dois transférer une certaine somme là, tout de suite, maintenant.&lt;/p&gt;
&lt;p&gt;Je sens déjà la promo nous glisser des mains comme un verre savonneux. Dans ces conditions, on en arrive à la solution de la dernière chance : il vire de l’argent depuis Varna directement sur mon compte à la Poștenska banka, et on croise les doigts. Je lui donne mon IBAN, il file faire le versement. Il m’appelle au bout de 25-30-40 minutes : « J’ai viré, ils m’ont dit que les modifications seraient visibles dans l’e-banking d’ici 2 heures. » Évidemment, en entendant « 2 heures », j’étais sous le choc : tout allait donc se jouer à un cheveu ! J’attends 15 looongues minutes, je me connecte à e-postbank et, avec des yeux GROS COMME ÇA et la mâchoire par terre, je vois que la somme est arrivée.&lt;/p&gt;
&lt;p&gt;J’ouvre fébrilement le lien que Tsvetan m’avait envoyé un peu plus tôt vers le panier Google Checkout, je remplis mes données, je clique sur Check out et voilà… À ce moment-là, des millions de points d’interrogation me traversaient la tête : comment ça, aucune confirmation de compte comme chez Moneybookers ou PayPal, aucun prélèvement de somme test ni autres âneries, on remplit juste ses infos, on clique sur payer et c’est réglé…&lt;/p&gt;
&lt;p&gt;Ensuite, je lui ai envoyé un SMS pour dire que j’avais payé, j’ai attrapé mes affaires et filé à la gare centrale pour rentrer à Montana. J’y ai retrouvé quelques « compagnons de route », on a pris nos billets et on est montés dans le train. On est partis, mais je ne pouvais pas attendre encore 3 heures pour savoir si le paiement était vraiment passé, alors j’ai appelé Tsvetan, qui m’a confirmé que tout était normal. Ça m’a ôté un poids énorme du cœur et j’ai enfin pu souffler.&lt;/p&gt;
&lt;p&gt;De cette journée, je retiens 4 choses :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ePay, ce sont des radins, tout comme PayPal et Moneybookers.&lt;/li&gt;
&lt;li&gt;La Poștenska banka continue de me conforter dans l’idée que c’est le bon choix.&lt;/li&gt;
&lt;li&gt;Google, comme d’habitude, assure avec ses procédures simplifiées.&lt;/li&gt;
&lt;li&gt;DreamHost me botte ! (seul l’upload vers là-bas rame sévère, mais on en reparlera plus tard)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;P.S. Bordel, je dois déjà 90 balles à Tsvetan :-D&lt;/p&gt;</content:encoded><category>blog</category><category>travel</category><category>random</category></item></channel></rss>