<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>a-d.s - txt</title><link href="https://aligot-death.space/" rel="alternate"></link><link href="https://aligot-death.space/feeds/txt.atom.xml" rel="self"></link><id>https://aligot-death.space/</id><updated>2026-01-05T00:00:00+01:00</updated><entry><title>Drones Quixote</title><link href="https://aligot-death.space/txt/misc/drones-quixote-en" rel="alternate"></link><published>2025-12-17T00:00:00+01:00</published><updated>2025-12-17T00:00:00+01:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2025-12-17:/txt/misc/drones-quixote-en</id><summary type="html">&lt;p class="first last"&gt;A failed photo attempt with fun consequences&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Every year around the 8th of December, Lyon (the city where I live) organizes a light festival called “fête des lumières”. It used to simply be about putting lanterns on windows, illuminating the whole city, but as most old traditions, it morphed into a consensual and uninteresting event with no interest other than turning the city center into a walled amusement park with a few massive installations, crowds that would make a pop star agoraphobic, and shit tons of cops and soldiers around it.&lt;/p&gt;
&lt;p&gt;But that this year was a bit different: a drone show you say? In the largest park of the city, outside the main perimeter?&lt;/p&gt;
&lt;p&gt;These last few months I’ve been into cyberpunk, as I do every other year or so. Lyon is not very vertically developed aside from a few skyscrapers, and of course its hills. But I envisioned something. I finally have long lenses (old &amp;amp; cheap analog 200mm &amp;amp; 300mm), so I jump on every occasion to make a long shot. I wanted to take advantage of the flat city center and surrounding hills to get the skyscrapers and the drones in the same photo and get some &lt;em&gt;locally-sourced&lt;/em&gt; cyberpunk visuals.&lt;/p&gt;
&lt;p&gt;The overall plan is fairly simple: find a way to get a very squeezed shot of the drone show with some sky-scrapers, industrial buildings and possibly both.&lt;/p&gt;
&lt;div class="section" id="starting-point"&gt;
&lt;h2&gt;Starting point&lt;a class="headerlink" href="#starting-point" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I started researching this a week before. Rather than blindly turning over every stone in the city, I started with a Google Earth project, and added a few known spots I knew.&lt;/p&gt;
&lt;p&gt;To get my bearing on the drone show, I turned to the &lt;a class="reference external" href="https://www.fetedeslumieres.lyon.fr/fr/carte-2025"&gt;official map&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20251217103434/https://www.fetedeslumieres.lyon.fr/fr/carte-2025"&gt;archive&lt;/a&gt;):&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_official_map.png"&gt;
&lt;img alt="a map showing various shows around the city, including the drones" src="https://rsc.aligot-death.space/images/480/articles/fdl2025_official_map.png" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;That’s weirdly close to the west entrance, but okay.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(foreshadowing)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In case you’re not familiar with the city layout, here it is:&lt;/p&gt;
&lt;div class="full-center figure align-center" style="background: none;position: relative; margin: -40px;"&gt;
  &lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/map.png"&gt;
    &lt;img alt="A great stylized map showing Lyon, its surrounding hills and the drones" src="https://rsc.aligot-death.space/images/full/articles/map.png" style="width: 100%;z-index: -1; position: relative;"&gt;
  &lt;/a&gt;
&lt;/div&gt;&lt;p&gt;The city is at the junction of two rivers, the Saône and Rhône. It sits in a plain between several hills, the biggest ones being Croix-Rousse &amp;amp; Caluire in the north, and Vieux-Lyon east of it.&lt;/p&gt;
&lt;p&gt;What about a second city-center? The first one is mostly the commercial and historic one. But There’s an another one, right in the middle of the flatlands. It's more on the &amp;quot;business&amp;quot; side of things, mostly because of the Part-Dieu train station. And that’s where the skyscrapers are.&lt;/p&gt;
&lt;p&gt;Finally, there’s a few industrial zones, mostly south of the city. La Doua campus (east of the park) being a scientific campus, there’s a few interesting structures here as well.&lt;/p&gt;
&lt;p&gt;The city center, where most of the shows happen, is on the peninsula. As per tradition, locals either hide in their house or flee the city during the week-end.&lt;/p&gt;
&lt;p&gt;The drone show however happens in an urban park, &lt;em&gt;La Tête d’or&lt;/em&gt; (literally &lt;em&gt;Golden Head’s park&lt;/em&gt;, or &lt;em&gt;la golden teuté&lt;/em&gt; in local parlance), north of the city. It happens every half hour, and lasts 8 minutes.&lt;/p&gt;
&lt;p&gt;According to the &lt;a class="reference external" href="https://www.fetedeslumieres.lyon.fr/fr/actualite/le-parc-le-lac-le-ciel-et-500-drones-lumineux"&gt;official website&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20251215191150/https://www.fetedeslumieres.lyon.fr/fr/actualite/le-parc-le-lac-le-ciel-et-500-drones-lumineux"&gt;archive&lt;/a&gt;), the show itself includes 500 drones. Based on the diagram on the &lt;a class="reference external" href="https://www.allumee.com/distances-de-securite/"&gt;production’s team website&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20250812174303/https://www.allumee.com/distances-de-securite/"&gt;archive&lt;/a&gt;), this points to a flight envelope between 0 and ≈100 meters.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="section-1"&gt;
&lt;h2&gt;2025-12-01&lt;a class="headerlink" href="#section-1" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;J-4&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So the name of the game is: get low on Google Earth 3D view, try to find nice looking alignments, and check surrounding spots using Street View.&lt;/p&gt;
&lt;p&gt;I basically spent several hours per day doing this on google earth:&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_pool.png"&gt;
&lt;img alt="a guy leaning on a pool table to aim, but the pool table is actually google earth 3D view." src="https://rsc.aligot-death.space/images/480/articles/fdl2025_pool.png" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;&lt;a class="reference external" href="https://commons.wikimedia.org/wiki/File:Efren_Reyes_in_the_World_9-Ball_Pool_Championship_(4).jpg"&gt;Original photo&lt;/a&gt;, image created using GenNS (Generative Natural Stupidity)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;funny thing: do you recognize this?&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_interpol.png"&gt;
&lt;img alt="a white blob." src="https://rsc.aligot-death.space/images/480/articles/fdl2025_interpol.png" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;That white blurry blob is Interpol’s building. Yes, &lt;em&gt;that&lt;/em&gt; Interpol. Lyon is where the pol’ inter’s.&lt;/p&gt;
&lt;p&gt;Obviously, The building and the surrounding hills are blurred on google maps and 3D is disabled. This has two goals: increasing security and pissing me off.&lt;/p&gt;
&lt;p&gt;And it’s sitting 400 meters from the drone show.&lt;/p&gt;
&lt;p&gt;Similarly, I found a nice spot outside of the city, next to an old fort. I really liked it, but then noticed the barbed wires around it. Turns out the Interior minister bought the &lt;em&gt;Fort de Corbas&lt;/em&gt; from the army in 1998 to store explosives.&lt;/p&gt;
&lt;p&gt;So, I was about to go next to a secured facility (that got robbed of 28kg of semtex in 2008), with a long range camera, right as the city was put under heavy surveillance. What a mastermind.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="section-2"&gt;
&lt;h2&gt;2025-12-02&lt;a class="headerlink" href="#section-2" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;J-3&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ok, ladies, gentlemen, and those of us who know better: it’s time to bike.&lt;/p&gt;
&lt;p&gt;I finally got a bike again: a friend of mine gave it to me because they’re moving out.&lt;/p&gt;
&lt;p&gt;The goal is to check markers next to Cusset (East), Monchat (South-east), Bron (South-south-east), Manufacture (South of the skyscrapers) and Mandela’s park (South-East of the skyscrapers). That’s one hour of biking in the cold, notwithstanding stops &amp;amp; lollygagging, in the middle of traffic.&lt;/p&gt;
&lt;p&gt;The whole trip actually took 4 hours, mostly because I found new spots on the go, partially because I forgot the long lenses on my desk and had to go back home.&lt;/p&gt;
&lt;div class="on-left desktop-only figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl_2025_map_manufacture.png"&gt;
&lt;img alt="a map with a point on Manufacture des Tabacs" src="https://rsc.aligot-death.space/images/480/articles/fdl_2025_map_manufacture.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Most of the spots were either uninteresting or not working, but I was able to take that shot:&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="/art/urban/2025-12-02_DSC8280-en"&gt;
&lt;img alt="a photo of the city, a tramway going by in front of it." src="https://rsc.aligot-death.space/images/720/art/urban/2025-12-02_DSC8280.jpg" style="width: 70%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;I love that shot, which is actually why I’m so disappointed that the drones won’t be visible from here (they would be behind the darkest building of the top left corner)&lt;/p&gt;
&lt;p&gt;The next day I used these tests shots to estimate where the drones would actually be visible.&lt;/p&gt;
&lt;p&gt;I used an &lt;a class="reference external" href="https://www.pointsinfocus.com/tools/depth-of-field-and-equivalent-lens-calculator"&gt;online tool&lt;/a&gt; to calculate Point of View width and height at a given distance, and open data (mainly Wikipedia and Open Street Map) to get buildings’ size to use as a vertical ruler.&lt;/p&gt;
&lt;p&gt;I also had to resort to dark arcanes: &lt;strong&gt;maths&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;maths&lt;/strong&gt; were very hard, because they were very advanced and surely not because I suck.&lt;/p&gt;
&lt;div class="on-left desktop-only figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl_2025_map_mandela.png"&gt;
&lt;img alt="a map with a point on Mandela's park" src="https://rsc.aligot-death.space/images/480/articles/fdl_2025_map_mandela.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="float-left figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_mandela_300mm_maths.png"&gt;
&lt;img alt="bad math on piece of paper, me, 2025" src="https://rsc.aligot-death.space/images/480/articles/fdl2025_mandela_300mm_maths.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="float-right figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_mandela_300mm_sim.png"&gt;
&lt;img alt="a photo showing a frame simulating a 300mm lens" src="https://rsc.aligot-death.space/images/480/articles/fdl2025_mandela_300mm_sim.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Still, I'm satisfied. I wasn’t able to do a proper photo-bike adventure in several years, and realized how much I missed this.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="section-3"&gt;
&lt;h2&gt;2025-12-05&lt;a class="headerlink" href="#section-3" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Fête des lumières’ first day.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Based on the previous run, I chose to start the first day of the event with the Doua’s Campus (north-east). It’s not the most interesting zone, but it’s not too far from my home, and a fairly safe bet given the low verticality of the neighborhood. After that I want to try a few spots in villeurbanne, and then around the Part-Dieu train station.&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_day_1_map.png"&gt;
&lt;img alt="a map showing points around the city, and the position of the drones." src="https://rsc.aligot-death.space/images/480/articles/fdl2025_day_1_map.png" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="on-left desktop-only figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl_2025_map_BU.png"&gt;
&lt;img alt="a map with a point on the University Library" src="https://rsc.aligot-death.space/images/480/articles/fdl_2025_map_BU.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="float-left figure align-center"&gt;
&lt;a class="reference external image-reference" href="/art/urban/2025-12-05_DSC8378-en"&gt;
&lt;img alt="a guy standing in the dark in front of a translucid stairway" src="https://rsc.aligot-death.space/images/720/art/urban/2025-12-05_DSC8378.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="float-right"&gt;&lt;p class="float-right" style="padding: 3rem;font-size: 2rem;line-height: 1.2;text-align: left;"&gt;I went scouting on La Doua’s campus for easy spots before sunset&lt;/p&gt;&lt;/div&gt;&lt;div class="float-left"&gt;&lt;p class="float-left" style="padding: 3rem;font-size: 1.5rem;line-height: 1.2;text-align: right;"&gt;I then went back later, sat on the stairs of the University Library, waiting patiently.&lt;/p&gt;&lt;/div&gt;&lt;div class="float-right figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_doua_waiting.png"&gt;
&lt;img alt="a camera pointed in the distance over some tramways' rails" src="https://rsc.aligot-death.space/images/480/articles/fdl2025_doua_waiting.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;After a while, I noticed some lights above a building:&lt;/p&gt;
&lt;div class="align-center"&gt;
  &lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_doua_fail.jpg" style="background: url('https://rsc.aligot-death.space/images/480/articles/fdl2025_doua_fail.jpg');width: 100%;height: 300px;display: inline-block;background-position: center bottom;background-repeat: no-repeat;background-size: cover;"&gt;
  &lt;/a&gt;
&lt;/div&gt;&lt;p style="text-align: center;font-size: 3rem;font-weight: 900;"&gt;Oh no.&lt;/p&gt;&lt;p&gt;These drones aren’t where they’re supposed to be. Or rather, where I thought they would be.&lt;/p&gt;
&lt;p&gt;After checking my map using the streets and rails as a bearing because my smartphone's gyroscopes are dying (another &lt;em&gt;challenge&lt;/em&gt;), I finally understood what was going on.&lt;/p&gt;
&lt;p&gt;Something obvious.&lt;/p&gt;
&lt;p&gt;The pin on the official map wasn’t the location of the drone show.&lt;/p&gt;
&lt;p&gt;It was where the public is.&lt;/p&gt;
&lt;p&gt;The actual show is above the lake, which means the show was a 100m North East from what I had planned (not so critical) but more importantly, a good 20/30m lower than I had anticipated (way more critical given how little wiggle room I had on the vertical axis).&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_drone_estimated_vs_actual.png"&gt;
&lt;img alt="a 3D view with the estimaed drone position and actual drone position" src="https://rsc.aligot-death.space/images/480/articles/fdl2025_drone_estimated_vs_actual.png" style="width: 60%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Because of that, a &lt;em&gt;lot&lt;/em&gt; of the locations I had painfully found got discarded.&lt;/p&gt;
&lt;blockquote class="pull-quote"&gt;
In this moment, I am heartsore. Not because of any phony god's curse. But because, I am flabbergasted by my idiocy.&lt;/blockquote&gt;
&lt;div class="on-left desktop-only figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl_2025_map_caluire.png"&gt;
&lt;img alt="a map with a point on Caluire" src="https://rsc.aligot-death.space/images/480/articles/fdl_2025_map_caluire.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Freaking out, I tried a shittier spot north of the city, hoping to at least get some data:&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_caluire.jpg"&gt;
&lt;img alt="the drones over a highway in the distance" src="https://rsc.aligot-death.space/images/480/articles/fdl2025_caluire.jpg" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;But it wasn’t great (as planned, because I’m great at planning).&lt;/p&gt;
&lt;p&gt;I started roaming aimlessly, looking at the sky. Going down the docks along the Rhône, I saw a park on the map, 90m meters above my position, the road leading to it with an average grade of 13%.&lt;/p&gt;
&lt;div class="on-right figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl_2025_pain_slope.jpg"&gt;
&lt;img alt="a map showing the slope, with &amp;quot;pain&amp;quot; written several times along it. text box reads: &amp;quot;height: 90m. Avg grade: 13%. Regrets about smoking: several.&amp;quot;" src="https://rsc.aligot-death.space/images/480/articles/fdl_2025_pain_slope.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="on-left desktop-only figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl_2025_map_XR.png"&gt;
&lt;img alt="a map with a point on Croix-Rousse" src="https://rsc.aligot-death.space/images/480/articles/fdl_2025_map_XR.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;I arrived at Montessuy’s viewpoint, and was greeted by a nice view. Not the one I had envisioned, as it’s the opposite of what I wanted in terms of composition, but still. I waited awhile for the drones to appear, and was able to get that shot:&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="/art/urban/2025-12-05_DSC8438e-en"&gt;
&lt;img alt="drones in front of the skyscrapers, a menacing red building next to them" src="https://rsc.aligot-death.space/images/full/art/urban/2025-12-05_DSC8438e.jpg" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;After three or four shows, I decided to take some more picture of the view around me:&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="/art/urban/2025-12-05_DSC8542e-en"&gt;
&lt;img alt="an industrial complex far away" src="https://rsc.aligot-death.space/images/720/art/urban/2025-12-05_DSC8542e.jpg" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Feyzin Refinery, south of the city.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I went home, fairly happy with what I got, and completely exhausted.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="section-4"&gt;
&lt;h2&gt;2025-12-06&lt;a class="headerlink" href="#section-4" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Went to a punk show where friends were playing to help, and had a good time.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="section-5"&gt;
&lt;h2&gt;2025-12-07&lt;a class="headerlink" href="#section-5" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Alright so, while I am happy with what I got, I’m still pissed off that I didn’t get &lt;em&gt;the&lt;/em&gt; shot.&lt;/p&gt;
&lt;p&gt;What I actually wanted is something lower on the horizon (so not from that hill), some industrial shit and ideally drones &lt;em&gt;behind&lt;/em&gt; the skyscrapers (so, from the south of the city).&lt;/p&gt;
&lt;p&gt;I half-assed some calculations to fix my “simulation” (I was too lazy to take distance into account, I just measured the pixels)&lt;/p&gt;
&lt;div class="on-left figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_drone_height_montessuy.jpg"&gt;
&lt;img alt="the previous photo of the drones with markings to try to estimate their height" src="https://rsc.aligot-death.space/images/480/articles/fdl2025_drone_height_montessuy.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;There is two remaining spots: one in vénissieux, and one waaayyyy south-west of Lyon. As I was getting tired, and my calendar was getting a little full for the days to come, I took the decision to focus on vénissieux’s spot.&lt;/p&gt;
&lt;p&gt;Again, I cobbled together a rough simulation of what the shot would look like, based on the focal calculator, google earth and google street view&lt;/p&gt;
&lt;div class="on-right figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_venissieux_300mm_map.png"&gt;
&lt;img alt="a map with a cone supposed to represent a 300mm lens." src="https://rsc.aligot-death.space/images/480/articles/fdl2025_venissieux_300mm_map.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_venissieux_300mm_sim.png"&gt;
&lt;img alt="a frame superimposed on a google street view screenshot to simulate the view of a 300mm lens." src="https://rsc.aligot-death.space/images/480/articles/fdl2025_venissieux_300mm_sim.png" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;&lt;em&gt;(The actual view should be ~4m higher, because of the park)&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;After a long bike trip, I ended up in a dark park above vénissieux industrial neighborhood.&lt;/p&gt;
&lt;p&gt;Here is what I got:&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/_DSC8572s.jpg"&gt;
&lt;img alt="skyscrapers in the distance at night." src="https://rsc.aligot-death.space/images/480/articles/_DSC8572s.jpg" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;div class="on-left desktop-only figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl_2025_map_venissieux.png"&gt;
&lt;img alt="a map with a point on Vénissieux's spot" src="https://rsc.aligot-death.space/images/480/articles/fdl_2025_map_venissieux.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;On the positive side&lt;/strong&gt;: my “simulation” wasn’t too far off.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;On the negative side&lt;/strong&gt;: drones were nowhere to be seen. I waited for an hour and and half, nothing.&lt;/p&gt;
&lt;div class="on-right desktop-only figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/fdl2025_viewfinder_venissieux.jpg"&gt;
&lt;img alt="A camera pointing the city far away" src="https://rsc.aligot-death.space/images/480/articles/fdl2025_viewfinder_venissieux.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Going back home, I found numerous spots for future photos. I also found people having a barbecue in a hidden spot in the middle of an industrial complex while listening to music. It was quite a moment.&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="/art/urban/2025-12-07_DSC8605-en"&gt;
&lt;img alt="a white blob." src="https://rsc.aligot-death.space/images/720/art/urban/2025-12-07_DSC8605.jpg" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;So, that was a massive failure regarding my objectives. But it was fun to do, and I actually got some nice photos out of it.&lt;/p&gt;
&lt;p&gt;All the photos from that journey are available &lt;a class="reference external" href="/tags/fdl_night_crawling_2025"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category><category term="fdl_night_crawling_2025"></category></entry><entry><title>Le charme discret de l’aliénation infantilisante</title><link href="https://aligot-death.space/txt/foodtruck-envy/childish-capital-fr" rel="alternate"></link><published>2025-09-25T00:00:00+02:00</published><updated>2025-09-25T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2025-09-25:/txt/foodtruck-envy/childish-capital-fr</id><summary type="html">&lt;p class="first last"&gt;les joies du management dans l'informatique.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Petite compil’ qui traîne dans mes cartons depuis des années de &lt;em&gt;quirks&lt;/em&gt; de management que j’ai rencontré lors de ma ✨carrière✨. En allant crescendo.&lt;/p&gt;
&lt;div class="section" id="piste-damelioration-donner-son-ame"&gt;
&lt;h2&gt;Piste d’amélioration&amp;nbsp;: donner son âme&lt;a class="headerlink" href="#piste-damelioration-donner-son-ame" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un an que j’étais dans la boîte. Pas au parfum de comment fonctionne une entreprise, on m’explique je vais passer un “entretien individuel”. La façon dont les collègues en parlent, on dirait des sessions de doléances au roi, mais bon.&lt;/p&gt;
&lt;p&gt;On commence par m’expliquer que la boîte a prévu d’augmenter en moyenne les employéxs de 1.5%. C’est moins que l’inflation, mais bon on est pas à ça près. Mais surtout, pour pas être injuste, la boîte a choisi d’augmenter quelques employés de presque beaucoup, et les autres de rien (je vous laisse deviner dans quelle catégorie je suis). Pas sûr de comprendre la logique, mais encore une fois, les voies du management sont impénétrables.&lt;/p&gt;
&lt;p&gt;On me donne alors trois “pistes d’améliorations”, sans contexte. Non, c’est pas un bilan, un bilan on aurait dit ce que j’ai fait de bien et de pas bien. Là, c’est une liste de péchés sur lesquels travailler sur l’année à venir, mais pour être positif on parle de “pistes d’améliorations”.&lt;/p&gt;
&lt;p&gt;Deux d’entre elles sont du style “être plus à jour dans le reporting de mes heures” (je reconnais ce péché mon seigneur), mais la troisième me fait tiquer :&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— Faudrait que tu sois plus impliqué dans la vie sociale de l’entreprise&amp;nbsp;: tu as tendance à partir à 18h et disparaître&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— Comment ça&amp;nbsp;?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— Bah par exemple faudrait aller aux after-works de temps en temps&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Il semblerait que donner 35h de ma vie ne soit pas suffisant&amp;nbsp;: mon année à venir sera donc axée sur le fait d’également dédier mon temps libre à la boîte (manque de bol, le catéchisme quand j’étais gaminx m’a pas converti, mon entretien individuel pas plus).&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="urgent-y-a-du-rab-de-legumes"&gt;
&lt;h2&gt;[URGENT]&amp;nbsp;Y a du rab de légumes&lt;a class="headerlink" href="#urgent-y-a-du-rab-de-legumes" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Une de mes grandes expériences avec le monde de l’entreprise a été mes interactions avec les nazguls du patronat&amp;nbsp;: les &lt;em&gt;happiness managers&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Rien de mieux qu’une journée où un serveur a pété, vous et vos collègues êtes sous l’eau, vous échangez à la fois avec les équipes en aval (devs, business, etc) et en amont (infra, appro, experts)&amp;nbsp;; la boîte mail devient votre trou de serrure pour échanger avec le monde. Et le monde est en feu.&lt;/p&gt;
&lt;p&gt;Et là, surgissant au milieu de professionnelxs en train d’utiliser 110% de leur cerveau, un mail taggé “URGENT” pour bypass les filtres de tout le monde, intitulé&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;[URGENT] Rappel&amp;nbsp;: tournoi de pétanque ce vendredi :) inscrivez vous&amp;nbsp;!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il va sans dire que la personne qui envoie ça, happiness manager de son état, est sans doute payé le triple de mon salaire de prestataire débutantx qui s’est fait enfler.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="la-methode-disc"&gt;
&lt;h2&gt;La méthode DISC&lt;a class="headerlink" href="#la-methode-disc" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On nous fait passer un questionnaire, avec à chaque fois quatre réponses. Une fois qu’on a répondu aux questions, on nous met dans une catégorie. Et attention, c’est là que ça devient grocervo&amp;nbsp;: il y a quatre catégories, les quatre couleurs primaires, &lt;a class="reference external" href="https://www.youtube.com/watch?v=7TcfhntQdYg"&gt;quadricolore&lt;/a&gt;. Et c’est un truc du style “Hmmm rouge t’es le genre à foncer, bleu tu communiques, vert t’es dans le soin des autres, jaunes t’es créatifx”. Et vu que ça se voit un peu qu’ils ont juste cherché “signification des couleurs dans le monde occidental”, ils complexifient ça un peu, attention accrochez-vous, en disant qu’on a une couleur “secondaire”. Moi vu que je panique quand on me demande de m’auto-qualifier, surtout avec des critères arbitraires, jme suis retrouvéx partout pareil. En me nudgeant un peu, on  m’a mis “Jaune avec un peu de rouge”.&lt;/p&gt;
&lt;p&gt;Et là le management s’en mêle&amp;nbsp;: parce qu’ils sont pas à court d’idées révolutionnaires, “une bonne équipe c’est une équipe qui a un peu de toutes les couleurs”. Du coup ils ont éclaté des équipes fonctionnelles, aussi bien d’un point de vue humain que projet, et ont fait des équipes de randoms qui se connaissent à peine et dont les postes ne correspondaient à rien entre eux pour la journée, “pour l’expérience” (conclusion de la journée&amp;nbsp;: ça servait à rien).&lt;/p&gt;
&lt;p&gt;Mais parce qu’on cherche touxtes à comprendre le monde et à s’accrocher à la moindre source de sens, et parce que dans le management le monde est bien étroit et qu’on s’ébahit de tout et n’importe quoi, on a eu à droit à deux semaines de «&amp;nbsp;&lt;em&gt;Forcément tu proposes ça, c’est bien une idée de jaune secondaire ça&amp;nbsp;!&lt;/em&gt;&amp;nbsp;»&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="le-therapeute-du-feutre-professionnel"&gt;
&lt;h2&gt;Le thérapeute du feutre professionnel&lt;a class="headerlink" href="#le-therapeute-du-feutre-professionnel" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Une fois par mois, on avait droit à un “rétro quelque chose” (ma mémoire de cette époque est floue).&lt;/p&gt;
&lt;p&gt;En gros, notre équipe d’une demie douzaine de personne allait en réunion avec un mec, qui débarquait de Paris le jour J avec des centaines de feutres et des feuilles, et il nous demandait comment s’est passé le mois précédent.&lt;/p&gt;
&lt;p&gt;Et là, c’était spectaculaire&amp;nbsp;: il suffisait qu’on dise «&amp;nbsp;&lt;em&gt;Baahh, avec le projet Bidule on a été un peu sous l’eau et—&lt;/em&gt;&amp;nbsp;» pour qu’il fasse «&amp;nbsp;&lt;em&gt;Ah oui&amp;nbsp;? Sous l’eau&amp;nbsp;?&amp;nbsp;»&lt;/em&gt; et se mette à dessiner un océan avec un PC sous la surface. Ça en devenait presque un jeu de dire un truc du style «&amp;nbsp;&lt;em&gt;c’est un peu un tir à la corde avec l’infra en ce moment&lt;/em&gt;&amp;nbsp;» et voir ses yeux s’illuminer et dessiner un serveur avec une corde autour.&lt;/p&gt;
&lt;p&gt;Et ça durait comme ça pendant deux heures,&lt;/p&gt;
&lt;p&gt;À la fin on avait un dessin qui, et j’aimerai inventer, était collé sur le mur de notre open-space. Et on avait donc une série de dessin de chaque mois, derrière le chef de projet, censé nous montrer l’évolution du &lt;strike&gt;petit Kevin&lt;/strike&gt; projet.&lt;/p&gt;&lt;p&gt;Nul doute que le salaire de ce mec égalait à minimum celui des happiness managers.&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>A quick and dirty pelican search engine</title><link href="https://aligot-death.space/txt/guides/pelican-search-en" rel="alternate"></link><published>2025-08-24T00:00:00+02:00</published><updated>2025-08-24T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2025-08-24:/txt/guides/pelican-search-en</id><summary type="html">&lt;p class="first last"&gt;A hacky solution to provide a search engine on a pelican-powered website&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Static website are wonderful: they require very little maintenance, are usually very lightweight and don't require fancy environments.&lt;/p&gt;
&lt;p&gt;The problem is that they aren't really made for anything &amp;quot;dynamic&amp;quot;, such as internal search engines. Some solutions exist, like &lt;a class="reference external" href="https://lunrjs.com/"&gt;Lunr&lt;/a&gt;, &lt;a class="reference external" href="https://pagefind.app/"&gt;Pagefind&lt;/a&gt; and &lt;a class="reference external" href="https://gohugo.io/tools/search/"&gt;others&lt;/a&gt;, but they usually are compatible with other static website frameworks but not pelican (or at least, not without considerable work), and may require some amount of external tools.&lt;/p&gt;
&lt;p&gt;But search engines can be useful. So, on a slow day, I tried to make a self-contained search engine for Pelican, using nothing but vanilla templates and JS.&lt;/p&gt;
&lt;p&gt;You can see the simplified demo to look at the code &lt;a class="reference external" href="/search_demo"&gt;here&lt;/a&gt;, and the real one with some nasty stuff &lt;a class="reference external" href="/search"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The approach is as follow: make a page with a template, which contains a list of all the articles and desired attributes, including the whole (text) content, and use javascript to filter that. Clean (kinda) and simple.&lt;/p&gt;
&lt;p&gt;First, create a simple page in &lt;tt class="docutils literal"&gt;content/pages&lt;/tt&gt; (or your page directory), here using RestructuredText (but you can use Markdown if you prefer, obviously):&lt;/p&gt;
&lt;pre class="code rst literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt;&lt;span class="gh"&gt;Search (Demo)&lt;/span&gt;
&lt;span class="ln"&gt; 2 &lt;/span&gt;&lt;span class="gh"&gt;#############&lt;/span&gt;
&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nc"&gt;:date:&lt;/span&gt; 2025-08-24&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nc"&gt;:template:&lt;/span&gt; custom/search_demo&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nc"&gt;:slug:&lt;/span&gt; search_demo&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nc"&gt;:lang:&lt;/span&gt; en&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nc"&gt;:status:&lt;/span&gt; published&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 9 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nc"&gt;:summary:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;10 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;11 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;This is a simplified version of my pelican's search system for demo purposes
&lt;/pre&gt;
&lt;p&gt;Then, create a template under &lt;tt class="docutils literal"&gt;theme/templates/custom&lt;/tt&gt;, for instance named &lt;tt class="docutils literal"&gt;search_demo.html&lt;/tt&gt; to match the provided template above (yes, you can omit the .html). Let's start with your run of the mill stuff:&lt;/p&gt;
&lt;pre class="code html+jinja literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;extends&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;base.html&amp;quot;&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="ln"&gt; 2 &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- template: custom/search_demo.html --&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;block&lt;/span&gt; &lt;span class="nv"&gt;content&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt; &lt;span class="na"&gt;class &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;search&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;block&lt;/span&gt; &lt;span class="nv"&gt;content_title&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endblock&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;page.title&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;class &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;summary&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;page.summary&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nf"&gt;striptags&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 9 &lt;/span&gt;
&lt;span class="ln"&gt;10 &lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;page.content&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;
&lt;span class="ln"&gt;11 &lt;/span&gt;
&lt;span class="ln"&gt;12 &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;main&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- /#content --&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt;13 &lt;/span&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endblock&lt;/span&gt; &lt;span class="nv"&gt;content&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Now, let's populate the page. For that purpose, we're going to create a loop with the jinja templating engine, which lists every article as a &lt;tt class="docutils literal"&gt;li&lt;/tt&gt; element under a &lt;tt class="docutils literal"&gt;ul&lt;/tt&gt; list. Because the script only use the actual text, we can get fancy and have titles, dates, categories, etc.&lt;/p&gt;
&lt;p&gt;Under the &lt;tt class="docutils literal"&gt;{{ page.content }}&lt;/tt&gt;, put the following code:&lt;/p&gt;
&lt;pre class="code html+jinja literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt; &lt;span class="na"&gt;class &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;search&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 2 &lt;/span&gt;  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="na"&gt;id &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;list&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 3 &lt;/span&gt;    &lt;span class="cm"&gt;&amp;lt;!-- List articles by recent date --&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 4 &lt;/span&gt;    &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;article&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;articles&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nf"&gt;sort&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;attribute&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'date'&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;reverse&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kp"&gt;True&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="ln"&gt; 5 &lt;/span&gt;    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 6 &lt;/span&gt;      &lt;span class="cm"&gt;&amp;lt;!-- handle &amp;quot;save_as&amp;quot; url override --&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 7 &lt;/span&gt;      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;href &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;article.save_as&lt;/span&gt; &lt;span class="cp"&gt;%}{{&lt;/span&gt; &lt;span class="nv"&gt;article.save_as&lt;/span&gt; &lt;span class="cp"&gt;}}{%&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="cp"&gt;%}{{&lt;/span&gt; &lt;span class="nv"&gt;article.url&lt;/span&gt; &lt;span class="cp"&gt;}}{%&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;article.title&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 8 &lt;/span&gt;      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;class &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;date&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;article.locale_date&lt;/span&gt;&lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;article.category&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;category&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;SITEURL&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;article.category.url&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;article.category&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt; &lt;span class="cp"&gt;%}{%&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;article.tags&lt;/span&gt; &lt;span class="cp"&gt;%}{%&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="nv"&gt;tag&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;article.tags&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="na"&gt;class &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;tag&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;SITEURL&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;tag.url&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{{&lt;/span&gt; &lt;span class="nv"&gt;tag&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endfor&lt;/span&gt; &lt;span class="cp"&gt;%}{%&lt;/span&gt; &lt;span class="k"&gt;endif&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="ln"&gt; 9 &lt;/span&gt;        &lt;span class="cm"&gt;&amp;lt;!-- don't show the whole article, but we need the whole content for search purposes --&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt;10 &lt;/span&gt;        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="na"&gt;style &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;max-width: 100ch; max-height: 4rem; overflow: hidden;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt;11 &lt;/span&gt;          &lt;span class="cm"&gt;&amp;lt;!-- get article content, but strip any html or codes --&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt;12 &lt;/span&gt;          &lt;span class="cp"&gt;{{&lt;/span&gt;&lt;span class="nv"&gt;article.content&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nf"&gt;striptags&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nf"&gt;escape&lt;/span&gt; &lt;span class="cp"&gt;}}&lt;/span&gt;
&lt;span class="ln"&gt;13 &lt;/span&gt;        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt;14 &lt;/span&gt;    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt;15 &lt;/span&gt;    &lt;span class="cp"&gt;{%&lt;/span&gt; &lt;span class="k"&gt;endfor&lt;/span&gt; &lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;span class="ln"&gt;16 &lt;/span&gt;  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;ul&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt;17 &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;section&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Now, if you generate your website, you should have a page under &lt;tt class="docutils literal"&gt;/search_demo&lt;/tt&gt; containing everything on your website.&lt;/p&gt;
&lt;p&gt;To make it easier to use, the content of the articles is visually truncated: but the text is still here.&lt;/p&gt;
&lt;p&gt;Now, let's add a filtering system. First off, add a search field above the &lt;tt class="docutils literal"&gt;ul&lt;/tt&gt;:&lt;/p&gt;
&lt;pre class="code html+jinja literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt;  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;class &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;search_field&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt;2 &lt;/span&gt;    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;search&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;placeholder&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Search...&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;oninput&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;filterByName(event)&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt;3 &lt;/span&gt;  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;And now, the actual code. As said in the comment, it's based on &lt;a class="reference external" href="https://medium.com/&amp;#64;cgustin"&gt;Chris Gustin&lt;/a&gt;'s search snippet, except I changed its behavior, so it doesn't show anything unless you type something. You can put that script in a file if you want, but here for conciseness I just added a &lt;tt class="docutils literal"&gt;&amp;lt;script&amp;gt;&lt;/tt&gt; tag, right above the &lt;tt class="docutils literal"&gt;&amp;lt;section&amp;gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;pre class="code html+jinja literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt;&lt;span class="cm"&gt;&amp;lt;!-- https://medium.com/&amp;#64;cgustin/tutorial-simple-search-filter-with-vanilla-javascript-fdd15b7640bf --&amp;gt;&lt;/span&gt;
&lt;span class="ln"&gt; 2 &lt;/span&gt;
&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;filterByName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;searchTerm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;target&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="kd"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;listItems&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;querySelectorAll&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;ul#list li&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nx"&gt;listItems&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;forEach&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 9 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;10 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c1"&gt;// If the search bar is empty, display nothing instead of all the articles&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;11 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;searchTerm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;12 &lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'none'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;13 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;14 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;15 &lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="c1"&gt;// set &amp;quot;display: none;&amp;quot; on all articles not containing the search terms&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;16 &lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;innerText&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;toLowerCase&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;includes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;searchTerm&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;17 &lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'none'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;18 &lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;19 &lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;20 &lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'revert'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;21 &lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;22 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;23 &lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;24 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;25 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;script&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Now, the page shows nothing except the search field. But if you start typing, it should list the corresponding results.&lt;/p&gt;
&lt;p&gt;Performances are decent: my website has 800+ articles (albeit most of them just being a single image under &lt;a class="reference external" href="/art"&gt;art&lt;/a&gt;, but also some pretty big articles). The whole webpage with all the text I created in almost ten years is about 1MB.&lt;/p&gt;
&lt;p&gt;A big caveat however: right now, it's only able to search for full expressions, such as &amp;quot;sky is obscured&amp;quot;, but not combined words like &amp;quot;obscured sky mont thou&amp;quot;.&lt;/p&gt;
&lt;p&gt;You can download the whole template &lt;em&gt;as is&lt;/em&gt; here:&lt;/p&gt;
&lt;p&gt;
  &lt;a class="reference external" href="/articles/search_demo.html" download&gt;search_demo.html&lt;/a&gt;
&lt;/p&gt;</content><category term="txt"></category><category term="pelican"></category></entry><entry><title>Concilier fête et rage : réflexions sur les prides</title><link href="https://aligot-death.space/txt/anarchy/fete-et-rage-fr" rel="alternate"></link><published>2025-06-01T00:00:00+02:00</published><updated>2025-06-01T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2025-06-01:/txt/anarchy/fete-et-rage-fr</id><summary type="html">&lt;p class="first last"&gt;C'est le grand débat chaque année&amp;nbsp;: la fête serait politique, mais la pride dépolitisée. Résultat, un débat circulaire qui dure tout le mois de juin. J'en ai discuté avec des potes et des camarades.&lt;/p&gt;
</summary><content type="html">&lt;div class="contents topic" id="content"&gt;
&lt;p class="topic-title"&gt;&lt;a class="reference internal" href="#top"&gt;Content&lt;/a&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference internal" href="#nos-existences-sont-politiques" id="toc-entry-1"&gt;Nos existences sont politiques&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#la-fete-est-politique" id="toc-entry-2"&gt;La fête est politique&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#faire-la-fete-a-la-fete" id="toc-entry-3"&gt;Faire la fête à la fête&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#la-fete-comme-une-force-et-non-une-fin" id="toc-entry-4"&gt;La fête comme une force et non une fin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;Ahhh, juin… le soleil, les orages, et le traditionnel rendez-vous politique de l’année&amp;nbsp;: la grande danse des débats circulaires sur la fête et la politique.&lt;/p&gt;
&lt;p&gt;On connaît la chorée&amp;nbsp;: certainxs se plaignent que les prides en france sont pas assez politiques, les autres rétorquent que la fête, c’est déjà politique, et c’est vrai. Mais en attendant, les prides ressemblent vachement à des festivals mouvants, avec une couche de peinture arc-en-ciel. Alors les cortèges auto-proclamés “politiques” jouent des coudes avec des cortèges festifs mais-attention-politiques-aussi et si t’as un peu de chance ta compagnie aérienne favorite distribue des stylos aux couleurs chatoyantes. Le mois passe et c’est fini.&lt;/p&gt;
&lt;p&gt;Les semaines et mois avant ce défilé sont entrelacés de réunions chaotiques entre inter-orgas molles, structures politiques et groupements de faits revendicatifs, qui se sont écharpés dans des débats interminables sur quoi faire de la pride cette année. Et la réponse est généralement toujours la même, grosso merdo un copier-collé de l’année précédente, mais en appuyant plus encore sur “la situation politique inquiétante”&amp;nbsp;; pourtant par une magie insaisissable, plus le temps passe, moins les prides sont “impactantes”.&lt;/p&gt;
&lt;p&gt;Du coup cette année encore, y a des bruits de couloir qu’il y aura une contre-pride de nuit radicale révolutionnaire.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Même si j'ai en vrai des opinions assez tranchées, j'essaye dans cet article d'aborder le sujet d'une manière plus sereine et nuancée. Il est nourri de toutes les expériences diverses et contradictoires que j'ai pu avoir. Mais c'est aussi le résultat de pleins de discussions que j'ai pu avoir ces dernières années avec des gens qui ont des rapports différents à la fête et aux prides, et j'essaye de faire honneur à l'énergie investie par ces personnes dans ces dicussions avec moi. J'espère que ça pourra alimenter les réflexions des unxs et des autres, et poser les bases d'un débat plus constructif.&lt;/em&gt;&lt;/p&gt;
&lt;div class="section" id="nos-existences-sont-politiques"&gt;
&lt;h2&gt;Nos existences sont politiques&lt;a class="headerlink" href="#nos-existences-sont-politiques" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Nos existences sont politiques. Chaque bouffée d’air que je prends sans ta validation, sans ta permission, est l’expression d’un refus de plier face à un système qui m’est hostile. Et le fait de reconnaître ça, de l'accepter et d'y faire face, c'est déjà faire de la politique. S'afficher plutôt que se cacher, c'est déjà revendiquer. Te revendiquer c'est la seule chose que t'es peut-être obligéx de faire (si t’es déjà sortix du placard), à moins de te renier complètement.&lt;/p&gt;
&lt;p&gt;Alors oui, ça c’est le discours de fond. Mais si tu me permets de danser avec les mots, je dirais pas que nos existences sont politiques&amp;nbsp;: elles sont &lt;em&gt;politisées&lt;/em&gt;. Elles le sont dans le sens où, notre présence dans l’espace public, notre acceptation et au fond notre droit de vivre est soumis à la chose politique, et donc sujet à débats dans le plus grand des calmes. Mais dire qu’elles sont politiques, dans le sens ou notre simple présence suffit à constituer un acte militant actif, ça sent l’arnaque&amp;nbsp;: &lt;em&gt;Gagnez des droits facilement et rapidement, sans efforts&lt;/em&gt;. Lutter est, par définition, difficile. Tout le monde n’a pas la même capacité à s’investir. Certainxs ont plus à perdre que d’autres, rien n’est gagné, et certainxs n’ont juste pas le choix de se battre avec le peu qu’iels ont à donner.&lt;/p&gt;
&lt;p&gt;Sauf que même si le fond de l’air pue la merde, le fait est que la situation n’est plus la même qu’il y a 50 ans. Le fait qu’on existe et qu’on est partixs pour rester quoi qu’il se passe, quoi qu’ils nous envoient dans la gueule, n’est même plus sujet à débats. On est visible, ça y est. Et ça en fait clairement chier certains. Il s’agit de rester sous les projecteurs. Sauf que, qu’est ce qu’on veut faire sur scène, maintenant qu’on y est&amp;nbsp;?&lt;/p&gt;
&lt;p&gt;Revendiquer son droit d'exister, espérer normaliser sa présence dans l'espace public c'est grosso modo là ou en sont les prides en France à quelques cortèges près ces dernières années. Une fois par an les gens peuvent pas ignorer notre existence&amp;nbsp;: les &lt;em&gt;queers&lt;/em&gt; sont en ville, et les fafs ont pas d’autre choix que de serrer les dents en attendant que ça passe. Au pire, ils ruminent des sujets tangentiels sur CNEWS.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="la-fete-est-politique"&gt;
&lt;h2&gt;La fête est politique&lt;a class="headerlink" href="#la-fete-est-politique" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Du coup plutôt que traverser les rues avec un un petit pins arc-en-ciel discret comme le reste de l’année, on profite de l’occasion pour célébrer. S’emparer des rues et crier fort qu’on est là&amp;nbsp;: c’est un moment de liberté&amp;nbsp;: on est entouréxs des nôtres. On crée une bulle où on peut paradoxalement cesser de se poser trop de questions. Juste, vivre et profiter.&lt;/p&gt;
&lt;p&gt;J’ai l’impression que c’est en partie la raison pour laquelle certainxs s’offusquent qu’on (r)amène de la politique politicarde dans les prides&amp;nbsp;: on vient pourrir ce qui est perçu comme un des rares moments de joie pour certaines personnes avec nos histoires de revendications et de rapports de force.&lt;/p&gt;
&lt;p&gt;Pour beaucoup de personnes, les placardiséxs, les “juste-unx-alliéx-mais-jpeux-piquer-tes-docs” et le tout-venant queer, les prides sont des moments trop rares de sociabilisation. C’est en ça que la fête est politique&amp;nbsp;: la fête c’est l’occasion de se rencontrer, d’échanger et de vivre un truc ensemble. Donc si on cherche à t’isoler et t’écraser, la “fête” est une de ces rares bouffées d’oxygène dans une vie sinon oppressante. La culture LGBTI+ est marquée par l’héritage des ballrooms ; si on parle de descente de keufs dans un bar, on est obligéxs de préciser lequel&amp;nbsp;; même les backrooms (pas celles de feldup, en tout cas aux dernières nouvelles) qui sont en soi juste des espaces “pour baiser” son emprises de revendications politiques et de lutte contre la répression et les diktats.&lt;/p&gt;
&lt;p&gt;Les vieux de la vieille dans nos communautés soulignent parfois que de nos jours, on oublie aussi de célébrer nos petites victoires et nos non-défaites. Peut-être qu'on devrait s'autoriser à décompresser un peu avant de sauter dans le combat suivant. Prendre le temps malgré l'urgence, faire du care collectif en soufflant un peu, construire des moments de vie positifs, c'est aussi politique.&lt;/p&gt;
&lt;p&gt;En fait, même les teufs pas spécifiquement LGBTI+ sont politiques&amp;nbsp;: les free parties sont non-seulement des espaces de revendication de l’espace public et d’autonomie face à la machine consumériste, mais c’est aussi des espaces de solidarité et d’entraides basés sur des pratiques comme la Réduction des Risques et le care, et systématiquement traversés de réflexions sur les addictions, les VSS et les modes de distribution &lt;a class="footnote-reference" href="#footnote-1" id="footnote-reference-1"&gt;[1]&lt;/a&gt;. Ces teufs sont &lt;a class="reference external" href="https://www.rue89lyon.fr/2025/04/10/lyon-manifestive-pour-defendre-free-parties-samedi-12-avril/"&gt;réprimées&lt;/a&gt;, les stacks confisqués, des gens mutiléxs voire même &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Mort_de_Steve_Maia_Cani%C3%A7o"&gt;tuéxs&lt;/a&gt;.&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="footnote-1" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;ça a été accessoirement un coup à mon égo en y allant de voir que je pouvais me faire out-shlaguer.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La preuve même, on pourrait faire une sociologie de la fête. Les formes que celle-ci prend dépendent de qui les fait&amp;nbsp;: c’est bien qu’à un moment, y a quelque chose de politique qui se joue. Selon si t’es de la team canette sur les quais, teuf dans un hangar à l’abandon, ballroom, boîte de nuit, bar bobo ou soirée posée dans un appart du CROUS, ça en dit beaucoup sur ton origine sociale.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="faire-la-fete-a-la-fete"&gt;
&lt;h2&gt;Faire la fête à la fête&lt;a class="headerlink" href="#faire-la-fete-a-la-fete" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Sauf que le glissement est évident. À aseptiser ces espaces de toute politique autre que notre revendication d’exister, on finit par juste faire la fête. Ne reste plus qu'un mot d’ordre acide et percutant comme « &lt;em&gt;les discriminations, ça suffit&amp;nbsp;!&lt;/em&gt; »&lt;a class="footnote-reference" href="#footnote-2" id="footnote-reference-2"&gt;[2]&lt;/a&gt; que tout le monde ignore.&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="footnote-2" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-2"&gt;[2]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;La présence d’un point d’exclamation aura fait l’objet de deux réunions mouvementées confrontant soc-dems et centristes&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Malheureusement, c’est pas suffisant. C’est pas pour distribuer des cartes de qui a le droit de se prétendre “engagéx” pour nos &lt;em&gt;droits&lt;/em&gt;, c’est juste un constat de la situation.&lt;/p&gt;
&lt;div class="on-left figure"&gt;
&lt;a class="reference external image-reference" href="/art/2019-06-14_000011-en"&gt;
&lt;img alt="une banderole lisant &amp;quot;Ni Collomb ni mastercard nos fiertés ne sont pas sponsorisables&amp;quot;" src="https://rsc.aligot-death.space/images/320/art/pride_de_nuit_2019/2019-06-14_000011.JPG" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Pride de Nuit de Lyon 2019&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Ici à Lyon, le concept de pride est poussé dans ses retranchements. Fut un temps, la &lt;em&gt;Lesbian and Gay Pride&lt;/em&gt; (LGP), une inter-orga de syndicats et d’associations, tenait la pride lyonnaise. La situation était catastrophique&amp;nbsp;: la pride était en soi “politisée”, puisqu’elle était libérale. Après un &lt;a class="reference external" href="https://www.flickr.com/photos/bertrandchambarlhac/42823307482/in/album-72157697583216294"&gt;cortège de tête sauvage en 2018&lt;/a&gt;, un &lt;a class="reference external" href="https://tetu.com/2019/06/17/que-sest-il-passe-a-la-marche-des-fiertes-de-lyon/"&gt;accrochage en 2019&lt;/a&gt;, une &lt;a class="reference external" href="https://www.heteroclite.org/2019/09/table-ronde-centre-58301"&gt;discussion houleuse&lt;/a&gt;, des &lt;a class="reference external" href="https://www.rue89lyon.fr/2023/11/20/lyon-exclusions-scission-centre-lgbti-concretise/"&gt;exclusions&lt;/a&gt;, une pandémie et un changement d’association, la pride lyonnaise s’affiche aujourd’hui comme foncièrement engagée, à coup de mots d’ordre qui font grincer la préfecture et de cortèges non-mixtes revendicatifs à la tête. Problème, si les cortèges à l’avant sont revendicatifs, mécaniquement, le reste l’est pas, ou peu. C’est pas faute que les personnes de l'orga ont essayé. Des associations opposées à tout ça ont même tentées d’organiser une sorte de “contre-pride” sous la forme d’une “Rue de l’Amour”, pour défendre vaillamment le droit de vendre nos luttes locales. Pourtant, la situation est bien pire dans d’autres villes.&lt;/p&gt;
&lt;p&gt;Célébrer l’amour. Merde. C’est donc ça les luttes “LGBTI+”&amp;nbsp;? À en croire les discours de certainxs, tout est gagné, on en est basiquement juste au stade du peaufinage. Encore un effort, et on aura fini de se faire absorber par le capitalisme.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="la-fete-comme-une-force-et-non-une-fin"&gt;
&lt;h2&gt;La fête comme une force et non une fin&lt;a class="headerlink" href="#la-fete-comme-une-force-et-non-une-fin" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Certes, Act-Up proclame que &lt;span style="background-color: var(--darkest);color: var(--lightest);padding: 0.125rem;font-weight: 900;"&gt;&lt;span aria-hidden="true" style="color: #d80163;margin-right: 0.25rem;"&gt;▲&lt;/span&gt;DANSER = VIVRE&lt;/span&gt;. Mais Act-Up n'a pas fait que danser. Danser est peut-être nécessaire, mais ça ne suffit pas. On peut pas résumer cet héritage à une envie de fête.&lt;/p&gt;
&lt;p&gt;Certes, &lt;em&gt;Stonewall était une émeute&lt;/em&gt;, comme on l’entend souvent dans les prides les plus politisées. Mais Marsha P. Johnson a fait plus que “lancer la première brique”. Elle était une force motrice dans sa communauté locale et promouvait l’entraide concrète et organisait la solidarité.&lt;/p&gt;
&lt;div class="on-right figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/pride_de_nuit_lyon_2022.png"&gt;
&lt;img alt="Une affiche lisant &amp;quot;Certes fierxs, mais surtout vénerxs&amp;quot;" src="https://rsc.aligot-death.space/images/480/articles/pride_de_nuit_lyon_2022.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;L'affiche de la Pride de Nuit de Lyon 2022&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Les concerts punks, en tout cas dans leur jus originel, s’appuient sur des réseaux de lieux alternatifs, des réseaux de communication et de distribution DIY, et constituent au delà de simples événements l’occasion de former des réseaux de solidarité dans des communautés ultra-précarisées.&lt;/p&gt;
&lt;p&gt;La pride en tant que fête, c’est certes un moment pour se ressourcer, mais c’est aussi un moment pour se rendre compte qu’on est pas seulx. C’est une manif quoi. On se rend compte qu’on a le pouvoir de prendre des trucs, plus que de les demander poliment, par le simple fait qu’on est nombreuxs. Et parce qu’on le peut et que ça les emmerdes, on se permet de faire ça dans la joie&amp;nbsp;: parce que des moments où on se sent fortxs, y en a pas tant. C’est toute la raison de l’existence des prides de nuit notamment. La première à Lyon a eu lieu en &lt;a class="reference external" href="https://rebellyon.info/Communique-Post-Pride-de-nuit-par-le-18848?nb=10"&gt;mars 2018&lt;/a&gt; en réponse à des agressions LGBTIphobes. Le but était de reprendre la rue, en particulier la nuit, certes, mais se faisant c’était aussi l’occasion de porter des revendications qui allaient au delà de ça.&lt;/p&gt;
&lt;p&gt;On peut discuter tout la journée de si “la fête est intrinsèquement politique”. Mais en vrai, quand on parle de “politiser la fête”, on parle de quelque chose de plus profond.&lt;/p&gt;
&lt;p&gt;Un des problèmes, c’est l’engagement, au sens primaire du terme. Pour qu’une manif soit le résultat d’un travail collectif, et porte ainsi une vraie dimension communautaire, il faut que les personnes qui s’y rendent soient plus qu’un chiffre. Or ces dernières années plus que jamais, le mode d’action est à la “consommation” d’événements militants, queer ou non. Pour beaucoup de gens, ces prides sont de fait, là, par la magie des choses, il n’y a pas grand chose à faire hormis y aller. On peut pas attendre de tout le monde de pouvoir grimper sur la barricade, mais c’est nécessaire de construire aujourd’hui un engagement collectif actif pour que nos luttes soient plus que des dates et des chiffres de préfecture. Parce qu’une pride, comme tous les mouvements, ça se construit. Certes dans le sens où ça se fait pas tout seul, mais aussi dans le sens où sa portée dépend entièrement de l’investissement de la communauté qu’elle représente.&lt;/p&gt;
&lt;p&gt;Et si vous avez la solution magique pour créer ça, on est un paquet de monde à chercher comment faire.&lt;/p&gt;
&lt;p class="purple"&gt;&lt;em&gt;Merci aux camarades avec qui j'ai eu de longues discussions sur le sujet alors que le jour s'éteignait autour d'une calouche&lt;/em&gt;&lt;/p&gt;
&lt;hr class="hatched"&gt;&lt;p&gt;&lt;em&gt;Paris Is Burning (1990) — IMBD&lt;/em&gt; &lt;a class="reference external" href="https://www.imdb.com/title/tt0100332/"&gt;https://www.imdb.com/title/tt0100332/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pourquoi une Pride de nuit à Lyon avant la Marche des Fiertés LGBT&amp;nbsp;?&lt;/em&gt; — Rue89Lyon &lt;a class="reference external" href="https://www.rue89lyon.fr/2018/06/15/pourquoi-une-pride-de-nuit-a-lyon-avant-la-marche-des-fiertes-lgbt/"&gt;https://www.rue89lyon.fr/2018/06/15/pourquoi-une-pride-de-nuit-a-lyon-avant-la-marche-des-fiertes-lgbt/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;La Pride de nuit est-elle toujours la version radicale de la « Gay Pride »&amp;nbsp;?&lt;/em&gt; — Vice &lt;a class="reference external" href="https://www.vice.com/fr/article/la-pride-de-nuit-est-elle-toujours-la-version-radicale-de-la-gay-pride/"&gt;https://www.vice.com/fr/article/la-pride-de-nuit-est-elle-toujours-la-version-radicale-de-la-gay-pride/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Mort de Steve Maia Caniço à Nantes en 2019&amp;nbsp;: le commissaire Grégoire Chassaing relaxé&lt;/em&gt; — Le Monde &lt;a class="reference external" href="https://www.lemonde.fr/societe/article/2024/09/20/mort-de-steve-maia-canico-a-nantes-en-2019-le-commissaire-gregoire-chassaing-relaxe_6325464_3224.html"&gt;https://www.lemonde.fr/societe/article/2024/09/20/mort-de-steve-maia-canico-a-nantes-en-2019-le-commissaire-gregoire-chassaing-relaxe_6325464_3224.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;France&amp;nbsp;: des violences policières lors d’une free-party à Redon&lt;/em&gt; — Amnesty International &lt;a class="reference external" href="https://www.amnesty.fr/liberte-d-expression/actualites/france-violences-policieres-pendant-une-freeparty-redon"&gt;https://www.amnesty.fr/liberte-d-expression/actualites/france-violences-policieres-pendant-une-freeparty-redon&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Réforme des retraites&amp;nbsp;: scènes choquantes d'une intervention de police devant un bar queer&lt;/em&gt; — Têtu &lt;a class="reference external" href="https://tetu.com/2023/03/29/video-dixieme-journee-manifestation-contre-reforme-retraites-interpellation-police-bar-queer/"&gt;https://tetu.com/2023/03/29/video-dixieme-journee-manifestation-contre-reforme-retraites-interpellation-police-bar-queer/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Des corps qui bougent&lt;/em&gt; — Delyo &lt;a class="reference external" href="https://www.delyo.be/blog/rants/2025-02-19-des-corps-qui-bougent/"&gt;https://www.delyo.be/blog/rants/2025-02-19-des-corps-qui-bougent/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Manifestive Tekno Anti Rep le samedi 12 avril&lt;/em&gt; — Rebellyon &lt;a class="reference external" href="https://rebellyon.info/Lyon-Manifestive-Tekno-Anti-Rep-28095"&gt;https://rebellyon.info/Lyon-Manifestive-Tekno-Anti-Rep-28095&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>Trois jours dans l’enfer synthétique : la bataille numérique du 21 mai 2025</title><link href="https://aligot-death.space/txt/foodtruck-envy/guerre-synthetique-fr" rel="alternate"></link><published>2025-05-29T00:00:00+02:00</published><updated>2025-08-18T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2025-05-29:/txt/foodtruck-envy/guerre-synthetique-fr</id><summary type="html">&lt;p class="first last"&gt;Compte rendu de la bataille numérique du 21 mai 2025&lt;/p&gt;
</summary><content type="html">&lt;div class="contents topic" id="content"&gt;
&lt;p class="topic-title"&gt;&lt;a class="reference internal" href="#top"&gt;Content&lt;/a&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference internal" href="#the-murderin-cannons-roar" id="toc-entry-1"&gt;the murderin' cannons roar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#lhumour-particulier-de-lunivers" id="toc-entry-2"&gt;L’humour particulier de l’univers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#sarah-connor" id="toc-entry-3"&gt;Sarah Connor&amp;nbsp;?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#un-jour-pour-rien" id="toc-entry-4"&gt;Un jour pour rien&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#un-diner-en-enfer-a-emporter-sil-vous-plait" id="toc-entry-5"&gt;Un diner en enfer (à emporter s’il vous plait)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#epilogue-le-charme-discret-de-reddit" id="toc-entry-6"&gt;Épilogue&amp;nbsp;: Le Charme discret de reddit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;Ahhh, tenir son propre serveur informatique. La promesse de la liberté numérique. La joie de voir son site web s’affiche n’importe où.&lt;/p&gt;
&lt;p&gt;Ce qu’on te dit pas quand tu t’engages sur les mers numériques, c’est qu’elles sont bien agitées. Engagez-vous, rengagez-vous, qu’ils disaient…&lt;/p&gt;
&lt;p&gt;Rien de bien nouveau. “De tout temps…” comme disent 95% des devoirs d’histoire géo, le web était rempli de scrapers, de bots, de scanners, qui prennent un malin plaisir à venir toquer à ta porte. Quel souvenir que celui de naïvement ouvrir un &lt;em&gt;Raspberry Pi&lt;/em&gt; au monde, pour découvrir deux semaines plus tard qu’il peine à servir la moindre page web. Alors on regarde les journaux d’activité, on découvre avec effroi l’ampleur de désastre, et on apprend à protéger son rafiot. Caches, blacklists, et on découvre le débat sans fin sur les “WAF”.&lt;/p&gt;
&lt;p&gt;Sauf qu’une rumeur tourne depuis quelques temps dans les ports parmi les marins&amp;nbsp;: un monstre d’un nouveau genre hanterait les hautes mers. Des aspirateurs de données, qui à l’image de leur sombres desseins, ne serait que bruit et désordre. Des “crawlers” motivés par &lt;em&gt;l’IA&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Malheureusement, celleux qui parlent sont des cassandres numériques&amp;nbsp;: les quelques témoignages qui surgissent sont automatiquement décrédibilisés par celleux qui ne l’ont pas vécu&amp;nbsp;: &lt;em&gt;«&amp;nbsp;non mais c’est juste des bots, tu viens de débarquer sur le web ou quoi&amp;nbsp;?&amp;nbsp;»&lt;/em&gt;, &lt;em&gt;«&amp;nbsp;suffit de mettre un fail2ban et—&amp;nbsp;»&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Alors voilà ma pierre à l’édifice. Les témoignages commencent à se multiplier, et avec un peu de chance, les gens finiront par y prendre au sérieux.&lt;/p&gt;
&lt;p&gt;Par souci d’accessibilité, je vais &lt;em&gt;tenter&lt;/em&gt; ici de raconter ce qu’il s’est passé de la manière la moins technique possible, ou alors en expliquant. Les néophytes devraient pouvoir comprendre, et les “sachant-es” m’excuseront j’espère les quelques approximations techniques. Ça n'a pas vocation à être un post-mortem précis. Je vais aussi parler &amp;quot;d'IA&amp;quot; par souci de simplicité, mais qu'on s'entende, c'est un terme qui veut rien dire. C'est cet amalgame de technos de machine learning de nouvelle génération là.&lt;/p&gt;
&lt;p&gt;Les notes que j’avais prises à la base durant ce périple étaient assez sombres, et c’est pas non plus le but de faire déprimer. Donc je me suis un peu lâchéx sur les métaphores et la poésie. On s'occupe comme on peut.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ô toi qui navigues sur les mers numériques, ne prends pas mes mots à la légère. J’ai vu la bête immonde. Ta naïveté ne témoigne que d’une chose&amp;nbsp;: ta chance insolente de ne pas l’avoir croisée&amp;nbsp;!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Bon ok, peut-être pas autant que ça.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Mention de tabac, d’alcool, traitement et détresse psy&lt;/em&gt;&lt;/p&gt;
&lt;div class="section" id="the-murderin-cannons-roar"&gt;
&lt;h2&gt;the murderin' cannons roar&lt;a class="headerlink" href="#the-murderin-cannons-roar" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;13 novembre 2024, captain’s logs.&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;Ça fait déjà une dizaine d’années que je suis sur les mers.&lt;/p&gt;
&lt;p&gt;Parmi les serveurs que je gère, il y a celui d’une association. Un des services proposés par celle-ci, c’est un “Koha”. Un logiciel de bibliothèque qui permet aux personnes de découvrir des livres et archives, pour certains rares, et éventuellement savoir où elles peuvent les consulter ou les emprunter, le tout ouvert au grand public, car le but est aussi de faire découvrir.&lt;/p&gt;
&lt;p&gt;Autrement dit, de la donnée “structurée”. Et ça, ça en fait une cible de choix pour des entreprises peu scrupuleuses qui veulent exploiter ces données ou entraîner leur &lt;em&gt;IA&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Les voiles de ce bateau sont tissées de fils d’or et d’argent.&lt;/p&gt;
&lt;p&gt;Ce jour là, des utilisateurices se plaignent de grosses lenteurs sur le koha. Mais bon, c'est pas mon premier incident, donc quand je me rend compte que le site rame effectivement sévèrement, je tombe pas de ma chaise.&lt;/p&gt;
&lt;p&gt;Une vérification rapide confirme le diagnostic évident&amp;nbsp;: les bots font la fête dans les “logs” pendant que les humains se mangent des chargements infinis.&lt;/p&gt;
&lt;p&gt;Des logs “web”, ça ressemble à ça (anonymisé par souci de sécurité), une liste des “gens” qui se connectent avec quelques infos&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code apache literal-block"&gt;
&lt;span class="nb"&gt;example&lt;/span&gt;.com&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;185.191.171.6&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;[22/May/2025:00:01:18&lt;span class="w"&gt; &lt;/span&gt;+0000]&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;GET /cgi-bin/koha/&amp;lt;a-long-query&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;200&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3989&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;example&lt;/span&gt;.com&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;187.252.196.191&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;[22/May/2025:00:00:56&lt;span class="w"&gt; &lt;/span&gt;+0000]&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;GET /cgi-bin/koha/&amp;lt;a-long-query&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;200&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3387&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0 rv:4.0; nb-NO) AppleWebKit/534.23.4 (KHTML, like Gecko) Version/4.0.3 Safari/534.23.4&amp;quot;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Ça fait peur quand on connaît pas, mais c’est pas aussi complexe que ça en a l’air.&lt;/p&gt;
&lt;p&gt;Dans l’ordre, on a&amp;nbsp;:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;example.com&lt;/tt&gt; le site (pour les techos, c’est des logs &lt;cite&gt;COMBINED&lt;/cite&gt;)&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;185.191.171.6&lt;/tt&gt; &lt;span class="red"&gt;une adresse IP, sorte de plaque d’immatriculation de votre PC/smartphone sur les internet&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;[22/May/2025:...]&lt;/span&gt;&lt;/tt&gt; la date&lt;/li&gt;
&lt;li&gt;&lt;tt class="docutils literal"&gt;&amp;quot;GET &lt;span class="pre"&gt;/cgi-bin...&amp;quot;&lt;/span&gt;&lt;/tt&gt; la page web demandée, typiquement par une “méthode” &amp;quot;GET&amp;quot; suivi de par exemple de &amp;quot;/accueil&amp;quot; pour la page &amp;quot;example.com/accueil&amp;quot;&lt;/li&gt;
&lt;li&gt;quelques autres informations (code http, taille de la requête, etc)&lt;/li&gt;
&lt;li&gt;&lt;span class="red"&gt;et un “User Agent”&lt;/span&gt; &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;&amp;quot;Mozilla/5.0...&amp;quot;&lt;/span&gt;&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ce &lt;span class="red"&gt;“User Agent”&lt;/span&gt;, c’est en quelque sorte le “passeport” de votre navigateur web&amp;nbsp;: en gros, si vous ouvrez une page sur un smartphone, votre navigateur informe bien gentiment le site web “Bonjour, C’est Safari depuis un appareil sous iOS”&lt;/p&gt;
&lt;p&gt;Et généralement, on sépare les connexions bienveillantes ou malveillantes via l’&lt;span class="red"&gt;adresse IP&lt;/span&gt;, le &lt;span class="red"&gt;User Agent&lt;/span&gt; (UA) ou les deux.&lt;/p&gt;
&lt;p&gt;Par exemple, on verra venir toquer à notre porte un User-Agent “GoogleBot”&amp;nbsp;: lui typiquement, on préférera le laisser rentrer, pour que notre site soit listé dans les résultats de recherche de google. Inversement, des adresses IPs venues de centres de données aléatoires auront tendance à être mal vues&amp;nbsp;: c’est possiblement quelqu’un qui a déployé un “bot” (pour de bonnes ou de mauvaises raisons) et qui scanne notre site.&lt;/p&gt;
&lt;p&gt;Le jeu donc, c’est à partir de ces simples informations, de trouver un pattern pour séparer le bon grain de l’ivraie. Et parce qu’on va pas réinventer la roue, il existe des listes toutes faites, voire même des logiciels de “comparaison”, pour faire ce travail pour nous.&lt;/p&gt;
&lt;p&gt;Mais le web est en mouvement perpétuel. Donc des fois, certains passent entre les mailles du filet.&lt;/p&gt;
&lt;p&gt;Alors, on ajuste les protections et on passe à autre chose.&lt;/p&gt;
&lt;p&gt;Je me pose pas plus de questions.&lt;/p&gt;
&lt;p&gt;Un jour comme un autre sur le web.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="lhumour-particulier-de-lunivers"&gt;
&lt;h2&gt;L’humour particulier de l’univers&lt;a class="headerlink" href="#lhumour-particulier-de-lunivers" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;tt class="docutils literal"&gt;20 mai 2025, captain’s logs.&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— Et toi nemecle, côté numérique, un truc à ajouter pour le rapport d’activité de 2024&amp;nbsp;?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;— Non non rien de spécial, du Maintien en Conditions Opérationnelles… Ah, si, on s’est fait défoncer par des bots en novembre, mais c’est bon c’est géré&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Quelque part dans la grande machinerie de l’univers, un contrôleur se réveille en sursaut en entendant cette phrase, et ce faisant trébuche sur un levier.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sarah-connor"&gt;
&lt;h2&gt;Sarah Connor&amp;nbsp;?&lt;a class="headerlink" href="#sarah-connor" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="on-left" style = "background: none"&gt;&lt;p style="text-align: left;margin: 1rem;background-color: white;width: fit-content;border-radius: 0.25rem;border: 1px solid var(--orange);line-height: 1.2;"&gt;LA GUERRE DU WEB&lt;br&gt;
&lt;i&gt;pouet pouet&lt;/i&gt;&lt;br&gt;
A COMMENCÉ&lt;br&gt;
&lt;i&gt;pouet pouet&lt;/i&gt;&lt;br&gt;
ON SE BATTRA POUR LA GAGNER&lt;br&gt;
ON SE BATTRA POUR LE GARDER&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;tt class="docutils literal"&gt;le lendemain, captain’s logs.&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;10h du matin, Je prends tranquillement mon café.&lt;/p&gt;
&lt;p&gt;Ah. Le koha répond plus. Mais alors plus du tout cette fois.&lt;/p&gt;
&lt;p&gt;Je fonce sans sourciller voir les logs du serveur, et là…&lt;/p&gt;
&lt;div class="center figure"&gt;
&lt;img alt="des gremlins foutant le boxon dans un cinéma, tiré du film du même nom" src="https://rsc.aligot-death.space/images/full/articles/gremlins_cinema.gif" style="width: 50%;" /&gt;
&lt;p class="caption"&gt;caméra 1&amp;nbsp;: les logs&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Je sens que ce matin va être compliqué.&lt;/p&gt;
&lt;p&gt;Les lignes défilent à raisons de plusieurs dizaines par secondes&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code apache literal-block"&gt;
&lt;span class="nb"&gt;example&lt;/span&gt;.com&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;181.199.62.50&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;[21/May/2025:11:22:55&lt;span class="w"&gt; &lt;/span&gt;+0000]&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;GET /cgi-bin/koha/opac-search.pl?&amp;lt;a-long-query&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;302&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3678&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 6.2; Trident/5.1)&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;example&lt;/span&gt;.com&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;172.56.171.179&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;[21/May/2025:11:22:54&lt;span class="w"&gt; &lt;/span&gt;+0000]&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;GET /cgi-bin/koha/opac-search.pl?&amp;lt;a-long-query&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;200&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;18284&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Opera/9.40.(X11; Linux i686; se-NO) Presto/2.9.169 Version/12.00&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nb"&gt;example&lt;/span&gt;.com&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;45.229.90.10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;-&lt;span class="w"&gt; &lt;/span&gt;[21/May/2025:11:22:55&lt;span class="w"&gt; &lt;/span&gt;+0000]&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;GET /cgi-bin/koha/opac-search.pl?&amp;lt;a-long-query&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;302&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;3678&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Mozilla/5.0 (Windows; U; Windows NT 4.0) AppleWebKit/534.19.4 (KHTML, like Gecko) Version/5.0.5 Safari/534.19.4&amp;quot;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Bon. On panique pas. Dans cette purée de texte, il y a, quelque part, un pattern qu’il suffit d’identifier pour ajuster les protections.&lt;/p&gt;
&lt;p&gt;Y a des dizaines de milliers d’adresses IP différentes. Voire des centaines de milliers. Jamais la même. Ah.&lt;/p&gt;
&lt;p&gt;Et les fameux User-Agent&amp;nbsp;?…&lt;/p&gt;
&lt;p&gt;— Bonjour, c’est la &lt;tt class="docutils literal"&gt;dernière version de chrome… Sous Windows 98 &amp;gt;:D&lt;/tt&gt; !&lt;/p&gt;
&lt;p&gt;— Hein&amp;nbsp;? Euh… Et toi&amp;nbsp;?&lt;/p&gt;
&lt;p&gt;— Moi c’est &lt;tt class="docutils literal"&gt;Bob&lt;/tt&gt; !&lt;/p&gt;
&lt;p&gt;— Non mais—&lt;/p&gt;
&lt;p&gt;— “Bonjour&amp;nbsp;! Moi c’est &lt;tt class="docutils literal"&gt;Chrome, sous Safari, version 15683, option Salade Tomate Oignon&lt;/tt&gt; !&lt;/p&gt;
&lt;p&gt;Et le pire dans tout ça&amp;nbsp;? Beaucoup (même si pas toutes) de ces IPs sont dites “résidentielles”&amp;nbsp;: en termes plus simples, les connexions ne viendraient pas de serveurs, mais bien d’utilisateurices. Sauf que vu la gueule des user agents, c’est pas possible.&lt;/p&gt;
&lt;div class="center figure"&gt;
&lt;img alt="Cypher du film Matrix regardant les écrans de code avec le faux sous-titre &amp;quot;All I see is garbage”" src="https://rsc.aligot-death.space/images/320/articles/cypher_all_is_garbage.jpg" style="width: 50%;" /&gt;
&lt;/div&gt;
&lt;p&gt;Bon.&lt;/p&gt;
&lt;p&gt;Bon. Bon. Bon.&lt;/p&gt;
&lt;p&gt;Une descente d’organe caféinée plus tard, je me ressaisix. J’étais par chance tombéx au fil des semaines sur des témoignages sur ces attaques d’un genre nouveau. Après quelques recherches, j’ai un plan de bataille&amp;nbsp;: on va utiliser &lt;a class="reference external" href="https://github.com/spithash/apache-ultimate-bad-bot-blocker"&gt;Apache Bad Bot Blocker&lt;/a&gt; pour trouver les salopards, et les rediriger vers &lt;a class="reference external" href="https://iocaine.madhouse-project.org/"&gt;iocaine&lt;/a&gt;&amp;nbsp;: en gros, identifier les bots, et au lieu de les bloquer et de risquer qu’ils reviennent à la charge, leur servir de la merde.&lt;/p&gt;
&lt;p&gt;Dans mon terminal, je garde une fenêtre qui m’affiche les logs qui défilent pendant que je travaille. Dans un rituel théâtral, je jette parfois un regard assassin à celle-ci de temps en temps. Tant que ça bouge, je continue.&lt;/p&gt;
&lt;div class="on-right" style = "background: none"&gt;&lt;p style="text-align: left;margin: 1rem;background-color: white;width: fit-content;border-radius: 0.25rem;border: 1px solid var(--orange);line-height: 1.2;"&gt;Dans la marine, on insulte tout ce qui bouge et on reload tout ce qui ne bouge pas&lt;/p&gt;&lt;/div&gt;&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;3h du matin.&lt;/p&gt;
&lt;p&gt;La tâche s’est révélée plus ardue que prévue&amp;nbsp;: Koha, pour toutes les fonctionnalités qu’il a, reste un logiciel de niche et avec ses spécificités&amp;nbsp;: les guides existants pour Apache Bad Bot Blocker, ainsi que les ressources de support, ne sont pas d’une grande aide pour mon cas particulier.&lt;/p&gt;
&lt;p&gt;Le serveur est toujours sous assaut constant. J’ai les yeux qui font mal, et les lignes de configuration se brouillent devant moi. Ma gorge pique&amp;nbsp;:  à chaque rechargement un peu long, j’en profite pour me fumer une clope. J’en ai fumé beaucoup.&lt;/p&gt;
&lt;p&gt;Je m’avale une canette, et m’endors, plus assomméx par les logs qui défilent que par l’alcool.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="un-jour-pour-rien"&gt;
&lt;h2&gt;Un jour pour rien&lt;a class="headerlink" href="#un-jour-pour-rien" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le jour qui suit, je me réveille je me lève comme un diable en boite&amp;nbsp;: généralement le désespoir chez moi, c’est plus une force motrice qu’un mur. Hormis une sortie sociale le soir, j’ai une journée complète devant moi, et pleins d’infos dans la tête. Un café, un petit dej, de la ritaline et on s’y lance.&lt;/p&gt;
&lt;p&gt;[…]&lt;/p&gt;
&lt;p&gt;2h du matin.&lt;/p&gt;
&lt;p&gt;La journée n’a servie à rien. Je pensais que je me plantais dans l’installation de Apache Bad Bot Blocker, mais c’est pire que ça&amp;nbsp;: c’est juste qu’il ne détecte pas ces bots là.&lt;/p&gt;
&lt;p&gt;Une journée de perdue.&lt;/p&gt;
&lt;p&gt;Je me rends à l’évidence&amp;nbsp;: c’est pas possible de trier ces bots sur la base des IPs et des User Agents. Y a pas de pattern, point. les scrapers ont réussi à trouver la recette&amp;nbsp;: exploiter des terminaux d’utilisateurices légitimes avec des User Agents générés aléatoirement. Je fais le lien avec des &lt;a class="reference external" href="https://www.trendmicro.com/en_us/research/23/b/hijacking-your-bandwidth-how-proxyware-apps-open-you-up-to-risk.html"&gt;articles&lt;/a&gt; que j’avais vu &lt;a class="reference external" href="https://thehackernews.com/2024/04/malicious-apps-caught-secretly-turning.html"&gt;passer&lt;/a&gt;&amp;nbsp;: des entreprises vendent des solutions logiciels consistant à injecter dans des applications destinées au grand public du code permettant à des entreprises de payer pour passer par les appareils des gens pour scanner le webs.&lt;/p&gt;
&lt;p&gt;Bilan&amp;nbsp;: les logs ne sont plus que du bruit. Au sens statistique du terme. Y a rien à faire.&lt;/p&gt;
&lt;p&gt;La seule solution, c’est de faire de l’&lt;em&gt;heuristique&lt;/em&gt;&amp;nbsp;: se baser sur le “comportement” des utilisateurices pour détecter les bots.&lt;/p&gt;
&lt;p&gt;À ce stade je choisis l’option nucléaire. Demain, j’installe &lt;a class="reference external" href="https://anubis.techaro.lol/"&gt;Anubis&lt;/a&gt;&amp;nbsp;: un logiciel qui “soumet un challenge mathématique” lors de la connexion pour ralentir les utilisateurices qui spamment un peu trop un site. Plus tu tapes fort, plus le challenge est difficile. Une maizena numérique en gros.&lt;/p&gt;
&lt;p&gt;Je voulais à tout pris éviter cette solution car une partie du public visée par le site n’est pas très au fait de l’outil numérique&amp;nbsp;: alors voir apparaître une image d’anime lors de la connexion au koha, c’était le meilleur moyen de leurs faire peur.&lt;/p&gt;
&lt;p&gt;Mais je suis fatiguéx, et le site est toujours hors-ligne… Pour les humains du moins.&lt;/p&gt;
&lt;p&gt;Je me couche de la même manière que la nuit précédente.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="un-diner-en-enfer-a-emporter-sil-vous-plait"&gt;
&lt;h2&gt;Un diner en enfer (à emporter s’il vous plait)&lt;a class="headerlink" href="#un-diner-en-enfer-a-emporter-sil-vous-plait" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="on-right" style = "background: none"&gt;&lt;p style="text-align: left;margin: 1rem;background-color: white;width: fit-content;border-radius: 0.25rem;border: 1px solid var(--orange);line-height: 1.2;"&gt;Capitaine ! Capitaine ! Vous n’êtes pas læ capitaine !       &lt;/p&gt;&lt;/div&gt;&lt;p&gt;Je reprends le même petit déjeuner, et je me re-prépare pour une journée marathon.&lt;/p&gt;
&lt;p&gt;2h…&lt;/p&gt;
&lt;p&gt;Plus tard.&lt;/p&gt;
&lt;p&gt;Une présence bienveillante apparaît sur mon écran&amp;nbsp;: la mascotte d’Anubis. Coucou toi&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;Une seconde après, mon navigateur affiche &lt;em&gt;«&amp;nbsp;Bienvenue sur le catalogue !&amp;nbsp;»&lt;/em&gt;&amp;nbsp;pour la première fois depuis trois jours.&lt;/p&gt;
&lt;p&gt;Anubis est installé. Ça a été beaucoup, beaucoup plus rapide que ce que je pensais.&lt;/p&gt;
&lt;p&gt;Enfin.&lt;/p&gt;
&lt;p&gt;Je ressens même pas de joie, même pas l’extasie de quand on règle un problème informatique habituellement, façon puzzle. J’envoie mécaniquement un mail de fin d’incident aux utilisateurices, et je reprends ma vie.&lt;/p&gt;
&lt;p&gt;J’ai eu un contre-coup dans les jours qui ont suivi, Même en re-corrigeant l’hygiène de vie. Ça m’a pesé. J’en ai parlé avec mes proches. J’ai passé trois jours dans le trou, physiquement et moralement, et ça me travaillait.&lt;/p&gt;
&lt;p&gt;J’ai eu l’impression de me faire bully hors du web. C’était très, très désagréable.&lt;/p&gt;
&lt;p&gt;J’ai passé la semaine à saisir chaque occasion pour mettre en garde mes collègues techos et mes camarades&amp;nbsp;: il y a des bêtes affreuses d’un genre nouveau qui rôde sur les mers du web. Il y a quelque chose de cassé, sur les internets.&lt;/p&gt;
&lt;p&gt;Et évidemment, cet article s’inscrit dans cette démarche.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="epilogue-le-charme-discret-de-reddit"&gt;
&lt;h2&gt;Épilogue&amp;nbsp;: Le Charme discret de reddit&lt;a class="headerlink" href="#epilogue-le-charme-discret-de-reddit" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mettre en garde les collègues c’est bien, mais mettre en garde le grand public c’est mieux. Pour beaucoup de gens, l’informatique se fait toute seule&amp;nbsp;: à l’ère du cloud, même quand on sait que “y a des gens qui travaillent dans ce domaine”, les arcanes de &lt;em&gt;tölva&lt;/em&gt; sont impénétrables pour le commun des mortels.&lt;/p&gt;
&lt;p&gt;Surtout que malgré toutes les prétentions de l’association et de mon activité, il s’agit d’un territoire à part de l’informatique&amp;nbsp;: le “small web”. De l’informatique artisanale, loin des géants du web et leurs trillions de budget.&lt;/p&gt;
&lt;p&gt;Alors je me fends d’un post sur le subreddit r/france&amp;nbsp;: le but assumé, c’est sensibiliser au fait que le fer de lance du capitalisme de l’information ne touche pas que les artistes, traducteurices, designers… mais aussi les petites mains de l’informatique.&lt;/p&gt;
&lt;p&gt;J’essaye de faire un poste pas trop chargé techniquement, mais sans non plus évacuer les enjeux techniques.&lt;/p&gt;
&lt;p&gt;Quelle erreur.&lt;/p&gt;
&lt;p&gt;Alors, le gros des réponses est “positif”, dans le sens où les gens répondent “aïe aïe aïe, mais quel enfer, force à toi”.&lt;/p&gt;
&lt;p&gt;Mais j’ai aussi droit à une vingtaine de techos, qui, en dépit du style et de la structure de ce texte de mise en garde, le prennent pour un post-mortem technique.&lt;/p&gt;
&lt;p&gt;Et vu que de la technique, y en a pas beaucoup dedans, c’est que j’ai pas dû en faire beaucoup.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;«&amp;nbsp;Non mais c’est juste des bots, faut vraiment rien y connaître pour croire que ça a quoi que ce soit à voir avec l’IA&amp;nbsp;»&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;«&amp;nbsp;Pfeuh, tout bon sysadmin sait qu’il suffit d’un simple fail2ban et—&amp;nbsp;»&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;«&amp;nbsp;Ah&amp;nbsp;! 1/3 des requêtes retournent un 302, c’est juste tes users qui sont bloqués dans une boucle, incompétentx va&amp;nbsp;»&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;J’ai beau expliquer, que non, les techniques habituelles n’ont pas marché, que je suis pas la seule personne à faire ce constat, que non c’est pas des utilisateurices, que ça touche pour l’instant des services particuliers (git, wiki, et donc dans mon cas, un koha) du fait de leur valeur en terme de données, mais non. Rien n’y fait.&lt;/p&gt;
&lt;p&gt;Nous sommes des cassandres numériques.&lt;/p&gt;
&lt;p&gt;Donc voilà, j’ajoute ma pierre à l’édifice.&lt;/p&gt;
&lt;p&gt;Et si vous voulez le reste de l'édifice, je vous mets quelques liens ici.&lt;/p&gt;
&lt;p&gt;Bon vent sur les mers numériques.&lt;/p&gt;
&lt;hr class="hatched"&gt;&lt;p&gt;Des témoignages d’assaut&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://drewdevault.com/2025/03/17/2025-03-17-Stop-externalizing-your-costs-on-me.html"&gt;Please stop externalizing your costs directly into my face - Drew DeVault's blog&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://jan.wildeboer.net/2025/04/Web-is-Broken-Botnet-Part-2/"&gt;Botnet Part 2: The Web is Broken - Jan Wildeboer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://dryusdan.space/lia-et-forgejo"&gt;L'IA et Forgejo - Dryusdan.space&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://rknight.me/blog/perplexity-doesnt-give-a-shit-about-consent/"&gt;Perplexity Doesn’t Give a Shit About Consent&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://social.anoxinon.de/&amp;#64;Codeberg/115033782514845941"&gt;We apologize for a period of extreme slowness today. The army of AI crawlers just leveled up and hit us very badly. [...] - Codeberg on mastodon&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;L’utilisation d’IPs résidentielles pour scraper le web&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.trendmicro.com/en_us/research/23/b/hijacking-your-bandwidth-how-proxyware-apps-open-you-up-to-risk.html"&gt;Hijacking Your Bandwidth: How Proxyware Apps Open You Up to Risk - trendmicro.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://thehackernews.com/2024/04/malicious-apps-caught-secretly-turning.html"&gt;Malicious Apps Caught Secretly Turning Android Phones into Proxies for Cybercriminals - The Hacker News&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Crawlers et &amp;quot;IA&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.fastly.com/press/press-releases/new-fastly-threat-research-reveals-ai-crawlers-make-up-almost-80-of-ai-bot"&gt;New Fastly Threat Research Reveals AI crawlers make up almost 80% of AI bot traffic, Meta Leads AI Crawling As ChatGPT Dominates Real-Time Web Traffic - Fastly&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.theregister.com/2025/08/21/ai_crawler_traffic/"&gt;AI crawlers and fetchers are blowing up websites, with Meta and OpenAI the worst offenders - The Register&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category><category term="IA"></category></entry><entry><title>Protéger Koha contre les bots avec Anubis</title><link href="https://aligot-death.space/txt/guides/koha-anubis-fr" rel="alternate"></link><published>2025-05-23T00:00:00+02:00</published><updated>2025-05-23T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2025-05-23:/txt/guides/koha-anubis-fr</id><summary type="html">&lt;p class="first last"&gt;Protéger une instance Koha contre les LLMs et autres bots, en utilisant Anubis&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Une instance Koha constitue un stock de données structurées important: du pain béni pour les LLMs et autres scrapers.&lt;/p&gt;
&lt;p&gt;Problème, les entreprises derrière ces bots emploient des méthodes toujours plus vicieuses pour contourner les protections en place. De plus en plus, les techniques classiques (Robots.txt, fail2ban, bloquage d'ASN) ne suffisent plus. Les scrapers exploitent les machines des utilisateurices, génèrent de faux User-Agent, et changent de technique quand elles détectent la mise en place d'une protection.&lt;/p&gt;
&lt;p&gt;Face à ce fléau, deux choix possibles&amp;nbsp;:
* passer par un CDN comme Cloudflare, ce qui peut-être coûteux et réduit l'indépendance&amp;nbsp;;
* mettre en place une détection &amp;quot;heuristique&amp;quot;, basée sur le comportement de la connexion.&lt;/p&gt;
&lt;p&gt;J'ai donc après trois jours à suer, fini par me rabattre sur la deuxième, en particulier Anubis.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;J'écris principalement cet article pour partager une config de vhost apache2 pour protéger Koha avec Anubis&lt;/strong&gt;. Vous la trouverez en &lt;a class="reference external" href="#la-config"&gt;bas de la page&lt;/a&gt;. Mais si ça vous intéresse, j'ai écrit toute la procédure d'installation et de configuration.&lt;/p&gt;
&lt;div class="section" id="installer-anubis"&gt;
&lt;h2&gt;Installer Anubis&lt;a class="headerlink" href="#installer-anubis" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Anubis va, pour expliquer très rapidement, donner un &amp;quot;challenge&amp;quot; lors de la connexion (via le javascript). En fonction du comportement (typiquement, le nombre de connexions), le challenge sera plus ou moins simple.&lt;/p&gt;
&lt;p&gt;Si ça vous intéresse, il y a une explication plus détaillée dans la doc &lt;a class="reference external" href="https://anubis.techaro.lol/docs/design/how-anubis-works"&gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;La doc de Anubis est assez bien foutu&amp;nbsp;: vous la trouverez &lt;a class="reference external" href="https://anubis.techaro.lol/docs/admin/native-install/"&gt;ici&lt;/a&gt;. Mais la configuration apache de Koha présentant quelques spécificités, j'ai préféré coucher la procédure sur papier (façon de parler), et en profiter pour en faire une en français. Mais le déroulé est grosso-modo celui présenté dans la doc, à quelques exceptions près.&lt;/p&gt;
&lt;p&gt;Commençons donc par télécharger Anubis, en allant sur la page des &lt;a class="reference external" href="https://github.com/TecharoHQ/anubis/releases"&gt;releases sur Github&lt;/a&gt;. Après la liste des changement, il y a les fichiers. Trouvez celui qui correspond à votre système (pensez à cliquer sur &amp;quot;Show 24 assets&amp;quot; si vous voyez pas le vôtre). Dans mon cas, c'est un Debian sous architecture amd64. On fait donc &lt;strong&gt;clic-droit&lt;/strong&gt; sur &lt;tt class="docutils literal"&gt;anubis_1.18.0_amd64.deb&lt;/tt&gt;, &amp;quot;copier le lien&amp;quot;.&lt;/p&gt;
&lt;p&gt;Arrivé sur le serveur, on télécharge le paquet dans un répertoire, par exemple avec &lt;tt class="docutils literal"&gt;wget&lt;/tt&gt; et en mettant l'adresse qu'on a copié&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;wget&lt;span class="w"&gt; &lt;/span&gt;https://github.com/TecharoHQ/anubis/releases/download/v1.18.0/anubis_1.18.0_amd64.deb
&lt;/pre&gt;
&lt;p&gt;Une fois le fichier téléchargé, on peut l'installer en faisant&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;./anubis_1.18.0_amd64.deb
&lt;/pre&gt;
&lt;p&gt;Ensuite, comme indiqué dans la doc, on copie le fichier de config par défaut en lui donnant un nom. Ici, j'ai pris &amp;quot;koha&amp;quot;&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;/etc/anubis/default.env&lt;span class="w"&gt; &lt;/span&gt;/etc/anubis/koha.env
&lt;/pre&gt;
&lt;p&gt;Ensuite pareil pour la &amp;quot;Bot Policies&amp;quot;, qui définit le comportement de Anubis face aux bots&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;cp&lt;span class="w"&gt; &lt;/span&gt;/usr/share/doc/anubis/botPolicies.yaml&lt;span class="w"&gt; &lt;/span&gt;/etc/anubis/koha.botPolicies.yaml
&lt;/pre&gt;
&lt;p&gt;Ensuite on modifie le fichier &lt;tt class="docutils literal"&gt;koha.env&lt;/tt&gt; qu'on a créé, comme ça&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BIND&lt;/span&gt;&lt;span class="o"&gt;=[&lt;/span&gt;::1&lt;span class="o"&gt;]&lt;/span&gt;:8239&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;2 &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;BIND_NETWORK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;tcp&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;3 &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;DIFFICULTY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;4 &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;METRICS_BIND&lt;/span&gt;&lt;span class="o"&gt;=[&lt;/span&gt;::1&lt;span class="o"&gt;]&lt;/span&gt;:8240&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;5 &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;METRICS_BIND_NETWORK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;tcp&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;6 &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;POLICY_FNAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/etc/anubis/koha.botPolicies.yaml&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;7 &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://localhost:3000
&lt;/pre&gt;
&lt;p&gt;Je recommanderai d'utiliser d'autres ports, afin d'éviter que toutes les installations Anubis se ressemblent. Prenez un port juste à côté par exemple.&lt;/p&gt;
&lt;p&gt;On a donc trois ports, que je vous conseille de noter pour pouvoir vous y retrouver pendant l'installation&amp;nbsp;:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;8239&lt;/strong&gt;&amp;nbsp;: Le port sur lequel écoute Anubis, comme un service normal&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3000&lt;/strong&gt;&amp;nbsp;: Le port vers lequel il renverra une fois le challenge passé (où on mettra Koha)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;8240&lt;/strong&gt;&amp;nbsp;: Le port pour le service de &lt;em&gt;metrics&lt;/em&gt;, qui n'est pas essentiel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;On peut maintenant lancer le service Anubis (adaptez la commande si vous l'avez appelé autrement que &amp;quot;koha&amp;quot;)&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;systemctl&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;enable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;--now&lt;span class="w"&gt; &lt;/span&gt;anubis&amp;#64;koha.service
&lt;/pre&gt;
&lt;p&gt;Et vérifier qu'il marche en lançant une requête sur le service de &lt;em&gt;metrics&lt;/em&gt;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
curl&lt;span class="w"&gt; &lt;/span&gt;http://localhost:8240/metrics
&lt;/pre&gt;
&lt;p&gt;Qui devrait vous retourner des stats.&lt;/p&gt;
&lt;p&gt;Au besoin, vous pouvez consulter &lt;a class="reference external" href="https://anubis.techaro.lol/docs/admin/policies/"&gt;la doc&lt;/a&gt; pour customiser le comportement face aux bots. Contrairement à ce que dit actuellement la doc, la configuration par défaut est déjà bien fournie, et laisse passer le Crawler de Google ou encore la Web Archive.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="proteger-koha"&gt;
&lt;h2&gt;Protéger Koha&lt;a class="headerlink" href="#proteger-koha" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Maintenant que Anubis tourne, il faut rediriger le trafic sensé aller vers Koha d'abord vers Anubis.&lt;/p&gt;
&lt;p&gt;À noter que Anubis se fout du &amp;quot;Host&amp;quot;&amp;nbsp;: vous pouvez tout à fait avoir plusieurs vhost/domaines différents derrière Anubis (par exemple, l'OPAC et l'intra), tant qu'ils sont sur le port 3000 (dans notre cas). Anubis s'occupe de tout.&lt;/p&gt;
&lt;p&gt;On va donc à partir de maintenant plus ou mois suivre la page de &lt;a class="reference external" href="https://anubis.techaro.lol/docs/admin/environments/apache"&gt;doc sur la configuration de apache&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Contrairement à ce que dit la doc, pas besoin d'installer le paquet pour mod_proxy_html. Il est déjà intégré depuis longtemps dans apache.&lt;/p&gt;
&lt;p&gt;Donc pour les dépendances, on fait juste&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;-y&lt;span class="w"&gt; &lt;/span&gt;libxml2-dev
&lt;/pre&gt;
&lt;p&gt;Et vous pouvez vous assurer que le module proxy_html est bien actif en faisant&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
a2enmod&lt;span class="w"&gt; &lt;/span&gt;proxy_html
&lt;/pre&gt;
&lt;p&gt;Ensuite, on va dire à apache d'écouter sur un nouveau port. Sur une debian classique, on trouve ça dans &lt;tt class="docutils literal"&gt;ports.conf&lt;/tt&gt;. Mais si vous avez un doute, vous pouvez aller dans le dossier de apache &lt;tt class="docutils literal"&gt;/etc/apache2&lt;/tt&gt;, et faire un &lt;tt class="docutils literal"&gt;grep &lt;span class="pre"&gt;-rn&lt;/span&gt; Listen&lt;/tt&gt; pour voir quel fichier contient cette configuration.&lt;/p&gt;
&lt;p&gt;On &lt;strong&gt;ajoute&lt;/strong&gt; donc cette ligne dans le fichier &lt;tt class="docutils literal"&gt;/etc/apache2/ports.conf&lt;/tt&gt;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
Listen&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;127&lt;/span&gt;.0.0.1:3000
&lt;/pre&gt;
&lt;p&gt;Contrairement aux lignes possiblement déjà présentes, on a un &lt;tt class="docutils literal"&gt;127.0.0.1&lt;/tt&gt;: cela indique à apache d'écouter seulement en local. Il faut pas qu'on puisse se connecter au service depuis l'extérieur, sinon ça permet de contourner Anubis.&lt;/p&gt;
&lt;p&gt;On vérifie que apache est toujours content de la configuration en faisant&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;apache2ctl&lt;span class="w"&gt; &lt;/span&gt;configtest
&lt;/pre&gt;
&lt;p&gt;Et on applique la configuration en rechargeant&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
systemctl&lt;span class="w"&gt; &lt;/span&gt;reload&lt;span class="w"&gt; &lt;/span&gt;apache2
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="la-config"&gt;
&lt;h2&gt;La config&lt;a class="headerlink" href="#la-config" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Enfin, le gros morceau, la configuration du vhost. Koha faisant appel à des fichiers de config externes, ça peut parfois être confus d'appliquer ce genre d'outils. On va pas se mentir, cet article sert à 95% à partager cette configuration.&lt;/p&gt;
&lt;p&gt;J'ai pris le parti, vu que sur mon Koha les inscriptions sont fermées, de ne protéger que l'OPAC, pas l'intra. Mais comme évoqué, Anubis peut gérer plusieurs services sans problème si vous souhaitez adapter la config. Aussi, la config typique qui redirige le http vers le https est dans un autre fichier.&lt;/p&gt;
&lt;p&gt;Je propose ce fichier principalement pour que vous puissiez comparer si vous tentez également l'install. Mais si vous suivez ce guide comme un tutoriel et que vous copiez ce fichier, pensez à le modifier en conséquence.&lt;/p&gt;
&lt;p&gt;Le bouzin&amp;nbsp;:&lt;/p&gt;
&lt;pre class="code apache literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;IfModule&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;mod_ssl.c&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;*:443&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="c"&gt;# &amp;lt;IfVersion &amp;gt;= 2.4&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="c"&gt;#  Define instance &amp;quot;instance&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="c"&gt;# &amp;lt;/IfVersion&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;ServerName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;instance.example.com&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 9 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;ErrorLog&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;${APACHE_LOG_DIR}/instance-anubis_error.log&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;10 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;CustomLog&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;${APACHE_LOG_DIR}/instance-anubis_access.log&lt;span class="w"&gt; &lt;/span&gt;combined&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;11 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;12 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;SSLCertificateFile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/letsencrypt/live/instance.example.com/fullchain.pem&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;13 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;SSLCertificateKeyFile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/letsencrypt/live/instance.example.com/privkey.pem&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;14 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;Include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/letsencrypt/options-ssl-apache.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;15 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;16 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;RequestHeader&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;set&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;X-Real-Ip&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;expr=%{REMOTE_ADDR}&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;17 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;RequestHeader&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;set&lt;span class="w"&gt; &lt;/span&gt;X-Forwarded-Proto&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;https&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;18 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;ProxyPreserveHost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;On&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;19 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;ProxyRequests&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;Off&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;20 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;ProxyVia&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;Off&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;21 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;22 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="c"&gt;# Replace 9000 with the port Anubis listens on&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;23 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;ProxyPass&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;http://[::1]:8239/&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;24 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;ProxyPassReverse&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;http://[::1]:8239/&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;25 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;26 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;*:3000&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;27 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;IfVersion&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;gt;= 2.4&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;28 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="nb"&gt;Define&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;instance&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;instance&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;29 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/IfVersion&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;30 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;Include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/koha/apache-shared.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;31 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c"&gt;# Include /etc/koha/apache-shared-disable.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;32 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;Include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/koha/apache-shared-opac-plack.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;33 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;Include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/koha/apache-shared-opac.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;34 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;35 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;ServerName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;instance.example.com&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;36 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;SetEnv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;KOHA_CONF&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/etc/koha/sites/instance/koha-conf.xml&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;37 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;AssignUserID&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;instance-koha&lt;span class="w"&gt; &lt;/span&gt;instance-koha&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;38 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;39 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;ErrorLog&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sx"&gt;/var/log/koha/instance/opac-error.log&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;40 &lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nb"&gt;CustomLog&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;${APACHE_LOG_DIR}/instance_access.log&lt;span class="w"&gt; &lt;/span&gt;combined&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;41 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;42 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/IfModule&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;43 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;IfModule&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;mod_ssl.c&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;44 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;*:443&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;45 &lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;IfVersion&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;gt;= 2.4&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;46 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;Define&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;instance&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;instance&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;47 &lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/IfVersion&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;48 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;Include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/koha/apache-shared.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;49 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="c"&gt;#  Include /etc/koha/apache-shared-disable.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;50 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;Include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/koha/apache-shared-intranet-plack.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;51 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;Include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/koha/apache-shared-intranet.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;52 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;53 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;ServerName&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;instance-intra.example.com&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;54 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;SetEnv&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;KOHA_CONF&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;/etc/koha/sites/instance/koha-conf.xml&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;55 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;AssignUserID&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;instance-koha&lt;span class="w"&gt; &lt;/span&gt;instance-koha&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;56 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;57 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;ErrorLog&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="sx"&gt;/var/log/koha/instance/intranet-error.log&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;58 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="c"&gt;#  TransferLog /var/log/koha/instance/intranet-access.log&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;59 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;60 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;SSLCertificateFile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/letsencrypt/live/instance.example.com/fullchain.pem&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;61 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;SSLCertificateKeyFile&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/letsencrypt/live/instance.example.com/privkey.pem&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;62 &lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="nb"&gt;Include&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="sx"&gt;/etc/letsencrypt/options-ssl-apache.conf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;63 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;64 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;65 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/IfModule&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
</content><category term="txt"></category><category term="IA"></category></entry><entry><title>Arrêté du 20 mai 2025 portant sur la rénovation de la voix-rie</title><link href="https://aligot-death.space/txt/meta/arrete-du-20-mai-2025-fr" rel="alternate"></link><published>2025-05-20T00:00:00+02:00</published><updated>2025-05-20T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2025-05-20:/txt/meta/arrete-du-20-mai-2025-fr</id><summary type="html">&lt;p class="first last"&gt;Arrêté du 20 mai 2025 portant sur la rénovation de la voix-rie&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Décision n°2025-00001&lt;/p&gt;
&lt;p&gt;Læ maire de ce village digitalz&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VU&lt;/strong&gt;&amp;nbsp;: la netiquette&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VU&lt;/strong&gt;&amp;nbsp;: les normes HTML5/CSS3&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CONSIDÉRANT&lt;/strong&gt;&amp;nbsp;: l'importance capitale d'un web ouvert et accessible&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CONSIDÉRANT&lt;/strong&gt;&amp;nbsp;: la flexibilité du médium permettant à des contenus d'exister au travers de différents formats, et ce afin de se plier aux modes de consultations des e-concitoyenxs&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CONSIDÉRANT&lt;/strong&gt; : que la fonctionnalité dite &amp;quot;TTS&amp;quot; ou &amp;quot;texte vers la voix&amp;quot; présente dans les rues de notre beau village digitalz sous le titre des articles, refuse de marcher depuis plusieurs mois, et ce malgré divers tentatives de pallier à ce problème tels que &amp;quot;réessayer d'appuyer dessus de temps en temps voir si c'est pas tombé en marche&amp;quot;, ou bien encore &amp;quot;piquer le PC/smartphone des potes voir si c'est pas juste chez moi&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DECIDE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ARTICLE 1&lt;/strong&gt;&amp;nbsp;: qu'un jour jour ça serait bien de s'en occuper et d'y réparer quand même&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ARTICLE 2&lt;/strong&gt;&amp;nbsp;: de mettre en place une signalétique indiquant que des travaux sont en cours, quand bien même ils ne sont définitivement pas en cours&lt;/p&gt;
&lt;p&gt;Autant se faire que peut,&lt;/p&gt;
&lt;p&gt;Fait à localhost,&lt;/p&gt;
&lt;div&gt;&lt;span class="block"&gt;nemecle&lt;/span&gt;&lt;/div&gt;</content><category term="txt"></category></entry><entry><title>Archives fracturées</title><link href="https://aligot-death.space/txt/misc/archives-fracturees-fr" rel="alternate"></link><published>2025-05-07T00:00:00+02:00</published><updated>2026-01-05T00:00:00+01:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2025-05-07:/txt/misc/archives-fracturees-fr</id><summary type="html">&lt;p class="first last"&gt;reconstruire son passé, un fichier à la fois&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Régulièrement, des proches me parlent de trucs qu’on a vécu ensemble y a cinq ans, un an, ou même un mois auparavant, et je réagis comme si j’avais pas été là.&lt;/p&gt;
&lt;p&gt;Les seules traces que j’ai de ces vies, hormis les témoignages des autres, c’est mes “archives”. Autrement dit, mes empilements aléatoires de trucs, physiques ou virtuels, réminiscents de telle ou telle époque.&lt;/p&gt;
&lt;p&gt;Le trucs, c’est que jusque là, je faisais pas trop gaffe à ça. Ça fait quelques années déjà que je me pose la question de la “mémoire”, au sens politique du terme, et un peu moins que je participe à des initiatives autour de ce sujet. En plus, entre ma situation instable et une peur panique de trop m’attacher aux objets (un contre-pied de l’époque ou j’étais gaminx et que je m’attachais facilement à des objets), le tas de merdier qui accompagne à peu près tout le monde est dans mon cas, très réduit. J’avais fait un sac des quelques objets souvenirs auxquels je tenais lors d’un déménagement. Au déménagement suivant, il a été mis dans une boîte à chaussures avec de “nouveaux” bibelots mémoriels. Je traîne derrière moi un trou noir sans fond, infiniment dense, de bibelots. Chaque couche plus ancienne, plus compactée par le poids, toujours plus indissociable d’une masse informe.&lt;/p&gt;
&lt;p&gt;Et ma mémoire est pas bien différente : à force de détails évoqués, des événements de ma vie resurgissent, comme enfouis, tassés et compactés dans ma tête. Parfois, ce sont des pans entiers de ma vie, à coup de six mois, un an, qui dégueulent de mon esprit. Ça serait facile d’aller qualifier ça de “mémoire traumatique”, et c’est le cas pour certains d’entre eux. Mais c’est le cas de &lt;em&gt;tous&lt;/em&gt; mes moments de vie.&lt;/p&gt;
&lt;div class="on-left figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/archives_fracturees_notes.jpg"&gt;
&lt;img alt="Des notes prises au stylo sur un canap noir." src="https://rsc.aligot-death.space/images/480/articles/archives_fracturees_notes.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Ces notes, je les ai prises en 2016. Et ça a été le point de départ d’un truc qui prend aujourd’hui encore beaucoup de place dans ma vie. Je les ai perdu depuis. Mais mieux encore, cette photo, sur un canap noir, je l’ai prise en 2017. Et ça, ça a été l’étape suivante de ce périple.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;L’autre conséquence de ce “compactage” façon camion poubelle du psyché, c’est mon incapacité de me situer dans le temps. Tout mes souvenirs, qu’ils aient dix ans ou une semaine, ont dans ma tête eu lieu il y a environ un mois.&lt;/p&gt;
&lt;p&gt;Être un empilement de caillou a du bon. Je suis polymorphe, je m’adapte, la vie peut bien me rouler dessus je me relève. C’est ce qu’on se dit, jusqu’au moment où un semblant de repère jaillit de l’obscurité.&lt;/p&gt;
&lt;p&gt;Et un jour, deux cailloux se sont percutés, et une étincelle a jailli : avec tout ce taff que je fais dans la mémoire de nos communautés et de nos luttes, je suis un peu… une communauté de unx non ?&lt;/p&gt;
&lt;p&gt;Alors je me suis mis à creuser. Parce que là où je me libère facilement des objets, je suis ce qu’on appelle dans certains recoins d’internet unx “Data Horder”. J’accumule des données, jusqu’à plus IOPs.&lt;/p&gt;
&lt;p&gt;J’ai trouvé ma “boîte à souvenirs compactés”, quelque part dans mon cloud maison. Un dossier de synchronisation ici, quelques dossiers éparpillés, une sauvegarde de mon ancien PC. Dans cet ancien PC, un dossier de synchronisation ici, quelques dossiers éparpillés, une sauvegarde de mon ancien-ancien PC. Plusieurs couches de souvenirs numériques.&lt;/p&gt;
&lt;p&gt;À force de copies de sauvegardes en sauvegardes, beaucoup de ces fichiers ont perdu leur contexte. Certains ont perdu leurs infos d’horodatage (la date). Alors je creuse autour : ce fichier n’a pas de date, mais un autre fichier qui y fait référence, lui, en a une. Et parce que son nom suggère mon smartphone d’il y a plus de sept ans, j’ai une fourchette de quand il date. Je fais de l’&lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Analyse_forensique"&gt;analyse forensics&lt;/a&gt; sur ma propre vie.&lt;/p&gt;
&lt;p&gt;Un autre fichier a une date, mais aucun contexte. C’est une photo d’une maison random. Sur la base d’un nom de rue, j’établis que c’est dans une ville en particulier. En cherchant sur d’obscures sites d’extrême gauche, ça me revient : j’étais alléx à &lt;em&gt;cet&lt;/em&gt; événement. Je fais de l’&lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Renseignement_d%27origine_sources_ouvertes"&gt;OSINT&lt;/a&gt; sur ma propre vie.&lt;/p&gt;
&lt;div class="on-right figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/archives_fracturees_soiree.jpg"&gt;
&lt;img alt="Une photo dans un bâtiment industriel avec des décorations queers et un tag &amp;quot;rage et paillettes&amp;quot;" src="https://rsc.aligot-death.space/images/480/articles/archives_fracturees_soiree.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Pour être honnête, j’enquête encore sur le contexte exact de cette photo. Je sais où c'était, je sais à quelle date, je sais que c’était la préparation d’un événement particulier, mais aucune idée de quel événement.&lt;/p&gt;
&lt;/div&gt;
&lt;p class="on-left" style="text-align: center;border-radius: 0.25rem;border: 1px solid var(--green);background-color: white;padding: 1rem;margin: 1rem;background-position: 0px 0px;background-size: 0.25em 0.25em;background-image: radial-gradient(var(--light-green) 20%, #0000 40%);height: fit-content;"&gt;&lt;a class="reference external" href="https://www.lemonde.fr/m-perso/article/2025/03/31/nos-captures-d-ecran-fossiles-de-nos-vies-numeriques_6588574_4497916.html" style="border: none;font-size: 1rem;font-family: Major Mono Display, Consolas, 'DejaVu Sans Mono', monospace;text-transform: lowercase;"&gt;Nos captures d’écran, fossiles de nos vies numériques — Le Monde (Paywall)&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Parfois, les choses sont moins terre à terre : je vois une capture d’écran d’un shop en ligne aléatoire, et je me revois avec ces potes sur un canapé il y a quatre ans à blaguer sur un potentiel achat.&lt;/p&gt;
&lt;div class="on-left figure"&gt;
&lt;a class="reference external image-reference" href="/art/hambi/2_000026-en"&gt;
&lt;img alt="Une cabane très haut dans un arbre, au milieu de la forêt." src="https://rsc.aligot-death.space/images/480/art/hambi/2_000026.JPG" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Certaines archives sont mieux préservées que d’autres. Je sais exactement ce que je faisais là.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;J’ai commencé à télécharger les archives des différentes plateformes que j’utilise et que j’ai utilisé. Cet essaimage de posts, d’échanges, de messages privés ou même de partages d’autres posts, témoigne mieux que mes mots de mon état d’esprit à un instant donné. Ma vie est très numérique : là où les fichiers, et notamment les images, montrent le réel, ces messages révèlent comment je me sentais, face à tout ça.&lt;/p&gt;
&lt;p&gt;Mon objectif à terme, c’est d’utiliser mes connaissances techniques pour digérer toutes ces données, ces messages et ces images, et de les transformer en un flux unique, tout du moins aussi unique que le permettra ma vie morcelée, pour pouvoir retraverser ce qui me manque depuis si longtemps. Une trajectoire passée.&lt;/p&gt;
&lt;p&gt;Parfois, des proches me montrent leur propre “boîte à chaussures”, physique ou virtuelle. Ça a quelque chose de très intime : si tu me montres une photo de toi à l’époque, je saurais à quoi tu ressemblais. Si tu me racontes pourquoi tu as gardé cette grenouille en plastique délavée, je saurais où t’étais dans ta tête, et comment tu le vois aujourd’hui.&lt;/p&gt;
&lt;p&gt;J'ai un truc pour les archives personnelles. Y a rien de plus puissant qu'un témoignage brut de pomme, teinté de toute sa subjectivité.&lt;/p&gt;
&lt;p&gt;Quand tu l'additionne avec d'autres, ça crée un patchwork tellement plus parlant qu'un listing organisé et stérile. Certaines vies se plient pas à la rigueur d’un mètre linéaire. Elles sont un empilement de merdier qui tasse toujours plus les couches en dessous. Et quand tu regardes au fond, c’est souvent pas facile d’en faire sens. On attribue facilement ça au passage du temps, mais en vrai c’est juste comme ça que certaines personnes construisent leur boite.&lt;/p&gt;
&lt;p class="on-right" style="text-align: center;border-radius: 0.25rem;border: 1px solid var(--green);background-color: white;padding: 1rem;margin: 1rem;background-position: 0px 0px;background-size: 0.25em 0.25em;background-image: radial-gradient(var(--light-green) 20%, #0000 40%);height: fit-content;"&gt;&lt;a class="reference external" href="https://notes.xdavidhu.me/notes/how-i-archived-10-years-of-memories-using-spotify" style="border: none;font-size: 1rem;font-family: Major Mono Display, Consolas, 'DejaVu Sans Mono', monospace;text-transform: lowercase;"&gt;How I archived 10 years of memories using Spotify - xdavidhu.me&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Enfin, certaines de ces histoires dépassent ma simple personne : elles se mêlent à celles d’autres personnes. Elles forment parfois même du politique. Et soudain, resurgit le besoin de mémoire politique, de mémoire de nos communautés.&lt;/p&gt;
&lt;p&gt;Les jours où j’ai la flemme de trier, voire même simplement de “sauvegarder”, j’essaye de me rappeler de ça. Que je dois bien ça à mon moi du futur. Certains moments de ma vie sont à jamais perdus, et la perspective que ça puisse réarriver m'angoisse au plus haut point.&lt;/p&gt;
&lt;p&gt;Peut-être qu’un jour, je les &amp;quot;valoriserais&amp;quot; comme on dit dans le milieu, et ça peut-être que ça intéressera quelqu’un.&lt;/p&gt;
&lt;div class="figure" style="text-align: center;background-color: #0000;"&gt;
&lt;a class="reference external image-reference" href="/art/activism/drapeau-noir-sur-le-squat-en"&gt;
&lt;img alt="Le drapeau noir flotte sur le squat." src="https://rsc.aligot-death.space/images/720/articles/archives_fracturees_squat_drapal_noir.jpg" style="width: 60%;border: 1rem solid white;"&gt;
&lt;/a&gt;
&lt;/div&gt;</content><category term="txt"></category></entry><entry><title>L'énergie qui divise: réflexions anarchistes sur le nucléaire</title><link href="https://aligot-death.space/txt/anarchy/nuclear-fr" rel="alternate"></link><published>2024-09-17T00:00:00+02:00</published><updated>2025-05-11T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2024-09-17:/txt/anarchy/nuclear-fr</id><summary type="html"></summary><content type="html">&lt;p&gt;C’est 2019, l’été, dans une forêt paumée en Allemagne. Il fait plus de 40°C à l’ombre : ma peau est ternie par deux semaines à hurler, hilare, “&lt;em&gt;Ein Solution, Nieeeemals Duschen!&lt;/em&gt;” avec mes nouveaux camarades. On est allé au bord du grand trou. À l’horizon, il apparaît : le Bagger 293, un monstre de 14,200 tonnes d’acier, qui dévore la terre pour en extraire le précieux charbon. Je suis partagéx entre l’admiration d’ingénierie que représente cette machine et le dégoût politique qu’elle me provoque. Tout ça pour du charbon.&lt;/p&gt;
&lt;div class="on-right figure"&gt;
&lt;a class="reference external image-reference" href="/art/hambi/000015-en"&gt;
&lt;img alt="un barrio dans la forêt." src="https://rsc.aligot-death.space/images/480/art/hambi/000015.JPG" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Mes errements philosophiques se font pas long. La sécurité de la mine débarque en pick-up même si on est pas vraiment rentréxs dans le périmètre, et nous pourchassent dans la forêt. Plusieurs camarades sont embarqués. On les reverra que le lendemain.&lt;/p&gt;
&lt;div class="on-left figure"&gt;
&lt;a class="reference external image-reference" href="/art/mont_thou_sunset_to_sunrise/IMG_5554.jpg-en"&gt;
&lt;img alt="un barrio dans la forêt." src="https://rsc.aligot-death.space/images/480/articles/nucleaire_bugey.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Mon enfance et mon adolescence ont été bercées comme pas mal de gamins, par la télé, des chaines d’information aux émissions de vulgarisation type &lt;em&gt;C’est pas Sorcier&lt;/em&gt;. En plus j’étais fana de sciences, donc je bouffait du Science et Vie Juniors et les vieux Okapi de mon cousin. De fait, mon image du nucléaire a longtemps été celle du consensus, du libéral. Le nucléaire, c’est super ! Parfois en quittant ma campagne bressanne natale avec les parents, je voyais au loin une usine, comme dans les films : de grandes tours surmontées de panaches de fumée. Elle était là, sous mes yeux, l’énergie du future, tellement puissante qu’elle en passerait pour de la magie. En grandissant j’ai aussi commencé à militer dans le cyberespace. Mon truc, c’était le piratage, la vie privée et les logiciels libres. Data Must Flow. Donc le nucléaire, c’est pas au programme.&lt;/p&gt;
&lt;p&gt;Adulte, j’ai fini dans une grande ville. J’ai commencé à militer, dans “le vrai monde réel de la vraie réalité véritable”. J’ai logiquement intégré la terrible Extrême Gauche. D’ailleurs je me souviens à peu près de ma première vraie exposition à l’idée de l’anti-nucléaire, une soirée sur le thème dans un grand squat de la région. C’est rentré dans ma normalité d’entendre des discours anti-nucléaires. Même de grandes figures de l’écologie comme greenpeace étaient d’accord.&lt;/p&gt;
&lt;p style="text-align: left; width: 40ch;margin: 2rem auto;padding: 1rem;border-left: 2px dotted var(--purple);background-color: var(--light-blue);height: fit-content;" class="on-right"&gt;&lt;i&gt;Do I contradict myself?&lt;br&gt;
Very well then I contradict myself,&lt;br&gt;
(I am large, I contain multitudes.)&lt;br&gt;&lt;/i&gt;
&lt;span&gt;&lt;strong&gt;Song of Myself, 51, WALT WHITMAN&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;Qu’importe le milieu, chaque fois que le sujet revenait, dans un sens ou dans l’autre, je commençais à m’agiter. Je savais pas pourquoi. Y avait un truc qui me travaillait.&lt;/p&gt;
&lt;p&gt;Un jour j’ai fini par tiquer : j’ai été exposé, et ai adhéré, au meilleur et au pire des arguments pro-nucléaire. Et pareil pour l’anti-nucléaire. Je savais plus sur quel pied danser.&lt;/p&gt;
&lt;p&gt;Mais en fait, c’est quoi ma position, à moi, sur le nucléaire ?&lt;/p&gt;
&lt;p&gt;Comment concilier ses idéaux politiques contradictoires et son désir de savoir, de comprendre, concrètement, sur un sujet aussi complexe ?&lt;/p&gt;
&lt;p&gt;J’ai fini par me dire qu’avoir des contradictions, c’est si mal. C’est un bon moyen de danser sur les deux pieds pour mieux comprendre.&lt;/p&gt;
&lt;p&gt;Donc, le voilà, mon effort de recherche et de synthèse, sur le sujet de l’énergie nucléaire civile, en espérant pouvoir reconstruire une vraie position politique sur le sujet, sans renier les faits.&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;TROP LONG; PAS LU(TL;PL)&lt;/summary&gt;&lt;p&gt;Les écolos mentent et se plantent sur le nucléaires et utilisent des arguments fallacieux. Le nucléaire est une énergie incroyable avec des avantages monstrueux, et quelques inconvénients en soit résolvables. Mais le gros problème possiblement irrésolvable, c'est que la structure même du nucléaire et l'industrie qui va autour est incompatible avec la démocratie, de part sa centralisation, sa complexité et son secret.&lt;/p&gt;
&lt;/details&gt;&lt;div class="warning figure align-center"&gt;
&lt;img alt="peu contenir des traces de : subjectivité, biais, informations parcellaire, radioactivité" src="https://rsc.aligot-death.space/images/480/articles/2024.03.13_nuclear.png" style="width: 100%;" /&gt;
&lt;/div&gt;
&lt;div class="contents topic" id="sommaire"&gt;
&lt;p class="topic-title"&gt;&lt;a class="reference internal" href="#top"&gt;Sommaire&lt;/a&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference internal" href="#verts-de-peur-les-ecueils-ecolos" id="toc-entry-1"&gt;Verts de peur : les écueils écolos&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#noyaux-dur-le-nucleaire-a-la-cool" id="toc-entry-2"&gt;Noyaux dur : le nucléaire à la cool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#latome-mature-la-ou-ca-bloque" id="toc-entry-3"&gt;L’atome maturé : là où ça bloque&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#les-grands-mots-modele-de-gouvernance" id="toc-entry-4"&gt;Les grands mots: modèle de gouvernance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#conclusion" id="toc-entry-5"&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#references" id="toc-entry-6"&gt;Références&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="verts-de-peur-les-ecueils-ecolos"&gt;
&lt;h2&gt;Verts de peur : les écueils écolos&lt;a class="headerlink" href="#verts-de-peur-les-ecueils-ecolos" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un des grands trucs qui m’ont le plus travaillé sur le sujet toutes ces années, c’est la régularité avec laquelle le camp “écologiste” anti-nucléaire s’appuie non seulement sur une communication de la peur digne des Simpsons, mais aussi carrément sur de la désinformations : les barils jaunes dégoulinants de slime fluo qui entourent une cocotte minute de fortune sur le point de raser un pays.&lt;/p&gt;
&lt;p&gt;On peut donc difficilement aborder le sujet de manière pragmatique sans d'abord faire une mise au point sur l'approche désastreuse qui est faite par le camp écologiste.&lt;/p&gt;
&lt;div class="section" id="d-oh-les-dechets-fluos"&gt;
&lt;h3&gt;D'oh! Les déchets fluos&lt;a class="headerlink" href="#d-oh-les-dechets-fluos" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="on-left figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/nucleaire_simpson_eating.jpg"&gt;
&lt;img alt="Jamy de c'est pas sorcier" src="https://rsc.aligot-death.space/images/480/articles/nucleaire_simpson_eating.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Premier point : les déchets nucléaires ne sont pas à l'image des jeux vidéos et des films. En lieu et place de barils de liquide fluorescent, les déchets nucléaires dits &amp;quot;de haute activité&amp;quot; sont coulés dans du verre dans des containeurs en inox, et le tout protégé de manière à empêcher même un impact très violent de faire céder la gaine en béton. Ces &amp;quot;colis&amp;quot; sont testés de manière intensive, et il est même possible de rester à côté de ceux-ci sans recevoir de dose perceptible de radiations.&lt;/p&gt;
&lt;p&gt;Les barils jaunes sont en réalité des déchets de faible intensité, comme des gants ou des outils, et sont stockés sous forme solide et régulièrement inspectés: très peu de risque de ce côté là aussi donc.&lt;/p&gt;
&lt;p&gt;Certaines zone d'enfouissement sont d'ailleurs tellement sûres qu'elles sont accessibles au public, comme le centre de stockage de la Manche.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=lhHHbgIy9jU"&gt;The government let me kiss nuclear waste. -- Kyle Hill (YouTube)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=lySZ9ZAg4ps"&gt;Et si on oubliait nos déchets nucléaires ? ☢️ -- Linguisticae (YouTube)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="la-quantite-de-dechet-et-de-pollution"&gt;
&lt;h3&gt;La quantité de déchet et de pollution&lt;a class="headerlink" href="#la-quantite-de-dechet-et-de-pollution" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Ensuite, concernant la nature et la quantité des déchets nucléaires. Pour commencer, tous ne sont pas issus de l'industrie électrique : la recherche et la médecine en produisent également. Ensuite, en france la production d'électricité nucléaire génère 56 400t par an de déchets nucléaire de &lt;strong&gt;faible activité&lt;/strong&gt;, et 360t de déchets de haute activité. Rapporté par habitant, cela représente respectivement 940g et 5.65g par habitant-e.&lt;/p&gt;
&lt;p&gt;Pour resituer, &lt;a class="reference external" href="https://ourworldindata.org/explorers/co2?facet=none&amp;amp;country=~OWID_WRL&amp;amp;Gas+or+Warming=CO%E2%82%82&amp;amp;Accounting=Production-based&amp;amp;Fuel+or+Land+Use+Change=Fossil+%2B+land+use+change&amp;amp;Count=Per+country"&gt;la quantité de CO2 émise en 2022&lt;/a&gt; est de &lt;strong&gt;41 milliards de tonnes&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;En parallèle de cela, le nucléaire est moins polluant que le photo-voltaïque et l'éolien, y compris en prenant en compte le cycle de vie (de la construction au démantèlement, en passant par la production) : ce qui n'empêche pas Greenpeace de mentir et d'affirmer l'inverse.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=xx55qcGdXOo&amp;amp;t=268s"&gt;Électricité verte selon Greenpeace: l'écologie dogmatique. -- Le Réveilleur (YouTube)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="la-securite"&gt;
&lt;h3&gt;La sécurité&lt;a class="headerlink" href="#la-securite" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="on-right figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/nucleaire_generateur_personne.jpg"&gt;
&lt;img alt="Jamy de c'est pas sorcier" src="https://rsc.aligot-death.space/images/480/articles/nucleaire_generateur_personne.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;« bah moi dans mon générateur de vapeur, y a personne »&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;À la manière des avions, le nucléaire souffre de l'effet choc des accidents majeurs qui ont eu lieu au travers de l'histoire. Pourtant, rapporté au Terawatt-heure (unité de production), le nucléaire est bien, bien &lt;a class="reference external" href="https://ourworldindata.org/grapher/death-rates-from-energy-production-per-twh"&gt;en dessous des autres sources d'énergie&lt;/a&gt; avec 0.03 mort par TWh contre 18.43 pour le pétrole. De la même manière que, quoi qu'on en pense, l'avion reste le moyen le plus sûr de voyager (en dehors de la question écologique), et est soumis à des contrôles intenses, le nucléaire est une des énergies les plus sûres disponibles, et l'histoire le prouve malgré les incidents marquants. On aborde rarement les morts réguliers sur les puis de forage de pétrole, dans les usines, lors d'incidents réguliers en pétro-chimie...&lt;/p&gt;
&lt;p&gt;Ensuite, les activistes anti-nucléaires dont Greenpeace prennent un malin plaisir à démontrer une supposée faille de sécurité en entrant dans les centrales pour déployer des banderoles. Mais qu'est ce que ça prouve ? De la même manière qu'il est difficile d'évaluer l'antivirus de votre PC parce que l'absence d'alerte nous apprend pas grand chose, le fait que quatre pinpins écolos arrivent à rentrer sur site n'est pas une bonne manière d'évaluer la sécurité d'une centrale : peut-être que la sécu n'y a vu que du feu, ou peut-être qu'au contraire ils ont correctement évalué la menace.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="les-alternatives-renouvelables"&gt;
&lt;h3&gt;Les alternatives renouvelables&lt;a class="headerlink" href="#les-alternatives-renouvelables" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Tout le monde cherche une solution pour le futur, et le grand cheval de bataille des écolos, c'est le renouvelable. Or, les énergies comme le photo-voltaïque ou l'éolien souffre d'un défaut critique : elles ne sont pas pilotables, c'est à dire qu'on ne contrôle pas totalement la production car, well, on ne contrôle pas le vent et le soleil. Or, pour contrer ça, il nous faudrait des technologies de stockage pour compenser dans les périodes de creux en renvoyant de l'énergie précédemment stockée. Et ces technos ne sont pas du tout prêtes pour une production industrielles, malgré les annonces de certaines start-up. Il nous faut donc une solution pour une production &amp;quot;de base&amp;quot; à laquelle ces énergies s'ajoutent, et hormis le nucléaire, toutes sont extrêmement polluantes.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=v2VWQn1M-ZU"&gt;🔋 Une batterie mécanique avec un disque en rotation ? - bullshit ou pas -- Monsieur Bidouille (Youtube)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=ECXJ5rTNi74"&gt;Stockage de l'énergie sous forme mécanique: STEP, volant d'inertie et air comprimé. -- Le Réveilleur (Youtube)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="noyaux-dur-le-nucleaire-a-la-cool"&gt;
&lt;h2&gt;Noyaux dur : le nucléaire à la cool&lt;a class="headerlink" href="#noyaux-dur-le-nucleaire-a-la-cool" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;img class = "not-printing" src="https://rsc.aligot-death.space/images/720/articles/nucleaire_schema.png" style="background-color: initial;z-index: -2;position: absolute;width: 100%;opacity: 20%;"&gt;&lt;p&gt;Ensuite, il nous faut parler de pourquoi, le nucléaire c'est cool. Faisons un point rapide sur ses forces, pour savoir de quoi on parle.&lt;/p&gt;
&lt;div class="section" id="energy-density"&gt;
&lt;h3&gt;energy density&lt;a class="headerlink" href="#energy-density" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Le nucléaire présente une &amp;quot;densité énergétique&amp;quot; (comprendre, la quantité d'énergie qu'on peut produire avec une certaine masse de combustible) incomparable. On parle de l'équivalent d'une tonne de charbon, 120 barils de prétrole, ou 480 m3 de gaz naturel pour une pastille de réacteur nucléaire.&lt;/p&gt;
&lt;div class="on-left figure"&gt;
&lt;a class="reference external image-reference" href="https://xkcd.com/1162/"&gt;
&lt;img alt="Le webcomic XKCD démontrant le ratio de densité d'énergie entre les différentes sources" src="https://rsc.aligot-death.space/images/480/articles/nucleaire_densite.png" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;xkcd n°1162, &amp;quot;Log Scale&amp;quot;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="l-uranium-omnipresent"&gt;
&lt;h3&gt;L'uranium omniprésent&lt;a class="headerlink" href="#l-uranium-omnipresent" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Un truc qui m'a surpris en me renseignant plus sur le nucléaire, c'est que jusqu'en 2001 on minait de l'uranium en france. Aujourd'hui, notre uranium vient principalement du Niger, mais il fut un temps où on produisait en &lt;em&gt;circuit court&lt;/em&gt;, au moins partiellement. Près de 76,000 tonnes d'uranium ont ainsi été produites.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.lesechos.fr/2001/06/la-derniere-mine-duranium-francaise-encore-en-activite-ferme-ses-portes-719398"&gt;La dernière mine d'uranium française encore en activité ferme ses portes (Les Échos)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="recyclable-a-94"&gt;
&lt;h3&gt;recyclable à 94%&lt;a class="headerlink" href="#recyclable-a-94" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Autre truc surprenant, les produits de fission sont recyclables. À 94% à vrai dire. Autrement dit, il existe un monde où le circuit d'approvionnement en combustible est partiellement en circuit fermé, limitant ainsi la quantité de minage nécessaire. Pour ce qui est de ce qui est effectivement recyclé, on y reviendra.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.latribune.fr/climat/energie-environnement/nucleaire-vers-un-recyclage-infini-du-combustible-991775.html"&gt;Nucléaire : vers un recyclage infini du combustible ? (La tribune)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="peu-carbone"&gt;
&lt;h3&gt;Peu carboné&lt;a class="headerlink" href="#peu-carbone" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Enfin, le nucléaire est une énergie très bas carbone : on parle de 4g de carbone par kWh, contre 986g pour le charbon et 50g pour le photovoltaïque.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.rte-france.com/en/eco2mix/co2-emissions"&gt;CO2 emissions per kWh of electricity generated in France (RTE France)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://solarisrenewables.com/blog/what-is-the-carbon-footprint-of-solar-panel-manufacturing/"&gt;What Is the Carbon Footprint of Solar Panel Manufacturing? (Solaris Renewables)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://ourworldindata.org/emissions-by-fuel"&gt;CO₂ emissions by fuel (Our World In Data)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tout cela dépeint une énergie ultra-dense, ultra efficace, recyclable et peu polluante.&lt;/p&gt;
 &lt;/div&gt;
&lt;p style="border: 2px solid var(--flash-purple);padding: 0 1rem 1rem 1rem;margin: 1rem;background-color: var(--lila);font-size: 1.5rem;"&gt;
&lt;span style="font-size: 0.75rem;color: var(--purple);"&gt;Bernard&lt;/span&gt;&lt;br&gt;
Mais si ces écologistes motivés par une peur irrationnelle d’une technologie pourtant si sûre font de la désinformations pour manipuler le grand public, nous serions nous trompé de camps ? Notre salut se trouverait-il du côté de la grande et sublime industrie nucléaire note de relecture foreshadowing trop peu subtile&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="latome-mature-la-ou-ca-bloque"&gt;
&lt;h2&gt;L’atome maturé : là où ça bloque&lt;a class="headerlink" href="#latome-mature-la-ou-ca-bloque" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="on-left figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/nucleaire_demantelement.jpg"&gt;
&lt;img alt="Jamy et Fred de c'est pas sorcier se battant" src="https://rsc.aligot-death.space/images/480/articles/nucleaire_demantelement.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;« bah j’démantèle ma centrale - mais t’es pas b- -MAIS SI, SI, ILS L’ONT DIT À LA TÉLÉ »&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="lelectricite-seule-responsable-des-gaz-a-effets-de-serre"&gt;
&lt;h3&gt;L’électricité, seule responsable des gaz à effets de serre ?&lt;a class="headerlink" href="#lelectricite-seule-responsable-des-gaz-a-effets-de-serre" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Premier à-priori : le nucléaire ne concerne (en tout cas, à l'heure actuelle) que le secteur de l'électricité. Or, celle-ci ne constitue que 17% (&lt;strong&gt;17%&lt;/strong&gt;) du total de &lt;em&gt;l'énergie produite&lt;/em&gt;. Le reste étant réparti entre les usines, le transport, le chauffage, etc. Le tout nucléaire n'est donc de toute façon pas au programme.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://theconversation.com/energy-isnt-just-electricity-the-common-mistake-obscuring-the-mammoth-task-of-decarbonisation-142016"&gt;Energy isn’t just electricity – the common mistake obscuring the mammoth task of decarbonisation (The Conversation)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="notre-salvation-bientot"&gt;
&lt;h3&gt;Notre salvation Bientôt™&lt;a class="headerlink" href="#notre-salvation-bientot" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;2035/2037. C'est la date de mise en service &lt;em&gt;promise&lt;/em&gt; pour les futurs réacteurs EPR2 de Penly, au nombre de deux. Construire une centrale nucléaire, ça prend du temps, et même avec la promesse d'une architecture simplifiée, il semblerait que le nucléaire ne soit pas en mesure de monter en puissance assez vite pour contrer le réchauffement climatique : n'imaginons donc pas à l'échelle planétaire. Après 17 ans de travaux, l'EPR de Flamanville vient tout juste d'être mis en service et est source de nombreux scandales et un budget qui a explosé.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=bYGoGoJe89Y&amp;amp;t=688s"&gt;Nucléaire, enquête sur un fiasco français -- BMFTV (YouTube)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://projet-penly.edf.fr/pages/le-projet"&gt;Le projet (EDF Penly)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="techniquement-c-est-recyclable"&gt;
&lt;h3&gt;Techniquement, c'est recyclable&lt;a class="headerlink" href="#techniquement-c-est-recyclable" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Si vous avez étez attentif-ves à la communication du secteur nucléaire français, un truc a dû vous faire tiquer. Ils répètent à l'envie que les produits de fission sont recyclables à 94%, mais ne disent jamais qu'ils recyclent. Le reportage de Complément d'Enquête sur les déchêts nucléaires le démontre admirablement en prenant au piège une porte parole en demandant la part de déchets effectivement recyclée : elle se contente de répondre qu'ils sont recyclables à 94%. À vrai dire, le seul combustible recyclé l'est en Russie, où l'on envoie une partie de nos déchets, qui nous renvoie ensuite du combustible. Les implications géo-politiques ne sont pas à démontrer, et le secteur du recyclage de combustible en france est loin de la phase industrielle.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.lemonde.fr/economie/article/2022/11/29/la-russie-possede-la-seule-usine-au-monde-capable-de-recycler-l-uranium-decharge-des-reacteurs-nucleaires-francais_6152097_3234.html"&gt;La Russie possède la seule usine au monde capable de « recycler » l’uranium déchargé des réacteurs nucléaires français (Le Monde)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.france.tv/france-2/complement-d-enquete/5288631-dechets-nucleaires-quand-nos-poubelles-debordent.html"&gt;Déchets nucléaires : quand nos poubelles débordent (Complément d'Enquête)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="que-faire-des-dechets"&gt;
&lt;h3&gt;Que faire des déchets&lt;a class="headerlink" href="#que-faire-des-dechets" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Le maintien et même le renouveau du nucléaire français repose sur le postulat qu'on sait quoi faire des déchets, et que les filiaires sont déjà là (ou presque là). Pourtant, les sites de stockage soutterains profond en france, méthode privilégiée aujourd'hui, sont encore au stade de laboratoire, et sont développés dans des conditions politiques plus que questionnables.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://bureburebure.info/qu-est-ce-qui-se-passe-a-bure/"&gt;Qu’est ce qui se passe à Bure ? (bureburebure.info)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="la-dependance"&gt;
&lt;h3&gt;La dépendance&lt;a class="headerlink" href="#la-dependance" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Novembre 2022, neuf mois après l'invasion de l'ukraine par la russie, 10 containers d'uranium naturels et 27 fûts d'uranium enrichis sont livrés depuis la russie comme relevé par un journaliste Médiapart. Rien d'étonnant, car la france envoie régulièrement ses déchets nuléaire en russie pour être stockés ou révalorisés. En février 2024, le Canard Enchainé relève un marché de 860 millions d'euros remettant entre les mains d'Amazon l'infogérance d'une partie des données du parc nucléaire. Comme déjà évoqué, le gros de l'uranium qu'on consomme vient du Niger, et sans même parler des questions coloniales, se pose la question de pourquoi le nucléaire est vendu comme une énergie &amp;quot;souveraine&amp;quot;.&lt;/p&gt;
&lt;p&gt;La complexité du nucléaire entraine des dépendances géopolitiques et privées, desquelles il est difficile de se déméler quand le vent tourne.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.liberation.fr/terre/2009/10/12/nos-dechets-nucleaires-sont-caches-en-siberie_587213/"&gt;Nos déchets nucléaires sont cachés en Sibérie -- Libération&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
Ce matin 10 containers d’uranium naturel et 27 fûts d’uranium enrichi en provenance de Russie ont été livrés à la France sur le port de Dunkerque. C’est la 1ère fois depuis le début de la guerre en Ukraine qu’on a la preuve de l’importation en France d’uranium naturel russe. &lt;a class="reference external" href="https://twitter.com/Lindgaard/status/1597572241776336897"&gt;&amp;#64;Lindgaard via twitter&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;blockquote&gt;
EDF fait appel à Amazon pour gérer une partie des données numériques de son parc nucléaire. Un marché à 860 millions d’euros. De quoi faire disjoncter certains cadres qui pointent un problème de cybersécurité... &lt;a class="reference external" href="https://x.com/canardenchaine/status/1757660952953000286"&gt;Le Canard Enchainé via twitter&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="le-formulaire-a38-complexite-reelle-ou-artificielle"&gt;
&lt;h3&gt;Le formulaire A38 : Complexité réelle ou artificielle&lt;a class="headerlink" href="#le-formulaire-a38-complexite-reelle-ou-artificielle" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Celle-là je vous la sort texto de Wikipédia, car quand j'ai découvert ça, je suis tombéx dans un mélange d'hilarité et d'incompréhension :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;À titre d'exemple, l'EPR recense 13 300 références de robinetterie, réduites à 571 pour l'EPR252 ; également, les EPR d'Hinkley Point C comportent 400 références de tuyaux, diminuées à 250 pour l'EPR2 ; ou encore 1 700 modèles de portes (pour la plupart uniques) dans l'EPR de Flamanville, chiffre abaissé à 100 pour l'EPR2. Des efforts de standardisation sont également engagés, comme l'utilisation de références de tuyauterie déjà utilisées et qualifiées, notamment dans l'industrie pétrolière ou gazière.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Evolutionary_Power_Reactor_2_-_EPR_2#Amélioration_par_rapport_à_l'EPR"&gt;Evolutionary Power Reactor 2 - EPR 2 : Amélioration par rapport à l'EPR (Wikipédia)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Deux possiblités pas incompatibles :&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;La construction d'une centrale nucléaire est infiniment plus complexe que ce que l'on peut décemment imaginer&lt;/li&gt;
&lt;li&gt;L'industrie nucléaire ne sait pas ce qu'elle fait&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dans la même veine :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Pour des raisons de coûts, EDF fait un recours massif à la sous-traitance en cascade. Un rapport parlementaire a noté jusqu'à huit niveaux de sous-traitance &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/D%C3%A9bat_sur_l%27%C3%A9nergie_nucl%C3%A9aire#cite_note-91"&gt;(note 91)&lt;/a&gt;. Les salariés des sous-traitants sont moins bien payés que les salariés d'EDF et sont également moins bien formés. Leur suivi médical est insuffisant &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/D%C3%A9bat_sur_l%27%C3%A9nergie_nucl%C3%A9aire#cite_note-92"&gt;(note 92)&lt;/a&gt;. Un salarié précaire va parfois chercher à minimiser la valeur d'irradiation montrée par son dosimètre individuel de peur de perdre son emploi &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/D%C3%A9bat_sur_l%27%C3%A9nergie_nucl%C3%A9aire#cite_note-93"&gt;(note 93)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://fr.wikipedia.org/wiki/D%C3%A9bat_sur_l'%C3%A9nergie_nucl%C3%A9aire#Risques_li%C3%A9s_%C3%A0_la_gestion_des_ressources_humaines"&gt;Débat sur l'énergie nucléaire : Risques liés à la gestion des ressources humaines (Wikipédia)&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nul doute que le nucléaire est complexe. Les questions qui se posent sont : à quelle point le nucléaire est-il réellement complexe ou l'industrie nucléaire souffre d'une complexité artificielle par dessus ça ? Et quelle complexité &amp;quot;réelle&amp;quot; peut-on se permettre pour ce qui doit être le cœur de notre électricité ?&lt;/p&gt;
&lt;p&gt;Et… Veut-on faire dépendre toute notre société d'une énergie aussi complexe ?&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="pollution-et-canicule"&gt;
&lt;h3&gt;Pollution et canicule&lt;a class="headerlink" href="#pollution-et-canicule" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Le nucléaire est bien moins polluant que toutes les autres énergies : c'est un fait. Il est d'ailleurs moins polluant que le solaire et l'hydroélectrique, aussi perturbant que ce soit.&lt;/p&gt;
&lt;p&gt;Néanmoins, c'est assez fascinant de voir les pro-nucléaires répéter que le nucléaire est peu polluant en prenant systématiquement l'angle du &amp;quot;carbone&amp;quot;. Pour des pro-méthodes scientifiques, la régularité avec laquelle iels se réfèrent à une définition étroite de la pollution est fascinante. Au delà des déchets nucléaires, cette énergie pose des problèmes de rejets et de température des rivières. En conséquence, les autorités contrôle font le choix... De changer les valeurs limites pour rester dans les clous. Avec le réchauffement climatique, les centrales doivent de plus en plus souvent réduire voire stopper leur production pour encaisser l'augmentation de témpérature des rivières. Difficile donc de prévoir comment l'infrastructure réagira sur le long terme, surtout dans le cas d'un élargissement du parc nucléaire.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.liberation.fr/france/2019/07/25/la-canicule-donne-un-coup-de-chaud-a-l-option-nucleaire_1742005/"&gt;La canicule donne un coup de chaud à l'option nucléaire -- Libération&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
En cas de dépassement de ces valeurs limites, l’exploitant doit réduire la puissance du réacteur ou l’arrêter. Un assouplissement temporaire des valeurs limites des rejets thermiques peut être autorisé par l’ASN en cas de besoin du réseau électrique, comme cela a été le cas durant les épisodes caniculaires des étés 2003 et 2006. Dans ce cas, la surveillance de l’environnement est renforcée. &lt;a class="reference external" href="https://www.asn.fr/l-asn-informe/actualites/fonctionnement-des-reacteurs-nucleaires-en-periode-de-canicule"&gt;Fonctionnement des réacteurs nucléaires en période de canicule -- Autorité de Sureté nucléaire&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="le-retour-du-nucleaire-compromis"&gt;
&lt;h3&gt;Le retour du nucléaire compromis&lt;a class="headerlink" href="#le-retour-du-nucleaire-compromis" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Passer toute notre consommation en énergies renouvelables nécessiterait une quantité d'argent, d'adaptations et de technologies énorme. Mais le passage au tout nucléaire, même &amp;quot;transitoire&amp;quot;, réclame des filiales gigantesques et complexe, une montée en compétence de dizaines de milliers de personnes en quelques années, des garde-fous et des infrastructures de traitement de déchets inexistant-es à l'heure actuelles, sans compter les problèmes déjà évoqués. Cet investissement se ferait aux dépends des autres énergies et innovations, et il est perturbant de voir que les énergies renouvelables sont systématiquement comparées telles qu'elles existent au potentiel futur lointain brillant du nucléaire. Pour évaluer le problème, on se doit de comparer présent à présent, futur à futur.&lt;/p&gt;
&lt;/div&gt;
&lt;div style="background-color: #fff0;height: 400px;text-align: center;" class="full-center figure"&gt;
&lt;a class="reference external image-reference" href="/art/13_ash-en" style=""&gt;&lt;img alt="un dessin de la forêt allemande avec la machine." style="width: 70%; box-shadow: none !important;" src="https://rsc.aligot-death.space/images/480/articles/bagger.png"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="les-grands-mots-modele-de-gouvernance"&gt;
&lt;h2&gt;Les grands mots: modèle de gouvernance&lt;a class="headerlink" href="#les-grands-mots-modele-de-gouvernance" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Mais finalement, la transparence, c'est LE problème du nucléaire. À quelques détails près, le seul et l'unique. Mais un problème d'importance capitale: peut-on réellement mettre notre futur entre les mains d'une industrie qui par sa nature profonde fonctionne en vase clos et se rit des enjeux démocratiques&lt;/p&gt;
&lt;div class="section" id="tchernobyl-et-la-demi-vie-du-mensonge"&gt;
&lt;h3&gt;Tchernobyl et la demi-vie du mensonge&lt;a class="headerlink" href="#tchernobyl-et-la-demi-vie-du-mensonge" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Le saviez-vous ? Le mensonge autour des nuages radioactifs de Tchernobyl n'aurait jamais eu lieu.&lt;/p&gt;
&lt;p&gt;C'est ce qu'affirme Tristan Kamin, partisan très vocal du nucléaire affirme sur son blog dans un article intitulé &lt;a class="reference external" href="https://doseequivalentbanana.home.blog/2019/01/31/tchernobyl-et-les-douaniers-francais/"&gt;Tchernobyl et les douaniers français&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Plusieurs couches de merdier:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;les journalistes et le pouvoir ont affirmé que le nuage s’était arrêté à la frontière&lt;/li&gt;
&lt;li&gt;Sauf que non, apparemment, c’était une illusion collective: les archives des JTs de l'époque montrent que cette phrase n'a jamais été prononcée&lt;/li&gt;
&lt;li&gt;sauf que sauf que, ne jouons pas sur les mots. Les médias et le pouvoir ont prétendu qu’il n’y avait aucun risque, puis un risque minime, alors qu'on ignorait encore ce qu'il se passait.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cette volonté de rassurer sans base solide a logiquement explosée sous la forme d’une opprobe populaire, car à défaut d’avoir ostensiblement menti, le gouvernement et les médias ont minimisé les risques en dépit des faits, créant &lt;strong&gt;un manque de confiance légitime&lt;/strong&gt;, Même si il n’y avait pas besoin d’acheter de pastilles d’iode. Du coup dire “ils sont pas dit la frontière”, c’est faire preuve de mauvaise foi. Fondamentalement on a dit aux gens, “ne vous inquiétez pas”&lt;/p&gt;
&lt;p&gt;Replaçons le contexte : la nouvelle sort qu’une centrale nucléaire, située en ukraine, vient d’exploser et est en train de recracher des particules radioactives dans l’atmosphère. Avec presque 40 ans de reculs, c’est relativement facile de penser pouvoir deviner l’étendue de la zone impactée. Mais à l’époque, tout ce que les gens savaient, c’est qu’un nuage radioactif se baladait pas très loin de leur maison. La panique est donc, assez logique : et le besoin de rassurer l’est tout autant. Non, vous n’avez pas à creuser un trou dans le sol pour vous y réfugier comme abris anti-atomique de fortune. Mais la ligne entre rassurer et mentir est aussi fine qu’une enceinte de protection de 3m de béton. Agiter les modèles météo en disant, “regardez, c’est un miracle, on ne sera pas touché” revient à dire que le nuage allait s’arrêter à la frontière, que ça soit dit comme ça ou pas.&lt;/p&gt;
&lt;p&gt;Le calcul qui s’est opéré dans la tête des dirigeants est assez simple à deviner : la France s’était lancée tête bêche dans le nucléaire la décennie avant, et un accident côté soviétique risquait de faire basculer l’opinion publique. Il ne fallait pas fléchir. Pas maintenant.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="sous-l-ocean"&gt;
&lt;h3&gt;Sous l'océan&lt;a class="headerlink" href="#sous-l-ocean" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Le saviez vous ? Les gouvernements ont passé une bonne partie de la seconde moitié du XXe siècle à balancer des déchets nucléaires dans les profondeurs des océans. Si l'Union Soviétique est la plus grande fautive, on a aussi entre autres les US, la Suisse et le Japon. Le truc, c'est qu'on nous a affirmé que ces barils et autres déchets étaient stables. Or, on sait aujourd'hui qu'ils relâchent lentement mais sûrement des éléments radioactifs. Au delà d'une erreur faite il y a des décennies, il y a de quoi se questionner sur les promesses systématiques de &amp;quot;sécurité&amp;quot; des dépôts de déchets par l'industrie nucléaire. Ils ont menti avant, comment peut-on être sûr-es qu'ils ne mentent pas maintenant ?&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.theguardian.com/environment/2024/mar/12/radioactive-waste-baby-bottles-and-spam-the-deep-ocean-has-become-a-dumping-ground"&gt;Radioactive waste, baby bottles and Spam: the deep ocean has become a dumping ground -- The Guardian&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.latimes.com/environment/story/2024-02-21/radioactive-waste-ocean-dumping-los-angeles-coast"&gt;It’s not just toxic chemicals. Radioactive waste was also dumped off Los Angeles coast -- LA Times&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="flamanville"&gt;
&lt;h3&gt;flamanville&lt;a class="headerlink" href="#flamanville" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Flamanville, c'est une centrale nucléaire qui a mis 17 ans à sortir de terre. C'est l'exemple type de ce que le nucléaire est aujourd'hui : un projet opaque, coûteux même au delà des estimations, une complexité folle et un retard démentiel.&lt;/p&gt;
&lt;p&gt;Pour commencer, le coût a été multiplié par six, la faute à de mauvaises estimations initiales et divers soucis durant le chantier&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.lemonde.fr/les-decodeurs/article/2024/05/09/les-derapages-de-l-epr-de-flamanville-en-graphiques-le-cout-multiplie-par-six-la-duree-du-chantier-par-quatre_5480745_4355771.html"&gt;Les dérapages de l’EPR de Flamanville en graphiques : le coût multiplié par six, la durée du chantier par quatre -- Le Monde&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La cuve, élement centrale du système, souffrait d'anomalies, la faute à un rachat de Creusot-Forge par Bolloré, qui entrainera un effondrements des standards de production et une magouille sous forme d'un rachat à 800 000 euros suivi d'une revente à Areva pour 170 millions d'euros. Les alertes sur la production de la cuve remontant jusqu'à à 2005 sont passées sous le tapis, et la cuve est quand même installée.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.francetvinfo.fr/societe/nucleaire/info-franceinfo-defauts-sur-la-cuve-de-lepr-de-flamanville-l-autorite-de-surete-nucleaire-avait-alerte-edf-des-2005-de-dysfonctionnements-chez-le-fabricant_2121929.html"&gt;Défauts sur la cuve de l’EPR de Flamanville : l'Autorité de sûreté nucléaire avait alerté EDF dès 2005 de dysfonctionnements chez le fabricant -- France Info&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.lesechos.fr/industrie-services/energie-environnement/nucleaire-edf-devra-reparer-les-soudures-sur-lepr-de-flamanville-avant-sa-mise-en-service-1030790"&gt;Nucléaire : nouveau coup dur pour l'EPR de Flamanville -- Les Échos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Le rapport remis au gouvernement par Jean-Martin Folz fait état d'un projet dont les coûts ont explosés, des estimations initiales « irréalistes », divers incidents et malfaçon lors du chantier, et dépeignent un chantier trop complexe et bercé de manoœuvres douteuses.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.economie.gouv.fr/rapport-epr-flamanville"&gt;Remise du rapport de Jean-Martin Folz « La construction de l’EPR de Flamanville » à Bruno Le Maire et à Jean-Bernard Lévy -- Site du Ministère de l'Économie&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://youtu.be/bYGoGoJe89Y?feature=shared&amp;amp;t=873"&gt;Nucléaire, enquête sur un fiasco français -- BFMTV (YouTube)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Malgré cet échec, Macron poussera en 2022 la construction de EPRs nouveau modèle.&lt;/p&gt;
&lt;p&gt;Ce qui est flagrant avec Flamanville, c'est pas tant les erreurs : toutes sont évitables à l'avenir, et même le défaut de cuve ne compromet pas tant la sécurité de la centrale que sa durée de vie. Ce qui est important, c'est que l'industrie a tout fait pour masquer ses erreurs et échapper à l'introspection par la société civile.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="le-future-politique"&gt;
&lt;h3&gt;Le future politique&lt;a class="headerlink" href="#le-future-politique" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Le nucléaire, c'est du long terme. On parle de 50 à 80 ans de cycle de vie pour une centrale. Le mandat présidentiel étant de cinq ans, il est difficile de prévoir qui sera au pouvoir dans trois mandats, donc on imagine pas dans 10. D'un point de vue politique, économique et culturel, où sera la france dans 50 ans ? Que feraient des fachos avec des panneaux solaires ? Ou, pour être moins alarmiste/complotiste (selon comment vous voyez les choses), qu'est ce qu'il se passerait au pire s'ils géraient mal des panneaux solaires ?&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="desintegration-democratique"&gt;
&lt;h3&gt;Désintégration démocratique&lt;a class="headerlink" href="#desintegration-democratique" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;On peut parler longtemps technique, mais par vertue d'être de la technique, on peut trouver des solutions, des contournements, discuter d'alternatives. Mais le plus grand problème à l'heure actuelle est l'opacité de l'industrie nucléaire. Quand on voit tout le merdier des &amp;quot;94% recyclables jamais recyclés&amp;quot; (voir le docu de Complément d'Enquête), c'est clair qu'ils n'ont aucune intention de construire un lien de confiance avec le grand public. Quant à Tchernobyl, la conclusion est qu'il n'y avait pas grand chose à apprendre car les centrales françaises y sont trop différentes (ce qui est bien) : mais le mensonge orchestré par l'industrie et l'état au travers des médias rapport au nuage radioactif montre le dédain pour la population de la part de cette industrie, et les vidéos sponsorisées par des vidéastes pour dire &amp;quot;regardez, c'est safe !&amp;quot; n&amp;quot;y changeront rien. On est au delà de la (re)construction d'un lien de confiance. Le chantier est tellement gros, le trou qu'ils ont creusés eux-même (que les écolos aimeraient seulement avoir à leur crédit) tellement grand, qu'ils ne pourront jamais le réparer à temps pour le ✨grand défi du siècle✨, tout du moins en respectant le fonctionnement démocratique.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.lemonde.fr/planete/article/2021/11/12/nucleaire-un-cadre-de-la-centrale-du-tricastin-denonce-une-politique-de-dissimulation-d-incidents-de-surete_6101804_3244.html"&gt;Nucléaire : un cadre de la centrale du Tricastin dénonce une « politique de dissimulation » d’incidents de sûreté (Le Monde)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La pipeline est simple : le nucléaire a, factuellement, d’énormes avantages sur les autres énergies, de part sa capacité à produire énormément d’énergie, à peu cher (rapporté au kWh) avec très peu de pollution. Sur cette base, les pro-nucléaires traitent la chose comme réglé et la nécessité de passer au full-nucléaire comme un fait scientifique qui n’a pas à être sujet à débats. De fait, les arguments (certains pertinents) avancés par les anti-nucléaires sur les questions de sureté, de souci de transparence, de surveillance… etc sont passés sous le tapis, même s’ils sont pertinents. Leur position est alors peinte comme des interférences de la solution™.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.lemonde.fr/politique/article/2024/03/12/surete-nucleaire-l-assemblee-fait-avancer-le-projet-de-reforme-controverse-du-gouvernement_6221656_823448.html"&gt;Sûreté nucléaire : l’Assemblée nationale fait avancer le projet de réforme controversé du gouvernement (Le Monde)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.reddit.com/r/france/comments/1b8r19d/echange_tendu_en_commission_%C3%A0_lassembl%C3%A9e_entre/"&gt;Echange tendu en commission à l'Assemblée entre certains députés et Jean-Marc Zulesi au sujet du vote pour le rejet de la fusion entre l'ASN et l'IRSN - 05/03/2024 (Reddit)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dans cette lignée, l'industrie est obligée de passer par le lobbying, comme lorsqu'elle a fait intégrer le nucléaire aux énergies vertes :&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://reclaimfinance.org/site/en/2021/07/22/out-with-science-in-with-lobbyists-gas-nuclear-and-the-eu-taxonomy/"&gt;Out with Science, In with Lobbyists: Gas, Nuclear and the EU Taxonomy (Reclaim Finance)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dans le même ordre, le gaz a également été inclu comme &amp;quot;énergie de transition&amp;quot; malgré sa pollution :&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.gouvernement.fr/actualite/neutralite-carbone-la-nouvelle-taxonomie-verte-europeenne"&gt;Neutralité carbone : la nouvelle taxonomie verte européenne (gouvernement.fr)&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;a class="headerlink" href="#conclusion" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Face au choix imposé entre crever la gueule ouverte ou accepter une société alimentée par une industrie qui a déjà démontré par le passé et dans le présent sont fonctionnement opaque et autoritariste, c'est pas étonnant que les gens cherchent une alternative.&lt;/p&gt;
&lt;p&gt;On tisse un réseau complexe d’industries, toutes sujettes à des risques faibles mais à conséquences graves, qui parient sur l’absence d’échec malgré la complexité, le tout mis à l’abri par des pratiques anti-démocratiques. Même si on admet un potentiel au nucléaire, force est de constater que l’humanité n’est peut-être pas assez mature technologiquement et politiquement pour le nucléaire.&lt;/p&gt;
&lt;p class="blue"&gt;Je parle ici de démocratie au sens large de &amp;quot;pouvoir du peuple&amp;quot;, et non de démocratie représentative semi-présidentielle bi-camérale isotopique multi-facette à pois bleus&lt;/p&gt;
&lt;p&gt;Ma position est donc c'est que la politique de la peur actuellement montée par les mouvements écologistes relève de la pure désinformation. Mais au delà de ça, le problème central de l'industrie nucléaire, c'est le manque de transparence, ce qui est un euphémisme tant ça semble être dans l'adn de celle ci. Tous les problèmes de sécurité, de fiabilité, de tests, sont fondamentalement pas irrésolvables mais se rapportent à ce refus de se soumettre à l'autorité de la société civile. Et c'est pour cela que je considère que le nucléaire ne peut pas être notre énergie salvatrice.&lt;/p&gt;
&lt;p&gt;Une analyse superficielle des raisons à cela serait de faire un parallèle entre l'architecture physique et l'organisation : le nucléaire serait centralisé donc son organisation aussi. Je pense plutôt que le problème est qu'il s'agit d'une industrie de pointe, mise sous contrainte car en porte-à-faux entre expérimental et industriel, et cheval salvateur de la société capitaliste. Sous des contraintes abstraites moindre, le nucléaire aurait pu briller.&lt;/p&gt;
&lt;p&gt;Je suis loin d'être la seule personne a être arrivé à cette conclusion : mais il me semble important de souligner qu'il s'agit du &lt;strong&gt;vrai&lt;/strong&gt; problème du nucléaire : on a pas besoin de passer par de la désinformation et des erreurs scientifiques pour critiquer le nucléaire.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.sortirdunucleaire.org/Geo-politique-le-nucleaire-une-energie?id_rubrique=70"&gt;L’État nucléaire : antidémocratique, adepte du secret et de la répression -- Réseau sortir du nucléaire&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.liberation.fr/evenements-libe/2013/10/12/le-nucleaire-est-une-energie-anti-democratique_939068/"&gt;«Le nucléaire est une énergie antidémocratique» -- Libération&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.lejdd.fr/Politique/le-projet-de-loi-sur-le-nucleaire-est-antidemocratique-denonce-le-senateur-ecologiste-daniel-salmon-4161504"&gt;« Le projet de loi sur le nucléaire est antidémocratique », dénonce le sénateur écologiste Daniel Salmon -- Le JDD&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="references"&gt;
&lt;h2&gt;Références&lt;a class="headerlink" href="#references" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.greenpeace.fr/sortir-du-nucleaire/"&gt;Sortir du nucléaire -- Greenpeace&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.france.tv/france-2/complement-d-enquete/5288631-dechets-nucleaires-quand-nos-poubelles-debordent.html"&gt;Complément d'enquête, Déchets nucléaires : quand nos poubelles débordent (FranceTV)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://doseequivalentbanana.home.blog/"&gt;Dose Équivalent Banana, blog de Tristan Kamin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=twOiVxXoons"&gt;Nucléaire civil : énergie d'hier ou de demain ? - Le dessous des cartes -- Arte (YouTube)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=6EBm2vWxe4o&amp;amp;feature=youtu.be"&gt;Nucléaire : une solution pour la planète ? -- Arte (YouTube)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/&amp;#64;lereveilleur/videos"&gt;Le Réveilleur (YouTube)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.youtube.com/watch?v=bYGoGoJe89Y"&gt;Nucléaire, enquête sur un fiasco français -- BFMTV (YouTube)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://bureburebure.info/"&gt;BURE BURE BURE&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>Le militantisme d'influence</title><link href="https://aligot-death.space/txt/anarchy/influenceurxs-fr" rel="alternate"></link><published>2024-08-22T00:00:00+02:00</published><updated>2024-08-22T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2024-08-22:/txt/anarchy/influenceurxs-fr</id><summary type="html">&lt;p class="first last"&gt;mauvaise influence&lt;/p&gt;
</summary><content type="html">&lt;p&gt;
   &lt;i&gt;Portable à la main, Thibaut visibilise les luttes&lt;/i&gt;&lt;br&gt;
   &lt;i&gt;Il encourage d’autres, à visibiliser les luttes&lt;/i&gt;&lt;br&gt;
   &lt;i&gt;Les luttes s’effondrent, les luttes chutent&lt;/i&gt;&lt;br&gt;
   &lt;i&gt;Ils faut dire que plus personne, participe aux luttes&lt;/i&gt;&lt;br&gt;
&lt;/p&gt;&lt;div class="section" id="internet-vs-le-terrain"&gt;
&lt;h2&gt;Internet vs. le 𝓽𝓮𝓻𝓻𝓪𝓲𝓷&lt;a class="headerlink" href="#internet-vs-le-terrain" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On va commencer par mettre quelque chose à plat. Internet n’est pas retiré de la vie quotidienne : c’était vrai quand c’était encore qu’une techno émergente, ça l’est d’autant plus maintenant qu’elle est omniprésente.&lt;/p&gt;
&lt;p&gt;Les outils sociaux diffèrent, mais les enjeux sont les mêmes. Il sont qu’une extension de la vraie vie. Traiter internet à part, c’est ne pas comprendre ce que c’est.&lt;/p&gt;
&lt;p&gt;Ensuite d’un point de vue militant, y a pleins de trucs qu’on peut faire. Y a pleins de trucs qu’on &lt;strong&gt;doit&lt;/strong&gt; faire. Transcription, trad, ressources, agrégat de ressources, entraide, passage d’infos, sensibilisation, information… Sans compter, et même si c’est de l’&lt;em&gt;opérationnel&lt;/em&gt;, les luttes sur l’accès à la technologie auprès des populations minorisées (fracture numérique, lutte contre les régimes autoritaires, etc), qui sont essentielles au vue du rôle d’internet aujourd’hui.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Néanmoins&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Partager en boucle des posts/vidéos qui “visibilisent” ne fait pas avancer les choses. Oui, visibiliser une lutte, c’est important, mais se contenter de visibiliser des trucs en partageant toute la journée des tweets/reel/tiktok ne suffit pas.&lt;/p&gt;
&lt;p&gt;Parfois on tombe sur un reel insta, un tiktok, un tweet ou un article de blog et la première question qui vient en tête c’est “mais dans quel monde iel vit pour affirmer ça ?”.&lt;/p&gt;
&lt;p&gt;Mais bon, &amp;quot;y a des gens qui ont pas le temps de militer&amp;quot; c'est vrai que moi j'ai le temps, jmilite parce que ça me fais kiffer : j'aime trop me pourrir la santé physique et psy pour espérer pas crever. C'est un argument juste insultante envers les gens qui se crèvent le cul, IRL et/ou en ligne.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="logique-de-communication"&gt;
&lt;h2&gt;Logique de communication&lt;a class="headerlink" href="#logique-de-communication" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;À la manière des entreprises, certains groupes/orgas ont développé une appétence pour la communication. Peu importe ce qu’il se passe, tant qu’on communique autour. Résultat, une énorme partie de l’énergie et des ressources passe dans la comm plutôt que l’action réelle.&lt;/p&gt;
&lt;p&gt;Certains groupes se sont spécialisés là dedans : le gros de leur comm’ tourne autour de l’action direct, mais leur action sur le terrain est purement performative : toute leur hiérarchie est composé d’influenceurxs en chef et de sergents influenceurxs. Par leur sur-présence sur les réseaux, iels persuadent tout le monde qu’iels sont le moteur des luttes d’une région, mais si vous êtes sur la même région qu’elleux vous ne les verrez jamais faire autre chose que des actions ayant pour but de visibiliser leur propre groupe. Bref, une machine à faire de la comm, qui a imposé l’idée qu’iels sont les seules à agir sur le terrain, alors que c’est tout le contraire.&lt;/p&gt;
&lt;p&gt;Alors on pourrait ergoter toute la journée sur la nécessité d'avoir des figures publiques, des portes paroles, en mandat impératif ou non, parce que c'est comme ça que marche la politique aujourd’hui.&lt;/p&gt;
&lt;p&gt;Mais les influenceurs, qui leur a demandé ? Qui les “mandate” ? X ou Y sujet n'a jamais été aussi visibilisé d'accord, mais pour quel effet ? La visibilité existe jamais dans le vide, elle peut pas être une fin en soi, en témoigne le pinkwashing. Les seuls qui bénéficient, au sens pécuniaire du terme, de la visibilité, c'est les influenceurs. Ils sont l’équivalent web des éditorialistes et polémistes à la TV qui ne font rien d’autre que de donner leur avis pour faire tourner le monde autour d’elleux.&lt;/p&gt;
&lt;div class="on-right figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/cest_bon_pour_vous.jpg"&gt;
&lt;img alt="C'est bon pour vous" src="https://rsc.aligot-death.space/images/480/articles/cest_bon_pour_vous.jpg" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;C’est bon pour vous ?&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;C’est d’ailleurs devenu monnaie courante que ces “figures” s’appuient sur des actions/événements/manifs créés par des collectifs/orgas pour créer du contenu et de l’engagement sur leurs réseaux. Elles vampirisent alors carrément les luttes actives. Voyant que des gens bougent et s’activent, ces personnes continuent leur cirque, se convaincant alors d’avoir réellement un rôle de “porte parole” à jouer, dans un dialogue qui en vrai est à sens unique&lt;/p&gt;
&lt;p&gt;La visibilité c’est important. On a besoin de mettre en lumière ce contre quoi on lutte, ce pour quoi on lutte.&lt;/p&gt;
&lt;p&gt;Mais aujourd’hui y a une quantité d’énergie absolument phénoménale qui est investie dans cet axe “visibilité” comme si c’était le cœur de la lutte, alors qu’en parallèle sur le terrain (dans lequel j’inclus internet) et que j’oppose justement au travail surplombant de la comm’, qui manque cruellement de bras et d’énergie. Notamment la logistique, le soin, la bouffe, les réseaux de solidarité, la thune.&lt;/p&gt;
&lt;p&gt;Et pendant ce temps, le “milieu” militant fait comme les partis, c’est à dire se jette à corps perdus dans la bataille médiatique, en pensant que visibiliser plus que nécessaire fera magiquement bouger les choses. Et les choses bougent parfois, mais du fait du vrai taff fourni, et non de ce spotlight éblouissant qui se contente finalement surtout de commodifier et transformer en contenu diffusable capitalo-friendly la souffrance des unx et le taff des autres.&lt;/p&gt;
&lt;p&gt;Le “milieu militant” me renvoie l’image de certaines entreprises dont la moitié des forces vives et les 3/4 du pognon sont au pôle comm/marketing alors que c’est leur cœur de métier qui fait tourner la boite.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="lindividualisme"&gt;
&lt;h2&gt;L’individualisme&lt;a class="headerlink" href="#lindividualisme" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Selon cette approche du militantisme, on est touxtes influencerxs. Et tout ça prend un pli cynique couplé aux logiques d’anonymat voire de clandestinité qu’implique beaucoup de luttes.&lt;/p&gt;
&lt;p&gt;Des gens agitent leur CV militant et s’appuient sur leur engagement public : iels peuvent trop facilement se faire passer pour l’avant garde des luttes simplement parce que personne de “connu” ne fait plus qu’elleux.  Mais y a beaucoup de choses qui sont fait dans l’anonymat, ou caché derrière le nom d’une orga/collectif. C’est soit pour des raisons de sécurité, soit parce que ça a vocation à alimenter une lutte collective, et parfois (souvent) les deux. En dehors des quelques contextes nécessitant une figure public comme unx porte parole, la seule raison à ce choix de l’engagement public individuel, c’est le clout.&lt;/p&gt;
&lt;p&gt;Les luttes se font dans l’anonymat : les syndicalistes disent pas “moi chef département de tel section”, c’est “le syndicat”, les féministes, les antiracistes et les queers c’est “le collectif” ou “l’asso”. Les “totos” pareil, quand iels ne revendiquent même pas et se contentent de faire.&lt;/p&gt;
&lt;p&gt;Y a tellement de travail fait dans l’ombre au jour le jour par des associations et des collectifs. Et toi t’arrives et tu dis « &lt;em&gt;Oui, mais moi au moins je fais des trucs, regarde tous les postes insta qui le prouve, toi t’as fait quoi ?&lt;/em&gt; ». Moi j’ai fait des trucs dont je peux pas parler, par respect de la logique collective ou par sécurité. Mais tes stats sont sans doute le cœur de la lutte, j’imagine.&lt;/p&gt;
&lt;p&gt;Ça serait facile de tomber dans une analyse très abstraite de “c’est la faute de tiktok et instagram si les luttes galèrent”. On peut facilement trouver des responsables en chair et en os. Le capitalisme absorbe tout, y compris les contre-cultures et ses oppositions. Et y a des gens qui face à ce mécanisme se sont dit « &lt;em&gt;tiens moi je vais commodifier hmmm... Les luttes !&lt;/em&gt; ». C'est vraiment l'équivalent de quelqu’un en galère de thune qui décide de vendre le frigo de la coloc. Les influenceurs militants qui construisent une vision des luttes basée sur leurs consommation, à coup de campagnes d’influence qui tourne autour de leur petite personne.&lt;/p&gt;
&lt;p&gt;Ils parlent des mouvements sociaux comme des trucs qui apparaissent dans le vide, qu’on attend, pour ensuite y participer et visibiliser sa participation à. Ils ont construit l’idée que militer consiste à s’assurer de faire monter un chiffre de participation, et éventuellement convaincre d’autres de faire de même.&lt;/p&gt;
&lt;p&gt;Un vrai système pyramidale où tout le monde est influenceurx, toi moins importantx que elleux mais plus importantx que les autres. Iels font l’impasse sur tout ce qu’implique une lutte, dans toute sa diversité (assos d’accompagnement, manifs, structures, collectifs, actions) et ce qui est nécessaire pour que ça existe : de l’énergie, des gens, des réus chiantes, des mains dans le cambouis, des débats désagréables.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="et-la-consommation-militante-passive"&gt;
&lt;h2&gt;Et la consommation militante passive&lt;a class="headerlink" href="#et-la-consommation-militante-passive" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On en arrive donc à des discours déconnectés du “terrain” (et j’insiste mais, qu’il soit physique ou virtuel). On voit parfois sur les réseaux des gens “commander” des actions.&lt;/p&gt;
&lt;p&gt;« &lt;em&gt;Y a pas de pride de nuit cette année ???&lt;/em&gt; »&lt;/p&gt;
&lt;p&gt;« &lt;em&gt;Trop bien la pride de nuit à lyon, pourquoi y en a pas à lille ?&lt;/em&gt; »&lt;/p&gt;
&lt;p&gt;« &lt;em&gt;Vous savez si y a un cortège queer-palestine organisé au 1er mai ?&lt;/em&gt; »&lt;/p&gt;
&lt;p&gt;Bah si y a pas, fais-le toi ?&lt;/p&gt;
&lt;p&gt;Les manifs tombent toutes cuites : et si y en a pas, c’est que les cortègeologues ont failli à leur tâche assignée implicitement. Vous inquiétez pas, iels seront bientôt remplacées, iels sont déjà en burn-out.&lt;/p&gt;
&lt;p&gt;Les publis qui annoncent les manif tournent de ouf, jusqu’au moment du poste “appel à bénévoles” où soudain tout le monde a piscine. Tout le monde veut venir à la manif/l’action, personne veut participer à son organisation. Ça tient de la commande de fast-food, du militantisme passif.&lt;/p&gt;
&lt;p&gt;De cette consommation passive découle une autre conséquence tout autant néfaste : on a complètement accepté l’idée que les luttes sont en concurrence sur le marché de l’attention. Gros focus sur une lutte pendant quelques mois, mais si une autre pointe le bout de son nez à cause de l’actualité, tout le monde se regarde en chien de faience à savoir qui a la priorité et qui accusera l’autre “de l’invisibiliser”.&lt;/p&gt;
&lt;p&gt;Du coup, on guette les chiffres. « &lt;em&gt;et ça y est, les gens recommencent à oublier la Palestine, l'engagement des posts baissent ».&lt;/em&gt; Déjà l’engagement est pas à l’image de ce qui se passe en société. Et cette vieille compèt entre les misères c'est ce qui les commodifie. Surtout, ça t'arrange bien que ça soit l'engagement de &lt;em&gt;ta&lt;/em&gt; page d'influenceurx militantx qui faut maintenir à flot.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;a class="headerlink" href="#conclusion" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Et de tout ça, je point du doigt les influenceurxs : sous prétexte de visibiliser les luttes, iels les revendent, en s’appuyant sur le travail fourni par les militantxs comme matériau de base, et construisent une logique de consommation. Des gens organisent une manif ou une action, iels appellent à y participer comme iels avaient fourni ce taff, font juste ça en boucle et râlent quand “y a pas de manif pour X” : en vérité, iels dénoncent qu’on leur fourni pas les matériaux qui alimentent leur belle machinerie qui transforme les luttes en followers.&lt;/p&gt;
&lt;p&gt;Il faut y faire face : les influenceurxs ne sont pas un “mal nécessaire” : c’est une plaie. Chassons-les de nos luttes.&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category><category term="militantisme-de"></category></entry><entry><title>Yet another election cycle: time to panic</title><link href="https://aligot-death.space/txt/anarchy/legislatives-2024-panique-en" rel="alternate"></link><published>2024-06-11T00:00:00+02:00</published><updated>2024-06-11T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2024-06-11:/txt/anarchy/legislatives-2024-panique-en</id><summary type="html">&lt;p class="first last"&gt;Social medias went balistic as 2024 french legislative elections approached&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Social medias got even more nerve-racking.&lt;/p&gt;
&lt;p&gt;Influencers thinking of themselves as political leaders&lt;/p&gt;
&lt;p&gt;People seeing politics getting starified, so they start idolizing left leaders.&lt;/p&gt;
&lt;p&gt;The amount energy deployed to create ✨content✨ such as &amp;quot;&lt;em&gt;You're probably not aware, but voting for the far-right isn't great&lt;/em&gt;&amp;quot; while simultaneously saying &amp;quot;&lt;em&gt;you don't vote? I'll break your knees and key your car&lt;/em&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot;Abstention rate amongst the youth&amp;quot; what about VOTING RATE for the far-right amongst the &amp;quot;youth&amp;quot;??&lt;/p&gt;
&lt;p&gt;&amp;quot;We'll fight later&amp;quot; You weren't fighting before?? You were spending all of your energy on campaigning, and before that as well, and before that…&lt;/p&gt;
&lt;p&gt;&amp;quot;Did you know, one vote in that district could have changed everything&amp;quot;. Elections are mostly the result of demographics and sociology not a change of heart two days prior to the elections.&lt;/p&gt;
&lt;p&gt;The true accelerationists are the ones convinced that the far-right is something abstract that you must keep at bay through rituals like voting. It's not. You're scared? Make sense. You gonna vote even if you hate it, and you want to convince other to do the same? I get that. But you need to go beyond the whole &amp;quot;if you don't vote you can't complain&amp;quot;.&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>Combien faut il de photographes pour changer un système ?</title><link href="https://aligot-death.space/txt/anarchy/photo-manifs-fr" rel="alternate"></link><published>2024-02-03T00:00:00+01:00</published><updated>2025-08-11T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2024-02-03:/txt/anarchy/photo-manifs-fr</id><summary type="html">&lt;p class="first last"&gt;Réflexions sur les objectifs en manif&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Le soleil est pâle, l'air est frais. Il sent bon la poudre noir, la saucisse et la contestation. On se balade entre les cortèges et on croise les personnages habituels.&lt;/p&gt;
&lt;p&gt;Des “secouristes volontaires” qui affichent leur ‘&amp;#64;’ insta floqué sur leur combinaison militaire.&lt;/p&gt;
&lt;p&gt;Des pancartes subversives et originales à base de “Macron défonce moi le cul, pas la retraite”.&lt;/p&gt;
&lt;p&gt;Un gros nuage jaune surgit de la foule. Soudain, leur cri résonne.&lt;/p&gt;
&lt;p&gt;
  &lt;span style="font-style: italic;margin-left: 30%;line-height: 1;"&gt;clic&lt;/span&gt;&lt;br&gt;
  &lt;span style="font-weight: 900;font-size: 3em;text-transform: uppercase;letter-spacing: -2px;margin-left: 60%;line-height: 1;"&gt;clic&lt;/span&gt;&lt;br&gt;
  &lt;span style="font-weight: 200;font-size: 3em;font-style: italic;margin-left: 10%;line-height: 1;letter-spacing: 36px;"&gt;clic&lt;/span&gt;&lt;br&gt;
  &lt;span style="letter-spacing: 3px;margin-left: 80%;line-height: 1;"&gt;clic&lt;/span&gt;&lt;br&gt;
  &lt;span style="font-family: Major Mono Display, Consolas, &amp;quot;DejaVu Sans Mono&amp;quot;, monospace;font-weight: 900;margin: 50%;line-height: 1;font-size: 3em;"&gt;clic&lt;/span&gt;&lt;br&gt;
&lt;/p&gt;&lt;p&gt;Si ça trouve, la différence entre les chiffres de mobilisation gouvernementaux et syndicaux, ça dépend juste de si on compte les photographes ou pas.&lt;/p&gt;
&lt;div class="section" id="le-panopticon"&gt;
&lt;h2&gt;Le panopticon&lt;a class="headerlink" href="#le-panopticon" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Un mouvement social, ça a besoin d’exister dans l’espace public : Rien de nouveau. D’ailleurs c'est le principe d’une manif&amp;nbsp;: regardez, on est pleins dans la rue, faites pas genre vous savez pas. À l’ère des réseaux sociaux plus que jamais, le combat politique, il se fait aussi par la communication. Ça, le gouvernement l’a bien compris : en témoigne l'arsenal médiatique entourant la dernière réforme du moment.&lt;/p&gt;
&lt;p&gt;Du coup c'est normal, et même nécessaire, que nous produisions aussi un message.&lt;/p&gt;
&lt;p style="padding-right: 40%;text-align: center;"&gt;Les journaux politiques imprimés en basse qualité à la COREP&lt;/p&gt;
&lt;p style="padding-left: 40%;text-align: center;"&gt;les photos un peu folklo d’une vitrine cassée qui tourne sur les conversations&lt;/p&gt;
&lt;p style="padding-right: 40%;text-align: center;"&gt;le site d’info libertaire au graphisme tellement année 2000 qu’il sera bientôt à nouveau fashion&lt;/p&gt;
&lt;p style="padding-left: 40%;text-align: center;"&gt;le syndicat que tu adores détester qui utilise des émojis dans ses comms sur les réseaux sociaux.&lt;/p&gt;&lt;p&gt;Mais la question se pose&amp;nbsp;: pourquoi chacun de ces média existent&amp;nbsp;? Contrer la propagande gouvernementale&amp;nbsp;? Donner du baume au cœur ?&amp;nbsp;Donner des clefs de compréhension ?&lt;/p&gt;
&lt;p&gt;Parce que moi, j’ai l’impression que la plupart des photo-reporters de guerre du dimanche dans nos manifs est surtout là pour faire monter son nombre de follower.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="la-difference-entre-le-bon-et-le-mauvais-photographe"&gt;
&lt;h2&gt;La différence entre le bon et le mauvais photographe&lt;a class="headerlink" href="#la-difference-entre-le-bon-et-le-mauvais-photographe" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="on-left figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/qg_presse.jpg"&gt;
&lt;img alt="ligne tactique de photographes pour contenir un fumigène menaçant les manifestantxs" src="https://rsc.aligot-death.space/images/720/articles/qg_presse.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Ligne tactique de photographes pour contenir un fumigène menaçant les manifestantxs&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Déjà, parlons du nombre&lt;/strong&gt; : en vrai, je comprends. Capturer cet instant fugace d’un peuple qui se lève, de la foule déterminée, ça donne envie. Et puis, il parait qu’il y a pleins de gens qui subissent la répression dans l’ombre. Alors si tu peux mettre à profit ta connaissance du triangle d'exposition pour documenter les sales coups des flics, ça pourrait bien être ta contribution à la lutte. Mais est-ce qu’on a besoin d’autant de &amp;quot;documentation&amp;quot;&amp;nbsp;? Au moindre fumi craqué, au moindre mascu qui fait genre de tenir les flics à distance par la seule force de son majeur, des dizaines de photographes débarquent pour capturer cet instant si unique. Sans compter que lorsqu’on a participé à l’organisation de la manif et qu’on cherche les-dits photographes sur les réseaux pour les contacter, ils sont aux abonnés absents. Où vont toutes ces photos&amp;nbsp;? Si tant d’entre elles s’échouent sur les rivages des piges foirées et des pages à trois abonnéxs, pourquoi y a-t-il autant de flashs en manif ?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ensuite, le médium&lt;/strong&gt; : c’est important de réfléchir aux outils qu’on utilise. Déjà, aucune situation ne justifie stratégiquement un live facebook. À chaque street-reporter qui agite son smartphone sur un stabilisateur, j’imagine le cyber-RG un café trop amer à la main, dégustant des preuves compromettantes à jamais effaçables. On m'a déjà répondu que pour certaines personnes, ces lives sont leur seul moyen de participer aux manifs. Malheureusement, ce n'est pas une raison suffisante pour compromettre la vie privée et la sécurité des manifestantxs. À ça s’ajoute ceux qui filment en &amp;quot;hors-ligne&amp;quot;, faisant du mieux qu’ils peuvent pour éviter d’attraper des têtes, mais qui au bout du compte ne feront aucun travail d’anonymisation, parce qu’avec l’algorithme™ en guise de rédac’ chef, le temps c’est de l’argent. Et on a le photographe qui fait des super jolies photos, qui floute même les godasses. Sauf que même si je ne boude pas l’esthétique d’une poubelle qui crame devant une ligne de flics en panique… je vois pas trop en quoi ça nous avance politiquement d’en avoir une 1531ème.&lt;/p&gt;
&lt;div class="on-right figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/journalistes_manif.jpg"&gt;
&lt;img alt="un &amp;quot;journaliste&amp;quot; dans une tenue digne d'un sbire de méchant de film" src="https://rsc.aligot-death.space/images/480/articles/journalistes_manif.jpg" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;un &amp;quot;journaliste&amp;quot; dans une tenue digne d'un sbire de méchant de film&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Enfin, les motivations&lt;/strong&gt; : même en excluant le pigiste local qui préférerait être ailleurs, c'est pas si compliqué que ça à deviner. Plus une personne aura/est investie dans les luttes, plus elle aura tendance à faire gaffe à l’anonymat. Elle sait. Elle a déjà été de l’autre côté du téléobjectif. J'ai aucun doute, Benjamin, que ton reel insta de la &lt;tt class="docutils literal"&gt;(2023, février) Poubelle cramax, Villeurbanne [pixels sur écran fracturé]&lt;/tt&gt; terminera dans les e-books d’Histoire. Mais en attendant, ma liberté et celle de mes camarades, d’exister et de lutter, vaut plus que tous tes followers.&lt;/p&gt;
&lt;p&gt;Personnellement, j’ai arrêté de compter le nombre de fois en manif où j’ai vu des street-médics se faire hurler dessus “ET LA LIBERTÉ DE LA PRESSE ALORS ????” par un jean-michel et son Nikon à trois SMICs fraichement acheté qui veut forcer leur périmètre pour fournir leur dose de sang à ses followers.&lt;/p&gt;
&lt;p class="warning"&gt;Le saviez vous&amp;nbsp;? Un objectif photo, c’est fragile et cher. Abonnez-vous pour plus de faits qui n’ont définitivement aucun rapport avec le sujet.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="enhance"&gt;
&lt;h2&gt;ENHANCE!&lt;a class="headerlink" href="#enhance" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="on-left figure"&gt;
&lt;a class="reference external image-reference" href="/art/activism/nse-243-en"&gt;
&lt;img alt="des personnes vues de dos et donc non-identifiables lors d'une action" src="https://rsc.aligot-death.space/images/720/art/activism/nse-2433030273431054378-395601351e.jpg" style="width: 75%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Les techniques d'anonymisation ne manquent pas : cadrage, compo, post-processing...&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Il est grand temps que l’on se (re)construise un rapport à l’image et à la communication. C’est pas un sujet facile : on croise nécessité de visibiliser, sécurité, mémoire des luttes et tout un tas d’autres sujets complexes. Alors on fait quoi ? On monte des systèmes d’accreds autoritaires qui décident qui qu’a le droit ou pas ? On fait des séminaires de ✨sensibilisation✨ avec des super powerpoints ?&lt;/p&gt;
&lt;p&gt;Blague à part, ayant fait un peu de photo en manif, ayant discuté avec des potes photographes, et ayant dû faire du SO sur des manifs où la photo était un sujet &amp;quot;sensible&amp;quot;, la meilleure piste qu'on a trouvé avec des camarades serait de lancer un mouvement autour d'un symbole d'identification associé à une charte que journalistes et photographes pourraient arborer pour signifier &amp;quot;hey, t'inquiète, je fais gaffe, on est ensemble&amp;quot;. Ça serait plus symbolique qu'autre chose mais pourrait déclencher une discussion plus large sur le sujet tout en permettant aux journalistes de montrer patte blanche sur une simple base de confiance et non de flicage.&lt;/p&gt;
&lt;p&gt;Mais si on peut essayer de faire preuve de diplomatie (et certainxs photographes y sont réceptifves), ça reste aux photojournalistes de faire le premier pas et à apprendre à demander l'autorisation de prendre une photo et respecter le refus. La relation entre militantxs et journalistes va, compte tenu des enjeux, au-delà du simple cadre légal existant sur le droit à l'image. Le cas contraire…&lt;/p&gt;
&lt;p&gt;Si les images peuvent servir la lutte, elle ne sont pas leur but ultime.&lt;/p&gt;
&lt;p&gt;Nos luttes et nos existences se limitent pas à être des sujets mis à dispositions des journalistes et autres instagrameurs.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="ressource-s"&gt;
&lt;h2&gt;Ressource(s)&lt;a class="headerlink" href="#ressource-s" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://nantes.indymedia.org/posts/151239/oregon-etats-unis-toutes-les-cameras-sont-des-flics/"&gt;[Oregon, États-Unis] Toutes les caméras sont des flics | Indymedia Nantes&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>Datation d’un plan de Lyon : la carte c’est quand même un peu le territoire</title><link href="https://aligot-death.space/txt/misc/vieux-plan-tcl-fr" rel="alternate"></link><published>2023-08-17T00:00:00+02:00</published><updated>2023-08-17T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2023-08-17:/txt/misc/vieux-plan-tcl-fr</id><summary type="html">&lt;p class="first last"&gt;titre alternatif refusé par la prod : puzzle à la carte.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Ça m’arrive régulièrement d’aider à des déménagements/débarrassage, soit pour aider, soit pour taffer. Et mon petit plaisir personnel quand on a le droit de récupérer des objets, c’est les vieux trucs qui appellent à deviner l’époque d’où ils viennent : bref, des puzzles historiques, comme ça, dans la nature. Même si soyons honnête, c’est principalement un amour des puzzles-enquêtes plus que de l’histoire. Mais là, c’est des histoires de de métros, des bus, et d’urbanisme.&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_rainbow_road.jpg"&gt;
&lt;img alt="Une secteur hôtel de ville de la carte arborant 11 lignes de bus par endroit, formant un patchwork coloré" src="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_rainbow_road.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;&lt;em&gt;(Apparemment, Lyon hébergeait aupravant une reproduction de la Rainbow Road de Mario Kart vers Hôtel de Ville)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;La &lt;em&gt;pièce,&lt;/em&gt; comme on l’appellera pompeusement, c’est un vieux plan papier du réseau de transport en commun de la région lyonnaise géré par les Transports en Commun Lyonnais (TCL). Elle est en assez bon état, mais entre les anciens noms historiques d’institutions, les logos giscardpunk, elle semble potentiellement être plus vieille que moi.&lt;/p&gt;
&lt;p&gt;
  Si ça vous tente aussi de jouer, je vous invite à ne pas nécessairement lire tout de suite, et de vous essayer à l’exercice : j’ai mis à disposition un scan :&lt;br&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href = "https://rsc.aligot-death.space/images/full/articles/plan_tcl_recto.jpg" target="_blank" download&gt;[plan_tcl_recto.jpg]&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href = "https://rsc.aligot-death.space/images/full/articles/plan_tcl_verso.jpg" target="_blank" download&gt;[plan_tcl_verso.jpg]&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/p&gt;&lt;div class="section" id="le-jeu-des-sept-differences"&gt;
&lt;h2&gt;Le jeu des sept différences&lt;a class="headerlink" href="#le-jeu-des-sept-differences" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Je commence donc à chercher ce qu’on appellera hollywoodieusement des marqueurs temporels, c’est à dire des éléments qui ne sont pas en soit datés mais qui peuvent donner des indices. On pourrait y aller à la hache en se mangeant toute une chronologie de déploiement du réseau TCL, mais non seulement c’est pas drôle, mais en plus les informations sur le sujet sont clairsemées, pour ne pas dire lacunaires. On va donc pour l’instant se concentrer sur tout, sauf la carte.&lt;/p&gt;
&lt;p&gt;Au risque d’accabler certaines personnes sur leur âge, le premier élément qui saute au yeux c’est un “3615 TCL” dans les informations. Plus qu’un marqueur temporel, le minitel est un rouleau de peinture XXL temporel. Le service a techniquement été arrêté en 2012 et son abandon assez progressif : on en tirera donc difficilement autre chose que “ça remonte, pté”.&lt;/p&gt;
&lt;p&gt;Les numéros de téléphones sont tous écrits sans un “0” au début. j’ai d’abord cru à une ancienne norme d’écriture. Mais après une petite recherche, les interwebs me font remarquer qu’il manque carrément l’indicatif régional. Une autre petite recherche plus loin, et on a donc le passage de huit à 10 chiffres pour les numéros de téléphone français le 18 octobre 1996. La carte date donc d’avant. En bonus, &lt;a class="reference external" href="https://www.youtube.com/watch?v=v8QriRGxT_M"&gt;ce mini reportage de l’INA (youtube)&lt;/a&gt; de deux minutes sur le passage, avec d’authentiques badauds confus lors d’un micro-trottoir où on leur demande l’indicatif de Paris.&lt;/p&gt;
&lt;p&gt;Le logo de l’eurexpo, un centre de conventions et d'exposition, affiche un design différent de l’actuel. S’agissant d’une société privée avec un positionnement très restreint, difficile de retrouver un historique du logo. Le seul élément probant est un &lt;a class="reference external" href="https://www.ebay.fr/itm/364373563056"&gt;timbre de la foire de Lyon de 1989&lt;/a&gt;, en vente sur ebay qui affiche le même logo :&lt;/p&gt;
&lt;div class="center figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_eurexpo.jpg"&gt;
&lt;img alt="une photo d'un timbre pour la foire de lyon de 1989 avec le logo en forme d'arche, similaire à celui sur la carte" src="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_eurexpo.jpg" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Le logo du Conseil Général du Rhône est également “vieillot”. Après quelques recherches, c’est le conseil lui-même qui est vieillot et même désuet : il semblerait que le “Conseil Général” date de 1800 et succédait au directoire de la création du département du Rhône, et fût remplacé par le Conseil Départemental encore en place aujourd’hui par &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Conseil_d%C3%A9partemental_du_Rh%C3%B4ne#cite_note-3"&gt;la loi du 17 mai 2013&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Le logo SNCF (visible sur la gare Perrache et le long des lignes de trains) est lui non seulement pas celui-ci d’aujourd’hui mais aussi assez connu et reconnu comme “historique” par le grand public.&lt;/p&gt;
&lt;div class="center figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_logo_sncf.jpg"&gt;
&lt;img alt="une photo d'une ligne de train sur le carte, arborant un vieux logo SNCF" src="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_logo_sncf.jpg" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;À ce titre on trouve d’ailleurs de nombreuses chronologies détaillées du &lt;em&gt;logotype&lt;/em&gt; de cette vénérable institution. Même si le nôtre est peu lisible, il correspond sans trop de doute possible à celui en vigueur entre le 4 décembre 1985 (designé par Roger Tallon) et le &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Histoire_de_la_SNCF#Identit%C3%A9_visuelle"&gt;14 décembre 1992&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Un vieux logo d’un “réseau du Rhône”. Le nom très générique rend la recherche un peu plus compliquée, mais je spécule que ça a depuis été absorbé par une régie et qu’on aura pas de chronologie du logo&lt;/p&gt;
&lt;div class="on-right figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_reseaux_du_rhone.jpg"&gt;
&lt;img alt="une photo du logo d'un certain &amp;quot;Réseau du Rhône&amp;quot;, présent sur la carte" src="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_reseaux_du_rhone.jpg" style="width: 60%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Pour ce qui est de la carte, pas besoin de rentrer dans le tricotage direct : le réseau de tramways entier est absent de la carte. Le (nouveau) réseau de tramways est exceptionnellement récent comparé au métro, puisqu’ouvert en 2001. Je connais pas les transports en commun lyonnais par-cœur, surtout que j’y habite depuis même pas huit ans, mais je l’ai personnellement appris en essayant de dater de la même manière un ticket TCL trouvé y a quelques années dans un contexte similaire :&lt;/p&gt;
&lt;div class="center figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_ticket.jpg"&gt;
&lt;img alt="une photo d'un vieux ticket TCL, très différent de ceux en service aujourd'hui" src="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_ticket.jpg" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Un coup d’épée dans l'eau qui a failli payer : je me suis penché sur les ponts, qui sont à Lyon relativement modernes. Mais la construction d’un pont n’étant pas anecdotique, c’était la garantie de trouver des archives. Le dernier pont du 20e siècle à Lyon est le Pont Winston-Churchill inauguré en 1983. Il apparaît sur la carte, ce qui à le mérite de préciser la période potentielle, mais pas de beaucoup.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="creusons-un-peu-plus"&gt;
&lt;h2&gt;Creusons un peu plus&lt;a class="headerlink" href="#creusons-un-peu-plus" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;“Creuser”, “métro”… hmm ?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Bon, prenons le problème à bras le corps en regardant vraiment le réseau qui s’offre à nous : commençons par le plus simple en espérant que ça suffira, le métro, et plus précisément ses extensions progressives.&lt;/p&gt;
&lt;p&gt;Lyon disposant de quatre (4) lignes de métros : mes piètres huit ans d’arpentages de la cité des zobs me suffisent à deviner sur quoi me concentrer.&lt;/p&gt;
&lt;p&gt;Comparé à aujourd’hui on a donc :&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;La ligne A qui s’arrête à Laurent-Bonnevay. La ligne A a
surprenamment été étendue jusqu’à &lt;em&gt;Vaulx-en-Velin - La Soie&lt;/em&gt;
relativement récemment, le &lt;a class="reference external" href="http://www.ferro-lyon.net/Metro-sur-pneus/lignes-A-B/ligne-A-station-par-station/136-400Vaulx-en-Velin-La-Soie"&gt;2 octobre
2007&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;La ligne B, qui s’arrête à Jean-Macé. Bien que plus récente,
l’extension jusqu’à Gerland date de
&lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Ligne_B_du_m%C3%A9tro_de_Lyon"&gt;2000&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;La ligne D, qui s’arrête à Gorge-de-Loup ;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et là on tient une vraie info : non seulement l’extension jusqu’à Gare de Vaise date du 28 avril 1997, mais en fouillant l’historique un autre détail apparaît : de l’autre côté, la ligne a été étendue jusqu’à Vénissieux, présent sur la carte, le 11 décembre 1992. On a donc une fourchette plus précise.&lt;/p&gt;
&lt;p&gt;Bon, soufflons un peu, admirez cette magnifique flèche d’orientation indiquant le nord de la carte :&lt;/p&gt;
&lt;div class="full-center figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_fleche_orientation.jpg"&gt;
&lt;img alt="Une photo de la flèche d'orientation qui indique le nord et sur laquelle les personnes qui ont fait le design se sont bien éclatées, à coup d'arabesques et autres décorations" src="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_fleche_orientation.jpg" style="width: 100%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="le-chateau-de-carte"&gt;
&lt;h2&gt;Le château de carte&lt;a class="headerlink" href="#le-chateau-de-carte" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Si vous avez correctement suivi vous savez peut-être la réponse. Personnellement j’étais encore dans le guidon à collecter des données, qui commençaient à doucement toutes converger… En effet, parmi toutes les informations, deux suffisent finalement, puisqu’à elles seules elles tracent le X sur la carte, comme ça arrive rarement :&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Le logo SNCF date donc de la période 1985-1992 ;&lt;/li&gt;
&lt;li&gt;La station de métro de Vénissieux, inaugurée en décembre 1992, est présente sur la carte.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En cherchant un peu l’actualité lyonnaise en 1992, on a au détour d’une rétrospective faite par le journal Le Progrès l’inauguration de la gare routière de Gorge de Loup le 16 décembre 1992 :&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://www.leprogres.fr/multimedia/2015/12/18/l-actu-de-la-semaine-dans-le-retro-en-1992"&gt;En images. L'actu de la semaine dans le rétro... en 1992 (Le Progrès, 18 déc. 2015)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;→ &lt;em&gt;Photo 6 et 7, “« La toute nouvelle gare routière de Gorge-de-Loup
acceuille (sic) ses premiers autocars... / 16 décembre - Archives Le Progrès »&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Les informations sur le sujet semblent catégoriques sur le fait qu’il n’y avait aucune infrastructure de ce type même mineur auparavant, on a donc un marqueur supplémentaire :&lt;/p&gt;
&lt;div class="center figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_gare_routiere.jpg"&gt;
&lt;img alt="Une photo de du bas de la carte indiquant les lignes disponibles depuis la gare routière de Gorge de Loup." src="https://rsc.aligot-death.space/images/full/articles/vieux_plan_tcl_gare_routiere.jpg" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Il semblerait donc que cette carte soit non seulement de 1992, mais plus encore du dernier trimestre de cette année.&lt;/p&gt;
&lt;p&gt;Du coup, un dernier détail fait alors sens (même si en vrai, je m’étais posé la question avant d’oublier). La carte est identifiée auprès de l’imprimeur TOPO NORD sous le serial &lt;tt class="docutils literal"&gt;V 1142 9210&lt;/tt&gt;. On peut facilement imaginer que la date de conception était donc en &lt;strong&gt;octobre 1992&lt;/strong&gt;, pour une publication aux alentours de décembre.&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>Installing Minecraft on SteamDeck &amp; HoloISO (SteamOS)</title><link href="https://aligot-death.space/txt/guides/minecraft-steamos-en" rel="alternate"></link><published>2022-06-14T00:00:00+02:00</published><updated>2025-05-30T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2022-06-14:/txt/guides/minecraft-steamos-en</id><summary type="html">&lt;p class="first last"&gt;Installing Minecraft on a SteamDeck or a HoloISO (SteamOS) powered computer.&lt;/p&gt;
</summary><content type="html">&lt;p class="alert"&gt;EDIT 2025-05-30: It's easier now, just install &amp;quot;Prism Launcher&amp;quot; from the &amp;quot;Discover&amp;quot; app. Also, retrospectively, this tutorial is confusing as hell.&lt;/p&gt;
&lt;p&gt;Installing games and software outside of Steam can be daunting on Linux if you dont' know the ecosystem. I am personally used to Debian (a flavor of Linux), but not ArchLinux (the underlying linux flavor of SteamOS). This guide is the result of my first endeavor in Arch, so non-initiated users can install Minecraft.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I wrote this article based on a HoloISO/SteamOS powered computer: the exact process for the SteamDeck might be slightly different.&lt;/em&gt;&lt;/p&gt;
&lt;div class="section" id="leaving-gamemode"&gt;
&lt;h2&gt;Leaving Gamemode&lt;a class="headerlink" href="#leaving-gamemode" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When you open your device, it opens by default in &amp;quot;Game mode&amp;quot;, i.e. the fancy Steam Interface. We need to access the underlying Desktop to install Minecraft.
press the &amp;quot;steam&amp;quot; button or the &lt;tt class="docutils literal"&gt;Escape&lt;/tt&gt; key. This brings up a menu. select &amp;quot;Power&amp;quot;, and then &amp;quot;Go to Desktop mode&amp;quot;.&lt;/p&gt;
&lt;p&gt;The device should show a typical user desktop.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="installing-java"&gt;
&lt;h2&gt;Installing Java&lt;a class="headerlink" href="#installing-java" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The minecraft launcher (and some minecraft versions) requires java. We need to install that first.&lt;/p&gt;
&lt;p&gt;To do so, open the Start menu, and type &amp;quot;Konsole&amp;quot;. Click on it.&lt;/p&gt;
&lt;p&gt;If you are really not familiar with Linux, the app opening is called a &amp;quot;terminal&amp;quot;: it allows to control the computer using only text, and to access advanced features.&lt;/p&gt;
&lt;p&gt;type the following text:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;pacman&lt;span class="w"&gt; &lt;/span&gt;-S&lt;span class="w"&gt; &lt;/span&gt;jre-openjdk
&lt;/pre&gt;
&lt;p&gt;And launch this command by pressing the &lt;tt class="docutils literal"&gt;&amp;lt;Enter&amp;gt;&lt;/tt&gt; key. This is telling the system to install java. Once it asks for confirmation, simply press the &lt;tt class="docutils literal"&gt;Y&lt;/tt&gt; key and then &lt;tt class="docutils literal"&gt;&amp;lt;Enter&amp;gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;After spitting some heavy text, the terminal should show a line ending with a &lt;tt class="docutils literal"&gt;$&lt;/tt&gt; (for instance, &lt;tt class="docutils literal"&gt;[nemecle&amp;#64;ankhmorpork ~]$&lt;/tt&gt;). It indicates that it is ready to receive another command, and that the previous one finished.&lt;/p&gt;
&lt;p&gt;Java is now installed.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="installing-minecraft-per-se"&gt;
&lt;h2&gt;Installing minecraft, per se&lt;a class="headerlink" href="#installing-minecraft-per-se" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The thing we just installed is called a &lt;em&gt;package&lt;/em&gt;. It kind of works like apps on a smartphone, in the sens that you don't need to go on a website to download it and install it. You just go to a trusted &amp;quot;market&amp;quot;, called in that case a repository.&lt;/p&gt;
&lt;p&gt;Minecraft is, however, not on the &amp;quot;default&amp;quot; repository available to you. We are going to download it from something called &lt;em&gt;Arch User Repository&lt;/em&gt; (AUR), where Mojang, the creators of minecraft, upload their launcher.&lt;/p&gt;
&lt;p&gt;To do so, type the following command in the terminal, and once again press the &lt;tt class="docutils literal"&gt;&amp;lt;Enter&amp;gt;&lt;/tt&gt; key to launch it:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;git&lt;span class="w"&gt; &lt;/span&gt;clone&lt;span class="w"&gt; &lt;/span&gt;https://aur.archlinux.org/minecraft-launcher
&lt;/pre&gt;
&lt;p&gt;After a while, the download is finished, and the terminal shows once again a line ending with &amp;quot;$&amp;quot;.&lt;/p&gt;
&lt;p&gt;We then ask our system to make a proper package (again, like an app) from those downloaded files. Do so by typing the following command (still followed by the &lt;tt class="docutils literal"&gt;&amp;lt;Enter&amp;gt;&lt;/tt&gt; key):&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt;makepkg
&lt;/pre&gt;
&lt;p&gt;And again, after a while a lot of text, the command finishes on a &amp;quot;$&amp;quot;.&lt;/p&gt;
&lt;p&gt;Finally, let's install our package. Type the following, without ending with the &lt;tt class="docutils literal"&gt;&amp;lt;Enter&amp;gt;&lt;/tt&gt; key this time:&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt;pacman&lt;span class="w"&gt; &lt;/span&gt;-U&lt;span class="w"&gt; &lt;/span&gt;minecraft
&lt;/pre&gt;
&lt;p&gt;Press the &lt;tt class="docutils literal"&gt;Tab&lt;/tt&gt; key (the &lt;tt class="docutils literal"&gt;↹&lt;/tt&gt; on the top left of your keyboard): the system automatically completes the name of the file.&lt;/p&gt;
&lt;p&gt;Press enter to confirm.&lt;/p&gt;
&lt;p&gt;Finally, to launch minecraft, type:&lt;/p&gt;
&lt;p&gt;LC_ALL=C minecraft-launcher&lt;/p&gt;
&lt;p&gt;Next time, you'll just have to launch this commande into Konsole from the Desktop mode.&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>Bah non, je voterai pas mélenchon.</title><link href="https://aligot-death.space/txt/anarchy/melenchon-2022-fr" rel="alternate"></link><published>2022-04-06T00:00:00+02:00</published><updated>2022-04-06T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2022-04-06:/txt/anarchy/melenchon-2022-fr</id><summary type="html">&lt;p class="first last"&gt;Je comprends pourquoi vous voterez mélenchon. Mais ça sera sans moi.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;D'habitude, à chaque élection, je me pose pas la question. En tant qu'anarchiste, je me refuse à voter.&lt;/p&gt;
&lt;p&gt;Cette fois-ci, je me suis sincèrement posé-e la question. Non pas que je me sois demandé-e pour qui voter, mais j'ai plutôt eu un accès de panique le dernier jour des inscriptions sur liste électorale&amp;nbsp;: le contexte semble si incertain, dans un sens comme dans l'autre, qu'il serait dommage de se fermer des portes. Je me suis donc inscrit-e.&lt;/p&gt;
&lt;p&gt;Je me suis aussi posé-e la question du &amp;quot;vote stratégique&amp;quot;&amp;nbsp;: pas tant parce que je pense que c'est efficace, mais disons que pour le peu de temps que ça prend, ça pourrait se défendre. Mes cercles sociaux m'ont beaucoup influencé&amp;nbsp;: beaucoup de mes camarades autrefois abstentionnistes convaincu-es, anti-FI jusqu'au bout des ongles, iront voter méluche. Forcément, je me suis questionné-e.&lt;/p&gt;
&lt;p&gt;Mais non, finalement non, je ne voterai pas, et encore moins mélenchon. Enfin, si par un tour de magie il passe au second tour, disons pourquoi pas.&lt;/p&gt;
&lt;p&gt;Pour 2017, je m'étais fendu-e d'un thread twitter et plus tard d'un &lt;a class="reference external" href="/drafts/re-pourquoi-il-ne-faut-surtout-pas-voter-melenchon-fr.html"&gt;article&lt;/a&gt; sur mes ressentiment contre mélenchon. Il s'agissait principalement d'une liste un peu bancale des positions controversées de celui-ci, notamment sur le plan économique (comme la question de la relance keynesienne) et géopolitique. C'était logique&amp;nbsp;: tout le monde parlait de mélenchon comme une grande figure de gauche qui avait ses chances, mais moi (et d'autres) ne voyaient pas les choses comme ça.&lt;/p&gt;
&lt;p&gt;Mais cette fois-ci c'est différent&amp;nbsp;: nombre de forces militant-es et camarades s'accordent à dire que mélenchon c'est vraiment pas dingue, limite craignos. Simplement, stratégiquement, le contexte ne serait pas le même. Et en vrai, je comprends. Je ne suis pas d'accord, mais je comprends. De la même manière, bien que je trouve l'idée d'un &amp;quot;barrage républicain&amp;quot; absurde voire dangereuse sur le long-terme, je ne fustige pas les camarades qui ont par dépit voté macron au second tour en 2017. Je peux comprendre l'élan de panique et de désespoir, je ne juge pas.&lt;/p&gt;
&lt;p&gt;Mais je ne suis pas convaincu-e.&lt;/p&gt;
&lt;p&gt;Première chose&amp;nbsp;: pourquoi tout ce cirque à essayer de &amp;quot;convaincre&amp;quot; des gens&amp;nbsp;? Les élections sont déjà faites. Non, je ne parle pas là de la question de l'influence des média aux mains du grand Capital, ou  même d'un complot vis-à-vis du processus électoral. Mais la plupart des gens ont déjà fait leur choix&amp;nbsp;: ce qui influence le plus les gens, c'est le mandat en cours&amp;nbsp;: la plupart des candidats ont des idéologies et promesses tellement diamétralement opposées qu'il y a très peu de marge de manœuvre pour les gens de changer de candidat au dernier moment. Qui plus est, ce mandat de Macron a sans doute été l'un des plus polarisants. Comprenez bien&amp;nbsp;: ça ne veut pas dire qu'il y a un quelconque moyen de prédire à l'avance ce qu'il va se passer&amp;nbsp;: les facteurs à mesurer sont bien trop nombreux. Mais même si on ne connait pas encore le résultat, les pièces sont déjà en place dans la tête des gens. Reste une poignée &amp;quot;d'indécis-es&amp;quot;, que tou-tes tentent de draguer, si tant est que leur nombre soit suffisant pour faire pencher la balance. Et évidemment, puisque tout le monde pense que s'abstenir ou voter blanc revient à un non-choix, tout le monde saute à la gorge des absentionnistes, et des quelques bases électorales pas trop éloignées de leur candidat.&lt;/p&gt;
&lt;p&gt;D'ailleur, quelque chose me titille&amp;nbsp;: les élections présidentielles sont un jeu à somme nulle&amp;nbsp;: pour que quelqu'un gagne des votes, il faut que quelqu'un perde. Alors comment est-ce possible que quasi tout les candidat-es soient satisfait-es des sondages&amp;nbsp;? La réponse est assez évidente&amp;nbsp;: chacun-e choisi l'institut de sondage qu'il veut, mesurant les indicateur qu'iel veut, et les sondages sont très chaotiques &lt;a class="footnote-reference" href="#footnote-1" id="footnote-reference-1"&gt;[1]&lt;/a&gt;, pour ne pas dire qu'ils sont incapables de mesurer quoi que ce soit. D'ailleurs, tel un météorologiste incapable de prédire le temps de demain qui se mettrait soudainement à tenter de deviner les précipitations du mois prochain en pensant mieux faire, la grande lubie de cette année semble être les sondages &lt;em&gt;«&amp;nbsp;Si X se retrouve face à Y au second tour&amp;nbsp;»&lt;/em&gt;. Compte tenu de la volatilité des sondages du premier tour, je ne baserais pas sur leur fiabilité. C'est problématique pour deux raisons&amp;nbsp;: premièrement, toute une partie de l'argumentaire du &amp;quot;vote méluche&amp;quot; repose sur ses chances de gagner&amp;nbsp;: si les indicateurs que l'on utilise pour justifier cela ne sont pas fiables, peut-on réellement croire à ses chances de gagner&amp;nbsp;? &lt;em&gt;Secondo&lt;/em&gt;, puisque les sondages sont peu fiables, il y a fort à parier que dans l'hypothèse (très probable) où mélenchon ne passe pas au second tour, tous les mélenchonnistes verront leur monde s'écrouler dans l'incompréhension. Il faudra chercher des responsables, et comme d'hab', ça sera les abstentionnistes et les micro-partis de gauche. En 2018 déjà, ils leur a manqué &amp;quot;que&amp;quot; &lt;a class="reference external" href="https://twitter.com/jlmelenchon/status/862680986382987265?lang=en"&gt;600 000 voix&lt;/a&gt;. Il semble utile de rappeler que la première chose qui fait monter l'extrême droite, ce n'est pas l'abstention, c'est le vote d'extrême-droite.&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="footnote-1" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a class="reference external" href="https://www.contexte.com/pollotron/"&gt;Contexte&lt;/a&gt; a fait un excellent travail d'analyse de la fiabilité des sondages dans le temps&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Mefiez-vous d'ailleurs de cette impression que tout le monde ou presque s'apprête à voter mélenchon, telle une vague prête à déferler&amp;nbsp;: il y a fort à parier qu'il s'agit d'un biais dû à vos (et mes) cercles sociaux. Aussi bruyants organisés que sont les insoumis-es (convaincu-es ou par dépit) sur les réseaux sociaux et sans non-plus y comparer à la campagne &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Astroturfing"&gt;d'astrosurfing&lt;/a&gt; ménée par zemmour, cela n'est pas nécessairement représentatif d'une tendance générale.&lt;/p&gt;
&lt;p&gt;Ça a été évidemment soulevé par beaucoup de militant-es de gauches agacé-es par les mélenchonnistes, mais il faut semblerait-il le redire&amp;nbsp;: ce n'est pas en m'insultant de «&amp;nbsp;social-traitre&amp;nbsp;» ou en sous-entendant que suis trop con pour comprendre le programme de la France Insoumises ou votre stratégie que vous allez me convaincre. Honnêtement, ce n'est pas bien différent de la vieille rengaine comme quoi «&amp;nbsp;les classes populaires votent mal&amp;nbsp;». Tranquille le melon&amp;nbsp;? Notez que c'est autant un reproche qu'un conseil, vous en faites ce que vous voulez. Cela va généralement avec l'idée que les gens &amp;quot;de gôche&amp;quot; qui ne votent pas mélenchon sont des &amp;quot;privilégié-es&amp;quot; qui ne seront pas affecté-es par un second mandat de Macron ou un mandat d'extrême droite. Quitte à faire de la sociologie du &lt;a class="reference external" href="https://twitter.com/Nemecle/status/1392164824222781444"&gt;doigt-mouillé&lt;/a&gt;, méluche a fait son discours Lyonnais à la Croix-Rousse, quartier bobo par excellence, et pour y être allé-e par curiosité, le public était pas vraiment issu des classes populaires et des groupes potentiellement exposés aux caprices du libéralisme et du proto-fascisme, Loin de là. Guerre d'anecdotes à part, vous inquiétez pas, le mandat macron/le pen/zemmour, je le crains. Je vis en squat, avec des camarades pour certain-es encore plus précaires que moi et des camarades sans-pap'. Notre nébuleuse militante de personnes LGBTI/queer et racisées a directement subie de nombreuses attaques de la part des groupements fascistes ces deux dernières années. Les &amp;quot;influenceurs&amp;quot; de gôche ne ce se sont d'ailleurs pas génés pour capitaliser sur nos malheurs pour augmenter leurs followers, sans trop nous demander nos avis ni partager nos événements et manifestations pour demander du soutien. Donc oui, vous inquiétez pas, que vous ayez réellement à craindre personnellement ou pas, j'ai beaucoup à craindre aussi. Je ne pense simplement pas que mon salut soit dans les urnes.&lt;/p&gt;
&lt;div class="figure align-right"&gt;
  &lt;a class="reference image-reference" style="border: none;" href="https://twitter.com/Eco_Decoloniale/status/1509212936534953989"&gt;&lt;img alt="Rendez-vous samedi 9 avril 2022 place Guichard pour une riposte décoloniale queer féministe" src="https://rsc.aligot-death.space/images/480/fled_9-04.jpeg" style="max-width: 300px;"&gt;&lt;/a&gt;
  &lt;p class="caption" style="text-align: center;"&gt;Soit dit en passant si vous êtes de Lyon, hésitez pas à venir à la manif contre l'extrême droite ce 9 avril à Guichard&lt;/p&gt;
&lt;/div&gt;&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Autre problème&amp;nbsp;: le mandat présidentiel n'est pas &amp;quot;impératif&amp;quot;. Dans les syndicats, autres grosses structures militantes et même parfois certains collectifs autonomes, les porte-paroles et représentant-es d'un groupe sont soumis-es à l'obligation de présenter et défendre les éléments tels que décidés par le groupe, et non interpréter sur une base de confiance aveugle de ceux-ci, sous peine de révocation dudit mandat. On parle donc de mandat impératif et révocable. Et de fait, ce n'est pas le cas du mandat présidentiel. Pourquoi utiliser ce terme technique militant alors que tout le monde a déjà conscience que les présidents ont rarement exécutés leurs promesses&amp;nbsp;? Parce que déjà aujourd'hui, il existe une fracture au sein même de la France Insoumise, entre la base et son grand leader éclairé. Mélenchon se gausse du programme de la FI quand bon lui semble et notamment quand ça peut lui permettre de bien se faire voir à gauche&amp;nbsp;: mais sinon, la FI a très peu de contrôle sur son chef de file. De fait, comment puis-je croire que&amp;nbsp;:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Méluche fera bien ce qu'il promet, contrairement à ses prédécesseurs&amp;nbsp;;&lt;/li&gt;
&lt;li&gt;que les militants de la France Insoumise (convaincu-es ou par dépit) qui nous assomment de &lt;em&gt;«&amp;nbsp;il faut choisir contre qui on va lutter dans les cinq ans à venir&amp;nbsp;»&lt;/em&gt; seront capables de construire le rapport de force nécessaire pour le faire plier&amp;nbsp;? Comme souligné par &lt;a class="reference external" href="https://twitter.com/Gogdelanuit/status/1511120087218069504"&gt;&amp;#64;Gogdelanuit&lt;/a&gt; sur twitter, malgré une force humaine bien plus conséquente que l'ensemble de forces révolutionnaires, à part pour montrer leurs drapeaux dans des manifs suffisamment consensuelles à leur goût, on ne les voit pas souvent &amp;quot;dans les luttes&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anecdote sur mélenchon d'ailleurs&amp;nbsp;: un ami très proche de mon cœur s'était retrouvé en charge de son Service d'Ordre il y a quelques années, avant sa transition. Après avoir cherché le responsable du SO parmi les mecs, mélenchon ayant compris que c'était lui qui s'en occupait, s'est approché de lui et lui a tapoté la joue en lui disant &lt;em&gt;«&amp;nbsp;C'est bieennn pour une fille de gérer le service d'ordre&amp;nbsp;»&lt;/em&gt;. Plus tard, il lui passa la main dans les cheveux (roux) en lui disant &lt;em&gt;«&amp;nbsp;Je vois que vous assortissez vos cheveux à votre couleur politique&amp;nbsp;»&lt;/em&gt;. Il lui aura fallu tout son énergie pour se retenir d'ordonner au SO d'attaquer la personne qu'iels étaient censé-es défendre. Un personnage charmant donc.&lt;/p&gt;
&lt;p&gt;Mais bon. Allez, soyons fous. Imaginons que non seulement méluche passe au 1er tour, qu'il est ensuite élu, mais qu'en plus il est de bonne foi. Vous connaissez une des caractéristique principales de la démocratie représentative libérale&amp;nbsp;? Son inertie. Elle est construite explicitement pour limiter les changements trop brusques, perçus comme des risques de déstabilisation. D'ailleurs, il y a fort à parier que si Mélenchon est élu, il y aura un effet d'action-réaction qui fera que les législatives pencheront plus à droite en réponse, menant à une cohabitation. La probabilité qu'il puisse appliquer son programme radical de 6 &lt;sup&gt;e&lt;/sup&gt; République et de réforme constitutionnelle écologique. L'Histoire le montre notamment au travers des mandats de Mitterand et de Hollande, un président peut bien se prétendre à gauche autant qu'il veut, le mandat qui suit reste un gouvernement de droite avec des réformes de gôches sporadiques, perpétuant d'une manière ou d'une autre le mandat précédent. Pour faire un vague comparatif à échelle locale&amp;nbsp;: l'élection d'une mairie EELV à Lyon a certes menées à l'installation de nouvelles pistes cyclables et l'instauration (toute récente) d'une limite de vitesse à 30km/h en ville (entre autres choses), mais en dépit de cela la préfecture du Rhône continue d'expulser les squats, de chasser les réfugiés et de laisser les fascistes faire leur business. À part quelques vagues discours, la ville, elle, ne fait pas grand chose pour contre balancer tout cela. Nul doute que la ville se porterait encore plus mal sous un énième mandat de gérard collomb (d'ailleurs issu du parti socialiste), mais c'est pas le facteur le plus important de nos problèmes.&lt;/p&gt;
&lt;p&gt;Tout cela fait-il de l'abstention un geste révolutionnaire et disruptif&amp;nbsp;? Loin de là. N'y voyez pas de quelconques prétentions radicales dans ce choix.&lt;/p&gt;
&lt;p&gt;Mais après cinq années de mandat macron où j'ai sombré dans la précarité, frolé le burn-out militant un nombre incalculable de fois, construit des traumas. J'ai fait ma part.&lt;/p&gt;
&lt;p&gt;Bref, faites ce que vous voulez. Si vous allez voter mélenchon dimanche, par conviction ou par dépit, je comprendrais. Peut-être même que vous avez raisons et que mon égo m'aveugle. Mais perso, dimanche 10 avril, ça sera l'occasion de me reposer enfin dans une kermesse organisée en squat, en jouant au chamboule-tout avec la tête des candidats, et en buvant des coups avec les camarades qui ont partagés mes malheurs ces cinq dernières années. Le jour où tout le monde s'intéresse enfin à la politique, nous on se payera le luxe d'en avoir rien à foutre, au moins pendant une journée.&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>The Cloud is cool, actually.</title><link href="https://aligot-death.space/txt/misc/cloud-en" rel="alternate"></link><published>2022-02-02T00:00:00+01:00</published><updated>2022-02-02T00:00:00+01:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2022-02-02:/txt/misc/cloud-en</id><summary type="html">&lt;p class="first last"&gt;Cloud is cool, actually.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;I used to hate &amp;quot;the cloud&amp;quot;.&lt;/p&gt;
&lt;p&gt;Like many of my IT (FOSS) friends, I would get angry everytime someone mentioned a &amp;quot;cloud app&amp;quot; meant to replace our big clients and our local data. I used to teach computerz to the kids and the elderly, so &amp;quot;there is no cloud, only someone else's computer&amp;quot; was definitely part of my lingo.&lt;/p&gt;
&lt;p&gt;I was kind of proud of it: my data is either on this device, or on this one. I would synchronize stuff like passwords, but that's it.&lt;/p&gt;
&lt;p&gt;In my head, &amp;quot;cloud&amp;quot; kind of meant giving up control to private interests, like GAFAMs. What if they close my account? What if I get hacked? What if they start billing?&lt;/p&gt;
&lt;p&gt;No thanks. I'd rather store my data where I need it, and copy it if needed. Like my ancestors did, when things were right.&lt;/p&gt;
&lt;p&gt;Then, my approach to IT changed. Drastically.&lt;/p&gt;
&lt;p&gt;I am more and more away from the comfort of my home and my desktop. At best, I have my laptop and it's 256GB of storage, as a result of a conflict between my need to move without a fucking brick and my limited budget.&lt;/p&gt;
&lt;p&gt;As it happened, I was still working on rebuilding my personal infrastructure. It used to be limited to a Raspberry Pi for testing, and a VPS for my website. But now, I have a NAS, as well as a refurbished Intel NUC. My Nextcloud became a sync haven. More and more data was synchronized automatically. What a comfort.&lt;/p&gt;
&lt;p&gt;Except, my laptop was still limited to simple tasks. Video rendering, batch processing, 3D and of course videos, were out of the question. I was experimenting connecting remotely to my desktop while I was under COVID lockdown at a friends' house, and realized most constraints were of my own doing.&lt;/p&gt;
&lt;p&gt;I spent the lockdown playing on my desktop via Steam Play, from my laptop.&lt;/p&gt;
&lt;p&gt;Even better, I quickly discovered that there was an android app to connect to it.&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/full/_DSC2346.JPG"&gt;
&lt;img alt="Un smartphone avec une manette, devant le PC qu'il contrôle, avec le jeu Borderlands 3." src="https://rsc.aligot-death.space/images/480/_DSC2346.JPG" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Not only can I play remotely, but it runs on linux (debian, more precisely)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Also, I discovered than remote desktop was not a windows-only thing.&lt;/p&gt;
&lt;p&gt;(Or rather, that linux remote desktop didn't sucked as much as I thought)&lt;/p&gt;
&lt;p&gt;A few Wake on LAN scripts later (so it doesn't run 24/7), and my infrastructure started to take shape on its own: endless possibilities.&lt;/p&gt;
&lt;p&gt;These days, I regularly connect to that computer remotely for heavy tasks, much like a homebrew Gaming Cloud. My Intel NUC bears my web infrastructure, and I'm still working on a backup process.&lt;/p&gt;
&lt;p&gt;Not matter where I am, I have to access to the best of my devices. I can access any file.&lt;/p&gt;
&lt;p&gt;The fear of losing data is a thing of the past.&lt;/p&gt;
&lt;p&gt;The cloud is awesome.&lt;/p&gt;
&lt;p&gt;And a homemade cloud? The best.&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>SEO assholes taking advantage of non-profits</title><link href="https://aligot-death.space/txt/misc/seo-noise-en" rel="alternate"></link><published>2022-01-21T00:00:00+01:00</published><updated>2022-01-21T00:00:00+01:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2022-01-21:/txt/misc/seo-noise-en</id><summary type="html">&lt;p class="first last"&gt;Quick OSINT investigation on a website which tries to divert popular education for SEO purposes&lt;/p&gt;
</summary><content type="html">&lt;p&gt;It all started when a strange twitter account named &lt;a class="reference external" href="https://twitter.com/FrPlateforme"&gt;FrPlateforme&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20210517142704/https://twitter.com/FrPlateforme"&gt;archive&lt;/a&gt;) followed an association I'm in (it since went private). It had a certain &lt;em&gt;je-ne-sais-quoi&lt;/em&gt;, such as generated tweets which kind of made sense but not really. The associated website &lt;a class="reference external" href="https://web.archive.org/web/20210417100548/https://plateforme-associations-formation.fr/"&gt;https://plateforme-associations-formation.fr/&lt;/a&gt; was cut from the same cloth, albeit on multiple pages. The website was a weird mix of computer security training and ocean cleaning campaigns. The structure of the website itself made no sense and the content was either clearly &amp;quot;stolen&amp;quot; or non-sensical... Long story short, trying to understand it felt like a psychadelic experience.&lt;/p&gt;
&lt;div class="section" id="first-steps"&gt;
&lt;h2&gt;First steps&lt;a class="headerlink" href="#first-steps" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Once I made peace with my perception of reality, I started digging. Turns out, it's exactly what it seems: a weird patchwork of copy-pasted content. For instance, The page &amp;quot;Définition &amp;gt; DNS&amp;quot;:&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/seo-noise_wiki_copy.png"&gt;
&lt;img alt="A comparison of the start of the page DNS from Wikipedia vs the definition of &amp;quot;DNS&amp;quot; on the website. They're the same thing." src="https://rsc.aligot-death.space/images/480/articles/seo-noise_wiki_copy.png" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Is a copy-pasta from the &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Domain_Name_System"&gt;DNS&lt;/a&gt; Wikipedia page.&lt;/p&gt;
&lt;p&gt;It became increasingly clear that someone was trying to capitalize on specific terms to generate traffic and exploit it. Nothing new under the sun. However, the name of the website and the angle suggested that the target was non-profit organizations, specifically popular education fighting the digital divide. Knowing the effects of that divide amongst some populations, and the amount of work provided by volonteers and organizations around the world to reduce it, it raises eyebrows.&lt;/p&gt;
&lt;p&gt;So, I had to dig further to find out who was behind this.&lt;/p&gt;
&lt;p&gt;A first inquiry through WHOIS (domain name's registering infos) was unsuccessful, as it often happens these days. The provided e-mail seems however very basic, &lt;tt class="docutils literal"&gt;association1901&amp;#64;protonmail.ch&lt;/tt&gt; &lt;a class="footnote-reference" href="#footnote-1" id="footnote-reference-1"&gt;[1]&lt;/a&gt;.&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="footnote-1" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&amp;quot;1901's Associations&amp;quot; (Associations Loi 1901) are your run of the mill form of association in france.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Given that it's a wordpress website, I try to go to &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;https://plateforme-associations-formation.fr/?author=1&lt;/span&gt;&lt;/tt&gt;, (Then 2, 3,...) to have more infos on the authors; two usernames stand out, as cryptic as the e-mail: &amp;quot;spectre1901&amp;quot; and &amp;quot;cyber1901&amp;quot;. When I try to search these on the web, I find another website, &lt;a class="reference external" href="https://web.archive.org/web/20201230140724/https://1901.eu/"&gt;1901.eu&lt;/a&gt; (since deleted). Same MO, some copy-pasted content, non-profit lingo, computerz and save-the-ocean. Some notable differences however: they deactivated the right-click on text (ironic, and also probably to prevent investigations into plagiarism), several links to various political content (thinkerview, ATTAC, Datagueule, all fairly large french political initiatives) through various formats (webpage, videos, and even a web-archive link to a video?). The footer 'Plateforme-Associations-Formations 2021' and the WHOIS (&lt;a class="reference external" href="mailto:association1901_2021&amp;#64;protonmail.ch"&gt;association1901_2021&amp;#64;protonmail.ch&lt;/a&gt;) confirms that it's linked to the first website: basically a newer copy. A small quirk however: the main menu has a button &amp;quot;Contact Paris&amp;quot;, which links to a page named &amp;quot;contact-geneve&amp;quot;.&lt;/p&gt;
&lt;p&gt;Something starts to appear: &amp;quot;cityweb.fr&amp;quot;, for instance on the &amp;quot;&lt;a class="reference external" href="https://web.archive.org/web/20210517143257/https://plateforme-associations-formation.fr/contact-paris"&gt;Contact Paris&lt;/a&gt;&amp;quot; page (which has &amp;quot;Contact Lyon&amp;quot; as a subpage). Amongst various infos, we got:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&amp;quot;Edouard : Président&amp;quot; ;&lt;/li&gt;
&lt;li&gt;&amp;quot;Nicolas : Immobilier &amp;amp; Crypto&amp;quot; ;&lt;/li&gt;
&lt;li&gt;&amp;quot;Contact : &lt;a class="reference external" href="mailto:plateforme-associations-formation.fr&amp;#64;protonmail.ch"&gt;plateforme-associations-formation.fr&amp;#64;protonmail.ch&lt;/a&gt;&amp;quot; ;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/seo-noise_contact_paris.png"&gt;
&lt;img alt="The contact &amp;quot;information&amp;quot; for the Paris's branch, in a barely legible color contrast." src="https://rsc.aligot-death.space/images/480/articles/seo-noise_contact_paris.png" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;There's text here. I promise. Make sure to contact them if you want a website.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;A less subtle reference to CityWeb is a huge banner under the page &amp;quot;&lt;a class="reference external" href="https://web.archive.org/web/20210517143344/https://plateforme-associations-formation.fr/guide/formations/chatbot"&gt;Formation &amp;gt; ChatBot&lt;/a&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;So, I went to their &lt;a class="reference external" href="https://web.archive.org/web/20210311012109/https://cityweb.fr/"&gt;website&lt;/a&gt;. This company specializes in bullshit, such as SEO, chatbots, webmarketing and &amp;quot;digital transformation&amp;quot;. Mind, you, &amp;quot;digital&amp;quot; doesn't mean jack shit in french aside from &amp;quot;finger-related&amp;quot; except for con artists in the marketing industry, so &amp;quot;transformation digitale&amp;quot; basically means &amp;quot;fingery transformation&amp;quot;. That &amp;quot;new&amp;quot; bullshitty supposedly modernity-inspiring meaning of the word is unfortunately gaining traction in mainstream medias.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://web.archive.org/web/20210303030426/https://cityweb.fr/"&gt;Not so long ago,&lt;/a&gt;, the &amp;quot;they trust us&amp;quot; category only had the default companies (&amp;quot;armond&amp;quot;, &amp;quot;darkside&amp;quot;, &amp;quot;bastil&amp;quot;, &amp;quot;bolier&amp;quot;, etc) from default templates from the (wordpress) plugin Elementor. It's now listing various websites, which, even though they look sliiightly more plausible, have the same structure and content.&lt;/p&gt;
&lt;p&gt;Their &lt;a class="reference external" href="https://twitter.com/Cityweb_fr"&gt;twitter&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20210517144213/https://twitter.com/Cityweb_fr"&gt;archive&lt;/a&gt;) is extremely recent, and doesn't even have a link to the website and no tweet so far. In the mean time, the even newer twitter account &amp;quot;plateforme-association-formation.fr&amp;quot; started retweeting a weird mix of content, ranging from Thinkerview to the Chinese Ambassy, as well as cryptocoins, the controversial &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Idriss_Aberkane#Criticisms"&gt;Idriss Aberkane&lt;/a&gt; on the verge of COVID denialism, and some random IT news. Recently (May 2021), a mention to the &lt;em&gt;Generation Écologie&lt;/em&gt; political party appeared, infering some link to their initiative, while keeping plausible deniability.&lt;/p&gt;
&lt;p&gt;Finally, their &lt;a class="reference external" href="https://www.instagram.com/citywebfrance/"&gt;instagram account&lt;/a&gt; has 10 followers, 8 of which are very similar &amp;quot;etoile&amp;quot; (&lt;em&gt;&amp;quot;star&amp;quot;&lt;/em&gt; in french) accounts, all pointing to the website &lt;a class="reference external" href="https://web.archive.org/web/20210504033107/https://etoile.app/"&gt;etoile.app&lt;/a&gt;, and all posting some random crap. Honorable mention to &amp;quot;exultationetoile&amp;quot;:&lt;/p&gt;
&lt;div class="figure align-center"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/seo-noise_etoile.png"&gt;
&lt;img alt="screenshot of the exultationetoile instagram account and it's random content" src="https://rsc.aligot-death.space/images/480/articles/seo-noise_etoile.png" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;a class="headerlink" href="#conclusion" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It seems that the &amp;quot;plateforme-association-formation.fr&amp;quot; website is an attempt to abuse keywords from the association and popular education world. The goal is to boost a fairly new webmarketing agency, meant for small companies trying to jump on the &amp;quot;digital&amp;quot; (remember, fingers) train, following the COVID-19 pandemic. Given the amount of work provided by volonteers and hundreds of organizations to fight against the digital divide, and given how some populations are hit even harder by it, it's a very cynical entreprise.&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category><category term="OSINT"></category></entry><entry><title>"Production" is code for "playground"</title><link href="https://aligot-death.space/txt/foodtruck-envy/production-is-playground-en" rel="alternate"></link><published>2021-12-29T00:00:00+01:00</published><updated>2021-12-29T00:00:00+01:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2021-12-29:/txt/foodtruck-envy/production-is-playground-en</id><summary type="html">&lt;p class="first last"&gt;You don't need that, do you?&lt;/p&gt;
</summary><content type="html">&lt;p&gt;One day we lost the connection to our production servers: after a few calls, we realised that the infrastructure team were using our servers as test beds because they were not informed that these servers were live. We later learned that the hardware was not compatible with the custom Red Hat image used, which prevented reboots (or else NFS mounts and some other configuration files would be deleted).&lt;/p&gt;
&lt;p&gt;We knew about the no-reboot issue but not the actual reason: they were using our production servers to debug it because the CTO gave contradictory information to both of our teams.&lt;/p&gt;
&lt;p&gt;We requested a restoration of the files to the backup team, because, you know, we needed them. We got confirmation that it was done but the files were still missing. After investigation, they told us that when they were prompted by the backup software to overwrite the still present but empty directories, they simply hit &amp;quot;no&amp;quot; and closed the restoration ticket. Another attempt failed because they &amp;quot;let the workstation handling the operation go to sleep during the process&amp;quot;.&lt;/p&gt;
&lt;p&gt;But it didn't stopped there: we allowed the OS team to perform their tests on our &lt;em&gt;perfomance test&lt;/em&gt; infrastructure. We got no news for a while, and when we contacted them they said that they were actually waiting for the machines to be shutdown but didn't asked for it.&lt;/p&gt;
&lt;p&gt;We requested said shutdown to the infrastructure team. They then asked us permission for a full wipe of the machines, but we asked for a delay as we needed them again. The following week, they did it anyway. So we asked (again) the backup team to restore the servers: they failed to do so because in the mean time they had changed their infrastucture so the backups were not longer properly assigned. Long story short, they ended up having to wipe down their backup servers, and we lost our data.
A few months later, we were having connectivity issues on production. As it turns out it was caused by the storage team: they were testing the new Kerberos version, because, you know, &amp;quot;you are the only team with this version of Red Hat&amp;quot;.&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>I've got 80243004 problems</title><link href="https://aligot-death.space/txt/foodtruck-envy/80243004-en" rel="alternate"></link><published>2021-12-27T00:00:00+01:00</published><updated>2021-12-27T00:00:00+01:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2021-12-27:/txt/foodtruck-envy/80243004-en</id><summary type="html">&lt;p class="first last"&gt;Just a Windows update thing&lt;/p&gt;
</summary><content type="html">&lt;p&gt;I was working as a contractor, and had to update a client's infrastructure at 4am. I connected to their interface to access all the servers, about 20 Linux servers and 30 Windows server.&lt;/p&gt;
&lt;p&gt;Linux servers went flawlessly and without reboots.&lt;/p&gt;
&lt;p&gt;About 2/3 of the windows servers went well, some required additional reboot to work, and a few to clean up download cache.&lt;/p&gt;
&lt;p&gt;But one of them refused to update no matter what I tried. So I actually woke up and started investigating. As it usually go with windows, I searched the error code on the web: nothing special came up.&lt;/p&gt;
&lt;p&gt;The sun was now rising.&lt;/p&gt;
&lt;p&gt;I finally stumbled upon a post on microsoft's forums.&lt;/p&gt;
&lt;blockquote&gt;
Try expanding the system tray &lt;strong&gt;[the space with time, date and software icons in the bottom right corner of the screen]&lt;/strong&gt;: it should be abnormally large.&lt;/blockquote&gt;
&lt;p&gt;And sure thing, the thing popped up and took most of the screen, for two pityful icons.&lt;/p&gt;
&lt;blockquote&gt;
simply resize the tray by selecting the tray and clicking Customize&lt;/blockquote&gt;
&lt;p&gt;And well, yeah, it went back to its normal size. Not sure where this is going though.&lt;/p&gt;
&lt;blockquote&gt;
Re-run Windows update and you will find that it now works properly.&lt;/blockquote&gt;
&lt;p&gt;&lt;a class="reference external" href="https://answers.microsoft.com/en-us/windows/forum/all/windows-7-update-error-codes-800700d-and-80243004/27737d55-9c10-44b5-b701-6ba147c78364"&gt;Windows 7 update - error codes 800700D and 80243004&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20190816232121/https://answers.microsoft.com/en-us/windows/forum/all/windows-7-update-error-codes-800700d-and-80243004/27737d55-9c10-44b5-b701-6ba147c78364"&gt;Archive&lt;/a&gt;)&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>The tenth circle of (sysadmin) hell</title><link href="https://aligot-death.space/txt/foodtruck-envy/tenth-circle-sysadmin-en" rel="alternate"></link><published>2021-12-27T00:00:00+01:00</published><updated>2021-12-27T00:00:00+01:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2021-12-27:/txt/foodtruck-envy/tenth-circle-sysadmin-en</id><summary type="html">&lt;p class="first last"&gt;Shit circus&lt;/p&gt;
</summary><content type="html">&lt;p&gt;One of my weirdest missions as an IT contractor. I was send to another contracting company to help because they were short on staff. It was a mixed bag of horrible HR management and absurd IT ecosystem. I was supposed to be the &amp;quot;transverse team&amp;quot; of one of their development sites with ~50 people. It was split in various teams for a month or two so they could find a replacement for the previous guy. The mission included managing their ISP contract, their on-site datacenter, their Active Directory and the whole IT environment, their deployement process, and even helping with the Q&amp;amp;A of their software and some development. A real Jack-of-all-trades position, which was already a bad sign.&lt;/p&gt;
&lt;p&gt;The following shit circus ensued:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;after a single week of skill transfer and one week of collaboration together, the person that I was supposed to replace left already, leaving me as the sole captain of this (sinking) boat;&lt;/li&gt;
&lt;li&gt;one of their apps somehow used the PL/SQL engine of their database as a web server which built the pages dynamically from the resources (html, css, images, data) which were &lt;em&gt;obviously&lt;/em&gt; stored in the database itself;&lt;/li&gt;
&lt;li&gt;we had to recreate a Java environment for an app due to technical constraints but were stuck on a dependency which was unavailable on Tomcat. We didn't had the source code because the development team left some time ago, so we had to analyse the available bytecode to replace said dependency. Failing to do so, we tried to replace the whole app as it didn't seemed to do that much (basically connecting file pipelines). We replaced the 80Mo .jar file with five lines of bash script;&lt;/li&gt;
&lt;li&gt;a guy originally hired as a Linux administrator accepted to work on a Java project despite no prior knowledge of Java. All of his time was now spent supervising himself working on three Java projects against his own will;&lt;/li&gt;
&lt;li&gt;another guy was working on five radically different projects, supposedly giving 100% of his time to all projects. He worked 7/7 and was totally alienated;&lt;/li&gt;
&lt;li&gt;an &amp;quot;X resource&amp;quot; (meaning, yet to be hired) was already lead-developer on five projects;&lt;/li&gt;
&lt;li&gt;a database contained a table named &amp;quot;ONEROW&amp;quot;, which effectively contained only one row, being the number &amp;quot;1&amp;quot;: it was somehow important not to tamper with it (I wish I was joking);&lt;/li&gt;
&lt;li&gt;the register page of one of the apps required to select a color in the sign-on form as a mandatory information (despite no known use), with hundreds of possiblities. The default value was &lt;a class="reference external" href="https://www.colorhexa.com/ffe4c4"&gt;bisque&lt;/a&gt; (because why not);&lt;/li&gt;
&lt;li&gt;the biggest app of the project was single-user: if someone tried to connect while someone else was logged in, they would receive a &amp;quot;sorry, x is already using the app, try again later&amp;quot; pop-up. The app was processing data into PDF files, which took five minutes per file: scaled up to the frequent hundreds, the app would take hours to run. But as there was no feedback while it ran, people would think that no action was taken and would spam the &amp;quot;start processing&amp;quot; button, which would effectively cue even more data. Best part being, if the person disconnected before the end, the server would completely crash when trying to deliver the finished result. To prevent them from logging out, the developers added three (3) warning pop-ups to &amp;quot;solve&amp;quot; the issue.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I ended up being exfiltrated by my manager after a month and a half, and with no vict- replacement available the site Lead-manager took over the transverse mission by default.&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>L'écologie digitale, main verte invisible du marché (Partie 1)</title><link href="https://aligot-death.space/txt/anarchy/digital-sobriety-part-1-fr" rel="alternate"></link><published>2021-10-02T15:20:00+02:00</published><updated>2021-10-02T15:20:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2021-10-02:/txt/anarchy/digital-sobriety-part-1-fr</id><summary type="html">&lt;p class="first last"&gt;Les impasses du mouvement écologique appliqué au numérique. Première partie : une marée noire de statistiques.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;em&gt;Alors que le mouvement écologiste s'affole (à raison) de &amp;quot;l'urgence climatique&amp;quot;, celui-ci s'empare d'un sujet ô combien complexe et insaisissable, le numérique. Sans surprise, l'approche choisie est malheureusement à l'image du reste des initiatives, limitée techniquement et politiquement et semble déjà atteindre une impasse.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Dans ce premier article d'une série sur &amp;quot;l'écologie digitale&amp;quot;, nous allons commencer par analyser les différentes statistiques qui semblent servir de fondation pour tout le reste du discours sur les usages du numérique et leur pollution.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Depuis quelques années de nombreux conseils fleurissent sur le web pour réduire l'impact carbone de nos usages numériques : applications pour nettoyer sa boite mail, extensions de navigateur &amp;quot;vertes&amp;quot;, moteurs de recherche éco-responsables… ainsi que des listes toujours plus longues de conseils à appliquer au quotidien. Au premier abord, ces conseils paraissent aussi efficaces que de bonne volonté. Les média nous bombardent de statistiques et de comparaisons sur l'impact de chacuns de nos usages, issus de think-tanks aux noms plus &lt;em&gt;green&lt;/em&gt; les uns que les autres. Il est donc facile de se laisser convaincre par des infographies léchées que nos mails non-supprimés depuis trois ans participent au réchauffement climatique.&lt;/p&gt;
&lt;p&gt;Pourtant, beaucoup de ces &amp;quot;faits&amp;quot; semblent complètement techniquement absurdes quand on est familier avec le domaine. Il est alors tentant de remonter à la source de ces affirmations pour en vérifier la véracité. Et là, d'une manière ou d'une autre, ça coince. Selon les cas, on a le droit à une estimation approximative faite par des chercheurs mise à l'échelle sans plus de précaution, à une mesure faite au doigt mouillé par des gens ne comprenant pas les implications techniques, ou à une vieille étude sortie de son contexte.&lt;/p&gt;
&lt;p&gt;Histoire d'enfoncer le clou, les chiffres obtenus sont mis en perspective par le biais de comparaisons avec des éléments supposément plus concrets. Résultat, il parait q'une box internet consomme plus qu'un frigo : plus qu'à acheter un frigo connecté donc.&lt;/p&gt;
&lt;div class="on-left"&gt;&lt;div style="width: 400px;margin: auto;background-color: white;padding: 1rem;"&gt;
  &lt;div style = "font-size: 2em; text-align: center; width: 100%;"&gt;&lt;strong&gt;&lt;i&gt;Le saviez vous ?&lt;/i&gt;&lt;/strong&gt;&lt;/div&gt;
  &lt;div style = "background: url('https://rsc.aligot-death.space/images/480/articles/tanker_halftone.png') no-repeat center center; background-size: cover; width: 100%; max-width: 400px; height: auto; padding: 100px 10px 100px 10px;"&gt;
    &lt;span class = "block" style = "font-size: 1.5em; letter-spacing: -1px; line-height: 1.2; right: 0"&gt;
      Un e-mail non supprimé consomme autant que trois pétroliers !
    &lt;/span&gt;
  &lt;/div&gt;
  &lt;div style = "font-size: 0.7em; text-align: right; width: 100%;"&gt;&lt;a href = "https://nara.getarchive.net/media/a-aerial-starboard-quarter-view-of-the-reflagged-kuwaiti-super-tanker-bridgeton-cfcdf0"&gt;crédit photo&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;p&gt;Le numérique est par nature un empilement d'abstractions qui rend presque impossible la compréhension des enjeux techniques et politiques qui le traverse. Comme toutes les autres sciences, on se retrouve systématiquement pris en tenaille entre l'immensité du champs d'étude et la foultitude de détails. On peut donc difficilement blâmer les personnes s'attêlant à la tâche herculéenne de l'estimation de l'impact de nos usages de travailler avec des approximations. Mais le mille-feuille d'analogies et d'approximations devient rapidement trop épais pour ne pas être indigeste.&lt;/p&gt;
&lt;p&gt;S'il y a bien une chose que ces dernières années ont pu prouver, c'est les limites du &lt;em&gt;&amp;quot;fact-checking&amp;quot;&lt;/em&gt;. Cette pratique est non-seulement très peu efficace pour lutter contre les fausses informations mais aussi trop facilement détournable pour donner un vernis de légitimité à des affirmations pourtant fausses. Mais avant de décortiquer le mouvement du numérique écologique tel qu'il existe aujourd'hui, il semble important de faire un état des lieux de sa face la plus visible, les statistiques et les conseils qui lui servent d'appui.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Cet article a vocation à être mis à jour au fur et à mesure : n'hésitez pas à me&lt;/em&gt; &lt;a class="reference external" href="https://nemecl.eu/"&gt;contacter&lt;/a&gt; &lt;em&gt;pour suggérer des ajouts, souligner des erreurs, etc.&lt;/em&gt;&lt;/p&gt;
&lt;div class="contents topic" id="sommaire"&gt;
&lt;p class="topic-title"&gt;&lt;a class="reference internal" href="#top"&gt;Sommaire&lt;/a&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference internal" href="#premier-cercle-de-l-enfer-les-techniquement-c-est-vrai" id="toc-entry-1"&gt;Premier cercle de l'enfer : les &amp;quot;techniquement, c'est vrai&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#deuxieme-cercle-de-l-enfer-c-est-faux-mais-y-a-de-l-idee" id="toc-entry-2"&gt;Deuxième cercle de l'enfer : &amp;quot;C'est faux, mais y a de l'idée&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#troisieme-cercle-de-l-enfer-la-poubelle-verte" id="toc-entry-3"&gt;Troisième cercle de l'enfer : la poubelle verte&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p class="center"&gt;&lt;em&gt;Cliquez sur les cadres pour en avoir le détail&lt;/em&gt;&lt;/p&gt;
&lt;div class="section" id="premier-cercle-de-l-enfer-les-techniquement-c-est-vrai"&gt;
&lt;h2&gt;Premier cercle de l'enfer : les &amp;quot;techniquement, c'est vrai&lt;a class="headerlink" href="#premier-cercle-de-l-enfer-les-techniquement-c-est-vrai" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;Le numérique représente 4% des émissions mondiales de pollution&lt;/b&gt;&lt;br&gt;
l'étude produite par &lt;i&gt;The Shift Project&lt;/i&gt; à l'origine de cette affirmation semble plutôt bien étayée, mais nécessite d'être contextualisée.&lt;/summary&gt;&lt;p&gt;Ce fameux &amp;quot;4%&amp;quot; que l'on retrouve dans tous les médias est issu du rapport « &lt;a class="reference external" href="https://theshiftproject.org/wp-content/uploads/2018/11/Rapport-final-v8-WEB.pdf"&gt;pour une sobriété numérique&lt;/a&gt; » (&lt;a class="reference external" href="https://web.archive.org/web/20210616090320/https://theshiftproject.org/wp-content/uploads/2018/11/Rapport-final-v8-WEB.pdf"&gt;archive&lt;/a&gt;) du think-tank &lt;em&gt;The Shift Project&lt;/em&gt; créé en 2010, s'appuyant lui-même sur les données de l'étude &lt;a class="reference external" href="https://www.researchgate.net/publication/275653947_On_Global_Electricity_Usage_of_Communication_Technology_Trends_to_2030"&gt;Andrae &amp;amp; Edler, 2015&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20210831153916/https://www.researchgate.net/profile/Anders-Andrae/publication/275653947_On_Global_Electricity_Usage_of_Communication_Technology_Trends_to_2030/links/55433a9e0cf23ff7168380dd/On-Global-Electricity-Usage-of-Communication-Technology-Trends-to-2030.pdf"&gt;archive&lt;/a&gt;). Très peu d'études existent sur le sujet de la part du numérique dans la pollution : la raison à cela étant que le numérique est un domaine &amp;quot;transversal&amp;quot;, c'est à dire qui s'entremêle avec les autres. Cela rend difficile l'estimation de la pollution émise par le secteur numérique seul puisqu'il est presque impossible d'isoler par exemple la pollution égendrée par les infrastructures informatiques utilisées par l'industrie pétrochimique de leur pollution générale.  Bien que ce rapport proposé par &lt;em&gt;The Shift Project&lt;/em&gt; s'appuie sur des travaux sourcés et présente sa méthodologie de manière transparente, cette distinction semble absente et impute l'entièreté de la pollution due au numérique aux usages individuels.&lt;/p&gt;
&lt;/details&gt;&lt;blockquote class="pull-quote align-left"&gt;
Avec des &amp;quot;techniquement&amp;quot;, on mettrait Lyon en bocal.&lt;/blockquote&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;Une donnée parcourt en moyenne 15 000km&lt;/b&gt;&lt;br&gt;
Cette donnée est issue du rapport &lt;a href = "https://www.ademe.fr/sites/default/files/assets/documents/guide-pratique-face-cachee-numerique.pdf"&gt;&lt;i&gt;La face cachée du numérique&lt;/i&gt;&lt;/a&gt; (&lt;a href = "https://web.archive.org/web/20201130170428/https://www.ademe.fr/sites/default/files/assets/documents/guide-pratique-face-cachee-numerique.pdf"&gt;archive&lt;/a&gt;) de l'Agence de l'environnement et de la maîtrise de l'énergie (ADEME). Le chiffre est facilement vérifiable, même si l'ADEME ne daigne pas l'expliquer. Sauf que les données ne transitent pas par porte-conteneurs. Dans le numérique, la distance n'est pas un bon indice de la pollution créée par une "donnée".&lt;/summary&gt;&lt;p&gt;Ce chiffre que l'on retrouve partout est vraisemblablement issu du rapport &lt;a class="reference external" href="https://www.ademe.fr/sites/default/files/assets/documents/guide-pratique-face-cachee-numerique.pdf"&gt;&amp;quot;La face cachée du numérique&amp;quot;&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20201130170428/https://www.ademe.fr/sites/default/files/assets/documents/guide-pratique-face-cachee-numerique.pdf"&gt;archive&lt;/a&gt;) de l'Agence de l'environnement et de la maîtrise de l'énergie (ADEME), un établissement public qui fait autorité dans le milieu. Aucune explication n'est présente dans le document, la donnée est présentée tel quel, au milieu de statistiques aléatoires. Pourtant, le web est évidemment à l'image du reste du monde occidento-centré et plus encore américano-centré : lorsque l'on remonte le trajet d'une requête sur le site de Google, y compris dans sa version française, on peut voir notre requête rapidement filer vers les État-Unis. À ~7500km la distance France-USA, on arrive donc facilement à la valeur précédemment évoquée.&lt;/p&gt;
&lt;p&gt;Sauf que cette valeur ne veut pas dire grand chose : les &amp;quot;données&amp;quot; ne traversent pas l'Atlantique transportées dans des porte-conteneurs. Une requête peut très bien atterrir dans le datacenter à côté de chez vous, sur une infrastructure datée, mal gérée et alimentée par la centrale au charbon locale, tout comme elle peut en quelques sauts traverser presque instantanément des câbles sous-marins en fibre optique et atterrir dans un datacenter à la pointe de l'innovation et de l'optimisation, alimenté par éoliennes. Dans le numérique, la distance n'est donc pas un bon indice de la pollution créée par une donnée &lt;a class="footnote-reference" href="#footnote-1" id="footnote-reference-1"&gt;[1]&lt;/a&gt;.&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="footnote-1" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Elle l'est en revanche lorsque l'on aborde des questions légales, évidemment.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/details&gt;&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;La vidéo en ligne représente 60% du trafic&lt;/b&gt;&lt;br&gt;
Cette statistique émane encore une fois de &lt;i&gt;The Shift Project&lt;/i&gt;. Elle est issue d'un de leur rapport basé sur des données solides publiées par Cisco et Sandvine, deux sociétés travaillant dans le domaine du réseau. Si le chiffre semble plutôt solide, il tend à laisser penser que la vidéo représenterait donc 60% de la pollution émise par le numérique : sauf que le trafic n'est qu'une partie de l'histoire.&lt;/summary&gt;&lt;p&gt;Cette donnée est basée sur un &lt;a class="reference external" href="https://theshiftproject.org/article/climat-insoutenable-usage-video/"&gt;rapport du Shift Project&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20210610070139/https://theshiftproject.org/article/climat-insoutenable-usage-video/"&gt;archive&lt;/a&gt;), encore une fois assez bien sourcé et qui explique sa méthodologie. Les sources en question sont respectivement issues de données publiées par &lt;a class="reference external" href="https://www.cisco.com/c/en/us/solutions/collateral/executive-perspectives/annual-internet-report/white-paper-c11-741490.pdf"&gt;Cisco&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20201127153600/https://www.cisco.com/c/en/us/solutions/collateral/executive-perspectives/annual-internet-report/white-paper-c11-741490.pdf"&gt;archive&lt;/a&gt;), un géant de l'industrie du réseau, et de &lt;a class="reference external" href="https://www.sandvine.com/hubfs/downloads/phenomena/2018-phenomena-report.pdf"&gt;Sandvine&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20201112170443/https://www.sandvine.com/hubfs/downloads/phenomena/2018-phenomena-report.pdf"&gt;archive&lt;/a&gt;), société spécialisée dans les métriques réseau par le biais de sondes disposées à travers le monde. &lt;em&gt;the Shift Project&lt;/em&gt; croise ces deux sources, ainsi qu'avec un &amp;quot;enquête&amp;quot;, et y applique une métrique détaillé de leur crue d'une estimation du &amp;quot;poids&amp;quot; d'un octet. On peut donc considérer que même si le chiffre exact ne pourra jamais être trouvé, l'ordre de grandeur semble plausible et fondé.&lt;/p&gt;
&lt;p&gt;Néanmoins, cette proportion s'applique précisément avant tout au transit sur le réseau, et non au traitement ou au stockage. Il n'est donc pas question de multiplier ces 60% par les &amp;quot;4% de part dans la pollution mondiale&amp;quot; pour obtenir la pollution générée par la vidéo en ligne (comme on va le voir juste après).&lt;/p&gt;
&lt;/details&gt;&lt;/div&gt;
&lt;div class="section" id="deuxieme-cercle-de-l-enfer-c-est-faux-mais-y-a-de-l-idee"&gt;
&lt;h2&gt;Deuxième cercle de l'enfer : &amp;quot;C'est faux, mais y a de l'idée&amp;quot;&lt;a class="headerlink" href="#deuxieme-cercle-de-l-enfer-c-est-faux-mais-y-a-de-l-idee" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;La vidéo en ligne constitue une importante source de pollution.&lt;/b&gt;&lt;br&gt;
La vidéo constitue un très gros "poste" en terme de trafic pur, et est donc plutôt pollueuse. Mais le trafic ne constitue pas l'entièreté de l'histoire, et les données qui tournent généralement dans les médias sont vraisemblablement largement surestimées.&lt;/summary&gt;&lt;p&gt;Une formule qui accompagne souvent cette affirmation est que « Le visionnage en ligne d'une vidéo en haute définition de 10 minutes sur un smartphone équivaut à utiliser à pleine puissance un four électrique de 2000W pendant 5 minutes ». Cette citation est issue d'un &lt;a class="reference external" href="https://theshiftproject.org/wp-content/uploads/2018/11/Rapport-final-v8-WEB.pdf"&gt;rapport de 2018&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20190930200313/https://theshiftproject.org/wp-content/uploads/2018/11/Rapport-final-v8-WEB.pdf"&gt;archive&lt;/a&gt;) de &lt;em&gt;The Shift Project&lt;/em&gt; qui utilisait cette exact tournure. Leurs rapports suivants ont corrigés cette erreur, mais la pollution liée à la vidéo en ligne reste sujet à des débats très intenses. Dans un &lt;a class="reference external" href="https://www.carbonbrief.org/factcheck-what-is-the-carbon-footprint-of-streaming-video-on-netflix"&gt;long et étayé article&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20210216101431/https://www.carbonbrief.org/factcheck-what-is-the-carbon-footprint-of-streaming-video-on-netflix"&gt;archive&lt;/a&gt;), l'analyste George Kamiya souligne que le Shift Project aurait très largement surestimé ce chiffre. Le think tank a alors publié &lt;a class="reference external" href="https://theshiftproject.org/en/article/shift-project-really-overestimate-carbon-footprint-video-analysis/"&gt;un article&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20201113060720/https://theshiftproject.org/en/article/shift-project-really-overestimate-carbon-footprint-video-analysis/"&gt;archive&lt;/a&gt;) dans lequel ils reconnaissent l'erreur mais affirme que celle-ci n'invalide pas leur conclusion quant à l'importance de la vidéo en ligne dans la pollution numérique.&lt;/p&gt;
&lt;p&gt;Mais encore une fois, cette statistique ne suffit pas à elle même. Comme évoqué plus haut, il ne s'agit pas de multiplier les 4% de part du numérique dans la pollution pour en déduire la pollution générée par la vidéo. Les plateforme de SVOD comme Netflix ou Disney+ par exemple, même si elles stockent généralement des fichiers en très haute qualité qui ont donc une forte empreinte sur le réseau, ont un nombre de vidéos stockées relativement bas. En revanche, les plateformes d'hébergement affichent des chiffres démesurés : Ben McOwen Wilson, directeur régional &amp;quot;EMEA&amp;quot; (Europe Middle East &amp;amp; Africa) de Youtube, géant incontesté du domaine, annonçait en mars 2018 que Youtube recevait &lt;a class="reference external" href="https://www.cnbc.com/2018/03/14/with-over-1-billion-users-heres-how-youtube-is-keeping-pace-with-change.html"&gt;500 heures de nouveau contenu **par minute**&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20201109030853/https://www.cnbc.com/2018/03/14/with-over-1-billion-users-heres-how-youtube-is-keeping-pace-with-change.html"&gt;archive&lt;/a&gt;). Alors que youtube génère théoriquement moins de trafic selon les rapports précédemment cités, il y a fort à parier que l'impact de son infrastructure &lt;em&gt;vidéo&lt;/em&gt; soit démesurément plus grand.&lt;/p&gt;
&lt;/details&gt;&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;Les réseaux mobiles (3G, 4G) consomment jusqu'à 23 fois plus que le Wi-Fi&lt;/b&gt;&lt;br&gt;
Les réseaux mobiles consomment (sans surprise) plus que le Wi-Fi, mais pas à raison de 23 fois plus. L'origine de cette valeur est difficilement trouvable, mais semble être un papier scientifique de 2012, et il s'agit là de la valeur dans les pires conditions, sans doute choisie pour dramatiser le problème. Le ratio s'approche plus de deux à sept fois.&lt;/summary&gt;&lt;p&gt;On peut entre autres retrouver l'affirmation que la 4G (LTE) consommerait &lt;strong&gt;23 fois plus&lt;/strong&gt; (et la 3G 15 fois plus) que le Wi-Fi chez &lt;a class="reference external" href="https://www.greenpeace.fr/la-pollution-numerique/"&gt;Greenpeace&lt;/a&gt; &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Impact_environnemental_du_num%C3%A9rique"&gt;Wikipédia&lt;/a&gt; et enfin Frédéric Bordage (&lt;a class="reference external" href="https://www.greenit.fr/2016/03/15/internet-mobile-la-4g-est-elle-une-abomination-energetique/"&gt;GreenIT&lt;/a&gt;). Ce dernier est d'ailleurs le seul à fournir un semblant de source, celle-ci &lt;a class="reference external" href="https://web.eecs.umich.edu/~zmao/Papers/RRC4G_mobisys2012.pdf"&gt;datant de 2012&lt;/a&gt; (page 9 &amp;amp; 10). Une autre &lt;a class="reference external" href="https://www.researchgate.net/publication/318574812_Smart_mobile_device_power_consumption_measurement_for_video_streaming_in_wireless_environments_WiFi_vs_LTE#pf5"&gt;étude sur le sujet&lt;/a&gt; (figure 6) datant de 2017 arrive à un ratio plus proche de 2x. Cette différence peut potentiellement s'expliquer de plusieurs manières :&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;par des méthodes de mesure différentes selon les études, prenant plus ou moins en compte l'impact de l'infrastructure en plus de l'appareil ;&lt;/li&gt;
&lt;li&gt;par l'amélioration rapide des technologies radio au fil des années ;&lt;/li&gt;
&lt;li&gt;par l'amélioration des protocoles de transfert, l'étude utilisée par GreenIT soulignant que la différence se creuse avant tout dans les quelques pires cas (dit &amp;quot;tail&amp;quot;, désignant soit la fin de transmission, soit les pires cas parmi ceux mesurés) &lt;a class="footnote-reference" href="#footnote-2" id="footnote-reference-2"&gt;[2]&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;table class="docutils footnote" frame="void" id="footnote-2" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-2"&gt;[2]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;em&gt;« we find that LTE is as much as 23 times less power efficient compared with WiFi,  and even less power efficient than 3G, based on the user traces and the long high power tail is found to be a key contributor. »&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;La conclusion de ce papier qui sert de base à GreenIT qui sert lui-même de base à Wikipedia et Greenpeace est donc plutôt que les réseaux 3G/4G sont (ou plutôt, étaient en 2012) très mal optimisés. Le contexte technique devrait être présenté pour mettre en perspective cette valeur. D'autre part, Elle constitue la la valeur dans le pire des cas, issue d'une seule étude qui n'est en rien valeur d'autorité : elle a été choisie car elle présente l'écart le plus large et permet donc de &amp;quot;choquer&amp;quot;. Néanmoins, il est important de souligner qu'il est techniquement vrai que les réseaux mobiles consomment intrinsèquement plus que les réseaux &amp;quot;fixes&amp;quot;, de part leur champs d'action même.&lt;/p&gt;
&lt;/details&gt;&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;Le mode sombre sur les applications et les sites web améliore la consommation des appareils&lt;/b&gt;&lt;br&gt;
Basé sur une conférence faite par Google sur le sujet, mais seuls quelques rares appareils (ceux dotés d'un écran OLED) sont concernés, et l'effet collectif est absolument infinitésimal&lt;/summary&gt;&lt;p&gt;Dernier exemple de statistique techniquement-vraie-mais-en-fait-c'est-plus-compliqué, la question du &amp;quot;mode sombre&amp;quot; : de nombreux guides en ligne pour réduire son empreinte carbone numérique suggèrent de passer au &amp;quot;mode sombre&amp;quot; disponibles sur de plus en plus d'applications pour réduire leur consommation électrique et donc leur impact carbone. L'origine de cette affirmation serait une &lt;a class="reference external" href="https://www.slashgear.com/googles-big-android-battery-oops-and-future-dark-modes-08553037/"&gt;conférence Google de 2018&lt;/a&gt; (&lt;a class="reference external" href="https://www.youtube.com/watch?v=N_6sPd0Jd3g"&gt;vidéo&lt;/a&gt;) comparant la consommation des pixels selon leur luminosité (d'autres &lt;a class="reference external" href="http://mobileenerlytics.com/dark-mode/"&gt;tests&lt;/a&gt; ayant étant été fait sur le sujet allant dans le même sens). Or, celle-ci n'évoque un gain &lt;strong&gt;que dans le cas des écran &amp;quot;OLED&amp;quot;&lt;/strong&gt; qui &amp;quot;éteignent&amp;quot; réellement leurs pixels, à contrario des écran LCDs qui se basent sur un rétroéclairage et ne bénéficient donc virtuellement d'aucune amélioration. Or, Les écrans OLED sont encore largement minoritaires sur les smartphones (d'autant plus en dehors des modèles haut de gamme) et quasiment aucuns de PCs portables ou écrans pour ordinateur ne bénéficient de cette technologie. Il faut donc se renseigner sur ses appareils pour savoir si ce conseil s'applique. Dans le cas d'un écran LCD classique, le conseil serait d'ailleurs plutôt de baisser la luminosité de celui-ci, au pris d'un confort visuel fortement réduit. Qui plus est, on parle là d'une économie en soit non négligeable mais minoritaire, sur une part minime des terminaux, dont la consommation constitue un poste minoritaire, l'utilisation elle-même des terminaux engendrant &lt;a class="reference external" href="https://theshiftproject.org/wp-content/uploads/2020/10/Deployer-la-sobriete-numerique_Resume_ShiftProject.pdf"&gt;20%&lt;/a&gt; de la consommation énergétique du numérique selon &lt;em&gt;The Shift Project&lt;/em&gt;, qui lui-même représente 4% des émissions. Il s'agit donc là d'une poupée russe statistique qui masque l'impact infinitésimal d'une telle pratique, quand bien même elle serait appliquée par toutes et tous. Au mieux, si vous possédez un appareil équipé d'un écran OLED, sachez que vous pouvez améliorer son autonomie en utilisant au maximum le mode sombre.&lt;/p&gt;
&lt;/details&gt;&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="troisieme-cercle-de-l-enfer-la-poubelle-verte"&gt;
&lt;h2&gt;Troisième cercle de l'enfer : la poubelle verte&lt;a class="headerlink" href="#troisieme-cercle-de-l-enfer-la-poubelle-verte" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Les statistiques précédentes, mêmes si elles sont décontextualisées voire exagérées, ont le mérite d'être tout de même évocatrices d'une réalité technique, et donc potentiellement en phase avec les solutions proposées. Ce n'est malheureusement pas la norme, loin de là. Entre autres, deux des plus grands marionniers de l'avant-garde écologiste &lt;em&gt;digitale&lt;/em&gt;, sont la pollution engendrée par les recherches Google, et celle engendrée par les mails. La suite va vous étonner.&lt;/p&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;Une recherche Google c'est 10g de CO&lt;sub&gt;2&lt;/sub&gt;&lt;/b&gt;&lt;br&gt;
L'affaire date de 2009, l'étude n'a jamais été publiée, Google a sorti son propre chiffre de 0.2g en réponse (ce qui ne veut pas dire qu'il faut les prendre pour argent comptant), et le chercheur Docteur Alex Wissner-Gross à l'origine de l'histoire a ensuite nié que son étude portait sur cela. Il affirme que &lt;i&gt;The Sunday Times&lt;/i&gt; qui a rapporté l'affaire a fait un article à charge contre Google en détournant ses travaux.&lt;/summary&gt;&lt;p&gt;Concernant les recherches Google : le chiffre est aujourd'hui encore partout dans les médias : une recherche sur Google génèrerait entre 5 et 10g de CO&lt;sub&gt;2&lt;/sub&gt;, soit &amp;quot;autant qu'une demie bouilloire&amp;quot;. Une simple pression d'une touche qui provoque autant de pollution qu'un appareil qui chauffe un litre d'eau, on peut comprendre que ça a de quoi émouvoir.
Mais lorsque que l'on remonte la source de l'histoire (ce que les personnes qui propagent l'info ne font presque jamais, évidemment), les choses sont bien plus nuancées. L'histoire commence en 2009 avec un &lt;a class="reference external" href="https://web.archive.org/web/20090115112144/http://technology.timesonline.co.uk/tol/news/tech_and_web/article5489134.ece"&gt;article&lt;/a&gt; dans &lt;em&gt;The Sunday Time&lt;/em&gt; rapportant les propos du Docteur Alex Wissner-Gross, article depuis supprimé. Il affirme dans celui-ci qu'une recherche Google génèrerait entre 5 et 10g de CO&lt;sub&gt;2&lt;/sub&gt; ; on y retrouve d'ailleurs déjà la comparaison avec la bouilloire, perfide albion oblige. Le chercheur annonce que ses travaux ont été soumis au &lt;em&gt;US Institute of Electrical and Electronics Engineers&lt;/em&gt; et qu'ils sont en attente de publication. 11 ans après, cette étude n'est toujours pas paru. À la suite de cette article, Google a réagi dans un &lt;a class="reference external" href="https://web.archive.org/web/20090118205755/http://googleblog.blogspot.com/2009/01/powering-google-search.html"&gt;poste de blog&lt;/a&gt; en affirmant de son côté qu'une recherche google génèrerait que 0.2g de CO&lt;sub&gt;2&lt;/sub&gt;, qu'ils comparent au maximum de 140 grammes de CO&lt;sub&gt;2&lt;/sub&gt; par kilomètre recommandé par l'europe (mais rarement atteint selon eux) pour une voiture à l'époque. En réaction, &lt;a class="reference external" href="https://web.archive.org/web/20090119060212/http://technewsworld.com/story/Harvard-Prof-Sets-Record-Straight-on-Internet-Carbon-Study-65794.html"&gt;le chercheur a nié être à l'origine de cette statistique&lt;/a&gt;, affirmant qu'il a simplement évoqué la consommation d'un ordinateur causé par une page web et que &lt;em&gt;The Sunday Times&lt;/em&gt; aurait volontairement fait un article à charge contre Google en détournant ses propos. Dans tous les cas, les médias diffusent encore une statistique erronée (de la bouche du chercheur lui-même), &lt;a class="reference external" href="https://www.nouvelobs.com/rue89/rue89-economie/20090114.RUE7884/imbroglio-sur-la-pollution-generee-par-les-recherches-google.html"&gt;11 après que celle-ci ait été mise en défaut&lt;/a&gt;.&lt;/p&gt;
&lt;/details&gt;&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;un mail c'est environ 10g de C02 par destinataire&lt;/b&gt;&lt;br&gt;
L'auteur originel, Mike Berners-Lee qui avait lâché cette statistique dans un livre, a depuis recontextualisé ses propos et remis en perspective cette valeur&lt;/summary&gt;&lt;p&gt;Concernant les mails maintenant. Les chiffres varient d'un article à l'autre mais dans l'idée la pollution engendrée par un mail serait de l'ordre de 4 à 10g pour un mail simple, et jusqu'à 50g pour un mail avec une pièce jointe. La source rarement cité serait selon &lt;a class="reference external" href="https://www.futura-sciences.com/planete/questions-reponses/eco-consommation-empreinte-carbone-e-mail-10840/"&gt;cet article&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20210109120939/https://www.futura-sciences.com/planete/questions-reponses/eco-consommation-empreinte-carbone-e-mail-10840/"&gt;archive&lt;/a&gt;) de Futura Sciences un &lt;a class="reference external" href="https://carbonliteracy.com/the-carbon-cost-of-an-email/"&gt;rapport&lt;/a&gt; du &lt;em&gt;Carbon Literacy Project&lt;/em&gt; lui-même basé sur des données du livre &amp;quot;&lt;em&gt;How Bad Are Bananas?&lt;/em&gt;&amp;quot; par Mike Berners-Lee, frère de Tim Burners-Lee, inventeur du World Wide Web. Sauf qu'encore une fois, l'auteur originel est revenu sur cette statistique —de manière plus transparente et honnête que dans l'exemple précédent—, via &lt;a class="reference external" href="https://twitter.com/MikeBernersLee/status/1329497474667581441"&gt;un tweet&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/save/https://twitter.com/MikeBernersLee/status/1329497474667581441"&gt;archive&lt;/a&gt;). Il la remet d'ailleurs en perspective aussi bien en terme de taille que de traitement comparé à d'autres usages du web.&lt;/p&gt;
&lt;p&gt;Pour remettre tout ça en perspective : dans les captures d'écrans suivantes, le chargement de la &lt;strong&gt;page&lt;/strong&gt; de gmail, le webmail de Google, provoque environ 1Mo de &lt;strong&gt;transit&lt;/strong&gt; (pour 16Mo de ressources, compressées) : l'ouverture d'un mail généreux en taille venant d'une célébre solution de vidéoconférence, 50ko, soit 20 fois moins.&lt;/p&gt;
&lt;/details&gt;&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;Une box internet consomme autant qu'un frigo : pensez à l'éteindre quand vous ne l'utilisez pas&lt;/b&gt;&lt;br&gt;
Non, pas de nos jours en tout cas. Une étude de *60 millions de consommateurs* avait relevé que les box internet consommaient beaucoup trop (« entre 143 et 263 kilowatts/heure ») pour ce qu'elle faisaient, la faute aux opérateurs qui ne faisaient pas d'effort d'optimisation… en 2007. Un test rapide montre qu'une box internet consomme huit fois moins qu'un frigo, même dans des conditions avantageuses pour ce dernier.&lt;/summary&gt;&lt;p&gt;Ce conseil là est apparut telle une trainée de poudre dans tous les médias, spécialisés comme généralistes. La logique derrière cette affirmation serait la suivante : un frigo consomme pas mal, mais pas en continu, là où une box internet est virtuellement en ligne h24. Pourtant, l'écart de puissance semble telllement absurde pour que ça puisse être vrai. Pour en avoir le cœur net et à défaut de mieux, j'ai acheté pour la modique somme de 14 euros un &amp;quot;Wattmètre&amp;quot; (Perel E305EM6 si vous êtes curieux-ses), un appareil spécifiquement destinée à mesurer la consommation éléctrique d'un appareil sur une durée donnée. Il se présente sous la forme d'un bloc qui s'interpose entre l'appareil et sa prise. J'ai pris comme référence les équipements qui étaient à ma portée, c'est à dire la box internet (LiveBox Orange v4) et le frigo (Apollo Brandt) de notre colloc de trois personnes : cela ne fait pas état de valeur absolu, mais permet de se faire une idée de l'ordre de grandeur. L'expérience était de base biaisé en faveur du frigo, puisque le froid de l'hiver réduisait le travail de celui-ci, et que notre box internet porte plusieurs serveurs dédiés à mon auto-hébergement. J'ai donc mesuré leur consommation respective sur une semaine, et le bilan est assez &lt;a class="reference external" href="https://www.youtube.com/watch?v=BfpLOlp3Zrc"&gt;anti-climatique&lt;/a&gt; :&lt;/p&gt;
&lt;div class="center figure"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/router_vs_box.jpg"&gt;
&lt;img alt="Photos comparatives de la consommation de la box internet et du frigo ; dans l'ordre, la box commence à 0.12 Watt/heures le 16 décembre, et finit à 1.79 Watt/heures le 23 décembre. Le frigo commence à 0 Watt/heures le 26 décembre, et finit à 13,23 Watt/heures le 3 janvier." src="https://rsc.aligot-death.space/images/480/articles/router_vs_box.jpg" style="width: 50%;" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Le frigo a consommé huit fois plus que la box internet.&lt;/p&gt;
&lt;/div&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;la box a consommé en moyenne 0.009 Watt/heures (1.67 Watt/heures en ~168 heures) ;&lt;/li&gt;
&lt;li&gt;le frigo a consommé en moyenne 0.07  Watt/heures (13.23 Watt/heures en ~189 heures).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le frigo a donc consommé quasiment &lt;strong&gt;huit fois plus&lt;/strong&gt; que la box internet, dans un environnement qui aurait encore une fois dû largement l'avantager.&lt;/p&gt;
&lt;p&gt;Je ne suis d'ailleurs &lt;a class="reference external" href="https://www.youtube.com/watch?v=X03wh7sCxiY"&gt;pas la seule personne&lt;/a&gt; qui a été interloquée par cette statistique.&lt;/p&gt;
&lt;p&gt;Qui propage cette idée ? Et bien il semblerait qu'il s'agit… de l'ADEME encore, qui est pour rappel un &lt;strong&gt;établissement public&lt;/strong&gt;.
On peut lire dans leur guide &amp;quot;&lt;a class="reference external" href="https://www.ademe.fr/sites/default/files/assets/documents/guide-pratique-face-cachee-numerique.pdf"&gt;la face cachée du numérique&lt;/a&gt;&amp;quot;, considéré comme une référence en la matière; ainsi que dans leur autre guide &amp;quot;&lt;a class="reference external" href="https://www.ademe.fr/sites/default/files/assets/documents/guide-pratique-reduire-facture-electricite.pdf"&gt;réduire sa facture d’électricité&lt;/a&gt;&amp;quot; (qui cite &lt;em&gt;60 millions de consommateurs&lt;/em&gt;) :&lt;/p&gt;
&lt;blockquote class="pull-quote"&gt;
&lt;strong&gt;une box consomme autant qu'un réfrigérateur&lt;/strong&gt; : Sa consommation totale sur un an, se situe entre 150 et 300 kWh : c'est autant qu'un grand réfrigérateur ! Une box TV consomme 3 fois ce que consomme un téléviseur et une box Internet, 6 fois plus. Une solution pour moins consommer d'électricité : ne laissez pas votre box en veille si vous ne l'utilisez pas. Vous économiserez ainsi environ 30 euros par an.&lt;/blockquote&gt;
&lt;p&gt;La source &lt;em&gt;60 millions de consommateur&lt;/em&gt; est semble-t-il un &lt;a class="reference external" href="https://www.nouvelobs.com/planete/autour-du-grenelle-de-l-environnement/20071005.OBS8187/les-box-internet-grandes-gaspilleuses-d-energie.html"&gt;article posté dans le magasine éponyme&lt;/a&gt; en octobre 2007 évoquant une consommation « entre 143 et 263 kilowatts/heure (kWh) » (une donnée étrangement haute par ailleurs, mais passons). Le magazine reproche en l'occurence &lt;strong&gt;aux fabriquants&lt;/strong&gt; de mal optimiser leur matériel. Difficile à dire si les box internet consommaient effectivement autant à l'époque, mais en 2021, alors que cette donnée est toujours citée, ce n'est clairement plus le cas. Sans parler de la problable surconsommation engendrée sur le réseau si tout le monde débranche et rebranche sa box chaque nuit, du fait de la resynchronisation.&lt;/p&gt;
&lt;/details&gt;&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;details&gt;
&lt;summary&gt;&lt;b&gt;Pensez à vider le cache de votre ordinateur pour limiter sa consommation&lt;/b&gt;&lt;br&gt;
Hormis pour libérer de l'espace, c'est non seulement inutile mais en plus contre-productif. Le cache sert à garder en mémoire des ressources souvent utilisées mais inchangées. En supprimant le cache, on force l'appareil à mobiliser les infrastructures pour des ressources qu'il possédait déjà. Autant jeter ses poubelles par la fenêtre pour réduire sa taxe ménagère et son empreinte carbone personnelle.&lt;/summary&gt;&lt;p&gt;Même si ce conseil est plus rare, il frappe par son aburdité. On nous conseille de vider notre cache comme l'on vide nos poubelle. Dans la même logique que le mail, si ça prend de la place, c'est bien qu'il faut nettoyer non ?
Pourtant nettoyer son cache n'est pas seulement inutile : c'est contre-productif.
Le &amp;quot;cache&amp;quot; (sous entendu du navigateur, soit-il Firefox, Chrome ou autre) sert à garder en mémoire des ressources régulièrement utilisées mais peu changeantes. Les grands sites utilisent souvent des polices d'écriture, des scripts ou bien même des images identiques : les re-télécharger à chaque fois serait donc littéralement une perte d'énergie, aussi bien pour nos appareils que pour les structures qui hébergent ces ressources. Lorsque que l'on nettoie son cache, on force notre navigateur à re-télécharger ces ressources pour rien. Qui plus est, Les acteurs hébergeant ces ressources sont généralement des géants du web comme Cloudflare ou Amazon, qui n'hésitent pas à profiter de ces requêtes pour agrandir plus encore leur base de données d'informations sur nos usages. La bonne stratégie est donc l'exact contraire de ce qui est recommandé par ces &amp;quot;champions du numérique&amp;quot;, c'est à dire faire perdurer ce cache autant que possible. Une solution simple, disponible aussi bien sur Firefox que sur Chrome est Decentraleyes, une extension qui garde en mémoire ces ressources au delà du cache pour limiter le nombre de requêtes vers l'extérieur, et ainsi à la fois limiter les ressources mobilisées et les données de tracking que l'on génère. On est jamais mieux servi que par soi-même.
Ce conseil absolument absurde est trouvable aussi bien dans une &lt;a class="reference external" href="https://www.youtube.com/watch?v=WU0SlzWeTSs"&gt;vidéo produite par le youtuber Nozman&lt;/a&gt; que sur &lt;a class="reference external" href="https://www.apc-paris.com/actualite/20-eco-gestes-a-adopter-pour-numerique-responsable"&gt;le site de *L'Agence Parisienne du Climat*&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20210831101514/https://www.apc-paris.com/actualite/20-eco-gestes-a-adopter-pour-numerique-responsable"&gt;archive&lt;/a&gt;), partenaire de l'ADEME, et ce malgré qu'un rapport soutenu par cette dernière affirme &lt;a class="reference external" href="https://www.ademe.fr/sites/default/files/assets/documents/adm00013632_web-energy-archive-note-de-synthese.fr_2.pdf"&gt;l'exact contraire&lt;/a&gt; (&lt;a class="reference external" href="https://web.archive.org/web/20210722002219/https://www.ademe.fr/sites/default/files/assets/documents/adm00013632_web-energy-archive-note-de-synthese.fr_2.pdf"&gt;archive&lt;/a&gt;).&lt;/p&gt;
&lt;/details&gt;&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p class="center"&gt;L'écologie digitale, ou la main verte invisible du marché :&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Première partie : le fact-checking à la cool&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;La suite reste à venir&lt;/em&gt;&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>Détecter un logiciel espion sur un smartphone avec TinyCheck</title><link href="https://aligot-death.space/txt/guides/tinycheck-fr" rel="alternate"></link><published>2021-02-15T00:00:00+01:00</published><updated>2025-04-17T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2021-02-15:/txt/guides/tinycheck-fr</id><summary type="html">&lt;p class="first last"&gt;TinyCheck, un projet permettant de rapidement vérifier qu'un smartphone n'est pas infecté par un logiciel espion&lt;/p&gt;
</summary><content type="html">&lt;p class="alert"&gt;EDIT: Tinydesk a semblerait-il disparu de la toile. Ce guide n'est donc plus applicable, puisque comme toute application de sécurité, TinyDesk dépendait de mises à jour régulières.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Ce tutoriel a vocation a rendre le plus accessible possible pour des personnes non techniciennes un outil qui peut s'avérer utile dans des situations à risque. Si vous savez ce que vous faites, préférez le tutoriel disponible sur le wiki du projet originel.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="https://github.com/KasperskyLab/TinyCheck"&gt;TinyCheck&lt;/a&gt; est un projet créé par des membres de la firme de sécurité Kaspersky et qui permet de détecter la présence de logiciels espions (dits &amp;quot;stalkerware&amp;quot;) sur un smartphone. &lt;strong&gt;Son principe de fonctionnement et son utilisation sont assez simples&lt;/strong&gt;, même si son installation elle-même nécessite un peu de connaissances ou bien d'être guidé.&lt;/p&gt;
&lt;p&gt;Son fonctionnement est le suivant : il crée un réseau Wi-Fi temporaire auquel on connecte le smartphone, on fait une utilisation typique de l'appareil, et TinyCheck analyse le trafic qui a circulé pour détecter des comportements typique de stalkerwares. Ces programmes peuvent être installés par des personnes mal intentionnées, allant du simple parent un peut trop intrusif à des groupes de surveillance, étatiques ou non. La page Github du projet mentionne d'ailleurs que cet outil a originellement été mis au point pour être mis à disposition dans des foyers pour femmes.&lt;/p&gt;
&lt;div class="contents topic" id="sommaire"&gt;
&lt;p class="topic-title"&gt;&lt;a class="reference internal" href="#top"&gt;Sommaire&lt;/a&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference internal" href="#installation" id="toc-entry-1"&gt;Installation&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="reference internal" href="#materiel" id="toc-entry-2"&gt;Matériel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#preparation-du-raspberry-pi" id="toc-entry-3"&gt;Préparation du Raspberry Pi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#installation-du-logiciel" id="toc-entry-4"&gt;Installation du logiciel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#utilisation" id="toc-entry-5"&gt;Utilisation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#analyser-et-comprendre-les-resultats" id="toc-entry-6"&gt;Analyser et comprendre les résultats&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference internal" href="#que-faire-en-cas-de-compromission" id="toc-entry-7"&gt;Que faire en cas de compromission ?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="installation"&gt;
&lt;h2&gt;Installation&lt;a class="headerlink" href="#installation" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="section" id="materiel"&gt;
&lt;h3&gt;Matériel&lt;a class="headerlink" href="#materiel" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;div class="figure align-left"&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/pi_os_pi.png"&gt;
&lt;img alt="une image montrant un Raspberry Pi modèle 3" src="https://rsc.aligot-death.space/images/480/articles/pi_os_pi.png" /&gt;
&lt;/a&gt;
&lt;p class="caption"&gt;Un Raspberry Pi modèle 3 (qui a bien vécu)&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Ce projet tourne à l'aide d'un RaspBerry Pi, un petit ordinateur de la taille d'une carte de crédit et coûtant (seul) quelques dizaines d'euros selon les modèles. En l'occurence, il faut un modèle &amp;quot;récent&amp;quot; disposant du Wi-Fi, c'est à dire un modèle 3 ou 4.&lt;/p&gt;
&lt;p&gt;Pour pouvoir s'en servir, il faudra également une carte micro SD, un chargeur de smartphone pour l'alimenter, et au besoin un adaptateur pour le brancher sur un écran : les modèles &amp;quot;4&amp;quot; récents utilisent d'ailleurs un branchement &amp;quot;mini-HDMI&amp;quot;. Pour simplifier la vie, Les sites revendeurs comme Kubii proposent des kits clef en main, comme ce &lt;a class="reference external" href="https://www.kubii.fr/raspberry-pi-4-modele-b/2689-kit-raspberry-pi4-budget-kubii-3272496298668.html"&gt;Starter Kit Raspberry Pi 4 2GB&lt;/a&gt;.&lt;/p&gt;
&lt;p class="side-note align-right"&gt;Si vous êtes sur Mac OS ou Linux, des instructions d'installation sont disponibles sur le &lt;a class="reference external" href="https://www.raspberrypi.org/documentation/installation/installing-images/"&gt;site officiel&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="preparation-du-raspberry-pi"&gt;
&lt;h3&gt;Préparation du Raspberry Pi&lt;a class="headerlink" href="#preparation-du-raspberry-pi" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Il faut donc pour commencer préparer la carte micro SD pour installer le système. Pour cela, il suffit de chercher sur le web &amp;quot;raspberry pi os&amp;quot; et de cliquer sur le lien &amp;quot;Raspberry Pi OS – Raspberry Pi&amp;quot; :&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/pi_os_search.png"&gt;
&lt;img alt="une image montrant une recherche sur google montrant le premier résultat pertinent" class="align-center" src="https://rsc.aligot-death.space/images/480/articles/pi_os_search.png" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p&gt;Une fois sur le site, descendre jusqu'au bouton &amp;quot;Download&amp;quot; qui devrait proposer la version adaptée à votre ordinateur :&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/pi_os_download.png"&gt;
&lt;img alt="Une image montrant le bouton &amp;quot;Download&amp;quot; sur le site de Raspberry Pi" class="align-center" src="https://rsc.aligot-death.space/images/480/articles/pi_os_download.png" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p&gt;Enregistrer le fichier alors proposé, ouvrir ses téléchargements et lancer le fichier.&lt;/p&gt;
&lt;p&gt;Si vous êtes sur Windows, une fenêtre de sécurité bloquant le lancement peut s'afficher : simplement cliquer sur &amp;quot;&lt;strong&gt;Informations complémentaires&lt;/strong&gt;&amp;quot; puis sur &amp;quot;&lt;strong&gt;Exécuter quand même&lt;/strong&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;Faire l'installation en cliquant simplement sur &amp;quot;Install&amp;quot;, puis une fois fini sur &amp;quot;Finish&amp;quot;. Le logiciel se lance alors. Au besoin, vous pouvez le retrouver sur votre ordinateur sous le nom &amp;quot;Rapberry Pi Imager&amp;quot;.&lt;/p&gt;
&lt;p&gt;Brancher alors la carte micro SD dans l'ordinateur à l'aide d'un adaptateur (USB et/ou SD).&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/pi_os_sd_card.png"&gt;
&lt;img alt="Une carte SD et son adaptateur USB" class="align-center" src="https://rsc.aligot-death.space/images/480/articles/pi_os_sd_card.png" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p&gt;Dans le logiciel :&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Cliquez sur &amp;quot;Choisissez l'OS&amp;quot;, et sélectionner le premier choix &amp;quot;Raspberry Pi OS (32bit)&amp;quot; ;&lt;/li&gt;
&lt;li&gt;Cliquez sur &amp;quot;Choisissez la carte... &amp;quot; et sélectionner la carte micro-SD : si plusieurs choix s'offrent à vous, basez vous sur la taille de la carte pour savoir laquelle est la bonne. Attention, les donneés de la carte sélectionnée seront effacées, pensez à les copier si vous ne souhaitez pas les perdre et à vérifier trois fois qu'il s'agit bien de la bonne.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cela donne par exemple :&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/pi_os_flash.png"&gt;
&lt;img alt="Une image montrant le logiciel prêt à lancer l'installation." class="align-center" src="https://rsc.aligot-death.space/images/480/articles/pi_os_flash.png" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p&gt;Enfin, cliquer sur &amp;quot;écrire&amp;quot;, et validez en cliquant sur &amp;quot;Oui&amp;quot;.&lt;/p&gt;
&lt;p&gt;L'opération d'écriture peut durer entre 10 minutes et une heure selon les performances de votre installation : ne débranchez pas la carte, prenez une tasse de votre boisson préférée et attendez le message vous indiquant que tout est fini.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="installation-du-logiciel"&gt;
&lt;h3&gt;Installation du logiciel&lt;a class="headerlink" href="#installation-du-logiciel" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Insérez la carte micro SD dans le Pi, puis branchez un écran (avec un adaptateur si nécessaire), un clavier et une souris, ainsi qu'un câble Ethernet : &lt;strong&gt;ne passez pas par le Wi-Fi&lt;/strong&gt; pour vous connecter à internet, car il sera utilisé par le logiciel. Enfin, branchez l'alimentation. Le Raspberry Pi devrait allumer une diode rouge indiquant qu'il est alimenté, ainsi qu'une diode verte indiquant qu'il travaille.&lt;/p&gt;
&lt;p&gt;Si tout se passe bien, l'écran devrait afficher un carré arc-en-ciel, puis arriver sur un bureau. Le Pi va &lt;strong&gt;éventuellement&lt;/strong&gt; vous demander de choisir une disposition clavier (mettre French) et de faire une mise à jour, à la suite de laquelle il redémarrera. Sinon, la première chose à faire pour se faciliter la vie est de changer la disposition de clavier en français (ou tout autre clavier que vous avez). Pour cela, cliquer sur la &lt;strong&gt;framboise&lt;/strong&gt; en haut à gauche, puis sur &lt;strong&gt;&amp;quot;Preferences&amp;quot;&lt;/strong&gt; et enfin &lt;strong&gt;&amp;quot;Mouse and keyboard settings&amp;quot;&lt;/strong&gt;. Dans la fenêtre qui s'ouvre, cliquer sur &lt;strong&gt;&amp;quot;Keyboard&amp;quot;&lt;/strong&gt;, puis sur &lt;strong&gt;&amp;quot;Keyboard layout&amp;quot;&lt;/strong&gt; (disposition clavier). Enfin, cherchez votre disposition clavier (par exemple, &lt;strong&gt;&amp;quot;French&amp;quot;&lt;/strong&gt; pour français) en face de &lt;strong&gt;&amp;quot;Layout&amp;quot;&lt;/strong&gt;, cliquer sur &lt;strong&gt;&amp;quot;OK&amp;quot;&lt;/strong&gt; et attendre quelques secondes que les paramètres soient appliqués.&lt;/p&gt;
&lt;p&gt;Ensuite, il faut lancer un terminal. Pour cela, cliquer sur le carré noir écrit &amp;quot;&amp;gt;_&amp;quot; en haut. Nous allons taper des commandes textuelles pour l'installation, &lt;strong&gt;une par une&lt;/strong&gt;. Le bout de texte &lt;strong&gt;&amp;quot;pi&amp;#64;raspberrypi:~ $&amp;quot;&lt;/strong&gt; (appelé prompt) déjà présent indique que le terminal est prêt à recevoir une commande : il réapparaitra en dessous du résultat quand la commande précédente sera finie. Il faut donc bien attendre celui-ci.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Bien penser à appuyer sur la touche &amp;quot;Entrée&amp;quot; pour lancer une commande une fois celle-ci tapée.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Taper les commande suivantes (tel qu'également indiquées dans le &lt;a class="reference external" href="https://github.com/KasperskyLab/TinyCheck/wiki/TinyCheck-installation"&gt;tutoriel&lt;/a&gt; de TinyCheck)&amp;nbsp;:&lt;/p&gt;
&lt;p&gt;Se rendre dans le &lt;em&gt;dossier&lt;/em&gt; temporaire &amp;quot;/tmp&amp;quot; :&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/tmp
&lt;/pre&gt;
&lt;p&gt;Cette commande s'exécute quasi immédiatement.
Ensuite, lancer le téléchargement du projet depuis Github :&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
git&lt;span class="w"&gt; &lt;/span&gt;clone&lt;span class="w"&gt; &lt;/span&gt;https://github.com/KasperskyLab/TinyCheck
&lt;/pre&gt;
&lt;p&gt;Se rendre dans le &lt;em&gt;dossier&lt;/em&gt; alors créé :&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;TinyCheck
&lt;/pre&gt;
&lt;p&gt;Et enfin lancer l'installation :&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;bash&lt;span class="w"&gt; &lt;/span&gt;install.sh
&lt;/pre&gt;
&lt;p&gt;Au bout de quelques minutes, le programme vous posera quelques questions. Il est conseillé de répondre comme suit :&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="o"&gt;[&lt;/span&gt;?&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;The&lt;span class="w"&gt; &lt;/span&gt;interface&lt;span class="w"&gt; &lt;/span&gt;eth0&lt;span class="w"&gt; &lt;/span&gt;is&lt;span class="w"&gt; &lt;/span&gt;connected.&lt;span class="w"&gt; &lt;/span&gt;Do&lt;span class="w"&gt; &lt;/span&gt;you&lt;span class="w"&gt; &lt;/span&gt;want&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;use&lt;span class="w"&gt; &lt;/span&gt;it&lt;span class="w"&gt; &lt;/span&gt;as&lt;span class="w"&gt; &lt;/span&gt;a&lt;span class="w"&gt; &lt;/span&gt;bridge&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;Internet&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;network/out&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;?&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;Yes/No&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Le logiciel demande s'il peut utiliser le câble &amp;quot;Internet&amp;quot; pour disposer d'internet. Taper &lt;strong&gt;&amp;quot;yes&amp;quot;&lt;/strong&gt; et appuyer sur la touche &amp;quot;Entrée&amp;quot;.&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="o"&gt;[&lt;/span&gt;?&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;The&lt;span class="w"&gt; &lt;/span&gt;interface&lt;span class="w"&gt; &lt;/span&gt;wlan0&lt;span class="w"&gt; &lt;/span&gt;can&lt;span class="w"&gt; &lt;/span&gt;be&lt;span class="w"&gt; &lt;/span&gt;used&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;Wi-Fi&lt;span class="w"&gt; &lt;/span&gt;Access&lt;span class="w"&gt; &lt;/span&gt;Point.&lt;span class="w"&gt; &lt;/span&gt;Do&lt;span class="w"&gt; &lt;/span&gt;you&lt;span class="w"&gt; &lt;/span&gt;want&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;use&lt;span class="w"&gt; &lt;/span&gt;it&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;TinyCheck&lt;span class="w"&gt; &lt;/span&gt;Access&lt;span class="w"&gt; &lt;/span&gt;Point&lt;span class="w"&gt; &lt;/span&gt;?&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;Yes/No&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;yes
&lt;/pre&gt;
&lt;p&gt;Le logiciel demande s'il peut utiliser le Wi-fi pour proposer l'accès nécessaire à son fonctionnement. Taper &lt;strong&gt;&amp;quot;yes&amp;quot;&lt;/strong&gt; et appuyer sur la touche &amp;quot;Entrée&amp;quot;.&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="o"&gt;[&lt;/span&gt;+&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Setting&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;user&lt;span class="w"&gt; &lt;/span&gt;language...&lt;span class="w"&gt;
 &lt;/span&gt;Please&lt;span class="w"&gt; &lt;/span&gt;choose&lt;span class="w"&gt; &lt;/span&gt;a&lt;span class="w"&gt; &lt;/span&gt;language&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;reports&lt;span class="w"&gt; &lt;/span&gt;and&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;user&lt;span class="w"&gt; &lt;/span&gt;interface&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;en/fr/cat/es&lt;span class="o"&gt;)&lt;/span&gt;:&lt;span class="w"&gt; &lt;/span&gt;fr
&lt;/pre&gt;
&lt;p&gt;Le logiciel demande la langue à utiliser : l'équipe ayant des personnes francophones en son sein, le français est disponible : taper &lt;strong&gt;&amp;quot;fr&amp;quot;&lt;/strong&gt; et appuyer sur la touche &amp;quot;Entrée&amp;quot;.&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="o"&gt;[&lt;/span&gt;+&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Setting&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;backend&lt;span class="w"&gt; &lt;/span&gt;credentials...&lt;span class="w"&gt;
 &lt;/span&gt;Please&lt;span class="w"&gt; &lt;/span&gt;choose&lt;span class="w"&gt; &lt;/span&gt;a&lt;span class="w"&gt; &lt;/span&gt;username&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;TinyCheck&lt;span class="s1"&gt;'s backend: bob
 Please choose a password for TinyCheck'&lt;/span&gt;s&lt;span class="w"&gt; &lt;/span&gt;backend:&lt;span class="w"&gt;
 &lt;/span&gt;Please&lt;span class="w"&gt; &lt;/span&gt;confirm&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;password:
&lt;/pre&gt;
&lt;p&gt;Le logiciel demande de créer un identifiant et un mot de passe : rentrer un nom (sans accent, majuscule ou espace), appuyer sur la touche &amp;quot;Entrée&amp;quot; pour valider, taper le mot de passe, appuyer à nouveau sur la touche &amp;quot;Entrée&amp;quot; pour valider, et retaper le même mot de passe pour confirmer (et vous ne devinerez jamais, appuyez sur la touche entrée pour valider).&lt;/p&gt;
&lt;pre class="code bash literal-block"&gt;
&lt;span class="o"&gt;[&lt;/span&gt;?&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Do&lt;span class="w"&gt; &lt;/span&gt;you&lt;span class="w"&gt; &lt;/span&gt;want&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;start&lt;span class="w"&gt; &lt;/span&gt;TinyCheck&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;fullscreen&lt;span class="w"&gt; &lt;/span&gt;during&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;system&lt;span class="w"&gt; &lt;/span&gt;startup&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;aka.&lt;span class="w"&gt; &lt;/span&gt;Kiosk&lt;span class="w"&gt; &lt;/span&gt;mode&lt;span class="o"&gt;)&lt;/span&gt;?&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;Yes/No&lt;span class="o"&gt;]&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Le logiciel demande s'il doit se lancer dès le démarrage du raspberry pi : taper &amp;quot;no&amp;quot; pour l'instant, et appuyer sur la touche &amp;quot;Entrée&amp;quot; pour valider.&lt;/p&gt;
&lt;p&gt;L'installation va continuer un peu, puis le logiciel affichera une simili fenêtre dans le terminal pour demander s'il doit laisser l'accès à un mode spécial du Wi-Fi aux autres comptes : simplement appuyer sur la touche &amp;quot;Entrée&amp;quot; pour répondre non :&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/tinycheck_wireshark.png"&gt;
&lt;img alt="Une capture d'écran de la fenêtre s'ouvrant lors du lancement de TinyCheck demandant le mode d'exécution." class="align-center" src="https://rsc.aligot-death.space/images/480/articles/tinycheck_wireshark.png" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p&gt;L'installation à proprement dit commence alors et va tourner pendant un bon moment, possiblement plus d'une heure. N'hésitez pas à faire autre chose à côté.
L'utilitaire va alors tourner pendant un bon moment afin de mettre en place tous les éléments nécessaires à son fonctionnement.&lt;/p&gt;
&lt;p&gt;À la fin de l'installation, le programme redémarre alors le pi : si vous n'avez pas eu la fenêtre de sélection de langue lors du premier démarrage, celle-ci s'affichera alors. Comme indiqué prédédemment, sélectionner l'option &amp;quot;French&amp;quot;.&lt;/p&gt;
&lt;p&gt;Une icône est désormais présente sur le bureau : le logiciel est prêt à être utilisé.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="utilisation"&gt;
&lt;h2&gt;Utilisation&lt;a class="headerlink" href="#utilisation" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Tout d'abord, vérifier si le Wi-Fi est activé : pour cela cliquer sur les deux flèches bleues &amp;quot;⇵&amp;quot; en haut à droite de l'écran. Si l'option &lt;em&gt;&amp;quot;Turn Wi-fi On&amp;quot;&lt;/em&gt; apparait, cliquer dessus, sinon si &lt;em&gt;&amp;quot;No Wireless network found&amp;quot;&lt;/em&gt; apparait c'est que tout est bon.&lt;/p&gt;
&lt;p&gt;Double-cliquer sur l'icône appelée &amp;quot;TinyCheck&amp;quot; sur le bureau, et dans la fenêtre qui s'affiche cliquer sur &lt;strong&gt;&amp;quot;Exécuter&amp;quot;&lt;/strong&gt; (et non &amp;quot;Exécuter dans un terminal&amp;quot;) :&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/tinycheck_launch.png"&gt;
&lt;img alt="Une capture d'écran de la fenêtre s'ouvrant lors du lancement de TinyCheck demandant le mode d'exécution." class="align-center" src="https://rsc.aligot-death.space/images/480/articles/tinycheck_launch.png" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p&gt;Le navigateur internet s'ouvre, et après quelques secondes de chargement l'interface s'affiche :&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/tinycheck_allons-y.png"&gt;
&lt;img alt="Une capture d'écran de TinyCheck sur l'écran de démarrage, avec un bouton &amp;quot;Allons-y&amp;quot;." class="align-center" src="https://rsc.aligot-death.space/images/480/articles/tinycheck_allons-y.png" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p&gt;Le logiciel crée alors un réseau Wi-Fi temporaire : cela peut prendre plusieurs secondes. Si cela dure plus d'une minute, revérifier que le Wi-Fi est allumé comme indiqué précédemment. Il affiche ensuite les informations de connexion : connecter le smartphone en activant son wi-Fi et au choix en rentrant le nom et le mot de passe ou en scannant le QRCode.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Très important&lt;/strong&gt; : il faut couper les &amp;quot;données mobiles&amp;quot; (3G, 4G, etc) du smartphone pour s'assurer que toutes les données transit par le Wifi : pour cela, se rendre dans les paramètres dans la catégorie &amp;quot;Réseaux mobiles&amp;quot; et décocher l'option &amp;quot;données mobiles&amp;quot; : la procédure peut changer selon les modèles, ne pas hésiter à se renseigner sur le web. &lt;strong&gt;Penser également à les réactiver après&lt;/strong&gt;. Pour ne pas créer des incohérences, ne pas essayer de connecter plusieurs appareils en même temps.&lt;/p&gt;
&lt;p&gt;Une fois connecté, le logiciel lance tout seul le scan et affiche un chronomètre indiquant depuis combien de temps le scan tourne. Il faut alors utiliser le smartphone de manière &amp;quot;typique&amp;quot;, en lançant les applications régulièrement utiliseés, ouvrir une page web, et également lancer un redémarrage de l'appareil, car certains logiciels espions s'actionnent au moment du démarrage.&lt;/p&gt;
&lt;p&gt;Après quelques minutes d'utilisation (le plus longtemps ça dure le mieux c'est), cliquer sur &lt;strong&gt;&amp;quot;Arrêter la capture&amp;quot;&lt;/strong&gt;. Ensuite, cliquer sur &lt;strong&gt;&amp;quot;Oui, allons-y&amp;quot;&lt;/strong&gt; pour lancer l'analyse : celle-ci peut durer plusieurs minutes. Une fois fini, le logiciel affichera un compte rendu rapide&lt;/p&gt;
&lt;p&gt;Il ne faut pas prendre ce compte-rendu au pied de la lettre, mais jeter un œil au rapport complet et le comprendre.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="analyser-et-comprendre-les-resultats"&gt;
&lt;h2&gt;Analyser et comprendre les résultats&lt;a class="headerlink" href="#analyser-et-comprendre-les-resultats" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le logiciel peut potentiellement afficher un écran effrayant comme celui-ci :&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/tinycheck_result.png"&gt;
&lt;img alt="Une capture d'écran de TinyCheck avec une alerte de niveau &amp;quot;moyen&amp;quot;, indiquant une potentielle compromission." class="align-center" src="https://rsc.aligot-death.space/images/480/articles/tinycheck_result.png" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p&gt;Celui-ci se contente de checher des &amp;quot;Indicateurs de compromission&amp;quot; (&lt;em&gt;Indicators of compromise&lt;/em&gt;, IoC). Le nom est approprié car cela n'est pas forcément révélateur d'une compromission, seulement d'une éventualité. Généralement les comportements atypiques mais bénins ressortiront comme de niveau &amp;quot;faible&amp;quot; ou &amp;quot;moyen&amp;quot;. &lt;strong&gt;Une alerte de niveau &amp;quot;élevé&amp;quot; est en revanche mauvais signe, car généralement dû à un comportement malveillant bien reconnu.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;En cliquant sur &amp;quot;Lire le rapport complet&amp;quot;, nous pouvons consulter le résultat détaillé :&lt;/p&gt;
&lt;a class="reference external image-reference" href="https://rsc.aligot-death.space/images/480/articles/tinycheck_result_full.png"&gt;
&lt;img alt="Une capture d'écran du TinyCheck rapport de TinyCheck" class="align-center" src="https://rsc.aligot-death.space/images/480/articles/tinycheck_result_full.png" style="width: 80%;" /&gt;
&lt;/a&gt;
&lt;p&gt;Dans cet exemple précis, la première alerte de niveau &amp;quot;moyen&amp;quot; est simplement due à mon &lt;a class="reference external" href="https://nextcloud.com/"&gt;Nextcloud&lt;/a&gt; personnel, et les alertes de niveau &amp;quot;faible&amp;quot; à l'application FaceBook Messenger. D'autres alertes de niveau &amp;quot;faibles&amp;quot; sont apparues dues aux pratiques réseau bancales de l'application Telegram.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="que-faire-en-cas-de-compromission"&gt;
&lt;h2&gt;Que faire en cas de compromission ?&lt;a class="headerlink" href="#que-faire-en-cas-de-compromission" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La marche à suivre en cas de compromission dépend fortement de la situation : dans le cas d'un stalkerware installé dans le cadre d'une relation abusive, il sera difficile d'enlever le logiciel car :&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;beaucoup des logiciels disponibles sur le marché sont capables de se réinstaller : à la manière d'un virus biologique, retirer toute trace pour éviter une re-contamination est très difficile ;&lt;/li&gt;
&lt;li&gt;La suppression du logiciel espion pourrait mettre a puce à l'oreille du compagnon abusif que la personne est accompagnée et pourrait entrainer des &amp;lt;&amp;lt;répercussions&amp;gt;&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le mieux serait de fournir un autre téléphone à la personne, complètement isolé du premier (nouvelle carte SIM, nouveaux comptes mails, etc) pour permettre de maintenir la communication, et d'agir à la source du problème ; ce que Tinycheck n'est pas en mesure de faire, évidemment.&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>About that "Free" in Free Software</title><link href="https://aligot-death.space/txt/anarchy/logiciel-libre-de-quoi-en" rel="alternate"></link><published>2021-01-21T00:04:00+01:00</published><updated>2021-01-21T00:04:00+01:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2021-01-21:/txt/anarchy/logiciel-libre-de-quoi-en</id><summary type="html">&lt;p class="first last"&gt;Is &amp;quot;FLOSS&amp;quot; capitalism-friendly?&lt;/p&gt;
</summary><content type="html">&lt;p class="warning"&gt;This is a translation of a french article. In french the word &amp;quot;Libertaire&amp;quot; translates as &amp;quot;Libertarian&amp;quot;, but should be understood as &amp;quot;left-wing libertarian&amp;quot;.&lt;/p&gt;
&lt;p class="blue"&gt;This article was written following some drama around an event I helped organizing, called &amp;quot;Journées du Logiciel Libre&amp;quot; (literally, &amp;quot;Free Software's days&amp;quot;). There was a &lt;em&gt;tempest in a teacup&lt;/em&gt; regarding the addition of anti-capitalist values in the announcement of this year's event.&lt;/p&gt;
&lt;p&gt;Some time ago, as submissions for the &lt;a class="reference external" href="https://jdll.org"&gt;Journées du Logiciel Libre&lt;/a&gt; opened, a regular of the event thought it would be fun to create a storm in a teacup by saying he won't submit his talk this year because of the inclusion of anticapitalist values in the event. What followed was a pointless fight about what &amp;quot;Free Software&amp;quot; was supposed to mean.&lt;/p&gt;
&lt;p&gt;The thing is, the Free Software world always has been a weird patchwork of different groups, ranging from die-hard anarchists to (more-or-less)left-leaning liberals.&lt;/p&gt;
&lt;p&gt;The Free Software movement is, like any other movement, full of contradictions. But the consensual thesis is that everyone should be able to freely dispose of their devices and data. Not just &lt;em&gt;technically&lt;/em&gt;, but &lt;strong&gt;free from any influence&lt;/strong&gt;, from any actors who might want to abuse one or the other. As a result, the Free Software movement throughout its history stood against GAFAMs, anti-freedom laws, and all the attacks against privacy as a whole. &amp;quot;Free Software&amp;quot; culture has, like any other culture, foundational and structuring myths. &lt;a class="reference external" href="https://archive.org/details/TheInternetsOwnBoyTheStoryOfAaronSwartz"&gt;Aaron Swartz&lt;/a&gt; losing his life for freedom of knowledge, the role of social media in the &lt;a class="reference external" href="https://www.twitterandteargas.org/"&gt;arab spring&lt;/a&gt;, Telecomix &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Internet_censorship_in_Ba%27athist_Syria"&gt;actions&lt;/a&gt; in Syria, international movements against anti-freedom laws like SOPA &amp;amp; PIPA, and of course, Edward Snowden. Free Software is inherently &lt;strong&gt;political&lt;/strong&gt;. If you're a &amp;quot;free software activist&amp;quot; but think it's &amp;quot;apolitical&amp;quot;, you missed something &lt;a class="footnote-reference" href="#footnote-1" id="footnote-reference-1"&gt;[1]&lt;/a&gt;.&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="footnote-1" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-1"&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Or you mean &amp;quot;non partisan&amp;quot;, which is not the same thing as &amp;quot;apolitical&amp;quot;.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Furthermore, Free Software, even if it's not &amp;quot;anarchist&amp;quot; per se, is (left-wing) libertarian. Not liberal, &lt;strong&gt;libertarian&lt;/strong&gt;. It's not about &amp;quot;free market&amp;quot;, and freedom of exploiting others. We are talking about freedom over your digital self and its value, the same way Workers' movements in the 19th and 20th centuries fought for control over their own labor. Much like in environmental movements, the word &amp;quot;capitalism&amp;quot; isn't really used (at least not without a prefix). But the core concept is there, in the background. That restraint, combined with a niche political lingo, created a confusion. Free Software, for some people, only fights &lt;em&gt;surveillance&lt;/em&gt; capitalism, not capitalism itself. See, there's good capitalism, and bad capitalism. Bad capitalism exploits the people, and the good one only exploits their online personas. Just take a look at the infamous &lt;a class="reference external" href="https://www.gnu.org/philosophy/free-sw.html"&gt;four essential freedoms&lt;/a&gt;. It's not just about &amp;quot;freedom to know what's going on inside&amp;quot;, it's about negating mercantilism. Not that it's impossible to make a business around Free Software, simply that this &amp;quot;Freedom&amp;quot; removes any economic value to the software itself. Only services can be monetized.&lt;/p&gt;
&lt;p&gt;So, I'm bitter and confused. People are actively fighting to make Free Software compatible with capitalism. Let's be honest: we live in a capitalist world. We're told every fucking day that to exist is to exist economically. It's not that surprising that people would become advocates for that system. But more than that, we can't really blame projects for trying to make a living through donations, campaigning, and even paid services. You gotta do what you gotta do. But why do you want to twist the (left-wing) libertarian ideals to seduce the Machine? The &lt;em&gt;community&lt;/em&gt; tried for years to explain to the general public the difference between Free Software and its Business School's cousin &lt;a class="reference external" href="https://www.gnu.org/philosophy/open-source-misses-the-point.fr.html"&gt;open-source&lt;/a&gt; Software. If you're so offended by inclusion and anticapitalism, the door is as open as the software.&lt;/p&gt;
&lt;p&gt;Ironically, the people pushing that rethoric paint themselves as Big political theorists. Meanwhile, they claim capitalism is our best bet for freedom, that an anticapitalist stance is a sign of collusion with &lt;em&gt;La France Insoumise&lt;/em&gt; (t/n: a soc-dem party), and finally that capitalism is defined as &amp;quot;when there is money&amp;quot;.&lt;/p&gt;
&lt;p&gt;So, Free Software is anticapitalist. But more than that, we need to make Free Software as hostile as possible to mercantilism (aside from the aformentioned need to fill your plate). History is full of movements and projects which tried to soften their teeth to seduce the general public (= the status quo, more than anything) and ended up leaving their political heart behind, for nothing. Just look at the most capitalist projects roaming around in the Free Software World: cryptocurrencies. At first, the idea might seem interesting: banks and companies are abusing the system, let's get rid of them. What started as an experiment meant to build a decentralized network to exhange money &lt;em&gt;freely&lt;/em&gt; ended up as a centralized mess with big players mining everything and speculation making it useless. Oopsie &lt;a class="footnote-reference" href="#footnote-2" id="footnote-reference-2"&gt;[2]&lt;/a&gt;.&lt;/p&gt;
&lt;table class="docutils footnote" frame="void" id="footnote-2" rules="none"&gt;
&lt;colgroup&gt;&lt;col class="label" /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td class="label"&gt;&lt;a class="fn-backref" href="#footnote-reference-2"&gt;[2]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Notwithstanding the growing anxiety around its &lt;a class="reference external" href="https://cbeci.org/cbeci/comparisons"&gt;electrical consumption&lt;/a&gt;, and its lack of problem it's actually solving.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Free Software is (left-wing) libertarian, not liberal. Free Software is about freedom from influence from big actors on your devices and data. Free Software is not free market.&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>Accessing tags made in Shotwell with Python 3</title><link href="https://aligot-death.space/txt/guides/shotwell-tags-python-en" rel="alternate"></link><published>2020-06-26T23:30:00+02:00</published><updated>2020-07-26T23:30:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2020-06-26:/txt/guides/shotwell-tags-python-en</id><summary type="html">&lt;p class="first last"&gt;A quick and dirty hack to read images' tags made by Shotwell, in python.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;As I was reorganising my &lt;a class="reference external" href="/art"&gt;gallery&lt;/a&gt;, I wanted optimize the classification process. Before that, I was using directories, subdirectories and python black magic to generate a file containing the list of files with categories and tags. I decided to use a proper solution, that is an dedicated software. The plan was to use &lt;a class="reference external" href="https://en.wikipedia.org/wiki/Shotwell_(software)"&gt;Shotwell&lt;/a&gt; to tag the images and then simply parse the tags in the metadata with python to generate the pages. I activated the &lt;em&gt;&amp;quot;Write tags, titles and other metadata to photo files&amp;quot;&lt;/em&gt; setting in Shotwell, and started tagging.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;final snippet at the bottom of the page&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I tried the &lt;a class="reference external" href="https://stackoverflow.com/questions/4764932/in-python-how-do-i-read-the-exif-data-for-an-image"&gt;first snippet&lt;/a&gt; of code I found to access exif data in python...&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;PIL.Image&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;PIL&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'1_000010e.JPG'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;3 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;exif_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;img&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;_getexif&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;5 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;exif_data&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;6 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;296&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;34665&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;220&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;271&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'FUJI PHOTO FILM CO., LTD.'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;272&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'SP-3000'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;305&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'Shotwell 0.30.1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;274&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;306&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'2019:05:17 15:29:52'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;531&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;282&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;72&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;283&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;72&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="mi"&gt;36864&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'0210'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;37121&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\x01\x02\x03\x00&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40960&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'0100'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;36867&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'    :  :     :  :  '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;36868&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'2019:05:16 17:10:49'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40961&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40962&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1703&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40963&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1168&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;40965&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;494&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;41728&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\x03&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;41729&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\x01&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;37500&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'FUJIFILM&lt;/span&gt;&lt;span class="se"&gt;\x0c\x00\x00\x00\x05\x00\x00\x00\x07\x00\x04\x00\x00\x00&lt;/span&gt;&lt;span class="s1"&gt;0130&lt;/span&gt;&lt;span class="se"&gt;\x00\x80\x02\x00\x06\x00\x00\x00&lt;/span&gt;&lt;span class="s1"&gt;N&lt;/span&gt;&lt;span class="se"&gt;\x00\x00\x00\x02\x80\x04\x00\x01\x00\x00\x00\xff\xff\xff\xff&lt;/span&gt;&lt;span class="s1"&gt; &lt;/span&gt;&lt;span class="se"&gt;\x80\x03\x00\x01\x00\x00\x00\x01\x00\x00\x00&lt;/span&gt;&lt;span class="s1"&gt;!&lt;/span&gt;&lt;span class="se"&gt;\x80\x03\x00\x01\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00&lt;/span&gt;&lt;span class="s1"&gt;135_C&lt;/span&gt;&lt;span class="se"&gt;\x00&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;But no tag to be seen. Same thing with the good ol' &amp;quot;file&amp;quot; command:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt; &lt;span class="n"&gt;nemecle&lt;/span&gt;&lt;span class="nd"&gt;&amp;#64;yggdrasil&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;~/&lt;/span&gt;&lt;span class="n"&gt;Pictures&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt; &lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="mi"&gt;1_000010&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JPG&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;1_000010&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;JPG&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;JPEG&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;JFIF&lt;/span&gt; &lt;span class="n"&gt;standard&lt;/span&gt; &lt;span class="mf"&gt;1.01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;resolution&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;DPI&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;density&lt;/span&gt; &lt;span class="mi"&gt;72&lt;/span&gt;&lt;span class="n"&gt;x72&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;segment&lt;/span&gt; &lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Exif&lt;/span&gt; &lt;span class="n"&gt;Standard&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;TIFF&lt;/span&gt; &lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;little&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;endian&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;direntries&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;manufacturer&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;FUJI&lt;/span&gt; &lt;span class="n"&gt;PHOTO&lt;/span&gt; &lt;span class="n"&gt;FILM&lt;/span&gt; &lt;span class="n"&gt;CO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LTD&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;SP&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;orientation&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;upper&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;xresolution&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;168&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;yresolution&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;176&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;resolutionunit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;software&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Shotwell&lt;/span&gt; &lt;span class="mf"&gt;0.30.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;da&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Or even the standard &amp;quot;&lt;a class="reference external" href="https://pypi.org/project/exif/"&gt;exif&lt;/a&gt;&amp;quot; python library:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;exif&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'1_000010e.JPG'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'rb'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;image_file&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;3 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;     &lt;span class="n"&gt;my_image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;image_file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;5 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;my_image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;has_exif&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;6 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;7 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;my_image&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;8 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'_exif_ifd_pointer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'_interoperability_ifd_Pointer'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'_segments'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'color_space'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'components_configuration'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'compression'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'datetime'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'datetime_digitized'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'datetime_original'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'delete'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'delete_all'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'exif_version'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'file_source'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'flashpix_version'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'get'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'get_file'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'get_thumbnail'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'has_exif'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'jpeg_interchange_format'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'jpeg_interchange_format_length'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'make'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'maker_note'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'model'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'orientation'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'pixel_x_dimension'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'pixel_y_dimension'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'resolution_unit'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'scene_type'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'software'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'x_resolution'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'y_and_c_positioning'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'y_resolution'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;After some research, it seems that commonly avaliable exif commands and libraries are unable to read &lt;strong&gt;user-made&lt;/strong&gt; data. Oh well.&lt;/p&gt;
&lt;p&gt;Frustrated but still brave, I dove head first in the raw bytes, a bad habit I picked up while debugging shitty non-standard services. I fired a simple xxd in vim (&amp;quot;:%!xxd&amp;quot; in normal mode) to ease the search.
We can see some metadata at the beginning of the file, and the &amp;quot;JFIF&amp;quot; magic string indicating that the file is a jpeg:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt; &lt;span class="mi"&gt;00000000&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ffd8&lt;/span&gt; &lt;span class="n"&gt;ffe0&lt;/span&gt; &lt;span class="mi"&gt;0010&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;a46&lt;/span&gt; &lt;span class="mi"&gt;4946&lt;/span&gt; &lt;span class="mi"&gt;0001&lt;/span&gt; &lt;span class="mi"&gt;0101&lt;/span&gt; &lt;span class="mi"&gt;0048&lt;/span&gt;  &lt;span class="o"&gt;......&lt;/span&gt;&lt;span class="n"&gt;JFIF&lt;/span&gt;&lt;span class="o"&gt;.....&lt;/span&gt;&lt;span class="n"&gt;H&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00000010&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0048&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="n"&gt;ffe1&lt;/span&gt; &lt;span class="mi"&gt;1790&lt;/span&gt; &lt;span class="mi"&gt;4578&lt;/span&gt; &lt;span class="mi"&gt;6966&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;4949&lt;/span&gt;  &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;H&lt;/span&gt;&lt;span class="o"&gt;......&lt;/span&gt;&lt;span class="n"&gt;Exif&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="n"&gt;II&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00000020&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;a00&lt;/span&gt; &lt;span class="mi"&gt;0800&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;a00&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;f01&lt;/span&gt; &lt;span class="mi"&gt;0200&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;a00&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt;  &lt;span class="o"&gt;*...............&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00000030&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8600&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;1001&lt;/span&gt; &lt;span class="mi"&gt;0200&lt;/span&gt; &lt;span class="mi"&gt;0800&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="n"&gt;a000&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt;  &lt;span class="o"&gt;................&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00000040&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1201&lt;/span&gt; &lt;span class="mi"&gt;0300&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;a01&lt;/span&gt; &lt;span class="mi"&gt;0500&lt;/span&gt;  &lt;span class="o"&gt;................&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00000050&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="n"&gt;a800&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;b01&lt;/span&gt; &lt;span class="mi"&gt;0500&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt;  &lt;span class="o"&gt;................&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00000060&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;b000&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;2801&lt;/span&gt; &lt;span class="mi"&gt;0300&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;0200&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt;  &lt;span class="o"&gt;....&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;...........&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00000070&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3101&lt;/span&gt; &lt;span class="mi"&gt;0200&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="n"&gt;b800&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;3201&lt;/span&gt; &lt;span class="mi"&gt;0200&lt;/span&gt;  &lt;span class="mf"&gt;1.&lt;/span&gt;&lt;span class="o"&gt;.........&lt;/span&gt;&lt;span class="mf"&gt;.2&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 9 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00000080&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1400&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="n"&gt;c800&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;1302&lt;/span&gt; &lt;span class="mi"&gt;0300&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt;  &lt;span class="o"&gt;................&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;10 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00000090&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;6987&lt;/span&gt; &lt;span class="mi"&gt;0400&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="n"&gt;dc00&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt;  &lt;span class="o"&gt;....&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;...........&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;11 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;000000&lt;/span&gt;&lt;span class="n"&gt;a0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;c02&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;4655&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;a49&lt;/span&gt; &lt;span class="mi"&gt;2050&lt;/span&gt; &lt;span class="mi"&gt;484&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;544&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;2046&lt;/span&gt;  &lt;span class="o"&gt;....&lt;/span&gt;&lt;span class="n"&gt;FUJI&lt;/span&gt; &lt;span class="n"&gt;PHOTO&lt;/span&gt; &lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;12 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;000000&lt;/span&gt;&lt;span class="n"&gt;b0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;494&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;d20&lt;/span&gt; &lt;span class="mi"&gt;434&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mf"&gt;2e2&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;204&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;5444&lt;/span&gt; &lt;span class="mf"&gt;2e00&lt;/span&gt; &lt;span class="mi"&gt;5350&lt;/span&gt;  &lt;span class="n"&gt;ILM&lt;/span&gt; &lt;span class="n"&gt;CO&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LTD&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="n"&gt;SP&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;13 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;000000&lt;/span&gt;&lt;span class="n"&gt;c0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;d33&lt;/span&gt; &lt;span class="mi"&gt;3030&lt;/span&gt; &lt;span class="mi"&gt;3000&lt;/span&gt; &lt;span class="mi"&gt;4800&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;4800&lt;/span&gt;  &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;3000.&lt;/span&gt;&lt;span class="n"&gt;H&lt;/span&gt;&lt;span class="o"&gt;.......&lt;/span&gt;&lt;span class="n"&gt;H&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;14 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;000000&lt;/span&gt;&lt;span class="n"&gt;d0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;0100&lt;/span&gt; &lt;span class="mi"&gt;0000&lt;/span&gt; &lt;span class="mi"&gt;5368&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;f74&lt;/span&gt; &lt;span class="mi"&gt;7765&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;c6c&lt;/span&gt; &lt;span class="mi"&gt;2030&lt;/span&gt;  &lt;span class="o"&gt;......&lt;/span&gt;&lt;span class="n"&gt;Shotwell&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;15 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mf"&gt;000000e0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;2e33&lt;/span&gt; &lt;span class="mi"&gt;302&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;3100&lt;/span&gt; &lt;span class="mi"&gt;3230&lt;/span&gt; &lt;span class="mi"&gt;3139&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;a30&lt;/span&gt; &lt;span class="mi"&gt;353&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="mi"&gt;3137&lt;/span&gt;  &lt;span class="mf"&gt;.30.1.2019&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;05&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;17&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Knowing the keywords, I just searched for &amp;quot;home&amp;quot;:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 2 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00001880&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;223&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;203&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;7264&lt;/span&gt; &lt;span class="mi"&gt;663&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="mi"&gt;4465&lt;/span&gt; &lt;span class="mi"&gt;7363&lt;/span&gt; &lt;span class="mi"&gt;7269&lt;/span&gt; &lt;span class="mi"&gt;7074&lt;/span&gt;  &lt;span class="s2"&gt;&amp;quot;&amp;gt; &amp;lt;rdf:Descript&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00001890&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;696&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mf"&gt;6e20&lt;/span&gt; &lt;span class="mi"&gt;7264&lt;/span&gt; &lt;span class="mi"&gt;663&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="mi"&gt;6162&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;f75&lt;/span&gt; &lt;span class="mi"&gt;743&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;2222&lt;/span&gt;  &lt;span class="n"&gt;ion&lt;/span&gt; &lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;about&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;000018&lt;/span&gt;&lt;span class="n"&gt;a0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2078&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;d6c&lt;/span&gt; &lt;span class="mf"&gt;6e73&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;a64&lt;/span&gt; &lt;span class="mi"&gt;633&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;2268&lt;/span&gt; &lt;span class="mi"&gt;7474&lt;/span&gt; &lt;span class="mi"&gt;703&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;   &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;dc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;000018&lt;/span&gt;&lt;span class="n"&gt;b0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f2f&lt;/span&gt; &lt;span class="mi"&gt;7075&lt;/span&gt; &lt;span class="mi"&gt;726&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="mf"&gt;2e6&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;7267&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f64&lt;/span&gt; &lt;span class="mi"&gt;632&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;656&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;  &lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;purl&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;org&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;dc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;el&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;000018&lt;/span&gt;&lt;span class="n"&gt;c0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;656&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;656&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;7473&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f31&lt;/span&gt; &lt;span class="mf"&gt;2e31&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f22&lt;/span&gt; &lt;span class="mi"&gt;2078&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;d6c&lt;/span&gt;  &lt;span class="n"&gt;ements&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;1.1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot; xml&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;000018&lt;/span&gt;&lt;span class="n"&gt;d0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;6e73&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;a78&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;d70&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;d22&lt;/span&gt; &lt;span class="mi"&gt;6874&lt;/span&gt; &lt;span class="mi"&gt;7470&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;a2f&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="n"&gt;f6e&lt;/span&gt;  &lt;span class="n"&gt;ns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://n&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 9 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mf"&gt;000018e0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;732&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;6164&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;f62&lt;/span&gt; &lt;span class="mi"&gt;652&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;636&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;d2f&lt;/span&gt; &lt;span class="mi"&gt;7861&lt;/span&gt; &lt;span class="mi"&gt;702&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;  &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;adobe&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xap&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;10 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;000018&lt;/span&gt;&lt;span class="n"&gt;f0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;312&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;302&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;2220&lt;/span&gt; &lt;span class="mi"&gt;786&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="mi"&gt;703&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="n"&gt;c61&lt;/span&gt; &lt;span class="mi"&gt;6265&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;c3d&lt;/span&gt;  &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot; xmp:Label=&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;11 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00001900&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2270&lt;/span&gt; &lt;span class="mi"&gt;686&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;746&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;6772&lt;/span&gt; &lt;span class="mi"&gt;6170&lt;/span&gt; &lt;span class="mi"&gt;6879&lt;/span&gt; &lt;span class="mi"&gt;223&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;203&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt;  &lt;span class="s2"&gt;&amp;quot;photography&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;12 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00001910&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;6463&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;a73&lt;/span&gt; &lt;span class="mi"&gt;7562&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;a65&lt;/span&gt; &lt;span class="mi"&gt;6374&lt;/span&gt; &lt;span class="mf"&gt;3e20&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;c72&lt;/span&gt; &lt;span class="mi"&gt;6466&lt;/span&gt;  &lt;span class="n"&gt;dc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;13 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00001920&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;a42&lt;/span&gt; &lt;span class="mi"&gt;6167&lt;/span&gt; &lt;span class="mf"&gt;3e20&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;c72&lt;/span&gt; &lt;span class="mi"&gt;6466&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;a6c&lt;/span&gt; &lt;span class="mi"&gt;693&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;616&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;  &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Bag&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;an&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;14 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00001930&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;616&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;f67&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;c2f&lt;/span&gt; &lt;span class="mi"&gt;7264&lt;/span&gt; &lt;span class="mi"&gt;663&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;c69&lt;/span&gt; &lt;span class="mf"&gt;3e20&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;c72&lt;/span&gt;  &lt;span class="n"&gt;alog&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;15 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="mi"&gt;00001940&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;6466&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;a6c&lt;/span&gt; &lt;span class="mi"&gt;693&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="mi"&gt;686&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="n"&gt;d65&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;c2f&lt;/span&gt; &lt;span class="mi"&gt;7264&lt;/span&gt; &lt;span class="mi"&gt;663&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;  &lt;span class="n"&gt;df&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;16 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;17 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Bingo... I guess? I had no idea of what this was. once cleaned up I ended up with:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;ns&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;adobe&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;xap&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="o"&gt;/.&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="n"&gt;xpacket&lt;/span&gt; &lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;...&amp;quot;&lt;/span&gt; &lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;W5M0MpCehiHzreSzNTczkc9d&amp;quot;&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xmpmeta&lt;/span&gt; &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;adobe:ns:meta/&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xmptk&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;XMP Core 4.4.0-Exiv2&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;RDF&lt;/span&gt; &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Description&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;       &lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;about&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;       &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;dc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://purl.org/dc/elements/1.1/&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;       &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://ns.adobe.com/xap/1.0/&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;       &lt;span class="n"&gt;xmp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;photography&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 9 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;dc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;10 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Bag&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;11 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;           &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;analog&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;12 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;           &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;13 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;           &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;photography&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;14 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Bag&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;15 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;       &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;dc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;16 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;17 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;   &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;RDF&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;18 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xmpmeta&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;So, we are working with &amp;quot;RDF&amp;quot; elements, which apparently stands for &amp;quot;Resource Description Framework&amp;quot;. I searched &amp;quot;rdf:li python&amp;quot;, and finally found &lt;a class="reference external" href="https://stackoverflow.com/questions/42892405/extract-keywords-form-images-using-python"&gt;someone with a close enough issue&lt;/a&gt; to be useful but apparently too different to have showed up earlier:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;xml.etree.ElementTree&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nn"&gt;ET&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;PIL&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ExifTags&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;1_000010e.JPG&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;segment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;applist&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="n"&gt;marker&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\x00&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;segment&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;'APP1'&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;marker&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'http://ns.adobe.com/xap/1.0/'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;             &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'&amp;quot;utf-8&amp;quot;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;             &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 9 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;10 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="n"&gt;xpacket&lt;/span&gt; &lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;﻿&amp;quot;&lt;/span&gt; &lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;W5M0MpCehiHzreSzNTczkc9d&amp;quot;&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xmpmeta&lt;/span&gt; &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;adobe:ns:meta/&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xmptk&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;XMP Core 4.4.0-Exiv2&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;RDF&lt;/span&gt; &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Description&lt;/span&gt; &lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;about&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;dc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://purl.org/dc/elements/1.1/&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;xmlns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xmp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;http://ns.adobe.com/xap/1.0/&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;xmp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;photography&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;dc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Bag&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;analog&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;home&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;photography&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Bag&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;dc&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;rdf&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;RDF&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;xmpmeta&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;11 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;12 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;lot&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;whitespaces&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;13 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;14 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="n"&gt;xpacket&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Finally!&lt;/p&gt;
&lt;p&gt;Then things got dirty because I don't actually care about most of the data, only the specific last-level &amp;quot;rdf:li&amp;quot; elements, so a quick and dirty regex did the job:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;findall&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;(?&amp;lt;=&amp;lt;rdf:li&amp;gt;).*?(?=&amp;lt;/rdf:li&amp;gt;)&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'analog'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'home'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'photography'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;But when I ran the script, I quickly realised that it would not work on .png images, because the resulting PIL object didn't have the &amp;quot;applist&amp;quot; attribute that containing the data.
I loaded a jpeg and png:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Archives/IMG_1670.JPG&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="n"&gt;im1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Miscellaneous digital drawings/windmill Mawi.png&amp;quot;&lt;/span&gt; &lt;span class="c1"&gt;#png not working&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;And &lt;a class="reference external" href="https://stackoverflow.com/questions/9058305/getting-attributes-of-a-class"&gt;enumerated the available attributes&lt;/a&gt; to compare:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt; &lt;span class="n"&gt;object_methods&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;method_name&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;method_name&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;                   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;callable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;getattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;method_name&lt;/span&gt;&lt;span class="p"&gt;))]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;3 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="n"&gt;object_methods1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;method_name&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;method_name&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;dir&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;im1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;5 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;                   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;callable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;getattr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;im1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;method_name&lt;/span&gt;&lt;span class="p"&gt;))]&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;And unsurprisingly:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;inspect&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getmembers&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;inspect&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;isroutine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))):&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 2 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="c1"&gt;# &amp;quot;applist&amp;quot; is listed&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;inspect&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;getmembers&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;inspect&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;isroutine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;))):&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 9 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt; &lt;span class="c1"&gt;# &amp;quot;applist&amp;quot; is not listed&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;I cycled through some of the existing attributes ot see their content, and finally:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt;1 &lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="n"&gt;unrelated&lt;/span&gt; &lt;span class="n"&gt;stuff&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;2 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;3 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;           \&lt;span class="n"&gt;n&lt;/span&gt;                           \&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="n"&gt;xpacket&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;w&amp;quot;&lt;/span&gt;&lt;span class="err"&gt;?&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="s1"&gt;', '&lt;/span&gt;&lt;span class="n"&gt;dpi&lt;/span&gt;&lt;span class="s1"&gt;': (72, 72), '&lt;/span&gt;&lt;span class="n"&gt;Comment&lt;/span&gt;&lt;span class="s1"&gt;': '&lt;/span&gt;&lt;span class="n"&gt;Created&lt;/span&gt; &lt;span class="n"&gt;by&lt;/span&gt; &lt;span class="n"&gt;Nemecle&lt;/span&gt;&lt;span class="s1"&gt;'}&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;After merging the two solutions, the final snippet (for jpeg and png, and with no fallback if tags are missing) looks like this:&lt;/p&gt;
&lt;pre class="code python literal-block"&gt;
&lt;span class="ln"&gt; 1 &lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;read_tags&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 2 &lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="sd"&gt;&amp;quot;&amp;quot;&amp;quot;
&lt;/span&gt;&lt;span class="ln"&gt; 3 &lt;/span&gt;&lt;span class="sd"&gt;     read the shotwell tags from the metadata
&lt;/span&gt;&lt;span class="ln"&gt; 4 &lt;/span&gt;&lt;span class="sd"&gt;     (require the &amp;quot;Write tags, titles and other metadata to photo files&amp;quot; option)
&lt;/span&gt;&lt;span class="ln"&gt; 5 &lt;/span&gt;&lt;span class="sd"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 6 &lt;/span&gt;&lt;span class="sd"&gt;     &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 7 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 8 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt; 9 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="n"&gt;tags&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;10 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;11 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;12 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="n"&gt;Image&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;13 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;             &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;PNG&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;14 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;                 &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;info&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;XML:com.adobe.xmp&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;15 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;16 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;             &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;JPEG&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;17 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;                 &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;segment&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;im&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;applist&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;18 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;                     &lt;span class="n"&gt;marker&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;split&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="se"&gt;\x00&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;19 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;                     &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;segment&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;'APP1'&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;marker&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;'http://ns.adobe.com/xap/1.0/'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;20 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;                         &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'&amp;quot;utf-8&amp;quot;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;21 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;22 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Error while reading tags on &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s2"&gt; &amp;quot;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;23 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;24 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;25 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;26 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;27 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="n"&gt;pattern&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;(?&amp;lt;=&amp;lt;dc:subject&amp;gt;).*?(?=&amp;lt;/dc:subject&amp;gt;)&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DOTALL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;28 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;29 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="n"&gt;tag_data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pattern&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;30 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;31 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;32 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Error while extracting tag data on &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;33 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;34 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;35 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;36 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;37 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="n"&gt;pattern&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;compile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;r&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;(?&amp;lt;=&amp;lt;rdf:li&amp;gt;).*?(?=&amp;lt;/rdf:li&amp;gt;)&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;re&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DOTALL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;38 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;39 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="n"&gt;tags&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pattern&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;findall&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tag_data&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;group&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;40 &lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;41 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;     &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="ne"&gt;Exception&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;42 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Error while parsing tags on &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filepath&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="ln"&gt;43 &lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;         &lt;span class="n"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;And &lt;em&gt;voilà&lt;/em&gt;.&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>Here comes a blog (again)</title><link href="https://aligot-death.space/txt/meta/intro-en" rel="alternate"></link><published>2020-05-31T15:20:00+02:00</published><updated>2020-05-31T15:20:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2020-05-31:/txt/meta/intro-en</id><summary type="html">&lt;p class="first last"&gt;Here is a blog (again)&lt;/p&gt;
</summary><content type="html">&lt;p&gt;So, here is a &amp;quot;blog&amp;quot;, again.&lt;/p&gt;
&lt;p&gt;I've maintained some kind of blog some years ago, but I wasn't satisfied with the content format and since then thought more about what I want to put on the internet. So, this is another attempt that should hopefully last longer.&lt;/p&gt;
&lt;p&gt;My original blog was more of a typical &amp;quot;post opinionated articles and forget about them&amp;quot;: but now I want to maintain a website that act more like a wiki, in the sense that I will update them with new informations and new opinions as they come. Hence the &amp;quot;.txt&amp;quot; name rather than&amp;quot; blog&amp;quot;.&lt;/p&gt;
&lt;p&gt;I originally wanted to classify them in a thematic way, but most things I want to talk about have overlapping themes. As such, I decided to organise this &amp;quot;blog&amp;quot; like this:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;Guides&lt;/strong&gt;: exhaustive articles on some topics, usually pretty lengthy;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;notes&lt;/strong&gt;: small snippets on things I learned and want to keep track of and share;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;thoughts&lt;/strong&gt;: more classical blog articles, usually time sensitive, which might also act as a &amp;quot;miscellaneous&amp;quot; category.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tags will be used to classify the themes themselves.&lt;/p&gt;
&lt;p&gt;See you.&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>[Archive] Re: Pourquoi il ne faut surtout pas voter Mélenchon</title><link href="https://aligot-death.space/txt/archives/re-pourquoi-il-ne-faut-surtout-pas-voter-melenchon-fr" rel="alternate"></link><published>2017-01-01T00:00:00+01:00</published><updated>2017-01-01T00:00:00+01:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2017-01-01:/txt/archives/re-pourquoi-il-ne-faut-surtout-pas-voter-melenchon-fr</id><summary type="html">&lt;p class="first last"&gt;(Archive)&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Il y a quelques mois, j'avais fait un &lt;a class="reference external" href="https://twitter.com/Nemecle/status/822475133902352384"&gt;thread&lt;/a&gt; évoquant quelques raisons pour lesquelles il était à mes yeux dangereux de voter pour mélenchon. &lt;a class="reference external" href="https://page42.org/le-media-cest-le-message-comment-mastodon-peut-peut-etre-reussir-la-ou-twitter-a-echoue/"&gt;Twitter oblige&lt;/a&gt;, il se contentait d'énoncer quelques déclaration de ce cher méluche, issues de sources variées (son propre twitter, 20 minutes, l'express, le figaro, Médiapart, etc) afin d'éviter les remarques sur la vacuité des sources ou sur l'éventuelle interprétation qui serait faite par les journalistes. Certains tweets ont été depuis été débunké après discussions avec certain·es (j'admets que faire un meeting par hologramme pour promouvoir l'éducation et la recherche fait en fait sens).
Mais évidemment, cela tenait du listing de citations plus que de l'analyse politique et cela me l'a été reproché : je vais tenter ici d'être plus exhaustif, ou du moins plus précis sur les dangers car il serait difficiles de tout lister. La raison qui m'avait poussée à faire ce thread —et de fait à faire ce texte— et que nombre de personnes de mon entourage désirent voter pour lui, en parlant de lui comme d'un communiste révolutionnaire prêt à torpiller le système. Ce qui est malheureusement loin, mais alors loin d'être le cas, sur tous les plans. Allons-y donc, du plus anodin au plus dangereux.&lt;/p&gt;
&lt;div class="section" id="il-n-est-pas-communiste-encore-moins-revolutionnaire"&gt;
&lt;h2&gt;Il n'est pas communiste, encore moins révolutionnaire&lt;a class="headerlink" href="#il-n-est-pas-communiste-encore-moins-revolutionnaire" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Alors non pas que ce soit un problème en soit (même si je préfère personnellement les moyens de production collectivisés), mais il n'est d'un point de vue pragmatique rien de tout ça. Exit donc la faucille et le marteau, le méluche dans le black-bloc ou au comico. Objectivement parlant, c'est un réformiste social-démocrate écologiste. À noter que si ça me gêne personnellement sur plusieurs points, ce n'est pas &lt;em&gt;en soit&lt;/em&gt; une mauvaise chose ; écolo pas de souci, social-démocrate on en parle plus bas, et réformiste, je vois ça comme le fameux pansement sur une jambe de bois. Mais à chacun·e son bateau. Néanmoins il n'est pas le premier à prétendre faire de l'entrisme, ne sera pas le dernier et pour une bonne raison, le succès plus que relatif de cette tactique (et ce même si l'on parle d'un ancien trotskyste).&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="il-n-est-pas-vraiment-anti-systeme"&gt;
&lt;h2&gt;Il n'est pas vraiment anti-système&lt;a class="headerlink" href="#il-n-est-pas-vraiment-anti-systeme" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pour sûr, il ne cumule pas la centaine d'années (ni les millions détournés) de mandat de Fillon, a fut un temps été professeur et a participé à Mai 68. Néanmoins, il affiche depuis plusieurs dizaines d'années de travail dans le milieu politique, &lt;a class="reference external" href="https://fr.wikipedia.org/wiki/Jean-Luc_M%C3%A9lenchon#D.C3.A9tail_des_mandats_et_fonctions"&gt;plusieurs mandats&lt;/a&gt; dont ministre délégué. Pas de quoi affoler les oies, mais comme symbole de l'anti-sytème on a déjà fait mieux. Qui plus est, à promettre de chambouler le système et à prétendre ne pas faire de promesse en l'air, il présente finalement un discours très similaire aux autres candidats : tous &amp;quot;anti-système&amp;quot; et &amp;quot;honnêtes&amp;quot;.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="l-assemblee-constituante-n-aura-pas-lieu"&gt;
&lt;h2&gt;L'assemblée constituante n'aura pas lieu&lt;a class="headerlink" href="#l-assemblee-constituante-n-aura-pas-lieu" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;On parle plus de spéculation dans ce cas là, mais jusqu'à preuve du contraire personne n'est omniscient : le débat est donc ouvert. Pour ma part, je ne pense pas qu'elle aura lieu. L'une des critiques faites au système &amp;quot;démocratique&amp;quot; tel qu'en place est précisément son inertie : malgré toute la bonne volonté du monde, cette assemblée n'arrivera pas à son terme. Aussi, le discours de mélenchon à son sujet, notamment sur l'exécution même de l'idée, est plus que troublant : il évoque notamment une durée d'existence pouvant atteindre un an, &amp;quot;voir plus&amp;quot;. Ça sent selon mon humble avis le plan foireux à des kilomètres. Enfin.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="si-elle-a-lieu-elle-s-attaque-en-rien-a-la-racine-du-probleme"&gt;
&lt;h2&gt;Si elle a lieu, elle s'attaque en rien à la racine du problème&lt;a class="headerlink" href="#si-elle-a-lieu-elle-s-attaque-en-rien-a-la-racine-du-probleme" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Partons du postulat qu'elle a lieu, et qu'elle arrive à son terme. Elle ne fera que reproduire, à moindre échelle pour commencer, les tares du système qui nous vaut cette parodie &amp;quot;d'État de droit&amp;quot;, ces élections comme cerise sur le gâteau. Les systèmes représentatifs —prétendûment démocratiques— nous ont plus que prouvé leur incapacité et leur danger : Qu'ils soient basés sur le vote ou sur un tirage au sort. Déplacer le problème du pouvoir n'empêche pas celui-ci d'être intrinsèquement dangereux et corruptible.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="il-n-est-pas-anticapitaliste"&gt;
&lt;h2&gt;Il n'est pas anticapitaliste&lt;a class="headerlink" href="#il-n-est-pas-anticapitaliste" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Celle là va probablement choquer militants comme agnostiques. Mais non, mélenchon n'est pas anti-capitaliste. Il parle bien de redistribution des richesses, d'amélioration du niveau de vie global, mais il n'adresse jamais la racine du mal (d'où la qualification plus haut de social démocrate). À vrai dire, il ne le prétend pas lui-même : son discours semble évoquer une vague idée (ｕｎ ｓｐｅｃｔｒｅ) de, mais au final jamais il ne se positionne (ni ne se positionnera) à l'encontre de ce système abusif. Pire encore, sa solution passe de parce même système : l'une des mesures économiques promises, sa relance keynésienne, frôlerait même le consumérisme. Pas de saisie des moyens de production ni de collectivisation à l'horizon donc.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="les-alternatives"&gt;
&lt;h2&gt;Les alternatives&lt;a class="headerlink" href="#les-alternatives" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Je ne ferais pas l'affront de parler &lt;a class="reference external" href="https://blog.nemecl.eu/blanc-bonnet-et-bonnet-abstentionniste/"&gt;d'abstentionnisme ou de vote blanc&lt;/a&gt;, si vous vouliez voter mélenchon il y a de fortes chances que vous teniez absolument à voter pour un·e candidat·e : la meilleure alternative serait alors de voter au choix pour Arthaud ou Poutou, par vote utile. Non pas un vote &amp;quot;utile&amp;quot; dans le sens où cela changerait les choses, mais bien parce que tout·e candidate·e atteignant 5% se voit rembourser ses frais de campagne.&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>[Archive] Blanc bonnet et bonnet abstentionniste</title><link href="https://aligot-death.space/txt/archives/bonnet-abstentionniste-fr" rel="alternate"></link><published>2016-10-04T00:00:00+02:00</published><updated>2016-10-04T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2016-10-04:/txt/archives/bonnet-abstentionniste-fr</id><summary type="html">&lt;p class="first last"&gt;Article issu de mon vieux blog.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Dans sa dernière vidéo (non pas &lt;a class="reference external" href="https://www.youtube.com/watch?v=R1jP4F-uLV8"&gt;celle-ci&lt;/a&gt;, mais &lt;a class="reference external" href="https://www.youtube.com/watch?v=ktrXFCzx814"&gt;celle-là&lt;/a&gt;) traitant de la la manipulation par la langue, l'on peut entendre Usul (en compagnie de Linguisticae) dire :&lt;/p&gt;
&lt;blockquote&gt;
« L'Etat tire sa légitimité du vote »&lt;/blockquote&gt;
&lt;p&gt;Sous ses allures anodines, innocentes voire purement descriptives dans un contexte classique, cette phrase s'avère lourd de sens dans un texte traitant entre autres du &amp;quot;pouvoir&amp;quot;. Plus précisément, cela signifie que le pouvoir se nourrit du vote (y compris blanc), présenté aux citoyen-nes comme leur propre pouvoir de décision sur l'État. S'en suit une évocation de la culpabilisation des &amp;quot;mauvais citoyens&amp;quot; qui s'abstiennent.&lt;/p&gt;
&lt;p&gt;Cette sacralisation du vote est si installée que même dans les milieux militants, pourtant vus comme &amp;quot;alternatifs&amp;quot;, sa remise en cause provoque généralement un débat houleux et surtout très polarisé, à savoir celles et ceux qui défendent le vote et celles et ceux qui le critiquent. Il faut néanmoins évoquer, avant toute précipitation, les motifs de cette remise en cause par certain-es. Beaucoup remettent à vrai dire plus les facteurs en place que le vote lui-même, à savoir les partis et l'écosystème politique les maintenant en place et assurant que ce même système se justifie par lui-même. Pour d'autres, il s'agit surtout de revoir la façon dont ce vote est effectué, notamment en France : de nombreux systèmes existent, certains déjà appliqués dans d'autres pays ; cette manière de penser se heurte néanmoins à une critique assez répandue en statistique mettant en exergue qu'aucun système de vote n'est de toute façon parfait (à voir pour plus de précision, &amp;quot;&lt;a class="reference external" href="https://www.youtube.com/watch?v=vfTJ4vmIsO4"&gt;La statistique expliquée à mon chat&lt;/a&gt;&amp;quot;, citée en fin de vidéo). Enfin, la variante la plus acerbe de ces critiques, remettant en cause le principe même de vote (ne serait-ce à l'échelle d'un état) et proposant diverses alternatives démocratiques ou non selon les courants de pensées, allant du tirage au sort à la monarchie, en passant par le refus pur et simple d'une quelconque organisation gouvernementale ou assimilée.&lt;/p&gt;
&lt;p&gt;L’abstentionniste est donc perçu comme un-e fainéant-e, inintéressé-e par la politique et de manière générale par tous les pendants sociaux de la société. Il est souvent reconnu qu'une minorité agit effectivement ainsi par lassitude du système, mais cela s'accompagne toujours d'une incitation à plutôt s'exprimer au travers du vote blanc.
deux choses viennent donc en travers de cette logique : d'une, l'évidence du &amp;quot;c'est par fainéantise&amp;quot;, valable que si l'on ne considère effectivement la situation qu'au travers d'un vote comme outil démocratique absolu ; j'évoquais plus haut l'auto-justification, on est en plein dedans. Si on ne peut pas non plus éliminer cette possibilité d'un revers de la main, des statistiques claires et surtout récoltées de manière crédible tiennent de l'exercice périlleux tant le concept de &amp;quot;flemme&amp;quot; serait compliqué à définir et à déceler au travers d'un quelconque protocole. Ainsi arrive donc la seconde faiblesse de ce raisonnement : considérer sans base solide que cette flemme est une cause auto-suffisante, et non une conséquence d'un environnement politique toxique en place depuis des dizaines/centaines d'années.&lt;/p&gt;
&lt;p&gt;Le résultat est là : toute critique du &amp;quot;vote&amp;quot; ( du moins encore une fois, tel qu'en place actuellement) est résumée à un refus irresponsable de choisir entre les partis existants, et dont la réponse est inéluctable : &amp;quot;au pire, vote blanc&amp;quot;. Pour reprendre des concepts évoqués dans la vidéo associée à ce billet, il s'agit d'un discours, qui construit une réalité dans laquelle la solution proposée s'impose comme logique et unique à l'auditeur, qu'iel le veuille ou non. Pendant ce temps là, dans le vrai monde de la vérité véritable, chacun a ses raisons de ne pas voter : refus des partis, refus du système, refus du vote, et parfois de manière justifiée ou non, par fainéantise. Cela balaye donc toutes les alternatives possibles, y compris certaines pourtant assez proches du système actuel comme la démocratie directe (qui est elle aussi critiquable, mais pour d'autres raisons). L'abstentionnisme n'est pas un équivalent malhabile et bas-de-plafond au vote blanc : c'est un refus de légitimer le système politique dans son ensemble, et non un simple appel à réformer le paysage politique français.&lt;/p&gt;
</content><category term="txt"></category></entry><entry><title>[Archive] "Just use Tor."</title><link href="https://aligot-death.space/txt/archives/just-use-tor-fr" rel="alternate"></link><published>2016-08-09T00:00:00+02:00</published><updated>2016-08-09T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2016-08-09:/txt/archives/just-use-tor-fr</id><summary type="html">&lt;p class="first last"&gt;Article issu de mon vieux blog.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;Tor est souvent présenté comme LA solution ultime à vos problèmes de gouvernement trop curieux ou de MégaCorp omniscients. Plus précisément, chaque fois qu'un.e néophyte demande des solutions à la surveillance généralisée dans la vie de tous les jours, on entend (trop) souvent en réponse &amp;quot;déjà, installe Tor Browser&amp;quot; en plus des classiques &amp;quot;désactive ton Facebook&amp;quot; et &amp;quot;passe sous Linux&amp;quot;, qui souffrent du même problème de non-mise en contexte. Mais ce n'est pas le propos ici.&lt;/p&gt;
&lt;div class="section" id="une-solution-magique"&gt;
&lt;h2&gt;Une solution magique ?&lt;a class="headerlink" href="#une-solution-magique" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pour commencer, l'aspect technique pur : Tor n'est pas la solution à tous les problèmes. Générer du trafic Tor est tout sauf inoffensif et revient à accrocher un néon &amp;quot;Je fais des trucs pas glop&amp;quot; à sa connexion. Détecter Tor est un non-effort pour un état, et peut selon les besoins être même contre-productif.
Le problème n'est donc pas de proposer Tor : c'est un outil qui reste puissant et qui fait partie de ces outils comme PGP ou Signal qui ont le mérite d'encore pas mal entraver le recul de la vie privée. Non, le problème est cette tendance à conseiller son usage sans en expliquer les tenants et aboutissants et pire encore, sans en expliquer les risques. &amp;quot;Un utilisateur averti en vaut une bonne tripotée d'inconscients.&amp;quot;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="comment-pourquoi"&gt;
&lt;h2&gt;Comment, pourquoi&lt;a class="headerlink" href="#comment-pourquoi" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Tor pose donc avant tout un problème de mise en contexte : seul, il s'avère donc généralement avoir l'effet inverse de ce qui est désiré. Il est donc d'usage d'utiliser en plus de celui-ci un VPN afin de réduire la visibilité de son trafic auprès d'un éventuel intermédiaire, a contrario de certaines solutions qui visent plutôt à se cacher vis-à-vis du point distant (généralement un serveur) sur lequel on se connecte. Attention néanmoins, un VPN n'est pas non plus une solution miracle et ne rend pas totalement transparente une connexion ; une analyse à peine plus minutieuse des paquets ou simplement de l'adresse de grands fournisseurs de VPN permet d'en détecter l'usage. Aussi, parce que l'on fait transiter son trafic par un intermédiaire supplémentaire, il faut en plus faire confiance à celui-ci ou à la législation de son pays.
Tor pose également des risques sécuritaires. Sans être le Far-west que nous vendent les politiciens, il est préférable de mettre au fait les personnes à qui l'on en conseille l'usage. D'une part, éviter au maximum les téléchargements de fichiers binaires (.exe) via Tor. Il est de moins en moins rare de voir des nœuds transitaires compromis tenter de véroler ceux-ci pour peu que la connexion soit mal protégée ; même si Tor Browser se pare de l'addon HTTPS-Everywhere, une connexion HTTPS peut tout aussi bien être mal protégée. Et dans tous les cas, Tor restant un réseau alternatif il ne jouit pas de la même capacité de trafic qu'une connexion classique et il est donc préférable d'éviter les téléchargements trop lourds si possible. À cela s'ajoute que si le derk-oueb n'est pas spécialement plus rempli de trucs illégaux que le &amp;quot;clearnet&amp;quot; ou même le vrai monde de la vie véritable, il rend néanmoins leur accès un peu plus simple ; il faut donc encore une fois sensibiliser les utilisateurs aux &amp;quot;codes&amp;quot; de ces réseaux, afin qu'ils se tiennent à distance de tout ce qui peut faire mention de &amp;quot;hard-candy&amp;quot; (comprenez, du porn pédo), &amp;quot;snuff&amp;quot; ou voire selon les sensibilités des clones de feu la Silk-road.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="faute-de-solution-parfaite"&gt;
&lt;h2&gt;Faute de solution parfaite...&lt;a class="headerlink" href="#faute-de-solution-parfaite" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le concept clef ici est celui du modèle de menace : contre qui se protège-t-on, pour quelles données, et avec quelle marge d'erreur tolérée. Aucune solution n'est parfaite et il faut partir du principe que toute donnée est potentiellement compromise. En avoir conscience est important afin de savoir quels risques nous sommes prêt à courir comparé à l'importance des données mises en jeu. Ne pas adapter son niveau de protection aux besoins, c'est courir le risque de voir des données pourtant peu intéressantes attirer l'attention et finir compromise, alors que l'on cherchait l'effet inverse. Tor Browser s'avère donc utile dans deux cas principaux :&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;quand ce n'est pas possible de s'en passer, si par exemple votre gouvernement bloque tout bonnement l'accès à la ressource désirée et que vous comptez régulièrement y accéder tout en pariant sur l'aspect protectif plus que l'aspect invisibilisation ;&lt;/li&gt;
&lt;li&gt;si vous vous prétendez &amp;quot;&lt;em&gt;crypto-anarchiste&lt;/em&gt;&amp;quot; et que vous vous servez donc de Tor par choix politique et non par besoin, afin d'entraver la surveillance de masse en générant un maximum de bruit. Cela implique en revanche de ne pas tant compter que ça sur ça vie privée, le but étant de se transformer en phare ambulant.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En bref : si vous conseillez Tor à quelqu'un, accompagnez toujours la chose des conseils d'usage sur la vie privée et les bonnes pratiques sur les réseaux.&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry><entry><title>[Archive] Prologue.</title><link href="https://aligot-death.space/txt/archives/prologue-fr" rel="alternate"></link><published>2016-07-10T00:00:00+02:00</published><updated>2016-07-10T00:00:00+02:00</updated><author><name>nemecle</name></author><id>tag:aligot-death.space,2016-07-10:/txt/archives/prologue-fr</id><summary type="html">&lt;p class="first last"&gt;Article issu de mon vieux blog.&lt;/p&gt;
</summary><content type="html">&lt;p&gt;&lt;em&gt;Nous y voilà.&lt;/em&gt;&lt;/p&gt;
&lt;div class="section" id="it-s-happening"&gt;
&lt;h2&gt;It's happening&lt;a class="headerlink" href="#it-s-happening" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Il est beau il est chaud, vous ne l'attendiez pas et pourtant le voilà. Ça fait longtemps que me m'habite l'idée de faire un site, un vrai ; enfin, pas entièrement fait main (pas encore) mais auto-hébergé, auto-géré et auto pleins de trucs cools. Ce site n'aura sûrement pas beaucoup d'audience et pour être honnête je n'en ai pas la prétention : mais il me permettra d'enfin disposer d'un plateforme viable pour les diverses projets et/ou tirades que je me retiens de mettre en ligne faute de solution convaincante. DeviantART ? J'ai donné. Tumblr ? Vachement bien pour rebloguer des trucs marrants et du porn, moins pour exposer dignement des photos/dessins/projets/rants (quoique pour ce dernier). Non : un bon CMS, un accès root pour bidouiller le style et les templates, de quoi faire des vraies pages statiques, et aussi le contrôle sur la façon dont est délivré le contenu, voilà ce qu'il me manquait.
Le site n'est donc pas totalement terminé, reste quelques détails à régler (comme ces maudits liens linkedin et G+), possiblement des bugs et blocages qui remonteront avec le temps, pérenniser l'infra (i.e: passer déplacer toutes les données vers un dossier unique qui sera sauvegardé régulièrement) mais on devrait pouvoir s'en sortir.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="contenu"&gt;
&lt;h2&gt;Contenu&lt;a class="headerlink" href="#contenu" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Dans la mesure où il rassemblera plus ou moins tout ce que je postais jusqu'à présent sur diverses plateformes hétéroclites, le contenu du site devrait être assez pluriel ; il devrait y avoir d'ici peu des pages de galerie afin de poster mes œ̖̼ͬ̅̀͆̿ͅų͎̿̑ͧ͗ͥv̟̭̖̂̈͗ͪ͝ȓ̶̲̥͆͛̔͑͌̇e͎͔̺̝͑ͧ̿͗ͩ̊s̡̊ͯͩ̅ , des tutoriels diverses (deux trois sur GIMP entres autres, histoire de redorer le blason de ce soft qui est capable de plus qu'on ne le croit), et probablement beaucoup, beaucoup de rants (j'aime ça râler, ne nous mentons pas). J'ignore encore comment gérer l'aspect bilingue du truc mais ça on verra après.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="point-technique"&gt;
&lt;h2&gt;Point technique&lt;a class="headerlink" href="#point-technique" title="Permalink to this headline"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Rien de fou mais précisons tout de même : Un Raspberry Pi avec Raspbian, nginx en reverse-proxy, et Ghost dans un container docker. Ghost m'a tapé dans l'oeil après avoir essayé plusieurs CMS : clean, simple, du markdown, une interface d'admin potable et quoi qu'on en dise de la flexiblité ; même si avec un peu d'huile de coude, j'espère un jour faire un site viable from scratch, possiblement en Django histoire d'avoir une interface d'admin potable et de quoi pousser des articles et pages sans avoir à se connecter en SSH/pousser un fichier Markdown/re-build le site. N'est-ce pas Jekyll.&lt;/p&gt;
&lt;p&gt;Allez, des bisous.&lt;/p&gt;
&lt;/div&gt;
</content><category term="txt"></category></entry></feed>