<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Zed's place (en)</title><link>https://blog.ztec.fr/en/</link><description>Recent content on Zed's place</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://blog.ztec.fr/en/index.xml" rel="self" type="application/rss+xml"/><item><title>New Natives</title><link>https://blog.ztec.fr/en/2026/03/07/loot/hallowed-are-the-ori/</link><pubDate>Sat, 07 Mar 2026 12:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2026/03/07/loot/hallowed-are-the-ori/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_826175aa1e373237.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ed1fdcf1b1df1e0e.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_826175aa1e373237.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Maybe I should just rename this section Loot, period. I only posted once in February.
But then again, February is a very short month compared to the others… (yeah, good excuse)</p>
<p>This time, lots of stuff in my history, I hope you have some time ahead of you. Otherwise, good fodder
for your &ldquo;read it later&rdquo;.</p>
<h2 id="quick-service-announcement-first">Quick service announcement first</h2>
<blockquote>
<p>The articles on Godzilla 2 and 3 are in progress, but I&rsquo;m struggling with clip extraction. Especially with subtitles.
I haven&rsquo;t found, with <a href="https://www.shotcut.org/">Shotcut</a>, a solution to simply extract parts of a video while keeping
subtitles synchronized. Until I figure that out, no article 😞 so I&rsquo;m falling a bit behind.</p>
<p>I&rsquo;m open to ideas and alternative solutions, free/open-source ones. (no Adobe or the like) It shouldn&rsquo;t be too complicated
to do either, since I&rsquo;ll have to do it for almost every movie.
Ideally, the subtitles of the extracted clips should not be burned into the video but kept as separate files.
If you have suggestions, <a href="https://www.ztec.fr/en/social/#contact">contact me</a>.</p>
</blockquote>
<h2 id="society">Society</h2>
<p><em>Le code a changé</em>, 3 episodes about potentially catastrophic legislative changes.</p>
<ul>
<li><a href="https://www.radiofrance.fr/franceinter/podcasts/le-code-a-change/omnibus-1-7036685">Omnibus : la directive européenne inquiétante 1/3</a> (Podcast) (fr)</li>
<li><a href="https://www.radiofrance.fr/franceinter/podcasts/le-code-a-change/omnibus-2-1367650">L&rsquo;Amérique, colon digital 2/3</a> (Podcast) (fr)</li>
<li><a href="https://www.radiofrance.fr/franceinter/podcasts/le-code-a-change/omnibus-3-4975946">Histoire d&rsquo;un lanceur d&rsquo;alerte 3/3</a> (Podcast) (fr)</li>
</ul>
<p>Nothing new under the sun regarding the digital vassalization of Europe, but good reminders and connections with the past.
I really like the comparison between the ToS we accept without reading, and European colonizers upon their arrival in the Americas who had
indigenous people read and accept long, impossible-to-read texts.</p>
<p>Concretely, Omnibus aims to &ldquo;simplify&rdquo; regulations that are clearly not being enforced. Honestly, saying that the GDPR is complicated
is truly an asshole take. It&rsquo;s one of the simplest and shortest pieces of regulation out there. No, you have to be an asshole to
try to overcomplicate the thing in order to bypass it. Because if you&rsquo;re not an asshole towards your customers or your visitors/users, then
the GDPR isn&rsquo;t hard, and you don&rsquo;t need cookie pop-ups or anything like that. And when, in the podcast, he keeps saying the GDPR has flaws, honestly
he&rsquo;s only talking about these asshole moves, not real flaws. Disappointing that he repeats it so many times for free. It&rsquo;s not the GDPR that imposes banners, that forces dark-patterns
and organizes the deception of visitors/customers. It&rsquo;s the companies, for the sake of surveillance capitalism. They participate in it, like collaborators!</p>
<p>On top of that, the &ldquo;simplifications&rdquo; they want to make won&rsquo;t help our companies at all. It&rsquo;s only for the American tech giants, to leave
more room for workarounds, and add even more legislative instability.</p>
<ul>
<li><a href="https://next.ink/227599/sondage-de-dpo-a-lappui-noyb-affirme-que-la-simplification-rgpd-est-a-cote-de-la-plaque/">Sondage de DPO à l&rsquo;appui, noyb affirme que la simplification RGPD est à côté de la plaque</a> (fr)</li>
</ul>
<p>Speaking of surveillance capitalism and fascism, I learn that Microsoft is being a jerk again (oh surprise), and that lots of games
are getting striked on Steam, probably unjustly too. Personally I&rsquo;m opposed to the concept of intellectual property protection (a topic for another day), so it
makes me even angrier that anyone would prevent other people from creating under the pretense that it&rsquo;s &ldquo;too&rdquo; close to what they own (and didn&rsquo;t even create)!
In short, Microsoft is pulling a Nintendo, as usual.</p>
<ul>
<li><a href="https://www.techdirt.com/2026/02/12/microsofts-ai-powered-copyright-bots-fucked-up-and-got-an-innocent-game-delisted-from-steam/">Microsoft&rsquo;s AI-Powered Copyright Bots Fucked Up And Got An Innocent Game Delisted From Steam</a></li>
</ul>
<h3 id="internet">Internet</h3>
<ul>
<li><a href="https://www.youtube.com/watch?v=fq2KSX5AhTI">Doit-on confisquer les smartphones des vieux ? avec Audrey Randriamandrato</a> (YouTube) (fr)</li>
<li><a href="https://danslesalgorithmes.net/2025/12/02/verification-dage-1-4-vers-un-internet-de-moins-en-moins-sur/">Vérification d&rsquo;âge (1/4) : vers un internet de moins en moins sûr</a> (fr)</li>
<li><a href="https://danslesalgorithmes.net/2025/12/04/verification-dage-2-4-de-limpunite-des-geants-a-la-criminalisation-des-usagers/">Vérification d&rsquo;âge (2/4) : de l&rsquo;impunité des géants à la criminalisation des usagers</a> (fr)</li>
<li><a href="https://danslesalgorithmes.net/2026/01/14/verification-dage-3-4-la-panique-morale-en-roue-libre/">Vérification d&rsquo;âge (3/4) : la panique morale en roue libre</a> (fr)</li>
<li><a href="https://usbeketrica.com/fr/article/faut-il-interdire-les-reseaux-sociaux-aux-jeunes-1">Faut-il interdire les réseaux sociaux aux jeunes ?</a> (Article + Book) (fr)</li>
</ul>
<p>After reading and listening to all of that, I think you&rsquo;ll have a good idea of what&rsquo;s coming and what&rsquo;s problematic. The book I mentioned is very interesting and
is filled with real-world examples and cases to back up the arguments. It brings nuance, even on the side of &ldquo;pro censorship&rdquo; folks, which makes it easier to grasp the topic with nuance.</p>
<p>With agent orange in power, the true face of the USA is more visible than ever. Not that they were nice political partners in the past, but
at least nobody can deny anymore what is clearly visible where before it was filed under conspiracy theories. And that despite the multiple
revelations with proof that these conspiracy theories were indeed true!</p>
<p>There are the wars, the real ones some would say, that kill with bombs and bullets. There is also the digital war, which also causes harm, sometimes even deaths. Without bombs, without bullets.
But worse, this one ensures US control over all our lives, Europeans but also everywhere in the world. This war started with the advent of the internet, so it&rsquo;s nothing new.
Many people have been warning, educating, and successfully predicting the interference and abuses enabled by our legislation and our mandatory American infrastructure.</p>
<p>AND NOBODY GIVES A DAMN!!! Réveillez-vous !!! (wake up!!!)</p>
<h3 id="queer--anti-racism">Queer &amp; Anti-racism</h3>
<p>Change of tone, for a refreshing novelty. A queer show on the media outlet &ldquo;Histoires Crépues&rdquo;. Queer content connected to anti-racism, feels good.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=8q5t9on_U_8">L&rsquo;amour entre femmes est-il vraiment plus simple ? - Kwir I DI</a> (YouTube) (fr)</li>
</ul>
<p>In the gay community, on the male side since I know it better, it&rsquo;s a real nightmare when it comes to racism and all sorts of problematic behaviors. You&rsquo;d think fags
would be more inclined to understand the principles of domination and discrimination, being victims themselves; but no, nothing. It&rsquo;s even the complete opposite and it&rsquo;s exhausting
in the long run. It reminds me of a very good episode of the podcast <em>&ldquo;Les couilles sur la table&rdquo;</em> if you want to learn more about this topic. I can confirm almost everything that&rsquo;s said in it,
having either seen or lived it. Even though I&rsquo;m far from having a full bingo card, I&rsquo;ve checked enough boxes to be convinced of the truthfulness of all of it, and how widespread it all is.</p>
<ul>
<li><a href="https://www.binge.audio/podcast/les-couilles-sur-la-table/grindr-ou-la-culture-du-plan-cul-1-2">Grindr ou la culture du plan cul | 1/2</a> (Podcast) (fr)</li>
<li><a href="https://www.binge.audio/podcast/les-couilles-sur-la-table/grindr-ou-la-culture-du-plan-cul-2-2">Grindr ou la culture du plan cul | 2/2</a> (Podcast) (fr)</li>
</ul>
<p>Coming back to the show Kwir I DI, it feels good and I hope to see more episodes in the future.
I don&rsquo;t know of any with non-white men, I&rsquo;d like that too I think. Especially if it&rsquo;s just as chill.
Because the shows I know of are all straight and very white unfortunately.</p>
<p>To continue on the anti-racist theme, I recommend this video, especially to your friend who keeps telling you that anti-white racism is a problem.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=ekTPDxiLP18">Le racisme Anti-Blanc selon Naïma Moutchou</a> (YouTube) (fr)</li>
</ul>
<p>And I warmly recommend these two videos, still on the topic of racism:</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=sjFofHJpRrI">L&rsquo;histoire du racisme - Partie 1</a> (YouTube) (fr)</li>
<li><a href="https://www.youtube.com/watch?v=P0IZFCt5rXw">L&rsquo;histoire du Racisme - Partie 2</a> (YouTube) (fr)</li>
</ul>
<p>You&rsquo;ll then clearly understand the difference between racism and xenophobia; why capitalism is racist by nature (or almost),
and that a world without racism did indeed exist before.</p>
<h3 id="android">Android</h3>
<p>I&rsquo;m relaying the open letter to keep Android open:</p>
<ul>
<li><a href="https://keepandroidopen.org/open-letter/">Keep Android Open</a></li>
</ul>
<p>A less open, or not open at all Android means even more US control over Europeans!</p>
<h3 id="gafam">GAFAM</h3>
<p>I haven&rsquo;t used WhatsApp in a while. Not that I was thrilled to use it before, it was imposed on me. Some people
still try to reach me on it, and complain that I don&rsquo;t reply, or that I&rsquo;m no longer reachable. Too bad. If
you want to reach me, send an SMS, an EMAIL, or call me. All of that works perfectly fine and is available to EVERYONE.</p>
<p>If you wish, I use other communication networks, but those tend to shrink more and more
because they&rsquo;re all problematic in one way or another. The next one likely to go on my end is Discord.</p>
<p>On this topic, I&rsquo;d like to share this article:</p>
<ul>
<li><a href="https://tutox.fr/2026/02/27/whatsapp-chez-les-militants-coup-de-gueule/">WhatsApp chez les militants? coup de gueule !</a> (fr)</li>
</ul>
<p>It approaches it from another angle, one that is important to understand and keep in mind.</p>
<p>On a related note, here&rsquo;s a good article about the manipulation carried out by our dear GAFAM on ourselves:</p>
<ul>
<li><a href="https://grisebouille.net/attention-a-leconomie-de-lattention/">Attention à l&rsquo;économie de l&rsquo;attention</a> (fr)</li>
</ul>
<h2 id="science">Science</h2>
<ul>
<li><a href="https://scienceinhand.com/your-brain-is-the-secret-designer-of-the-universe-and-heres-the-mind-blowing-way-your-consciousness-shapes-reality-2/">Your Brain Is the Secret Designer of the Universe and Here&rsquo;s the Mind-Blowing Way Your Consciousness Shapes Reality</a></li>
</ul>
<p>I&rsquo;m not yet sure where to place this site on the scale of relevance or legitimacy. For now I rather trust it, like I would a magazine like Epsilon. So decent, but not to be taken at face value.
Disclaimer over, I find that this research, if it turns out to be confirmed, gives an interesting perspective on what our consciousness is, and connects well to the debates
around AI and specifically AGI. Artificial General Intelligence, the ultimate boss of AI.</p>
<p>I recommend reading the article, and I won&rsquo;t share more of my opinion on the topic, as I&rsquo;m far from having it well formed (my opinion).</p>
<p>You hear a lot about it, often negatively because it&rsquo;s used by scamfluencers to become beauty standards, but it&rsquo;s probably
one of the most important recent medical scientific revolutions. On top of that I&rsquo;m very happy to now know how it works.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=9t5m33ccUYA">The Uncomfortable Truth About Ozempic</a> (YouTube)</li>
</ul>
<h2 id="architecture">Architecture</h2>
<p>I had shared the first one with you, here&rsquo;s the second in the series. So it&rsquo;s also likely that I&rsquo;ll share the third one when it&rsquo;s available 😛.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=mDz_GfI3Q5A">SOLARPUNK: la récupération d&rsquo;une utopie écologique</a> (YouTube) (fr)</li>
</ul>
<p>I&rsquo;ve personally always associated &ldquo;SOLARPUNK&rdquo; with something positive. An optimistic vision, one we could possibly strive towards. Because it&rsquo;s often beautiful
and makes you want to live there. Well, even though I wouldn&rsquo;t want to live there myself, I also really like brutalist and cyberpunk aesthetics; so appeal is probably not a reliable metric.
And that&rsquo;s clearly what this video confirms. I wasn&rsquo;t ready to see solarpunk being so close to fascism and techno-bros. Yet it was all already right before my eyes, but
I was probably too blinded by the genuine appeal of the solarpunk idea.</p>
<h2 id="trains">Trains</h2>
<p>Fellow rail enthusiasts, a super interesting video about one of the most unique metro networks. A little treat to watch, to once again
realize just how good the Chinese are at planning.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=gPAT33eqH4s">Ce qu&rsquo;on ne vous a jamais montré sur ce réseau de métro ! (Les Secrets du Métro de Chongqing)</a> (fr)</li>
</ul>
<h2 id="ai">AI</h2>
<p>Yeah, there isn&rsquo;t a week without some scary novelty/reflection/analysis about AI. The bubble is still here, it&rsquo;s wobbling a bit but
with the consequences of agent orange, hard to see it bursting anytime soon.</p>
<ul>
<li><a href="https://pivot-to-ai.com/2026/01/29/the-job-losses-are-real-but-the-ai-excuse-is-fake/">The job losses are real — but the AI excuse is fake</a></li>
</ul>
<p>This first article is a bit of a reminder that AI doesn&rsquo;t necessarily (understatement?) create new behaviors. Capitalism does just fine on its own.
AI is just the trendy excuse to try to mask reality. Good article that reminds us of all that.</p>
<ul>
<li><a href="https://www.ivanturkovic.com/2026/01/22/history-software-simplification-cobol-ai-hype/">The Eternal Promise: A History of Attempts to Eliminate Programmers</a></li>
</ul>
<p>In the vein of &ldquo;AI isn&rsquo;t revolutionizing anything&rdquo;, a good reminder of the facts about our history in software development, before the name even existed.
It&rsquo;s both reassuring and scary. Because despite everything, the countless articles promising the elimination of the developer role are omnipresent and weigh on morale. This one counterbalances a bit.
However, once again capitalism is killing us even more.
I like the optimistic side of the analysis. Each step leads to more and better despite everything, without
erasing what exists or the past, consolidating it further instead.</p>
<ul>
<li><a href="https://julien.danjou.info/blog/open-source-after-the-extraction/">Open Source After the Extraction</a></li>
<li><a href="https://julien.danjou.info/blog/github-is-thinking-about-killing-pull-requests/">GitHub Is Thinking About Killing Pull Requests </a></li>
</ul>
<p>The harmful consequences are very much here and visible. The revolution is causing harm, to people and to projects. Open source collaboration, as we know it,
may be living its last moments. Either we manage to counterbalance the effects of AI on the commons, or we&rsquo;ll have to find
a new way to create these commons while coexisting with the consequences of AI. For now the reactions are more about protection and closing ranks.
Examples abound. The closing of contributions, and of certain <a href="https://daniel.haxx.se/blog/2026/01/26/the-end-of-the-curl-bug-bounty/">bug bounties</a> are good ones.
Some try to manage differently, like <a href="https://www.phoronix.com/news/GNOME-GitHub-GitLab-Redirect">Gnome redirecting almost all its git traffic to GitHub to benefit from free hosting</a>. (without leaving its own forge)
But how long will these &ldquo;free&rdquo; solutions remain viable (assuming they even are right now)?</p>
<ul>
<li><a href="https://theshamblog.com/an-ai-agent-published-a-hit-piece-on-me/">An AI Agent Published a Hit Piece on Me</a></li>
</ul>
<p>And to top it all off, terminator AIs are creeping in. And basically the only answer we get to why? is an Oops, sorry. That wasn&rsquo;t my intention!
It would be good to revisit the basics then. Here are a few videos that are NOT recent on the topic:</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=tcdVC4e6EV4">Deadly Truth of General AI? - Computerphile</a> (YouTube)</li>
<li><a href="https://www.youtube.com/watch?v=4l7Is6vOAOA">General AI Won&rsquo;t Want You To Fix its Code - Computerphile</a> (YouTube)</li>
<li><a href="https://www.youtube.com/watch?v=3TYT1QfdfsM">AI &ldquo;Stop Button&rdquo; Problem - Computerphile</a> (YouTube)</li>
</ul>
<p>The <a href="https://www.youtube.com/watch?v=tlS5Y2vm02c&amp;list=PLzH6n4zXuckquVnQ0KlMDxyT5YE-sA8Ps&amp;index=1">full playlist</a></p>
<p>And when AI isn&rsquo;t doing harm online, its infrastructure takes care of it in the real world. There&rsquo;s a topic that seems to fly under
the radar. The question of noise pollution, and specifically infrasound and its effects on health.
This video explores the subject, and the rigor as well as the scientific references make the problem credible.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=_bP80DEAbuo">Datacenters Behaving Like Acoustic Weapons</a> (YouTube)</li>
</ul>
<p>This challenges my enthusiasm for datacenters built in urban areas. Which is a good idea on paper,
especially to use the heat produced for heating and hot water. Reducing heat losses by
putting them to use. But has the question of noise pollution, even inaudible, been taken into account?</p>
<p>To sum up, here are the concerns I know of regarding datacenters:</p>
<ul>
<li>Energy consumption is becoming a problem (because of AI)</li>
<li>Water consumption is sometimes a concern (a disgrace, cf one of my previous Loots)</li>
<li>Infrasound production is potentially a concern that turns them into an AoE (Area of Effect)</li>
</ul>
<p>Worth keeping tabs on, if I find more info on this.</p>
<p>At this rate, you&rsquo;ll end up thinking I&rsquo;m against AI and that it&rsquo;s absolute evil. A bit of balance with this positive
testimony on the use of LLMs and what they make possible. To take a step back on the topic.</p>
<ul>
<li><a href="https://www.madebymikal.com/ancient-code-mental-health-and-ai-tooling/">Ancient code, mental health, and AI tooling</a></li>
</ul>
<p>And that&rsquo;s a wrap! Lots of Loots this &ldquo;week&rdquo; &#x1f609;&#x1f609;.
<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item><item><title>GOGO PENGUIN at Salle Pleyel</title><link>https://blog.ztec.fr/en/2026/02/03/concert/gogo-penguin-at-salle-pleyel/</link><pubDate>Tue, 03 Feb 2026 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2026/02/03/concert/gogo-penguin-at-salle-pleyel/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_faf3a89e6481b606.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_a389cfdfc072a0a8.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_faf3a89e6481b606.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Pretty cool concert. GOGO PENGUIN as you&rsquo;d expect. The venue&rsquo;s quality was really a huge plus. The music quality brought out by top-notch sound, as always over there.</p>
<p>
 
 
 <a href="/en/artists/gogo-penguin/">GoGo Penguin</a>:</p>
<ul>
<li>


<a href="/en/artists/chris-illingworth/">Chris Illingworth</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/nick-blacka/">Nick Blacka</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/jon-scott/">Jon Scott</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/joe-reiser/">Joe Reiser</a> - 


<a href="/en/instruments/sound/">sound</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2026/02/03/concert/gogo-penguin-a-la-salle-pleyel/cover_hu_a96175575b38cbab.webp 1x, /2026/02/03/concert/gogo-penguin-a-la-salle-pleyel/cover_hu_9d1b6b4a3a916418.webp 1.50x" />
        

        
        
            <source type="image/jpeg" srcset="/2026/02/03/concert/gogo-penguin-a-la-salle-pleyel/cover_hu_ddae443c80adb929.jpg 1x, /2026/02/03/concert/gogo-penguin-a-la-salle-pleyel/cover_hu_9f27bc69814c952e.jpg 1.50x" />
        

        
        
        <img
            src="/2026/02/03/concert/gogo-penguin-a-la-salle-pleyel/cover_hu_ddae443c80adb929.jpg"
             alt="GoGo Penguin" 
             title="GoGo Penguin" 
        />

        
            <div class="credit">© Jon Shard / Nicky Rybka</div>
        
    </picture>


<h4 id="opening-act-hahahugoshortcode724s10hbhb">Opening act: 


<a href="/en/artists/daudi-matsiko/">Daudi Matsiko</a></h4>
<ul>
<li>


<a href="/en/artists/daudi-matsiko/">Daudi Matsiko</a> - 


<a href="/en/instruments/guitar/">Guitar</a>, 


<a href="/en/instruments/voice/">voice</a></li>
</ul>
]]></description></item><item><title>FOSDEM 2026 with a hint of Kubernetes, AI, fatherhood and Chinese propaganda</title><link>https://blog.ztec.fr/en/2026/02/02/loot/fosdem-2026/</link><pubDate>Mon, 02 Feb 2026 10:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2026/02/02/loot/fosdem-2026/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_6a3ebd5c0f713894.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ef800e608d63fdf5.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_6a3ebd5c0f713894.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="society">Society</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=4OLzR7UtX9g">Y a-t-il un instinct paternel? (fr)</a> (Youtube | Podcast)</li>
</ul>
<p>I&rsquo;ve personally already read and listened a bit on the topic, but this time I find the
many scientific references making the argument more solid and put many preconceptions back in their place.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=WDwmud4RRgU">Pourquoi on vous ment autant sur le Japon (et pourquoi vous y croyez) (fr)</a> (Youtube | Podcast)</li>
</ul>
<p>Related to the loot about China, a video explaining why our media say nonsense about Japan, and
probably by extension about all Asian countries.</p>
<h2 id="china">China</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=0jrKwNyEyB4">Le Soleil Rouge réveille l&rsquo;Occident (fr)</a> (Youtube)</li>
</ul>
<p>A short video that puts prejudices back in their place, again. A must-watch.</p>
<h2 id="ai">AI</h2>
<ul>
<li><a href="https://velvetshark.com/ai-company-logos-that-look-like-buttholes">Why do AI company logos look like buttholes? • VelvetShark</a></li>
</ul>
<p>Fun and serious at the same time. Nothing to add 😁</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2026/02/02/loot/fosdem-2026/queer-as-folk-michael-novotny.gif"
            target="_blank"
    >
        <img
                src="/2026/02/02/loot/fosdem-2026/queer-as-folk-michael-novotny.gif"
                 alt="Queer as Folks quote: BUTT PLUG, BUTT PLUG, BUTT PLUG, BUTT" 
                 title="Queer as Folks quote: BUTT PLUG, BUTT PLUG, BUTT PLUG, BUTT" 
        />
    </a>
     <figcaption>Queer as Folks quote: BUTT PLUG, BUTT PLUG, BUTT PLUG, BUTT</figcaption> 
</figure>
<h2 id="usa-fascism-and-renewable-energy">USA, Fascism, and renewable energy</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=KtQ9nt2ZeGM">You are being misled about renewable energy technology.</a> (Youtube)</li>
</ul>
<p>As usual, Technology Connections makes a very interesting video, and even though the topic isn&rsquo;t as quirky as those two
2-hour videos about how dishwashers work, it&rsquo;s very relevant and well handled here. I really like how he puts orders of magnitude
back into perspective to show the stupid things we do as a society.</p>





















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-right">
        
        
            <source type="image/webp" srcset="/2026/02/02/loot/fosdem-2026/tc_angry_hu_6a36243660906556.webp 1x, /2026/02/02/loot/fosdem-2026/tc_angry_hu_77a4c8e459808f39.webp 2x, /2026/02/02/loot/fosdem-2026/tc_angry_hu_e493d9e4fb222c2c.webp 3x, /2026/02/02/loot/fosdem-2026/tc_angry_hu_e1a4b6f0bfcaff9f.webp 4x, /2026/02/02/loot/fosdem-2026/tc_angry_hu_59a031e5ce0381b.webp 5.53x" />
        

        
        
            <source type="image/jpeg" srcset="/2026/02/02/loot/fosdem-2026/tc_angry_hu_5ab04b6d86880743.jpg 1x, /2026/02/02/loot/fosdem-2026/tc_angry_hu_b7ce344292901d30.jpg 2x, /2026/02/02/loot/fosdem-2026/tc_angry_hu_36ccd2f2b7794448.jpg 3x, /2026/02/02/loot/fosdem-2026/tc_angry_hu_c9822a349908c0c6.jpg 4x, /2026/02/02/loot/fosdem-2026/tc_angry_hu_5bf0df7bd0e34569.jpg 5.53x" />
        

        
        
        <img
            src="/2026/02/02/loot/fosdem-2026/tc_angry_hu_5ab04b6d86880743.jpg"
             alt="Technology Connections pointing angrily" 
             title="Technology Connections pointing angrily" 
        />

        
    </picture>


<p>But I&rsquo;m sharing this video here not for its main topic, but for its more unusual part about the issues the USA is facing
with the consequences of the fascism in place. He steps out of his &ldquo;duty of neutrality&rdquo; I&rsquo;d say. Not that he has one, but it&rsquo;s like a
trait shared by many content creators to especially not talk politics. Even though they do anyway without realizing it.
No, here he takes his responsibilities, takes a risk (facing the harassment he will probably endure), and says things clearly. Clearly enough
to give precise voting instructions, without hiding the &ldquo;imperfections&rdquo; of such choice. With everything happening in the USA right now,
it&rsquo;s nice to see this kind of content. It&rsquo;s a reminder that people are opposing what&rsquo;s happening,
as BLAST also reminded us in their video <a href="https://www.youtube.com/watch?v=PtiqmybJb5c">FACE À L&rsquo;EXTRÊME DROITE, LA RÉSISTANCE S&rsquo;ORGANISE (fr)</a>.</p>
<p>I won&rsquo;t elaborate further on the subject, but I hope to see more creators take these positions publicly, and I wish all the courage
in the world to Technology Connections (yeah I don&rsquo;t know the guy&rsquo;s name), to withstand the attacks I&rsquo;m certain he will face.</p>
<div class="clear"></div>
<h2 id="tech">Tech</h2>
<h3 id="security">Security</h3>
<ul>
<li><a href="https://www.jwz.org/blog/2025/12/eargapping/">Eargapping</a></li>
</ul>
<p>I didn&rsquo;t think Bluetooth security issues were that serious.</p>
<h3 id="kubernetes">Kubernetes</h3>
<ul>
<li><a href="https://mcorbin.fr/posts/2025-12-29-kubernetes-scale/">Le premier intérêt de Kubernetes n&rsquo;est pas le scaling (fr)</a></li>
</ul>
<p>Just a little reminder that goes hand in hand with <a href="https://www.macchaffee.com/blog/2024/you-have-built-a-kubernetes">Dear friend, you have built a Kubernetes</a>.</p>
<h3 id="fosdem">FOSDEM</h3>





















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-left">
        
        
            <source type="image/webp" srcset="/2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_2b13cee1fa3551c.webp 1x, /2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_cb2f5883cf3d2a28.webp 2x, /2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_37b8708a5720b4e3.webp 3x, /2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_aa76169092460511.webp 4x, /2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_161c2b66efee75cc.webp 25.00x" />
        

        
        
            <source type="image/jpeg" srcset="/2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_e2756161260ce759.jpg 1x, /2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_a00897daf6c67c21.jpg 2x, /2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_51533e1b1e3d7b7e.jpg 3x, /2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_1007dfea118ed4e6.jpg 4x, /2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_74b9c59446a0d077.jpg 25.00x" />
        

        
        
        <img
            src="/2026/02/02/loot/fosdem-2026/FOSDEM_logo_hu_e2756161260ce759.jpg"
             alt="FOSDEM logo" 
             title="FOSDEM logo" 
        />

        
    </picture>


<p>This weekend I was in Brussels for <a href="https://fosdem.org">FOSDEM</a>. I go every year since 2019. (online in 2021 and 2022 due to the pandemic).
This year, the <a href="https://fosdem.org/2026/schedule/event/SFKNTZ-welcome_to_fosdem_2026/">opening keynote</a> was particularly emotional,
with the reminder that FOSDEM is a political event, and that the state of the world isn&rsquo;t very encouraging right now.
I recommend the replay to get a sense of the atmosphere at that moment.</p>
<p>A few talks I recommend watching (as soon as the replays are available):</p>
<div class="clear"></div>
<ul>
<li><a href="https://fosdem.org/2026/schedule/event/HTJK33-evolving_git_for_the_next_decade/">Evolving Git for the next decade</a></li>
</ul>
<p>Git is 20 years old, but is far from finished. A great talk about the upcoming planned evolutions,
and for me the discovery of Jujutsu which serves as inspiration for new ways to use Git. I need
to look into it in detail.</p>
<ul>
<li><a href="https://fosdem.org/2026/schedule/event/DCAVDC-how_to_make_package_managers_scream/">How to Make Package Managers Scream</a></li>
</ul>
<p>Another talk I strongly recommend along with its 2018 prequel which is in the same vein. Very funny!
The audience was very participative and dynamic. A pleasure to have attended.</p>
<ul>
<li><a href="https://fosdem.org/2026/schedule/event/T9HSYY-the-state-of-go/">The state of Go</a></li>
</ul>
<p>Every year, the Golang room is a must for me, and with the &ldquo;state of go&rdquo; presentation a pleasure
to watch. Short, simple, funny, and informative. Worth watching to stay up to date with language evolutions.
Even the previous years are informative, and watching them in order lets you see the language evolve.</p>
<ul>
<li><a href="https://fosdem.org/2026/schedule/event/PUKMWN-how_to_do_a_podcast_with_free_software/">How to do a Podcast with Free Software?</a></li>
</ul>
<p>A very good presentation of the technical and less technical basics of making a podcast. Having been myself in
the position of making a podcast, as a host and for sound recording, I find it fair and informative. However
you&rsquo;ll need to watch and read other more technical resources for all sound production questions.
In any case, it&rsquo;s a good starting point.</p>
<ul>
<li><a href="https://fosdem.org/2026/schedule/event/YJSSDQ-podlibre-rethinking-audio-editing-for-podcasting/">Podlibre: Podcast Audio Editing for the AI Age</a></li>
</ul>
<p>A presentation of a new &ldquo;audio&rdquo; editing tool aimed at podcast creators. I&rsquo;m super curious to test
and play with it because the promise is really interesting and could finally allow us to skip a whole long and tedious process, or
expensive proprietary equipment. The project is in its very early stages, so nothing really tangible to play with right now.</p>
<ul>
<li><a href="https://fosdem.org/2026/schedule/event/R98AQQ-cra_foss_compliance/">CRA Integration – How FOSS compliance measures support CRA obligations, especially regarding documentation, security updates, and traceability.</a></li>
<li><a href="https://fosdem.org/2026/schedule/event/EERURR-implementing_the_cyber_resilience_act_-_engaging_with_open_source/">Implementing the Cyber Resilience Act - engaging with open source</a></li>
<li><a href="https://fosdem.org/2026/schedule/event/XWSW3R-the_geopolitics_of_open_source_software/">The Geopolitics of Code: From Digital Sovereignty to Global Fragmentation</a></li>
</ul>
<p>I was rather in rest mode, and I listened with half an ear. So I don&rsquo;t necessarily recommend watching the replays, however I found it interesting
to see that the Janson room (the largest) was well filled. For all three talks. Questions about European regulation are attracting crowds and I&rsquo;m the first
to be surprised. It turns out that digital sovereignty was quite a selling point this year at FOSDEM because many talks in many rooms mentioned it, when they
weren&rsquo;t talking exclusively about this topic. I suppose regulatory questions too, consequently. We went far from the small rooms barely a quarter full that talked about GDPR a few years ago.</p>
<ul>
<li><a href="https://fosdem.org/2026/schedule/event/FEHLHY-hacking_the_last_z80_computer_ever_made/">Hacking the last Z80 computer ever made</a></li>
</ul>
<p>A rather short and cool presentation with old and fun hardware to use and hack.</p>
<p>And that&rsquo;s it, I left after that. I didn&rsquo;t share everything I saw, only what seemed interesting or quality enough to be appreciated, even as a replay.</p>
<p>On another topic, it seems I&rsquo;ve broken all my Masto audience records this year with a Toot. No idea why, but it&rsquo;s funny.</p>
<p><a href="https://mamot.fr/deck/@ztec/115990259401164027">https://mamot.fr/deck/@ztec/115990259401164027</a></p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2026/02/02/loot/fosdem-2026/pouet_hu_f4e5077327f510e4.webp"
            target="_blank"
    >
        <img
                src="/2026/02/02/loot/fosdem-2026/pouet_hu_69ebeca31a5f5107.webp"
                 alt="Screenshot of the toot on Mastodon" 
                 title="Toot on Mastodon" 
        />
    </a>
     <figcaption>Toot on Mastodon</figcaption> 
</figure>

</div>
<p>The cool photos I took during the weekend:</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqhimuvrb58h7">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_13666327147922320164_hu_58f363cdfb65905f.webp 1x,
                                    /tile_500_9596915524630249555_hu_da362ac69520cb65.webp 2x,
                                    /tile_1080_18049445611199266421_hu_ba39e6e555b67431.webp 4x
                                 ">
                                    <img src="/tile_224_13666327147922320164_hu_58f363cdfb65905f.webp" alt="Desk with multiple electronic devices such as computer, batteries, and gameboy"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tsbfpc10y1hjn">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_14850636153489897712_hu_c5fc1c0767116f27.webp 1x,
                                    /tile_500_9929729828367706882_hu_a6f2e7ce150023ce.webp 2x,
                                    /tile_1080_15529195233587576612_hu_8ba92eb813807591.webp 4x
                                 ">
                                    <img src="/tile_224_14850636153489897712_hu_c5fc1c0767116f27.webp" alt="Someone waiting at the station"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqho3mr2jti98">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_9913963322787037583_hu_dbd01dee25081663.webp 1x,
                                    /tile_500_6824586810609261785_hu_752cfd9cb7083173.webp 2x,
                                    /tile_1080_17353469146981244869_hu_e530e42f8a10ea9f.webp 4x
                                 ">
                                    <img src="/tile_224_9913963322787037583_hu_dbd01dee25081663.webp" alt="A waffle truck near ULB during FOSDEM."/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqhqh8hr4ifre">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_737841028690780152_hu_2242458d4b7d9ce5.webp 1x,
                                    /tile_500_8133800950523708886_hu_1f4c4e0d7bcbad3f.webp 2x,
                                    /tile_1080_10244194808006458163_hu_fe835efd962305a9.webp 4x
                                 ">
                                    <img src="/tile_224_737841028690780152_hu_2242458d4b7d9ce5.webp" alt="A Yellow light pole to call in case of emergency (SOS)"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqhsspg2dexx7">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_18130122968529729024_hu_a03ee5bdf523822d.webp 1x,
                                    /tile_500_1847920129662812171_hu_fb8dff75298e028b.webp 2x,
                                    /tile_1080_10969457332988020992_hu_c75b653ce5dfe97e.webp 4x
                                 ">
                                    <img src="/tile_224_18130122968529729024_hu_a03ee5bdf523822d.webp" alt="Someone napping in a cold, cloudy and rainy environment. "/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqhw7wu8t5g65">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_4523868038934013665_hu_929f55bfdfe75939.webp 1x,
                                    /tile_500_14719919452876790409_hu_7fd98c9e56a76da1.webp 2x,
                                    /tile_1080_3368404333383978550_hu_d27672b01c273a51.webp 4x
                                 ">
                                    <img src="/tile_224_4523868038934013665_hu_929f55bfdfe75939.webp" alt="The high entrance of the Janson room at FOSDEM/ULB"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqhy3f8rmafo4">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_17240015323403183637_hu_c545cfb078353950.webp 1x,
                                    /tile_500_10991209761144049546_hu_dc86d6c1dfe893e4.webp 2x,
                                    /tile_1080_10273147413034741370_hu_c35649c9a18138c6.webp 4x
                                 ">
                                    <img src="/tile_224_17240015323403183637_hu_c545cfb078353950.webp" alt="The Janson room filling up at FOSDEM"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqhi6dduvl92x">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_16843910595242974218_hu_763b5771c899562e.webp 1x,
                                    /tile_500_14386034451878398145_hu_3b70fe030dd7f467.webp 2x,
                                    /tile_1080_7047050346678309894_hu_7c951e0f5710bc6a.webp 4x
                                 ">
                                    <img src="/tile_224_16843910595242974218_hu_763b5771c899562e.webp" alt="RDGP stickers from FOSDEM"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqi28yhrchm9n">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_4341119504370499930_hu_f14df5c0424e18bb.webp 1x,
                                    /tile_500_18439448293101756353_hu_6aa869a805fcf7ab.webp 2x,
                                    /tile_1080_4339140420435272955_hu_7d26c4c6ab264653.webp 4x
                                 ">
                                    <img src="/tile_224_4341119504370499930_hu_f14df5c0424e18bb.webp" alt="A wizard in the VLC theme. Will he helm you install it ? "/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqi3wo0mqoi4a">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_3335938813568300168_hu_56d19abd18762c5a.webp 1x,
                                    /tile_500_1621145255781884212_hu_b1d915c6ca32a540.webp 2x,
                                    /tile_1080_18425621639818994395_hu_3e7c5aad67921e13.webp 4x
                                 ">
                                    <img src="/tile_224_3335938813568300168_hu_56d19abd18762c5a.webp" alt="A VLC themes wizard with a cone head!"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqi3gr3uffd26">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_11542159353401121120_hu_24e743de47b02339.webp 1x,
                                    /tile_500_14365501327365389504_hu_9f16e39e351965c.webp 2x,
                                    /tile_1080_12450489503341595432_hu_e4265a0b2a6380d0.webp 4x
                                 ">
                                    <img src="/tile_224_11542159353401121120_hu_24e743de47b02339.webp" alt="Close up on all the Bling Bling of the VLC wizard."/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tsbgem9k9l13b">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_7358920927250960264_hu_96a6ddca64f2d1a1.webp 1x,
                                    /tile_500_15946723814791883690_hu_247f804c48f6d2a1.webp 2x,
                                    /tile_1080_14839698398600743628_hu_138b744908116a6a.webp 4x
                                 ">
                                    <img src="/tile_224_7358920927250960264_hu_96a6ddca64f2d1a1.webp" alt="Someone with a VLC cone hatat ULB"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tsbggqeqw67so">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_14479114092596581662_hu_9a6a4749935502e.webp 1x,
                                    /tile_500_452211136411154_hu_7aff6785a65eecfb.webp 2x,
                                    /tile_1080_7598262749827665390_hu_862544af089f1d76.webp 4x
                                 ">
                                    <img src="/tile_224_14479114092596581662_hu_9a6a4749935502e.webp" alt="Someone with a VLC cone hat, but it is not standing up right."/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tsbgaogoljrbo">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_8856684784028934488_hu_226d70bfa4fa1930.webp 1x,
                                    /tile_500_16669094066493960430_hu_99015892f39c2bb0.webp 2x,
                                    /tile_1080_18030159393790899902_hu_ecec0800ecc37b12.webp 4x
                                 ">
                                    <img src="/tile_224_8856684784028934488_hu_226d70bfa4fa1930.webp" alt="A Palestinian flag hanging of a window on a small sky scraper in from of the ULB Brussel. "/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tsbi4ddfg1t28">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_13048132544970890765_hu_ae3bd855719444be.webp 1x,
                                    /tile_500_588358608834923681_hu_28e066496ebd3a04.webp 2x,
                                    /tile_1080_17382093607173145801_hu_e384a550831839c0.webp 4x
                                 ">
                                    <img src="/tile_224_13048132544970890765_hu_ae3bd855719444be.webp" alt="PostgreSQL mascot with &#34;pat d&#39;elph&#34; "/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqi9293rh2ozr">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_13199546527463857144_hu_e182891e2849ade7.webp 1x,
                                    /tile_500_7041113943954327396_hu_6eb9fbc4266a91dd.webp 2x,
                                    /tile_1080_10500454939342188637_hu_e2020052227d95d.webp 4x
                                 ">
                                    <img src="/tile_224_13199546527463857144_hu_e182891e2849ade7.webp" alt="Someone with a VLC cone on their head queuing for coffee. "/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqi88y9xwxzle">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_17649788660880965320_hu_4ef8babe3da773f5.webp 1x,
                                    /tile_500_9079170087809191141_hu_d7871c829d2f5e0d.webp 2x,
                                    /tile_1080_1855348148705424813_hu_a5056964ed1081a7.webp 4x
                                 ">
                                    <img src="/tile_224_17649788660880965320_hu_4ef8babe3da773f5.webp" alt="A can of FOSDEM beer brew. Purple with a Tux on it."/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqhjjsjqf0bpb">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_4992790152171940041_hu_947314aaed20aad7.webp 1x,
                                    /tile_500_18007340606543985868_hu_d527d901ff597e52.webp 2x,
                                    /tile_1080_3564050219061843903_hu_d9ddf914a789f728.webp 4x
                                 ">
                                    <img src="/tile_224_4992790152171940041_hu_947314aaed20aad7.webp" alt="Metro sign entrance at Brussels"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqhv26kct45fe">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_15348825777180815785_hu_204294440496b639.webp 1x,
                                    /tile_500_17275064463584367978_hu_300d459004dad02d.webp 2x,
                                    /tile_1080_5690791302121381512_hu_f41e7df4ab44a476.webp 4x
                                 ">
                                    <img src="/tile_224_15348825777180815785_hu_204294440496b639.webp" alt="Swag from the Golang room. A sticker, a Puzzle, and a 3d printed figurine. All of a Golang Gopher. "/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqhlhok998iy3">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_13881725918504594132_hu_ae844f6a37ff4481.webp 1x,
                                    /tile_500_5266612653251436039_hu_fdbc4fab1cb6ecb4.webp 2x,
                                    /tile_1080_7955463891190525668_hu_560e30d4af958c4e.webp 4x
                                 ">
                                    <img src="/tile_224_13881725918504594132_hu_ae844f6a37ff4481.webp" alt="2026 3d gopher from tinny-go. He is fatty and cute this year."/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9tqi3pb8ejjoe5">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_16116240020487275630_hu_a1ac799fdb331cbc.webp 1x,
                                    /tile_500_2380669437061630701_hu_d0f20ad96cd00cc6.webp 2x,
                                    /tile_1080_198172332297993207_hu_a836aa8968d21d5c.webp 4x
                                 ">
                                    <img src="/tile_224_16116240020487275630_hu_a1ac799fdb331cbc.webp" alt="Presentation of the State of GO 2026, with many Gophers plushies on the desk up front."/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt9st44se6js0gdt">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_11002916537345505990_hu_7b1850dc5923f957.webp 1x,
                                    /tile_500_187521729310068245_hu_72d2777ecfc2efff.webp 2x,
                                    /tile_1080_6477782392279981713_hu_700ac2c546c58a99.webp 4x
                                 ">
                                    <img src="/tile_224_11002916537345505990_hu_7b1850dc5923f957.webp" alt="Bridge with RER station beneath"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
        
    


</div>
<p>Looking forward to the next FOSDEM, in 2027.</p>
]]></description></item><item><title>AI, Ecology, and not so secure satellites</title><link>https://blog.ztec.fr/en/2026/01/20/loot/ai-arcologies-and-not-so-secure-satellites/</link><pubDate>Tue, 20 Jan 2026 13:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2026/01/20/loot/ai-arcologies-and-not-so-secure-satellites/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_e1a87494824aa33e.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_5c742ad6c8a5f037.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_e1a87494824aa33e.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>This week I&rsquo;m sending you to YouTube almost exclusively. Sit down, and chill watching those videos that are pretty good. Then read the Ploum article at the end. Or read it first.
One way or another it&rsquo;s all enshittified anyway.</p>
<h2 id="security">Security</h2>
<p>When a whole continent can read your sexts or the credit card number you used to order Uber Eats 2 minutes ago (I&rsquo;m almost not clickbait) :-p</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=fM5w7bFNvWI">39C3 - Don&rsquo;t look up: There are sensitive internal links in the clear on GEO satellites</a> (YouTube)</li>
</ul>
<p>Really interesting conference on satellite communication. I&rsquo;m shocked by the lack of encryption on so many transmissions, more so knowing that they are blasted all over entire continents.
As one of the two presenters says, it makes you rethink your own personal threat model when you know your SMS may be read by everyone in the country with a few bucks worth of equipment.</p>
<h2 id="architecture--ecology">Architecture &amp; Ecology</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=3laSbTm54_g">ARCOLOGIES: ces villes utopiques qui devaient sauver la planète (fr)</a></li>
</ul>
<p>I wasn&rsquo;t ready for this video. On one hand it is really nice to watch, very poetic, on an esoteric theme. On the other hand it is addressed with a lot of seriousness and analysis.
I really like that he starts by stating that urban sprawl is a problem environment-wise. Arcology comes as a ready-made solution, old as a grandma&rsquo;s remedy. It is NOT!</p>
<p>Anyway, I write down the word, and put it in my box of concepts and terms to use in dystopian stories.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=5AjT1mC8_m8">Garder sa voiture thermique, bon pour le climat… vraiment ? (fr)</a> (YouTube)</li>
</ul>
<p>Still on the environment theme. The question raised seems obvious to me. The answer anyway. The video clearly shattered my preconceived ideas on the subject.
Like many, I think it is better to use an object as long as possible to minimize its environmental impact. However there are exceptions apparently, like cars.
Broadly, any equipment that produces a non-negligible amount of pollution when used is concerned. Even if the question, if seriously asked, would have made me doubt myself,
I don&rsquo;t think I would have done the work seriously enough to reach such a solid conclusion.
Watch this video if you have a gas car, or if you&rsquo;re hesitating to change cars.</p>
<h2 id="ai">AI</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=4xq6bVbS-Pw">La Fabrique à Idiots (fr)</a> (YouTube)</li>
</ul>
<p>I share this even if you&rsquo;ve probably already seen it. If you&rsquo;re in France anyway. However, this is the first I&rsquo;ve seen that addresses the topic in as serious and well-referenced a way as this.
No bias toward or against AI in their current form interferes with the video content. That&rsquo;s nice.
Micode&rsquo;s team seems to do a really good job nowadays. Sometimes it is a bit sensationalist, but never for nothing. It gets better and better. Congrats.</p>
<h2 id="transport">Transport</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=bdV5hbRg1Bs">Chantier Sensible, l&rsquo;histoire invisible de la passerelle de Massy - Un film de Karine Dana (fr)</a> (YouTube)</li>
</ul>
<p>A short video, without any narration, without any frills. Simple, and enjoyable to watch, to take the time. I would love to see more like this on &ldquo;ordinary&rdquo; projects like this.
A chill moment to appreciate.</p>
<h2 id="social">Social</h2>
<ul>
<li><a href="https://ploum.net/2026-01-06-merdification-et-souverainete.html">L’urgence de la souveraineté numérique pour échapper à la merdification (fr)</a></li>
</ul>
<p>After all those YouTube links, you must read this piece by Ploum.</p>
]]></description></item><item><title>The "Happy New Year" loot</title><link>https://blog.ztec.fr/en/2026/01/08/loot/happy_new_year/</link><pubDate>Thu, 08 Jan 2026 09:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2026/01/08/loot/happy_new_year/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_97f3209f69b269ec.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4a2dc4e87c7eff24.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_97f3209f69b269ec.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Happy New Year 2026 folks!</p>
<p>I&rsquo;m not sure I&rsquo;ll still be able to do it next year given how the world is already going in 2026; And we&rsquo;re only the 8th…
With the USA doubling down on efforts to be one of the worst assholes (euphemism) in the world, it&rsquo;s not looking good.</p>
<h2 id="society">Society</h2>
<ul>
<li><a href="https://www.youtube.com/watch?app=desktop&amp;v=JFeCT7aiunE">Chili : asséché par les data centers | ARTE Reportage (2025)</a> (fr)</li>
</ul>
<p>I&rsquo;m stunned that people thought it was relevant and okay to build datacenters that &ldquo;consume&rdquo; water to operate. Like, we&rsquo;ve known how to
do cooling without &ldquo;just&rdquo; evaporating water, in closed circuits, for ages. That&rsquo;s actually what we do almost everywhere I think. We even have datacenters
without AC that don&rsquo;t consume water. I&rsquo;m really angry by the lack of empathy from people making these kinds of decisions.
American companies on foreign soil (for them), so it&rsquo;s not surprising either&hellip;</p>
<ul>
<li><a href="https://www.libreavous.org/264-logiciels-libres-en-bibliotheque-bam-biodiversite-autour-de-moi-chronique">Logiciels libres en bibliothèque - BAM : Biodiversité Autour de Moi - Chronique de Gee</a> (podcast) (fr)</li>
</ul>
<p>(I&rsquo;m sharing the episode but especially Gee&rsquo;s segment in it). Another good take on the question of artistic originality and copyright. Added to the topic bucket ;-)</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=Zko-Pcf8tts">CETTE RESSOURCE REND FOU LE MONDE !</a> (YouTube) (fr)</li>
</ul>
<p>Funny to list it here now, having watched it before the USA did the USA thing again. But well, it remains relevant.</p>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing">Wikipedia:Signs of AI writing</a></li>
</ul>
<p>An attempt to detect LLM-generated writing. Since it&rsquo;s Wikipedia it seems serious, but I&rsquo;m not certain that anything of this kind will hold up very long against the evolution of LLMs.
Unlike automatic solutions, this is more intended for human educations. A bit like the recommendations to look for inconsistencies in AI videos. But that only works as long as LLMs
are imperfect (which is far from being an eternal guarantee), and doing it humanly will often be less effective than doing it automatically. Yet we know that automatic tools are not up to the task on that front.
and will surly never be.</p>
<p>In short, a page to follow, as it&rsquo;s an interesting community response nonetheless.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=3C8rBgnETEU">Comment Votre Identité Peut Nous Faire Perdre Une Élection</a> (fr)</li>
</ul>
<p>Well, I won&rsquo;t recommend you listen to or watch BadMulch in general; to use his words, he&rsquo;s often disastrous (désastreux en french). But his series from which this episode is taken is good. I really like that he tries to
create words (in the sense of making them enter common vocabulary) for the phenomena he describes. It&rsquo;s accessible, quite well done (hats off for the motion design and 3D). I highly recommend
the previous episodes as well.</p>
<h2 id="tech">Tech</h2>
<ul>
<li><a href="https://anniemueller.com/posts/how-i-a-non-developer-read-the-tutorial-you-a-developer-wrote-for-me-a-beginner">How I, a non-developer, read the tutorial you, a developer, wrote for me, a beginner</a></li>
</ul>
<p>Funny to read. The question that nags me: &ldquo;if we find the right words, does it even make sense?&rdquo;</p>
<ul>
<li>
<p><a href="https://www.jwz.org/blog/2025/12/today-in-google-broke-email-2/">Today in &ldquo;Google broke email&rdquo;</a></p>
</li>
<li>
<p><a href="https://ploum.net/2026-01-05-unteaching_github.html">How Github monopoly is destroying the open source ecosystem</a></p>
</li>
</ul>
<p>Get off Github. Please. Alternative forges haven&rsquo;t been lacking for at least 5-8 years. And self-hosting your code has become trivial, even on a raspberry-pi at home. As usual with this kind of injunction,
making yourself available elsewhere doesn&rsquo;t necessarily mean you have to be accessible ONLY elsewhere. Our code can be on Github AND elsewhere. Videos can be on YouTube AND elsewhere. etc&hellip;</p>
<h2 id="art">Art</h2>

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
     
         
     
 
     
     
         
     
 
     
     
         
     
 
     
     
         
     
 
 
 
 
 
     
 
     
 
     
 
     
 
 
     
     
 
 
 
     <picture class="inner-cover type-right">
         
         
             <source type="image/webp" srcset="/2026/01/08/loot/bonne_annee/cover_hu_141ed73a92ff0a6b.webp 1x, /2026/01/08/loot/bonne_annee/cover_hu_c3b4d109f814c513.webp 2x, /2026/01/08/loot/bonne_annee/cover_hu_a5b580f3c697d929.webp 3x, /2026/01/08/loot/bonne_annee/cover_hu_f177ee04fdcae688.webp 4x, /2026/01/08/loot/bonne_annee/cover_hu_d356ef0ddad96772.webp 5.33x" />
         
 
         
         
             <source type="image/jpeg" srcset="/2026/01/08/loot/bonne_annee/cover_hu_c3c0ff4f5a287577.jpg 1x, /2026/01/08/loot/bonne_annee/cover_hu_88ab24071de3b71.jpg 2x, /2026/01/08/loot/bonne_annee/cover_hu_f47cafc32ea85308.jpg 3x, /2026/01/08/loot/bonne_annee/cover_hu_9dfdadb84a3015e6.jpg 4x, /2026/01/08/loot/bonne_annee/cover_hu_e62c14de0508fbea.jpg 5.33x" />
         
 
         
         
         <img
             src="/2026/01/08/loot/bonne_annee/cover_hu_c3c0ff4f5a287577.jpg"
              alt="The Living Tombstone - &#34;Everything Is Fine (Remix)&#34;" 
              title="The Living Tombstone - &#34;Everything Is Fine (Remix)&#34;" 
         />
 
         
     </picture>
 

<ul>
<li><a href="https://www.youtube.com/watch?app=desktop&amp;v=JxgqPk1RCCU">The Living Tombstone - &ldquo;Everything Is Fine (Remix)&rdquo;</a></li>
</ul>
<p>I think it&rsquo;s cool, and quite &ldquo;fitting&rdquo; at the start of this year.</p>
<div class="clear"></div>
<ul>
<li><a href="https://mijofr.github.io/st-panorama/">Trekorama</a></li>
</ul>
<p>Explore StarTrek ships as if you were there. At least that&rsquo;s what a 2000s real estate agent who&rsquo;s never experienced VR would say. But it&rsquo;s cool anyway.</p>
]]></description></item><item><title>Loot: I was busy edition</title><link>https://blog.ztec.fr/en/2025/12/30/loot/busy_edition/</link><pubDate>Tue, 30 Dec 2025 09:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/12/30/loot/busy_edition/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_22be07bb94302b44.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_49b12bca4191ddc.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_22be07bb94302b44.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>You noticed it because you follow me carefully given the numerous (zero) messages received (still zero) concerning the absence
of loot of the week last week; (you can finally breathe if you read aloud) but there was no loot of the week last week 😁. <br>
It was Christmas so… well, I have a good excuse this time. Even if my family&rsquo;s christmas was postponed for the first time in 42 years (yeah I&rsquo;m 42 years old, since 42 years&hellip;), I was busy.</p>
<p>If you follow me carefully (I know you do), you also know that I wrote 2×4k words about Godzilla this weekend too. With real monster excerpts inside! Go read/watch right after this article: 


<a href="/en/godzilla/1954-godzilla/">ゴジラ Godzilla (1954)</a></p>
<p>Anyway, tabs ready, go!</p>
<h2 id="society">Society</h2>
<ul>
<li><a href="https://www.eff.org/deeplinks/2025/12/why-isnt-online-age-verification-just-showing-your-id-person">Why Isn&rsquo;t Online Age Verification Just Like Showing Your ID In Person?</a></li>
</ul>
<p>A good article that explain well some of the problems posed by identity and age verification online.</p>
<ul>
<li><a href="https://ploum.net/2025-12-15-communication-entertainment.html">How We Lost Communication to Entertainment</a></li>
</ul>
<p>Also go read the article by the same author that he cites at the beginning to understand what he&rsquo;s talking about. <br>
I just hope that enough people will continue to use free, reliable and accessible communication solutions.
I don&rsquo;t use XMPP for example because I wouldn&rsquo;t have anyone to talk to on it today. I communicate almost exclusively with proprietary services like Telegram, Discord, Signal.</p>
<p>Something that deeply shocked and annoyed me recently: I wasn&rsquo;t responding on Whatsapp anymore (I&rsquo;m no longer reachable there), and at no point did the person on the other end imagine sending an SMS.
SMS wasn&rsquo;t even part of their mental model of communication with a smartphone. Worse, when they finally sent an SMS (after calling me, and I reminded them of the existence of this &ldquo;archaic&rdquo; system),
it arrived a good 12-13h later. The fact that their provider (Free I think) delivers SMS with 12h delay doesn&rsquo;t seem to worry them more than that. For me it&rsquo;s grounds for non-delivery of service that I pay for, and I would have changed
providers right away. SMS is usually very reliable and fast. I use it every day and I have perfectly reliable and fast conversations.
And I&rsquo;m not even talking about SMS with <a href="https://en.wikipedia.org/wiki/Rich_Communication_Services">RCS</a>, but good old <a href="https://en.wikipedia.org/wiki/SMS">SMS</a> GSM.</p>
<p>Anyway, this article also made me think of another one I read recently: <a href="https://%E3%83%9E%E3%83%AA%E3%82%A6%E3%82%B9.com/domains-as-internet-handles/">Domains as &ldquo;Internet Handles&rdquo;</a>. The author demonstrates why
it is however useful and desirable to have several identities, one per platform. Whether they are free or proprietary. The need not to mix everything, or at least not to impose it.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=9B1DtoFL5rU">Miraculous : les dessins animés deviennent-ils trop politiques ?</a> (YouTube, French)</li>
</ul>
<p>I didn&rsquo;t know about it, but now I almost want to watch 😁. (nah, let&rsquo;s not push it)</p>
<ul>
<li><a href="https://www.arteradio.com/son/tout-ce-que-lon-ne-veut-surtout-pas-savoir-sur-le-racisme">Tout ce que l&rsquo;on ne veut surtout pas savoir sur le racisme</a> (Podcast, French)</li>
</ul>
<p>Nothing to say, go listen.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=5DoT2NQTZD4">Vous n&rsquo;avez pas d&rsquo;âme (et c&rsquo;est pas grave)</a> (YouTube, French)</li>
</ul>
<p>The subject is touchy. It&rsquo;s like when you arrive with big clumsy hints to say that we (probably) don&rsquo;t have free will. The reactions are immediately visceral, and I understand perfectly why.
Who would want to tell themselves that everything they do, think or choose is not their doing? Nobody. Not even me. But well, when you study the question seriously enough it&rsquo;s difficult to arrive at other conclusions than
free will doesn&rsquo;t really inhabit us. Unless we revise our definition of free will. This video addresses a bit the same problem in an accessible way (well I think so, because I understood and I&rsquo;m not a philosopher). I&rsquo;m adding this
to the list of good content about AI. As usual Monsieur Phi does an excellent job, I love it.</p>
<h2 id="art">Art</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=C0LA4o3u0vY">Fan Art : hommage ou plagiat ? | _Underscore | ARTE (fr)</a> (French)</li>
</ul>
<p>I&rsquo;ll talk about it soon, but personally (to make it simple) I&rsquo;m opposed to copyright, authors&rsquo; rights, and any commodification of art (except materials themselves). I won&rsquo;t expand on that today because I have in preparation a very long prose
that will go into detail, especially to talk about generative AI. All with nuance, so keep your <em>emotional</em> reactions for later.</p>
<p>Why do I say that? Because this video gives me great pleasure and reminds us that precisely all these notions are purely artificial,
and don&rsquo;t hold up against creation and art in general. That precisely reproduction, plagiarism, adaptation, etc&hellip;
is as important as original creation, if it still exists. The only place where I&rsquo;ve seen what fan art can give in the material world, when it&rsquo;s tolerated, is Japan. It&rsquo;s normal and tolerated to sell your
fan art, which means you can find beautiful art books, like those you find at Waterstones, with drawings of Mario or other manga franchises. And the revenues are not given back to the &ldquo;rights holders&rdquo;, but to the artists who produce these
books. And the second-hand market being very developed there, you can find entire stores that offer them for sale. And there&rsquo;s everything in there, like what you would find online.</p>
<p>Nice video about art copy and inspiration without hiding behind definitions that would make them absolutely different.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=8B9M6Bzc4Us">How Rural Japanese Trains Still Exist</a> (YouTube)</li>
</ul>
<p>Since I was talking about Japan, here&rsquo;s a super interesting little video about regional trains in Japan. Not the main lines, but the tiny, cute ones.
Japan still has many of them, and it resonates a lot with what the state of French railways is today and how it got there.
One of the phrases that struck me most: (I paraphrase) &ldquo;Once the high cost part is made, the infrastructure, it&rsquo;s relatively cheap to operate&rdquo;.
In France, our rails are rotting. The part that cost us a lot of money, time, and more, is rotting. Just because our urban planning and all-car policies, have decided that it wasn&rsquo;t worth the cost to operate these infrastructures.
And now we talk about urban/rural divide everywhere. Even urban areas of medium or low density find themselves landlocked because there&rsquo;s no longer any train going there.
And obviously it&rsquo;s not as if bus networks or infrastructure adapted to active mobility (bike, walking) also existed for cases where it would be relevant.</p>
<p>Anyway, we let rot something we&rsquo;re going to have to rebuild one day or another, and it&rsquo;s another thing that pisses me off. Having to redo the hardest part of the job one day or another 😞.</p>
<p>ps: I don&rsquo;t want to minimize operating costs. It&rsquo;s just a question of ratio with construction. I also take urban planning into account in the equation. It&rsquo;s much more expensive today to cut through territories to run
trains or trams than it was a century ago. This cost isn&rsquo;t necessarily only financial too.</p>
<h2 id="tech">Tech</h2>
<ul>
<li><a href="https://laurenleek.substack.com/p/how-google-maps-quietly-allocates">How Google Maps quietly allocates survival across London&rsquo;s restaurants - and how I built a dashboard to see through it</a></li>
</ul>
<p>This article could be in the &ldquo;society&rdquo; section. How, from a basic desire to find a good restaurant near you, we can analyze and reveal the mechanisms that algorithms
hide from us. And that&rsquo;s the whole problem, it&rsquo;s hidden. GAFAMs are neither auditable nor transparent while they influence us from everywhere. And Google Maps is surely one of the most emblematic cases.</p>
<p>I wonder what the DSA (Digital Services Act) will be able to do about it, and if Europe will manage to enforce it. We all see how it goes with GDPR, right.</p>
<ul>
<li><a href="https://www.24joursdeweb.fr/2025/n-opposons-pas-conformite-et-accessibilite">N&rsquo;opposons pas conformité et accessibilité (fr)</a> (French)</li>
</ul>
<p>Ahh accessibility. The first thing I think about when I&rsquo;m shown or I see a super new website all beautiful (that&rsquo;s debatable), brand new, with lots of pretty things.
The controversy about the french national education website shows how much we&rsquo;re not asking the right questions.</p>
<p>I would prefer ugly services (that&rsquo;s also debatable), than what they are today, that is to say slow, resource-hungry, and inaccessible. The article mainly talks about the traditional &ldquo;we&rsquo;ll see about that later&rdquo; when you
have the chance to think about it, often it&rsquo;s just not thought about at all. You who are reading me, if you&rsquo;re a tech person, is your employer or the service you work on accessible?</p>
<p>Become instrumental and impose this topic. Force it into the agendas. Make sure each sprint includes accessibility tasks. Event better, that the DOD (Definition of Done) includes accessibility criteria.</p>
<ul>
<li><a href="https://www.htmhell.dev/adventcalendar/2025/25/">Abbreviations done right: The <!-- raw HTML omitted --> element and why not use it</a></li>
</ul>
<p>Another accessibility article. When the simplest thing is still to do nothing. Or almost. Special mention for the pentacle at the beginning of the article 😈.</p>
<ul>
<li><a href="https://blog.miguelgrinberg.com/post/csrf-protection-without-tokens-or-hidden-form-fields">CSRF Protection without Tokens or Hidden Form Fields</a></li>
</ul>
<p>Here, news about CSRF. Like the author I wouldn&rsquo;t have really imagined that paradigm shifts had taken place. An essential good read for any WEB developer today, especially if they think they already know how to handle this security issue.</p>
<p>À l&rsquo;année prochaine 😉</p>
]]></description></item><item><title>Godzilla from 1954 to today</title><link>https://blog.ztec.fr/en/2025/post/godzilla-from-1954-to-today/</link><pubDate>Mon, 29 Dec 2025 23:01:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/post/godzilla-from-1954-to-today/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_852d49593bb33e44.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_3dca06cdc1689022.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_852d49593bb33e44.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        




















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-right">
        
        
            <source type="image/webp" srcset="/2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_b16c04e76b5263de.webp 1x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_4be93fc1bd28214d.webp 2x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_41b8b5b3f7732b8a.webp 3x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_37a62166b4398a24.webp 4x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_3214f7e4092adecc.webp 20.69x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_33d6af41a37cbf09.jpg 1x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_9ac5e2c2ff2d1c13.jpg 2x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_ce0d1e68736ea82d.jpg 3x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_cac6622723a5f4bb.jpg 4x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_a60cd4ddb390426c.jpg 20.69x" />
        

        
        
        <img
            src="/2025/post/godzilla-de-1954-%C3%A0-nos-jours/head-1_hu_33d6af41a37cbf09.jpg"
             alt="Godzilla Head" 
             title="Godzilla Head" 
        />

        
    </picture>


<p>Godzilla is part of popular culture. Known by everyone just like the T-rex or Star Wars. There have been several recent films
about him. For example, the excellent <a href="https://en.wikipedia.org/wiki/Godzilla_Minus_One">Godzilla Minus One</a> by <a href="https://en.wikipedia.org/wiki/Takashi_Yamazaki">Yamazaki Takashi</a></p>
<p>Yes, it&rsquo;s a disaster movie, a monster movie, a film where everything explodes. But Godzilla movies are much more
subtle than they appear.</p>
<p>That&rsquo;s why (but also because there are giant monsters, and everything explodes everywhere) my partner and I embarked on the project of watching all Godzilla films from the first one.
To better appreciate their evolution, and through them appreciate the evolution of Japan and probably the USA.
Because Hollywood has clearly participated in the franchise, even though <a href="https://en.wikipedia.org/wiki/Toho">Tōhō</a> maintains control over the concept.</p>
<p>Also, the films were produced after Japan&rsquo;s surrender following the mass murders of civilians perpetrated by the USA on August 6, 1945 at 8:15 AM and August 9, 1945 at 11:02 AM.
After which, Japan found itself under American imperialism and has probably remained so ever since.</p>
<p>To enjoy these films to the fullest, and especially to observe the evolutions, I&rsquo;ll try to share
my viewing experience and analysis of these films. The idea is to explore what makes each film special, show
what impresses me, amazes me, makes me sad (because yes, Godzilla is above all a sad story), and brings me joy.</p>





















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-left">
        
        
            <source type="image/webp" srcset="/2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_7a7d9645f0321a70.webp 1x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_8db5770a135b3628.webp 2x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_49ae534d0140cd74.webp 3x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_2e40dd44c28001dd.webp 4x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_b03831546464cdd3.webp 21.47x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_f3cef2a2ca4ddcb6.jpg 1x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_4bd892f9dd72cad2.jpg 2x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_8833d4b6762e0a21.jpg 3x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_1d5a311e5dd6a373.jpg 4x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_66d57469e315a5fa.jpg 21.47x" />
        

        
        
        <img
            src="/2025/post/godzilla-de-1954-%C3%A0-nos-jours/body-1_hu_f3cef2a2ca4ddcb6.jpg"
             alt="Godzilla Statue" 
             title="Godzilla Statue" 
        />

        
    </picture>


<p>Whether it&rsquo;s about the film, its form and substance, but also the techniques specific to the genre, almost invented by the franchise itself;
I&rsquo;ll share everything, and maybe you too will one day want to watch them all. Well, especially some of them because I suppose
not everything is equal in almost 70 years of franchise.</p>
<p>To find my way, I&rsquo;ll follow <a href="https://wikizilla.org/wiki/List_of_Godzilla_movies">this list</a> which traces all the films by year and era. I&rsquo;ll watch them
roughly chronologically. I say roughly because I&rsquo;ve already seen all the Godzillas since 2014 I think. Also, there are probably crossovers that will justify
changing orders sometimes. This will be reflected here too.</p>
<p>I hope to see this project through to the end, because I&rsquo;m not really known (by the whole world, but especially by myself) for finishing things.
Let&rsquo;s say it&rsquo;s an ambitious project for me, a kind of new 2026 resolution, but made and engaged before.</p>
<p>Anyway, I&rsquo;m going to tell you about Godzilla in my own way, <br>
and it starts here, right now, with the very first film from 1954: 


<a href="/en/godzilla/1954-godzilla/">ゴジラ Godzilla (1954)</a></p>
<p>Yeah, I put from &lsquo;54 to today, but you&rsquo;ll have to be patient to catch up with the 38 films not counting all the stuff on the side. Marvel invented nothing with their MCU.</p>





















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_68dee23b826e97ed.webp 1x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_d02cdd04935a4a88.webp 2x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_f03e15109553c606.webp 3x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_ece237557e159ec4.webp 4x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_95d573c1ea2851fd.webp 9.21x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_c3bfeb9baf5fa445.jpg 1x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_8dffc41b8f92616a.jpg 2x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_6eee347ef8ed80a7.jpg 3x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_6f0f9389559e8b3e.jpg 4x, /2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_ec86d165ed7e7956.jpg 9.21x" />
        

        
        
        <img
            src="/2025/post/godzilla-de-1954-%C3%A0-nos-jours/tokyo-bay_hu_c3bfeb9baf5fa445.jpg"
             alt="Tokyo Bay at night" 
             title="Tokyo Bay at night" 
        />

        
    </picture>


]]></description></item><item><title>ゴジラ Godzilla (1954)</title><link>https://blog.ztec.fr/en/godzilla/1954-godzilla/</link><pubDate>Mon, 29 Dec 2025 23:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/godzilla/1954-godzilla/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8fb5d4fc5909da13.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_147a920724d24480.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8fb5d4fc5909da13.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <blockquote>
<p>Trigger Warning</p>
<p>I discuss death, war, and atomic mass murders. <br>
The article is light, but at times I&rsquo;m very serious!</p>
</blockquote>
<p><a href="https://wikizilla.org/wiki/Godzilla_%281954_film%29#/media/File:Godzilla-1954-british-quad-poster.jpg">




















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-right">
        
        
            <source type="image/webp" srcset="/godzilla/1954-godzilla/poster.uk_hu_4b672ef40f8fa23e.webp 1x, /godzilla/1954-godzilla/poster.uk_hu_3528c08afebeff1c.webp 2x, /godzilla/1954-godzilla/poster.uk_hu_99f220d4d3868d5c.webp 3x, /godzilla/1954-godzilla/poster.uk_hu_92a14ec9f3a25baf.webp 4x, /godzilla/1954-godzilla/poster.uk_hu_f0aac69e3736c5a2.webp 8.00x" />
        

        
        
            <source type="image/jpeg" srcset="/godzilla/1954-godzilla/poster.uk_hu_af47d45e9ce25efa.jpg 1x, /godzilla/1954-godzilla/poster.uk_hu_881527b305d448db.jpg 2x, /godzilla/1954-godzilla/poster.uk_hu_26de8f6ba835b27c.jpg 3x, /godzilla/1954-godzilla/poster.uk_hu_b50955409d8336b7.jpg 4x, /godzilla/1954-godzilla/poster.uk_hu_f01ccadbc419ff82.jpg 8.00x" />
        

        
        
        <img
            src="/godzilla/1954-godzilla/poster.uk_hu_af47d45e9ce25efa.jpg"
             alt="Godzilla uk Poster" 
             title="Godzilla uk Poster" 
        />

        
    </picture>


</a></p>
<p>Hello folks. Today I&rsquo;m going to talk about Godzilla, the very first film.
It was released in 1954 in Japan, so yeah it&rsquo;s not very recent. Yet everything is there.
Everything we know about Godzilla is there.</p>
<p>I&rsquo;m not going to summarize the film or tell you the story. For that I invite you to go
read <a href="https://wikizilla.org/wiki/Godzilla_%281954_film%29">wikizilla</a> or <a href="https://en.wikipedia.org/wiki/Godzilla_%281954_film%29">wikipedia</a>.</p>
<p>No, here I&rsquo;m mainly going to show you some parts to convince you that yes it&rsquo;s a good film, and yes (also) everything that
is iconic in modern Godzillas was there from the beginning! These people were visionaries 😛</p>
<div class="clear"></div>
<h2 id="worth-watching-or-not">Worth watching or not?</h2>
<p>I already said it in the intro, but this film is a masterpiece. It&rsquo;s absolutely worth watching. Place your Michael Bay expectations in
the closet for the duration of the movie because even though the film has aged well in many aspects, it remains rather slow and has that
characteristic rhythm of &rsquo;50s-&rsquo;60s films. Think of it as <em>2001: A Space Odyssey</em>, grin and bear it, listen (or read) the
dialogues carefully, and put your phone in the closet with Michael Bay.</p>
<p>WATCH this film, it&rsquo;s absolutely brilliant, especially if you&rsquo;ve already seen other more modern Godzillas, like <em>Godzilla Minus One</em> from 2023, you&rsquo;re going to love it.</p>
<blockquote>
<p>I&rsquo;m obviously going to spoil parts here, but rest assured I&rsquo;m going to carefully hide some interesting bits for you to discover yourself.</p>
<p>And besides, spoilers <a href="https://www.youtube.com/watch?v=Nu63QSuahII">never ruin a good film (fr)</a> 😉</p>
</blockquote>
<h2 id="first-roars-ever-and-in-music">First roars ever, and in music</h2>
<p>Heavy, saturated footsteps announce what we know is coming. Something big, scary, terrifying.</p>
<p>Then the film opens with the iconic, the unique, the very special <em>Godzilla&rsquo;s Roar</em>.
A sound that characterizes him and that will follow him throughout his career.
Well I think, I haven&rsquo;t checked yet, but I&rsquo;m starting.</p>
<p>The equally iconic and majestic music that we all know (yes yes, you too) comes to dress these sounds as unpleasant as they are enjoyable. Composed by <a href="https://en.wikipedia.org/wiki/Akira_Ifukube">伊福部 昭 Ifukube Akira</a>
he will create what will be both a musical icon and an inspiration for so many filmmakers (Spielberg included).</p>
<div class="video-player"><div class="video-player-title-text">
    Roar and music on opening credits
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      poster="/thumbnail_8394824665161462878_hu_bcbc4285c61efea4.jpg"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">
        <img src="/thumbnail_8394824665161462878_hu_bcbc4285c61efea4.jpg"
             alt="Roar and music on opening credits"
             class="video-player-fallback-thumbnail">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/a0363270-5f9e-4072-947f-7dbc86f30bb7"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/a0363270-5f9e-4072-947f-7dbc86f30bb7/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>Personally, this beginning gives me goosebumps since I saw all the (more) recent films. It&rsquo;s like reverse fan service, returning to the source.
A pleasure that&rsquo;s just beginning.</p>
<blockquote>
<p>I&rsquo;m not going to translate videos, so speech and displayed text will remain in the original versions. It&rsquo;s not necessary to translate to understand my point normally.</p>
<p>Here, the texts are &ldquo;only&rdquo; the names of people involved in the film, it&rsquo;s the opening credits. They were at the beginning back then, which means the film ends very
abruptly without the traditional (for our era) end credits.</p>
</blockquote>
<h2 id="a-kaiju-film-no-the-kaiju-film">A Kaiju film, no THE Kaiju film</h2>
<p>This film is often considered as having defined the <a href="https://en.wiktionary.org/wiki/kaiju">Kaiju</a> film style in which we basically find:</p>
<ul>
<li>The use of miniatures sets for scale effects</li>
<li>People in monster suits</li>
<li>Quirky monsters, with… particular faces I would say.</li>
<li>Often the monsters are huge, hence the necessary scale effects</li>
</ul>
<p>This film from 1954, contains its share of particularly striking scenes that have aged really well.
Well, I say that, but you have to look past the fact that the film is in black &amp; white, and that yes we can see very well that these are miniatures diorama. However,
the result remains coherent, and today makes you smile, but doesn&rsquo;t make the film any less impactful.</p>
<p>Right from the start we have a little scene that reminds us of all this, a simple boat sinking. I find the fire effects
particularly convincing. It&rsquo;s only the subtle movements on the water that betray its real scale.</p>
<div class="video-player"><div class="video-player-title-text">
    Boat on light
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/ebf1a527-7c54-4ced-b614-3fc00364d1f6"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/ebf1a527-7c54-4ced-b614-3fc00364d1f6/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>And a bit later, there&rsquo;s a storm scene that batters actors, not very good actors. Well, in fact yes, they&rsquo;re very good.
It&rsquo;s just that the expectations of the era were not the same as today. What I find overacted was the norm before.
In any case, it&rsquo;s fun to watch, and it&rsquo;s a good way to calibrate my expectations for the rest of the film. Rather than
watching it with disdain, I&rsquo;m going to watch it with wonder, appreciating all overacting at its true value. Sometimes, it&rsquo;s true, while
laughing heartily. That&rsquo;s part of the experience now.</p>
<div class="video-player"><div class="video-player-title-text">
    Storm on miniature
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      poster="/thumbnail_16870389403451103670_hu_553a523725a59f44.jpg"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">
        <img src="/thumbnail_16870389403451103670_hu_553a523725a59f44.jpg"
             alt="Storm on miniature"
             class="video-player-fallback-thumbnail">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/3570aea8-22da-4a78-a8a9-86fdf6871dfc"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/3570aea8-22da-4a78-a8a9-86fdf6871dfc/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>Clearly, the construction and lighting work is simply striking. Yes we&rsquo;re not fooled by
the scale effects because the cameras of the era didn&rsquo;t allow what we can today, but dam it&rsquo;s impressive.
Personally, I feel all the love of the model makers and miniaturists in these shots. And it will be like that throughout the film(s).</p>
<h2 id="but-where-is-the-monster">But where is the monster?</h2>
<p>The film takes its time; really. Built around 3 acts, the first takes a good big third of the film. We&rsquo;re told about folklore,
stories of old fishermen who tell that once a monster had been spotted when fish were scarce. Its name? Gojira (Godzilla).</p>
<p>And there you have it, the name of this prehistoric dinosaur is sealed forever. In the film it&rsquo;s this story that serves as justification to name the monster when
journalists need a big title for their special edition.</p>
<p>However, still no monster on screen. There has been destruction, noises, but nothing visual of Godzilla himself. First clue and first characteristic of this invisible monster
forged, forever: a huge footprint right in the middle of a village. A <strong>radioactive</strong> footprint! Our monster is <strong>RADIOACTIVE</strong>.</p>
<div class="video-player"><div class="video-player-title-text">
    Footprint on village
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      poster="/thumbnail_2266023931398884588_hu_1e05d4e8d3548dd5.jpg"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">
        <img src="/thumbnail_2266023931398884588_hu_1e05d4e8d3548dd5.jpg"
             alt="Footprint on village"
             class="video-player-fallback-thumbnail">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/a337d5c2-85d2-4a32-89f4-2261f7905262"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/a337d5c2-85d2-4a32-89f4-2261f7905262/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>So there we learn that the thing is big. Look at the size of the footprint.
Also, the thing is radioactive!! The Geiger counter goes crazy, we can hear it well.</p>
<blockquote>
<p>Godzilla is therefore:</p>
<ul>
<li>Big / Tall</li>
<li>Radioactive</li>
</ul>
</blockquote>
<p>A few minutes later, we see trilobites hanging around. <a href="https://en.wikipedia.org/wiki/Trilobite">TRILOBITES</a>,
the thing supposed to be extinct for hundreds of millions of years. Godzilla therefore brought things from his home, old things.
Nothing suggests it&rsquo;s voluntary on his part, but more that these creatures accompany him as parasites (symbiotic?).
He dropped a few on his path.</p>
<div class="video-player"><div class="video-player-title-text">
    Trilobite on footprint
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/0fd55f61-7640-4cce-97d9-fa35e440fa70"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/0fd55f61-7640-4cce-97d9-fa35e440fa70/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<blockquote>
<p>Godzilla is therefore:</p>
<ul>
<li>Old (or at least hangs out with things from 250 million years ago)</li>
</ul>
</blockquote>
<p>And now the drama. A villager sounds the general alarm and all these people who were quietly taking measurements and collecting samples
rush to offer a quite striking shot-reverse-shot.</p>
<p>No, actually it&rsquo;s mostly very funny today 😁. I can very well imagine the actors placing themselves on their mark, with the director
insisting: &ldquo;Imagine that this camera reveals itself to you, roars, is dozens of meters high, is terrifying!!&rdquo;. Basically, the beginnings
of green screen acting,&hellip; without green screen.</p>
<p>Godzilla is finally revealed. His size finally comparable to the rest of the world. A flawless composite shot, which even today renders very well.</p>
<p>So admire this person in a suit playing the big monster, in front of a (small) terrified crowd. A childhood dream!</p>
<div class="video-player"><div class="video-player-title-text">
    Godzilla on hill
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/7a3fb61b-3559-46ba-8a5c-becf1553df56"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/7a3fb61b-3559-46ba-8a5c-becf1553df56/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>I can&rsquo;t help but consider the parade of scientists, reporters, and other explorers facing the camera as
having a comic effect. Same for the &ldquo;terror&rdquo; on each face. But sorry, let&rsquo;s put this film in its era, it&rsquo;s terribly well acted!</p>
<p>The revelation at the end with the tracks on the beach&hellip; Marvelous!</p>
<p>So yeah, it&rsquo;s well done, but it&rsquo;s sparse for now. Almost all is suggestion. It looks like Spielberg (or is it Spielberg who looks like <a href="https://en.wikipedia.org/wiki/Ishir%C5%8D_Honda">Honda Ishirō</a>? 😏)</p>
<h2 id="the-suit">The suit</h2>





















    
    
        
    

    
    
        
    

    
    

    
    





    

    


    
    



    <picture class="inner-cover type-left">
        
        
            <source type="image/webp" srcset="/godzilla/1954-godzilla/img/suit-01_hu_3679a6dbdaf42f33.webp 1x, /godzilla/1954-godzilla/img/suit-01_hu_8a6f60f0cdde99c0.webp 2x, /godzilla/1954-godzilla/img/suit-01_hu_d853627a7ae4f343.webp 2.08x" />
        

        
        
            <source type="image/jpeg" srcset="/godzilla/1954-godzilla/img/suit-01_hu_668d24cd95b7c2b4.jpg 1x, /godzilla/1954-godzilla/img/suit-01_hu_3e49c4faf3d6f3c0.jpg 2x, /godzilla/1954-godzilla/img/suit-01_hu_5853cfc2d6ba6bcb.jpg 2.08x" />
        

        
        
        <img
            src="/godzilla/1954-godzilla/img/suit-01_hu_668d24cd95b7c2b4.jpg"
             alt="The completed No. 1 ShodaiGoji suit with a human for scale (only few cm shorter)" 
             title="The completed No. 1 ShodaiGoji suit with human for scale" 
        />

        
            <div class="credit">ⓒ Unknown</div>
        
    </picture>


<p>Before going further, a little word about the suit.</p>
<p>The <a href="https://wikizilla.org/wiki/ShodaiGoji">ShodaiGoji (初代ゴジ)</a>.</p>
<p>I&rsquo;m not going to paraphrase all the articles and wikis that talk about it, but some interesting info must still be kept in mind,
especially when we watch the next excerpts.</p>
<p>The suit is a rubber thing on a wooden and metal frame (if I understood correctly), with cotton and fabric inside for a soft effect
(no, that&rsquo;s wrong, it was just so the thing wasn&rsquo;t just a cutting blade for the actor).</p>
<p>Anyway, the important point is that this thing is far from a simple pajama. The damn thing weighed nearly 100Kg. Imagine yourself in there, while there
are iron bars everywhere, that you have to &ldquo;play the monster&rdquo; and roll around with it!</p>
<p>Lucky them, all the parts that move on the head are operated elsewhere, it&rsquo;s someone else who does it. But still, they had to
carry the thing around and destroy everything &ldquo;properly&rdquo; as the director wanted. No second take, otherwise you have to redo all the miniatures.</p>
<div class="clear"></div>
<h2 id="revelations">Revelations</h2>
<p>Well, the old fishermen were right. We knew, we saw the title of <del>the video</del> the film. But the film&rsquo;s characters had to
see it with their own-eyes! (yeah it&rsquo;s one word for me, &ldquo;own-yeyes&rdquo;. It&rsquo;s our critical eye you see)</p>
<p>Since I&rsquo;ve already seen quite a few Godzilla films, I notice another recurring motif settling in nicely.
Yeah, I didn&rsquo;t see all the films in order huh, I started with the more recent ones before growing into a better version of myself, one who can grin and bear it.</p>
<p>So, what was I saying? Oh yes, since I&rsquo;ve already seen quite a few Godzilla films I notice a rather déjà-vu scene. The PowerPoint™ of the era with acetates, like back then (yeah I&rsquo;m old, there were no &ldquo;interactive&rdquo; boards when I was in middle/high school).</p>
<p>This scene, save it somewhere in you mind, it&rsquo;s going to become classic in the franchise. Personally, I find it like a running gag, but right now it&rsquo;s serious. It&rsquo;s the first
film, and it&rsquo;s not joking around.</p>
<div class="video-player"><div class="video-player-title-text">
    Godzilla on PowerPoint™
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/32269e52-4a80-412a-b18a-0fa343699869"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/32269e52-4a80-412a-b18a-0fa343699869/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>It&rsquo;s the catch-up session for all those who were looking at their phone during the entire first part.
I told you to put it away, you&rsquo;re lucky the teacher is doing a catch-up lesson!</p>
<p>We don&rsquo;t learn much, but everything is recapped. Basically:</p>
<blockquote>
<p>Godzilla is:</p>
<ul>
<li>Big / Tall</li>
<li>Radioactive</li>
<li>Old or hangs out with old things</li>
</ul>
</blockquote>
<p>We even get a mugshot of Godzilla at the end.</p>
<p>Ah yes, I almost forgot, we do learn something new though. The film&rsquo;s characters make a conjecture about the reason for Godzilla&rsquo;s coming or awakening.
Because yes, the old fishermen speak of an old legend (even for them). So why is he coming back now?</p>
<p>This is where we arrive at the fundamental of what Godzilla represents. At least in this film. Because I find it changes a bit in the following ones.</p>
<p>Godzilla came back because we messed up the seabed, where he lived/hibernated (strike out your least favorite). Moreover we didn&rsquo;t hold back !
We atomized the thing. Like A-Bomb, H-Bomb, etc&hellip;</p>
<p>We all know how annoying it is when the FBI or the GIGN drop by to “politely” smash your door under an atomically overpowered search warrant.
So it&rsquo;s kind of expected for poor Godzilla to be angry and comes to mess up our home. The flowerbeds are unlikely to make it.</p>
<p>It&rsquo;s suggested that the bigness of Godzilla and his superpowers (we&rsquo;ll see later) comes from radiation induced by our nuclear tests.</p>
<p>Godzilla is homeless. We most likely exterminated his whole family, and now he&rsquo;s coming for us.</p>
<p>More seriously, Godzilla represents the consequences of using atomic weapons.
This film comes barely more than 10 years after the mass murder of civilians perpetrated by the USA on Hiroshima and Nagasaki.</p>
<p>Even though Japan is in full imperial colonization by the USA, this film talks about the consequences of weapons as powerful as atomic bombs.
Godzilla himself will be a destroyer, and whether he has agency or not doesn&rsquo;t change the basic point: Lots of people died.
If Godzilla himself is a sentient and thinking being, his will can then easily be a metaphor the USA will itself as a war nation. A kind
of revenge for having destroyed his home (Pearl Harbor?). If American imperialism on Japan is at work in this film, it&rsquo;s probably
in this little bit of lore. A kind of &ldquo;good&rdquo; reason to destroy everything. We&rsquo;ll see later with… the sequels, but this angle of analysis
really seems to survive well and strengthen from episode to episode.</p>
<p>Okay, let&rsquo;s get back to a lighter level, to laugh a bit more with this film.</p>
<h2 id="destruction-scene">Destruction scene</h2>
<p>Now that our friend, with a regrettably short family tree, is clear to everyone, even to the film&rsquo;s characters, he&rsquo;s finally going to come and wreck everything.
The poor humans will try to bring out the big guns. A classic here too, where almost all of Japan is put to contribution, a bit like Evangelion.
(or is it Evangelion that&rsquo;s like Godzilla 😏).</p>
<div class="video-player"><div class="video-player-title-text">
    Godzilla on a bed of electrons
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/f450a0ef-9942-4826-8f68-01b20984d188"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/f450a0ef-9942-4826-8f68-01b20984d188/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>We try to electrocute this big lizard with everything we have. The effects are classic for the era, I suppose the film was simply painted to
make the sparks effects. We can see how a person can hide in this monster. But it makes him even more touching, when he himself pass though
the high voltage lines as if it were a simple spider web.</p>
<p>Note that this suit which already weighs 100kg had to be operated in water! I can&rsquo;t even imagine the physical endurance needed for that.</p>
<p>Well, all the cannons unleash on Godzilla, while he breaks the Lego towers made by little brother without even realizing
that all the artillery is pounding him.</p>
<p>I don&rsquo;t know how the model makers take the destruction of their works. Are they happy? Sad? Both? Something else? In any
case it renders well. It bends as it should, well almost. The smoke everywhere makes it all even more convincing, but completely breaks the perspective and scale effects.</p>
<p>Then, we discover for the first time in IMAX 4D Dolby Atmos, without smell-o-rama, Godzilla&rsquo;s fetid breath that melts everything. The heat ray
that kills.</p>
<div class="video-player"><div class="video-player-title-text">
    Spit on miniature
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      poster="/thumbnail_4385701177173961417_hu_46f7b3e4fa61be1d.jpg"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">
        <img src="/thumbnail_4385701177173961417_hu_46f7b3e4fa61be1d.jpg"
             alt="Spit on miniature"
             class="video-player-fallback-thumbnail">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/db3baf3b-1201-4cbb-b9b3-693ef2bd497f"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/db3baf3b-1201-4cbb-b9b3-693ef2bd497f/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>Note that we see our friend up close, and how hideous he is! Honestly he&rsquo;s so ugly it&rsquo;s beautiful.</p>
<p>Well, that&rsquo;s not all, but he still has plenty of things to destroy, and past human defenses, it&rsquo;s the city of Tokyo that&rsquo;s
going to take a beating.</p>
<div class="video-player"><div class="video-player-title-text">
    Godzilla on Tokyo
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/017e76e8-ae55-4ef2-887a-acc1428cf0a5"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/017e76e8-ae55-4ef2-887a-acc1428cf0a5/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>Visually, it&rsquo;s magnificent. The burning buildings are really believable. Too bad for Godzilla who does a camera look that must have
been forgot during editing. They could have done another take honestly.</p>
<p>Also, very striking this Hotwheels™ accident 😁. It contrasts quite a bit with explosions worthy of 80s films. I won&rsquo;t mention the time-lapses, which are
really a classic for the era; besides rather subtle here.</p>
<p>The end with that foot, no, that Godzilla thigh that fills the whole frame; Magnificent! To finally demonstrate all of the man
in the suit skill to destroy this warehouse by showing only a small piece of this thigh, no of this foot; Magnificent!</p>
<p>And note the quality of Godzilla&rsquo;s composite when the villagers flee in terror! Great (technical) art!</p>
<p>A small excerpt where Godzilla positions himself politically and shouts <a href="https://en.wikipedia.org/wiki/ACAB">ACAB</a> in his way!</p>
<div class="video-player"><div class="video-player-title-text">
    Godzilla chanting ACAB
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/1c62be42-3413-4dc1-9cae-523a5d427947"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/1c62be42-3413-4dc1-9cae-523a5d427947/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>I&rsquo;m showing you this excerpt because what&rsquo;s obviously interesting here is the compositing of people in buildings, and at the end of the excerpt when we see him
in the background of the city. A city that burns in its entirety. Observed by villagers composited at the bottom. A powerful final result.</p>
<p>Another motif, or rather should I say another setup, journalists on rooftops doing their job. They describe, they film, they record. Nothing will stop them
from doing their job, until the last moment, not even this big arms T-rex. Well, in this particular film, they&rsquo;re a bit cowardly, and stayed well away to
not smell Godzilla&rsquo;s bad breath.</p>
<div class="video-player"><div class="video-player-title-text">
    Journalist on destruction
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      poster="/thumbnail_15595332209194772513_hu_9305cc92b9091df8.jpg"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">
        <img src="/thumbnail_15595332209194772513_hu_9305cc92b9091df8.jpg"
             alt="Journalist on destruction"
             class="video-player-fallback-thumbnail">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/b3dbeb21-025b-400b-a944-9521713176bb"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/b3dbeb21-025b-400b-a944-9521713176bb/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>Let&rsquo;s note that Godzilla seems to dislike clocks. No explanation is ever provided regarding this visceral hatred. It&rsquo;s a
totally free interpretation for the viewer. Poor clock…</p>
<p>Humans may be small, but they have small planes and that&rsquo;s another setup here. Godzilla versus planes.
Here, sorry I&rsquo;m going to spoil the surprise, the planes, they don&rsquo;t win.</p>
<div class="video-player"><div class="video-player-title-text">
    Planes on Godzilla (well yeah, they fly, they&#39;re above)
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      poster="/thumbnail_15678102428130625681_hu_3917e25c953b3dc8.jpg"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">
        <img src="/thumbnail_15678102428130625681_hu_3917e25c953b3dc8.jpg"
             alt="Planes on Godzilla (well yeah, they fly, they&#39;re above)"
             class="video-player-fallback-thumbnail">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/a3b671b0-5a46-4119-993b-db6c870f5397"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/a3b671b0-5a46-4119-993b-db6c870f5397/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>The music is also really perfect for this moment. A treat! It almost looks like a Michael Jackson video at the beginning.
Almost as if we&rsquo;d expect Godzilla to start dancing like a zombie. But no, he just lets the big kids play with planes for a few minutes before
remembering that <em>Parent 2</em> said &ldquo;dinner time&rdquo; 10 minutes ago already and goes into Tokyo Bay to go eat.</p>
<p>If you have an eye. Or especially just if you finally put your smartphone in the closet like I told you, you&rsquo;ll spot the sophisticated rocket guidance techniques.
The missiles, not the salad huh. Probably something very technological based on <a href="https://en.wikipedia.org/wiki/Nylon"><em>c12h22n2O2</em></a>.</p>
<h2 id="the-consequences">The consequences</h2>
<div class="video-player"><div class="video-player-title-text">
    Consequences
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/e4598ca4-2331-4d51-90c2-0c996b1ba4fb"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/e4598ca4-2331-4d51-90c2-0c996b1ba4fb/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p><a href="https://commons.wikimedia.org/wiki/File:Hiroshima_aerial_view_after_atomic_bomb_8-1945.jpeg">




















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-left">
        
        
            <source type="image/webp" srcset="/godzilla/1954-godzilla/img/hiroshima_hu_6dd7e91b376c7e.webp 1x, /godzilla/1954-godzilla/img/hiroshima_hu_9593b8f5f361cb63.webp 2x, /godzilla/1954-godzilla/img/hiroshima_hu_3ba815040c130985.webp 3x, /godzilla/1954-godzilla/img/hiroshima_hu_cfa682a3d85c88e3.webp 4x, /godzilla/1954-godzilla/img/hiroshima_hu_a1895f9fc4b93397.webp 9.61x" />
        

        
        
            <source type="image/jpeg" srcset="/godzilla/1954-godzilla/img/hiroshima_hu_e952bbe901735967.jpeg 1x, /godzilla/1954-godzilla/img/hiroshima_hu_c9a8d9dd9045f5df.jpeg 2x, /godzilla/1954-godzilla/img/hiroshima_hu_30150bb1f6540e9a.jpeg 3x, /godzilla/1954-godzilla/img/hiroshima_hu_8d91cc12c20b7a43.jpeg 4x, /godzilla/1954-godzilla/img/hiroshima_hu_c9ab3e2a4bb387db.jpeg 9.61x" />
        

        
        
        <img
            src="/godzilla/1954-godzilla/img/hiroshima_hu_e952bbe901735967.jpeg"
             alt="Aerial view of the destruction at Hiroshima, Japan, caused by the atomic bomb dropped on the city." 
             title="Aerial view of the destruction at Hiroshima, Japan, caused by the atomic bomb dropped on the city." 
        />

        
    </picture>


</a></p>
<p>Well, here we&rsquo;re going to get serious again for a few moments.</p>
<p>The film takes a very sinister turn, even in our times. Because if today we don&rsquo;t perceive
the terror and catastrophe through the images, as it could have been the case at the time when we weren&rsquo;t used to ultra-realistic 3D effects,
we fall back very quickly on our good old reality. Having visited the Hiroshima Peace Memorial Museum, and therefore seen some photos and, even more horrible, some drawings and accounts
of the consequences of this mass murder of civilians by the USA on August 6, 1945 at 8:16 AM, I can say that this part of the film is rather chilling.
It&rsquo;s a film, and era requires, the images are very &ldquo;clean&rdquo;, but suggest largely what&rsquo;s needed, and don&rsquo;t spare difficult images.</p>
<p>The representation of Tokyo after Godzilla&rsquo;s passage resembles in every way Hiroshima a few hours after the explosion.
At least, from what has reached us.</p>
<p><a href="https://commons.wikimedia.org/wiki/File:Fukuromachi_Elementary_School_Peace_Museum01.JPG">




















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-right">
        
        
            <source type="image/webp" srcset="/godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_d8a7d3a8618773b4.webp 1x, /godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_fb71ba25b8bf90a3.webp 2x, /godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_53ad8a0f0a374b98.webp 3x, /godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_4aa80f5d686fbc1d.webp 4x, /godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_e2818315b21469c6.webp 10.80x" />
        

        
        
            <source type="image/jpeg" srcset="/godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_f5ffc0469c8b5389.JPG 1x, /godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_4923349508e3b406.JPG 2x, /godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_e4d24a45b8c2135d.JPG 3x, /godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_7d463ede1998688.JPG 4x, /godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_599c2e7dd1b7dc9a.JPG 10.80x" />
        

        
        
        <img
            src="/godzilla/1954-godzilla/img/Fukuromachi_Elementary_School_Peace_Museum01_hu_f5ffc0469c8b5389.JPG"
             alt="Fukuromachi Elementary School Peace Museum in Hiroshima, Japan" 
             title="Fukuromachi Elementary School Peace Museum in Hiroshima, Japan" 
        />

        
    </picture>


</a></p>
<p>The improvised hospital recalls the (numerous) history of these places that served as refuges, and post-apocalypse help centers. Personally, I think back to <a href="https://en.wikipedia.org/wiki/Fukuromachi_Elementary_School_Peace_Museum">this school</a>
which had &ldquo;survived&rdquo; thanks to its reinforced concrete construction technique despite its proximity to the bomb&rsquo;s detonation point.
The film scene plunges me back into it, mainly because the structure and walls are alike.
Surely this architecture is widespread in Japan, but here I can&rsquo;t help but make the connection with the staircase where survivors wrote the names of those they were looking for.</p>
<p><a href="https://www.tripadvisor.ca/Attraction_Review-g298561-d8178491-Reviews-Fukuromachi_Elementary_School_Peace_Museum-Hiroshima_Hiroshima_Prefecture_Chugoku.html#/media/8178491/?type=ALL_INCLUDING_RESTRICTED&amp;albumid=-160&amp;category=-160">




















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/godzilla/1954-godzilla/img/inscriptions-on-the-walls_hu_850557f9f00c7257.webp 1x, /godzilla/1954-godzilla/img/inscriptions-on-the-walls_hu_973466c4a8fd4069.webp 1.25x" />
        

        
        
            <source type="image/jpeg" srcset="/godzilla/1954-godzilla/img/inscriptions-on-the-walls_hu_bbf7a34c92606105.jpg 1x, /godzilla/1954-godzilla/img/inscriptions-on-the-walls_hu_90066a3d02f76458.jpg 1.25x" />
        

        
        
        <img
            src="/godzilla/1954-godzilla/img/inscriptions-on-the-walls_hu_bbf7a34c92606105.jpg"
             alt="Inscription of names of people being searched for on the school wall" 
             title="Inscription of names of people being searched for on the school wall" 
        />

        
    </picture>


</a></p>
<p>The film makes its point again, in case the viewer had forgotten; <br>
Or I had forgotten; <br>
Or you had forgotten; <br>
Or we had collectively forgotten.</p>
<div class="video-player"><div class="video-player-title-text">
    More consequences
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      poster="/thumbnail_5643800418874808536_hu_4910f69d7f66a0a7.jpg"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">
        <img src="/thumbnail_5643800418874808536_hu_4910f69d7f66a0a7.jpg"
             alt="More consequences"
             class="video-player-fallback-thumbnail">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/16c7cf24-7403-4c9e-b2f1-537a9084eb42"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/16c7cf24-7403-4c9e-b2f1-537a9084eb42/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>These schoolchildren singing… I don&rsquo;t have the translation of their songs, the film&rsquo;s subtitles did not provide them. But it moves me a lot, it&rsquo;s strong.</p>
<p>I&rsquo;m not talking about everything to keep part of the film for you to discover, but this second disaster exposition is far from trivial, and fully serves the narrative&rsquo;s purpose.
It advances the story in a… Well, watch the film (or read the complete summary) if you want to know. I don&rsquo;t want to cover everything here.</p>
<p>Small aside concerning the shot of the image in the TV. It&rsquo;s another recurring motif in Godzilla films.
For me, the images of destruction are put inside another screen, as if they themselves were fiction.
A double level of fiction, so that the characters can still (a bit) deny the reality of this desolation, but it&rsquo;s no longer possible.</p>
<h2 id="the-end">The end</h2>
<p>Without revealing how, humans, more exactly Japanese humans, end up winning against Godzilla.</p>
<div class="video-player"><div class="video-player-title-text">
    Godzilla on ocean floor
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      poster="/thumbnail_4182345069568730045_hu_ba2c23afa2591d28.jpg"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">
        <img src="/thumbnail_4182345069568730045_hu_ba2c23afa2591d28.jpg"
             alt="Godzilla on ocean floor"
             class="video-player-fallback-thumbnail">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/23b91c00-51cd-4f74-a00e-baf794cb664a"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/23b91c00-51cd-4f74-a00e-baf794cb664a/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>Note that Godzilla walks on the ocean floor. He doesn&rsquo;t float. At least not here.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/godzilla/1954-godzilla/img/legs_hu_2c4ea7a2cf98d6dd.webp"
            target="_blank"
    >
        <img
                src="/godzilla/1954-godzilla/img/legs_hu_e5ff4adbb29b2565.webp"
                 alt="A drawing of Godzilla with long legs to reach the seabed" 
                 title="A drawing of Godzilla with long legs to reach the seabed" 
        />
    </a>
     <figcaption>A drawing of Godzilla with long legs to reach the seabed</figcaption> 
</figure>

</div>
<div class="video-player"><div class="video-player-title-text">
    This is the end
    <div class="video-player-controls-right">
      <select class="video-player-quality-selector" style="display: none;" aria-label="Video quality">
        <option value="-1">Auto</option>
      </select>
      <a href="https://www.ztec.fr/en/legals/"
         class="video-player-privacy-icon hidden-link"
         title="About data sharing"
         aria-label="About data sharing">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
          <circle cx="12.3137" cy="7.2" r="1" fill="currentColor"/>
          <rect x="11.3137" y="10.8" width="2" height="7.2" fill="currentColor"/>
          <path d="M12.3137 1.68629L2 12L12.3137 22.3137L22.6274 12L12.3137 1.68629Z" stroke="currentColor" stroke-width="1.5" fill="none"/>
        </svg>
      </a>
    </div>
  </div><div class="video-player-container">

    <video
      controls
      preload="none"
      poster="/thumbnail_7283978822010404473_hu_162f099e90505185.jpg"
      class="video-player-video">

      
      <source src="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/playlist.m3u8" type="application/x-mpegURL">
      <source src="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/play_720p.mp4" media="(min-width: 800px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/play_480p.mp4" media="(min-width: 480px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/play_360p.mp4" media="(min-width: 200px)" type="video/mp4">
      <source src="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/play_240p.mp4" media="(min-width: 200px)" type="video/mp4">

       Default fallback: highest available resolution
      <source src="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/play_720p.mp4" type="video/mp4">

      
      <div class="video-player-fallback">
        <img src="/thumbnail_7283978822010404473_hu_162f099e90505185.jpg"
             alt="This is the end"
             class="video-player-fallback-thumbnail">

        <p>Your browser does not support HTML5 video.</p>

        <p><a href="https://video.bunnycdn.com/play/557237/26d417fa-d5a2-4597-9d51-59c9523d50d4"
              class="video-player-external-link"
              rel="noreferrer">Watch on Bunny Player</a></p>

        <p>Download:
          <a href="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/play_240p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">240p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/play_360p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">360p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/play_480p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">480p</a>
          <a href="https://vz-c2965a06-24e.b-cdn.net/26d417fa-d5a2-4597-9d51-59c9523d50d4/play_720p.mp4"
             download
             class="video-player-download-link"
             rel="noreferrer">720p</a>
        </p>
      </div>

    </video>

  </div>

</div>

<p>The film ends on a boat taking a beating, with a Godzilla dying like a 5-year-old child would make it in their bathtub.
At least, at the beginning. After it&rsquo;s more of a paleontologist&rsquo;s fantasy.</p>
<p>Note that Godzilla&rsquo;s death is beyond any doubts. He is defeated, destroyed, literally dissolved in the water.
Quick, direct and painful according to the official translators of his roars.</p>
<p>There you go, spoiling is done. He dies at the end. This obviously didn&rsquo;t prevent the making of dozens of canonical sequels, so
don&rsquo;t feel like you hold all knowledge and power in your hands. There&rsquo;s still much to discover.</p>
<h2 id="final-thoughts">Final thoughts</h2>
<p>Well, this film is a masterpiece. The first person who says I&rsquo;m exaggerating is just not worthy of receiving all this entertainment, and should go back to playing marbles or Pogs.</p>
<p>It bears the mark of its era. It&rsquo;s unintentionally fun, yet it never tips over into camp. On the other hand, it&rsquo;s completely outdated, but we forgive it, it&rsquo;s the era we said.</p>
<p>The film&rsquo;s purpose is interesting, full of hope (Godzilla is defeated) and sadness (the consequences, and the means used to defeat him).
Since I haven&rsquo;t said everything, you&rsquo;ll have to dig on your own to understand what I mean by that. Because my goal here is twofold. First to make you
live the film like me, or at least a part of it. To share my excitement, my disappointments (there aren&rsquo;t any here), my sadness, and my reflections and analysis.
So that the crazy idea of watching ALL Godzillas goes from a&hellip; <em>crazy</em> idea precisely to a revelation of evidence to you (We all have the right to dream).
All this for my second objective, to convert you. For you to become a Godzilla fan.
But not just a fan of his entertaining aspect, of his destructions, of the chaos he creates (yes all that is super cool), but also of what he represents.
Of what Godzilla shows, through the eras. Because remember that Godzilla films have been made and plenty since this one in 1954!!!.</p>
<p>This first opus lays the foundations. We see it, everything is there and will be taken up, remixed, reinvented, copied, plagiarized, innovated. I had to take the time
for this film. It&rsquo;s quite likely that I&rsquo;ll be much more succinct on the dozens of others. Otherwise it&rsquo;s going to take me a lifetime to write these articles, hoping I keep up the pace 😅.</p>
<p>See you soon for the next one. I&rsquo;ve already seen it, just need to clip and write the article.</p>
<p>Thanks for reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
<p><img src="/godzilla/1954-godzilla/img/Gojira-1954-shadow.webp" alt="Godzilla who destroyed Tokyo" title="Godzilla who destroyed Tokyo"></p>
]]></description></item><item><title>YOM - Hypnotic Temple at Points communs</title><link>https://blog.ztec.fr/en/2025/12/16/concert/yom-hypnotic-temple-at-points-communs/</link><pubDate>Tue, 16 Dec 2025 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2025/12/16/concert/yom-hypnotic-temple-at-points-communs/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_bb491a8abc7cfead.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_5ffba0fc78e9df34.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_bb491a8abc7cfead.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>It starts in complete darkness. We&rsquo;re warned that phones aren&rsquo;t allowed as they would ruin the experience.
Will this horde of old folks manage to restrain themselves? Yeah. Surprising but yeah, and not a single flash as a result.</p>





















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-left">
        
        
            <source type="image/webp" srcset="/2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_f65cb464828e67fc.webp 1x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_3bcbf26f659489d1.webp 2x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_ffd1346e7a5c9e78.webp 3x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_fb4be7d3b229cd71.webp 4x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_9fc671d8da2e8115.webp 6.25x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_d9226636752758c7.jpg 1x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_1ae9b37170bedae1.jpg 2x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_1d8830c1a081beda.jpg 3x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_afdfed766b2a25c3.jpg 4x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_d98f612d84c639a8.jpg 6.25x" />
        

        
        
        <img
            src="/2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/Yom_hu_d9226636752758c7.jpg"
             alt="Yom" 
             title="Yom" 
        />

        
            <div class="credit">© Léa Rouaud</div>
        
    </picture>


<p>Anyway, it starts in the dark.</p>
<p>Two shaved heads (or almost) light up slowly on either side of the stage. We can make out the pianist at the keyboard on the right.
Then a bit later the clarinetist on the left.</p>
<p>Sitting cross-legged like monks. Dressed in black, only the arms, head, legs, feet and hands are truly highlighted by the lighting.</p>
<p>The music begins with low, muffled sounds that start the enchantment.</p>
<p>In the center, the light gradually reveals the dancer; she&rsquo;s well-haired.
Motionless at first, she gradually straightens up while starting to dance, spinning. And it&rsquo;ll be like that until the end.</p>
<p>Spinning, spinning, spinning. A short pause in the middle but that&rsquo;s it; quite an achievement.</p>
<p>The stage is bathed in video projection. Both the backdrop and the floor.
Everything is projected onto black, which tends to fully integrate the artists and especially the dancer, anchoring her in the projected reality.</p>
<p>Musically, it&rsquo;s dreamlike and very intoxicating. A kind of soft trance, like a dream. Lots of repetition, originality, and changes.
It reminded me of one of my most singular experiences, 


<a href="/en/2022/09/12/concert/erwan-keravec-in-c-20-sonneurs-at-le-104/">Erwan Keravec - In C 20 sonneurs at Le 104</a>.</p>
<p>I was simply captivated for an hour, and for good reasons. It&rsquo;s this kind of experience that makes me appreciate live concerts.</p>
<p>Something perhaps unique, though if other performances are scheduled, I seriously invite you to attend.</p>
<div class="clear"></div>
<hr>
<ul>
<li>


<a href="/en/artists/yom/">Yom</a> - 


<a href="/en/instruments/clarinet/">Clarinet</a>, composition</li>
<li>


<a href="/en/artists/manuel-peskine/">Manuel Peskine</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/ana-elena-tejera/">Ana Elena Tejera</a> - 


<a href="/en/instruments/dance/">dance</a>, choreography</li>
<li>


<a href="/en/artists/julien-oska-colardelle/">Julien Oska Colardelle</a> - 


<a href="/en/instruments/stage-direction/">stage direction</a></li>
<li>


<a href="/en/artists/ludovic-palabaud/">Ludovic Palabaud</a> - 


<a href="/en/instruments/sound/">sound</a></li>
</ul>





















    
    
        
    

    
    
        
    

    
    
        
    

    
    





    

    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/cover_hu_a826462c41cd6d35.webp 1x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/cover_hu_33f8b46b2d4ccbd2.webp 2x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/cover_hu_4354e8b203ef53c4.webp 3x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/cover_hu_51fd19285847cd80.webp 3.75x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/cover_hu_2ac3ff0e5adf6b7d.jpeg 1x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/cover_hu_6dd9d6339a8ded3c.jpeg 2x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/cover_hu_3cab108bdb52ae45.jpeg 3x, /2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/cover_hu_71ce3675298a5239.jpeg 3.75x" />
        

        
        
        <img
            src="/2025/12/16/concert/yom-hypnotic-temple-%C3%A0-points-communs/cover_hu_2ac3ff0e5adf6b7d.jpeg"
             alt="The three artists on stage at the end of the concert." 
             title="The 3 artists on stage" 
        />

        
            <div class="credit">CC-BY-NC Ztec</div>
        
    </picture>


]]></description></item><item><title>Loot of the week about AI, Mélenchon, and Apple</title><link>https://blog.ztec.fr/en/2025/12/16/loot/loot-of-the-week-about-ai-m%C3%A9lenchon-and-apple/</link><pubDate>Tue, 16 Dec 2025 17:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/12/16/loot/loot-of-the-week-about-ai-m%C3%A9lenchon-and-apple/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_c2887782fd9fb37e.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d4d531407133ee26.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_c2887782fd9fb37e.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>I&rsquo;m late again. I think I&rsquo;ll have to get used to it and consider it normal. That way I won&rsquo;t be late anymore.</p>
<h2 id="tech">Tech</h2>
<p>Github Action is probably the most successfully <a href="https://en.wikipedia.org/wiki/Continuous_integration">CI</a> solutions since Jenkins. It completely killed any other (free) solutions for
open source, and start to do the same for companies and private projects. Personally, I&rsquo;m still convinced of the vast superiority
of Jenkins over any (if not all) other <a href="https://en.wikipedia.org/wiki/Continuous_integration">CI</a> solutions. I would even prefer it for <a href="https://en.wikipedia.org/wiki/Continuous_delivery">CD</a> as well in most cases. To be clear, I don&rsquo;t think
Jenkins is for everyone, or every projects, but all complaints I saw about it never goes away with other solutions, Github Action included.</p>
<p>On my side project, I use <a href="https://forgejo.org/">Forgejo</a> Actions (a copy of Github actions for Forgejo). Soo, yes, I&rsquo;m maybe not as coherent as I would like to be &#x1f648;
Anyway, this video show how microsoft pushed the product hardly, even pushing bad quality code and architecture. Fun and concerning to watch.
(keep in mind that bad code happens everywhere, to every developers. It happens)</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=E3_95BZYIVs">Why Github Why?</a> (YouTube)</li>
</ul>
<p>Interesting take about &ldquo;alternate&rdquo; version of a web page. Never really thought of using that to provide structured version of any page in addition of the HTML one.
I will probably try that and keep it in mind for future projects.</p>
<p>The AI side of the question is also interesting, and goes in the opposite direction of everyone wanting to block AI crawlers.
I&rsquo;m not convinced that we should ultimately block AI from crawling our content, either text or art. But doing it in a sustainable way is mandatory, and this can be part of the solution.
Today, Developers of AI companies are like babies, and did not learn from the decades of work we did in web crawling, indexing. What they create and deploy have a huge tendency to
impose huge load on infrastructure not sized ( and will never be sized ) to handle it. Working on new standards to help those babies developers to do things the right way may help.</p>
<ul>
<li><a href="https://shkspr.mobi/blog/2025/12/stop-crawling-my-html-you-dickheads-use-the-api/">Stop crawling my HTML you dickheads - use the API!</a></li>
</ul>
<h2 id="social">Social</h2>
<p>Two useful videos to watch.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=n8gCrQ3fWps">BUDGET 2026 : EN FINIR AVEC LA DETTE [ARGENT MAGIQUE]</a> (YouTube)</li>
<li><a href="https://www.youtube.com/watch?v=TQF3mVW5nVw">L&rsquo;ARNAQUE DU &ldquo;MANAGEMENT BIENVEILLANT&rdquo;</a> (YouTube)</li>
</ul>
<p>Interesting article that puts into writing many things I see in online activist circles:</p>
<ul>
<li><a href="https://www.hors-serie.net/melechon-2027-la-victoire-a-portee-de-main/">Pourquoi Mélenchon va gagner en 2027</a></li>
</ul>
<p>I&rsquo;m not as convinced as the author that people are, proportionally, more left-wing,
but especially that the majority of non-voters would turn out for the left.
It seems to me that we&rsquo;ve more often observed a certain balance in left/right mobilization on that front.
And that&rsquo;s probably what scares me the most.
The fact that many people will mobilize believing they&rsquo;re voting in their interest but will do so by voting fascist.
The most recent example being the last legislative elections, which despite the mobilization for the Nouveau Front Populaire, also saw strong RN mobilization.</p>
<p>I&rsquo;m intimately convinced that it&rsquo;s imperative to have the mobilization of racialized people, with real antiracist and decolonial proposals to counterbalance.
Create a real proposal that shows a desirable future for EVERYONE, not just for white working classes.</p>
<p>As said in the article, only La France Insoumise represents these values, but they must not pull a Kamala Harris, and go seriously and all in.
Because half-measures or compromise on these issues won&rsquo;t mobilize.</p>
<h2 id="smolweb">SmolWeb</h2>
<p>I came across those two websites recently. Should be a mandatory (short) reading for any frontend web developer and designer. &#x1f609;</p>
<ul>
<li><a href="https://motherfuckingwebsite.com/">Motherfucking Website</a></li>
<li><a href="http://bettermotherfuckingwebsite.com/">Better Motherfucking Website</a></li>
</ul>
<h2 id="served-them-right">Served them right?</h2>
<p>This article goes in the long list of examples of how GAFAM and any online provider should never hold any important and relevant
part of your life. Backing up is a good practice, but should not be required to keep your data safe from sudden deletion by a provider.
As it is about Apple, and the guy seems to have dedicated his life to Apple, this article made me laugh a lot. This guy had the knowledge and brain to know
the risks, and still committed.</p>
<ul>
<li><a href="https://hey.paris/posts/appleid/">20 Years of Digital Life, Gone in an Instant, thanks to Apple</a></li>
</ul>
]]></description></item><item><title>A week of Violent Loot among other things</title><link>https://blog.ztec.fr/en/2025/12/08/loot/a-week-of-violent-loot-among-other-things/</link><pubDate>Mon, 08 Dec 2025 22:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/12/08/loot/a-week-of-violent-loot-among-other-things/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_aa85ba8fbb6eb76.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_6a8834505267dce8.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_aa85ba8fbb6eb76.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Already the second Loot, and I&rsquo;m late. I had to go back over my Blue and Red book (those who know will know). Let&rsquo;s go:</p>
<h2 id="tech">Tech</h2>
<p>A bit of entertainment with this Linus duo. Pretty fun and informative to watch.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=mfv0V1SxbNA">Building the PERFECT Linux PC with Linus Torvalds</a> (YouTube)</li>
</ul>
<p>An old piece but still very interesting. If you need to create or improve a documentation space, especially a technical one, read this (with plenty of references inside to reed as well):</p>
<ul>
<li><a href="https://gitbook.com/docs/guides/docs-best-practices/documentation-structure-tips">How to structure technical documentation: best practices</a></li>
</ul>
<p>New initiative to disable JavaScript by default in our browsers. Fun fact: this blog is supposed to be fully functional without JavaScript. &#x1f609;</p>
<ul>
<li><a href="https://%E3%83%9E%E3%83%AA%E3%82%A6%E3%82%B9.com/disable-javascript-org/">https://マリウス.com/disable-javascript-org/</a></li>
<li><a href="https://disable-javascript.org/">https://disable-javascript.org/</a></li>
</ul>
<h2 id="society">Society</h2>
<p>This show is interesting because it tackles a topic that doesn&rsquo;t get much coverage. I hope they come back to it, with more details and examples in particular.
Feel free to skip to minute 14 for the real content of the video and skip the funny quiz at the beginning, which I personally didn&rsquo;t find that interesting.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=Ob6_7l6HC7c">Esclavage, racisme, whitewashing : Ces jeux vidéo problématiques - Disculture EP.2</a></li>
</ul>
<p>I now take a lot of distance from Sismique&rsquo;s episodes (I&rsquo;ll probably explain in detail why someday), but this one is a pretty good summary and analysis of violence and how we are exposed to it. I like how it connects
the decrease in violence with changes in our exposure to it. I hadn&rsquo;t really realised this shift, nor the effects it causes, especially in terms of decontextualisation and the disappearance of spaces where we can talk about it.
The fact that we no longer have suitable, dedicated spaces, even slightly hidden ones, to talk about violence is quite similar to the question of exposure to porn (especially for younger people).
Anyway, it&rsquo;s a great episode: it makes you think and gives a lot of leads to dig into.</p>
<ul>
<li><a href="https://shows.acast.com/sismique/episodes/69282077b2de0aa78e80951a">Violence sur nos écrans : la banalisation du mal | #PAUSE - Sismique - Où va le monde ?</a> (podcast)</li>
</ul>
<p>A very good documentary about Trump&rsquo;s America and how/why Americans vote for him.
Sometimes hard to watch, but very informative without falling into the &ldquo;we have to hear all sides&rdquo; trap, because it doesn&rsquo;t put all viewpoints on the same level.</p>





















    
    
        
    

    
    
        
    

    
    
        
    

    
    
        
    





    

    

    

    


    
    



    <picture class="inner-cover type-left">
        
        
            <source type="image/webp" srcset="/2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_e32b5ad1ca86451b.webp 1x, /2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_c6a26cefeaa47c26.webp 2x, /2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_c2c3bfe199dd7a50.webp 3x, /2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_cb80dcad6ce98605.webp 4x, /2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_c3b632ae97b59f24.webp 5.33x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_43c062d493cf6e3f.jpg 1x, /2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_c17fe3135bd74bee.jpg 2x, /2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_99dc82000ce2bfa.jpg 3x, /2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_57ab1f6d6f326800.jpg 4x, /2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_16640f743391b5f.jpg 5.33x" />
        

        
        
        <img
            src="/2025/12/08/loot/du-loot-violent-cette-semaine-et-dautre-trucs/HIGH%20SCHOOL%20RADICAL_hu_43c062d493cf6e3f.jpg"
             alt="HIGH SCHOOL RADICAL" 
             title="HIGH SCHOOL RADICAL" 
        />

        
    </picture>


<ul>
<li>
<p><a href="https://www.youtube.com/watch?v=wGaUReDvXew">Retour chez mes potes trumpistes (1/4)</a></p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=Vtq_F5EOKaM">Ça va mal finir (2/4)</a></p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=uhioLEQcpNk">Le fils qu&rsquo;ils n&rsquo;ont jamais eu (3/4)</a></p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=F4p-KHV2-Qw">Réveille-toi ! (4/4)</a>
<div class="clear"></div></p>
</li>
</ul>
<h2 id="music">Music</h2>
<p>While making the entry 


<a href="/en/2025/04/18/concert/makoto-ozone-trinfinity-at-le-duc-des-lombards/">Makoto Ozone - TRiNFiNiTY at Le Duc des Lombards</a> I discovered the recording of this concert.
Very happy to be able to watch and listen to it again. You can hear me clapping. &#x1f921;</p>
<ul>
<li><a href="https://philharmoniedeparis.fr/fr/live/concert/1163708-avishai-cohen-makoto-ozone">https://philharmoniedeparis.fr/fr/live/concert/1163708-avishai-cohen-makoto-ozone</a></li>
</ul>
<p>A nice video about the fully analog process of making a vinyl record. Very informative and it really makes you think about all the work required to produce all those trendy new records we see everywhere.</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=p18SspdBx_4">How Lacquer Masters are made changed my mind about vinyl. JUST LISTEN TO IT!</a> (YouTube)</li>
</ul>
<h2 id="train">Train</h2>
<ul>
<li><a href="https://www.youtube.com/watch?v=-KxQIEhsFQk">The fascinating world of Japanese train melodies</a> (YouTube)</li>
</ul>
<h2 id="paris--photography">Paris / Photography</h2>
<p>Seeing photos of all of Paris, including places where I&rsquo;ve lived, from the 70s is just so cool.
It&rsquo;s a different Paris, still a bit spared from cars, even though their invasion was already well underway.</p>
<ul>
<li><a href="https://paris1970.jeantho.eu/index.html">C&rsquo;était Paris en 1970</a></li>
</ul>
<h2 id="other">Other</h2>
<ul>
<li><a href="https://puginarug.com/">https://puginarug.com/</a> (a fascinating universe to explore)</li>
<li><a href="https://theuselessweb.com/">https://theuselessweb.com/</a> the rest of that universe</li>
</ul>
]]></description></item><item><title>When teddy bears in pyjamas take over Le Duc des Lombards</title><link>https://blog.ztec.fr/en/2025/12/01/concert/when-teddy-bears-in-pyjamas-take-over-le-duc-des-lombards/</link><pubDate>Mon, 01 Dec 2025 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2025/12/01/concert/when-teddy-bears-in-pyjamas-take-over-le-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_853c2973a9dfef63.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_24377e0b089918c3.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_853c2973a9dfef63.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Discovery of the day: Old School Funky Family at 


<a href="/en/places/le-duc-des-lombards/">Le Duc Des Lombards</a>. A rare occasion as they
don&rsquo;t come to Paris often.</p>
<p>Lots and lots of energy, fun, and enjoyment. The pyjama style is fun and perfectly matches the chill &amp; joyful vibe they created.</p>
<p>It&rsquo;s obvious that all members of the band really enjoy playing together. Lots of chemistry and interactions between them.
The audience isn&rsquo;t forgotten either, and they managed to get people standing up at the Duc, a cool but somewhat stuffy place.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt6pi9l8usr8zxeu">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_12151130044113449556_hu_f99c9074d9056187.webp 1x,
                                    /tile_500_14349177375787249265_hu_e863acc847512ced.webp 2x,
                                    /tile_1080_6294569451124913750_hu_18d30c10f616772a.webp 4x
                                 ">
                                    <img src="/tile_224_12151130044113449556_hu_f99c9074d9056187.webp" alt="The whole band (almost) around the keyboard player"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt6pi9jrcognklxn">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_3065197937785874552_hu_eb498e00f812edb9.webp 1x,
                                    /tile_500_1029121096329191035_hu_7ade0e4a7cd7b443.webp 2x,
                                    /tile_1080_1409816185542394032_hu_f4d37da1fe8b1ee.webp 4x
                                 ">
                                    <img src="/tile_224_3065197937785874552_hu_eb498e00f812edb9.webp" alt="The whole band (almost) around the keyboard player"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt6pi9jpobyomnzu">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_7882131093914789872_hu_ffad2c0a5a4fff0b.webp 1x,
                                    /tile_500_5338827010683672162_hu_d175f2f10a7d5224.webp 2x,
                                    /tile_1080_13309015511400161637_hu_d7e6822bab146dad.webp 4x
                                 ">
                                    <img src="/tile_224_7882131093914789872_hu_ffad2c0a5a4fff0b.webp" alt="A Teddy bear on a Cymbale "/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt6pi9jji8714rw8">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_8152501398565448379_hu_8ab839a2996d8d08.webp 1x,
                                    /tile_500_13582856268363519925_hu_37136589710ac8da.webp 2x,
                                    /tile_1080_3143655693981000277_hu_2dee36d31cb17d33.webp 4x
                                 ">
                                    <img src="/tile_224_8152501398565448379_hu_8ab839a2996d8d08.webp" alt="Drummer heavily concentrated in drumming"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt6pi9j8hmiw1kgv">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture class="photo">
                                
                                    
                                    <source srcset="
                                    /tile_224_6977560592277435141_hu_f50813d6ef011582.webp 1x,
                                    /tile_500_13843635064372923292_hu_57150e722aa2a5c6.webp 2x,
                                    /tile_1080_4930522005233364127_hu_4fdabf6eb5777ee.webp 4x
                                 ">
                                    <img src="/tile_224_6977560592277435141_hu_f50813d6ef011582.webp" alt="Old School Funky Family on stage in pyjama"/>
                                
                            </picture>
                        
                        
                    
    
                
            
    
        
    
                </a>
            
        
    


</div>
<p>On the musical side, it&rsquo;s fun and funk. A bit of big band sometimes but without fanfare. Electro and classic
jazz mix together neatly. The 


<a href="/en/instruments/sousaphone/">Sousaphone</a> is really nice. Never heard of it before. I like it.
The Duc removed the enormous grand piano that usually takes half the stage to make all 8 (eight!!!) musicians fit.</p>
<p>A few listening tracks to discover:</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=4OM7_UpLlYA">Bamboche &amp; Chaloupade</a> (YouTube)</li>
<li><a href="https://www.youtube.com/watch?v=nCymfQgakqg">Ceci Est Une Patate !</a> (YouTube)</li>
<li><a href="https://www.youtube.com/watch?v=XAvhasdmtBs">Le Bon, La Brute et Le Centriste</a> (YouTube)</li>
<li>and on usual streaming platforms.</li>
</ul>
<p>I strongly recommend listening to them, but most importantly, go see them live if you can. The experience is way better than albums.
So much more energy. You can go without hesitation, I assure you.</p>
<p>They remind me of another band with a different style but the same energy on stage: 


<a href="/en/artists/who-parked-the-car/">Who Parked The Car</a>. They&rsquo;re also
cramped on small stages (especially at Sunset Sunside) due to the number of people, but they have so much energy it&rsquo;s really nice to experience.</p>
<p>The Crowd Breakdown: Diverse and young. As usual at the Duc, there&rsquo;s always a fair amount of tourists. Overall, the audience
was really diverse in all aspects. I often do a quick sweep of the crowd at concerts I attend. I&rsquo;m looking for obvious demographic over-representation,
or lack thereof. Absolutely not scientific at all, but it&rsquo;s interesting and fun to know who came and if you feel you fit in. In jazz, the common
case is to see lots of white dudes over 50. Tonight, that wasn&rsquo;t the case, and it&rsquo;s cool.</p>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/12/01/concert/quand-des-nounours-en-pyjama-envahissent-le-duc-des-lombards/cover_hu_53354adf619cc7c5.webp 1x, /2025/12/01/concert/quand-des-nounours-en-pyjama-envahissent-le-duc-des-lombards/cover_hu_75e00233e970f86a.webp 1.50x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/12/01/concert/quand-des-nounours-en-pyjama-envahissent-le-duc-des-lombards/cover_hu_d16e4ae4138bdcd8.jpg 1x, /2025/12/01/concert/quand-des-nounours-en-pyjama-envahissent-le-duc-des-lombards/cover_hu_54db843f7bde1aed.jpg 1.50x" />
        

        
        
        <img
            src="/2025/12/01/concert/quand-des-nounours-en-pyjama-envahissent-le-duc-des-lombards/cover_hu_d16e4ae4138bdcd8.jpg"
             alt="The band, all wearing pyjamas and yawning. Many plushies are hanging everywhere around them." 
             title="The band" 
        />

        
            <div class="credit">℗ 2025 Pleins Poumons Productions</div>
        
    </picture>


]]></description></item><item><title>December 1st loot</title><link>https://blog.ztec.fr/en/2025/12/01/loot/december-1st-loot/</link><pubDate>Mon, 01 Dec 2025 18:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/12/01/loot/december-1st-loot/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_882d7bbd9f6aa72c.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_7ee994f2d7086fed.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_882d7bbd9f6aa72c.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>This is the inaugural loot, the first haul from my exploration. This week&rsquo;s drops: readings, listenings, viewings, and other encounters that gave me XP or made me think.
Whether the drops are fresh or farmed long ago, doesn&rsquo;t matter.</p>
<p>Everything I pick up and share doesn&rsquo;t necessarily reflect my opinions, and at no point does sharing something here mean unconditional support for its
content or its author. However, if I add something to my inventory, it&rsquo;s because I believe it&rsquo;s an interesting item, even if I won&rsquo;t necessarily equip it.</p>
<p>I won&rsquo;t pretend to be objective. The loot is already sorted by my criteria, no need to specify each item&rsquo;s rarity, you&rsquo;ll see what I equip or what I skip.</p>
<p>I won&rsquo;t limit myself to tech drops either.</p>
<p>In form, a simple list of items with sometimes lore when I have something to say other than &ldquo;it&rsquo;s legendary, go loot it&rdquo;.
As for categories, I&rsquo;ll probably craft them by educated guess. If you have farming spot recommendations, feel free to share them through one of my <a href="https://www.ztec.fr/en/social/">networks</a>.</p>
<p>Last thing, the game is available in French and English. So if you don&rsquo;t have these language packs installed, sorry, you won&rsquo;t be able to understand everything. If some articles have official translations, I&rsquo;ll obviously use them, but it&rsquo;s quite rare.</p>
<p>Alright, let&rsquo;s go:</p>
<h2 id="tech">Tech</h2>
<ul>
<li><a href="https://rameerez.com/send-this-article-to-your-friend-who-still-thinks-the-cloud-is-a-good-idea/">Send this article to your friend who still thinks the cloud is a good idea</a></li>
</ul>
<p>Cloud this, cloud that. We see it everywhere, and the small company that needs to host 3 peanuts does it by default on one of
the 3 hyperscalers (Google, Amazon, Azure). It&rsquo;s annoying from a GDPR regulation standpoint (because it&rsquo;s incompatible), but also because
it makes many companies complex and dependent on these techs.</p>
<p>The article is good, however it&rsquo;s a bit too one-sided for my taste. A bit as if these techs are never useful. Never in the sense
of statistically insignificant. I think it&rsquo;s more often useful than assumed by the author. However, you need to know how to identify the needs
that justify it and the timing. On this last point, I agree with him that no, we can often do without cloud and the techs are really not
objective on these two aspects (I add that).</p>
<p>Also, using these tools comes with many (good) practices. Particularly concerning development cycles, with for example the almost obligation
to automate deployments, and observability which is almost imposed with patterns rather recognized as effective. And when you know how difficult
it is to have healthy development practices from end to end (from product manager to prod through dev), starting from the base proposed by
cloud also often makes sense. And the fact that Devs and Architects know how to handle them rather well is also a plus.</p>
<p>Basically, it&rsquo;s often useless to do cloud, and a simple CDN is enough to handle the load, with a fairly large server. But it&rsquo;s not necessarily desirable if
good dev practices are not there due to a lack of knowledge, or investment in them. Something that is often somewhat mandatory with cloud.</p>
<p>Ideally, a European GDPR-compliant cloud with mature technical solutions would be best. And having one or two dedicated servers should also
be seen as a good solution rather than being criticized or dismissed as outdated.</p>
<ul>
<li>
<p><a href="https://medium.com/@jamauriceholt.com/the-database-that-killed-my-wife-79669f5f0c76">The Database That Killed My Wife</a></p>
</li>
<li>
<p>Podcast: <a href="https://rdgp.fr/@rdgp/episodes/actu-chronique-de-lemmerdification-du-web-detournement-de-finalite-et-absence-de-base-legale-du-rgpd">Chronique de l&rsquo;emmerdification du Web, détournement de finalité et absence de base légale du RGPD</a></p>
</li>
</ul>
<h2 id="social">Social</h2>
<ul>
<li>
<p><a href="https://www.youtube.com/watch?v=lbvV0hBB9Fw">La solution pour sauver le Festival de BD d&rsquo;Angoulême</a></p>
</li>
<li>
<p><a href="https://blogs.mediapart.fr/zoe-dubus/blog/291125/ma-premiere-soiree-en-club-parisien">Ma première soirée en club parisien</a></p>
</li>
</ul>
<p>I&rsquo;m not a drug user, and I never have been. However, I&rsquo;ve had my share of bad experiences in Parisian clubs, but that was when I was young.
Like the author, I&rsquo;m surprised, and pleasantly so, that such positive and respectful spaces can and do exist now. Hoping this becomes normalized.</p>
<ul>
<li>
<p><a href="https://treshautdebit.substack.com/p/coder-son-site-web-dernier-geste">Internet est mort. Voici comment le ressusciter</a></p>
</li>
<li>
<p><a href="https://www.youtube.com/watch?v=Q2HELeI-KuE">Électricité : factures en hausse, qualité en baisse : où est passé l’argent d’ENEDIS ?</a></p>
</li>
<li>
<p><a href="https://lareleveetlapeste.fr/ce-juge-francais-est-interdit-bancaire-sur-toute-la-planete-a-cause-de-trump/">Ce juge français est « interdit bancaire sur toute la planète » à cause de Trump</a></p>
</li>
</ul>
<p>When you know that associations and activists have been describing exactly what&rsquo;s happening now for surely more than 20 years, it&rsquo;s an angry &ldquo;we told you so&rdquo; that comes first. If you
want to know the next predictions, check out <a href="https://www.laquadrature.net/">La Quadrature du Net</a> for example and their site <a href="https://technopolice.fr/">Technopolice</a>.</p>
<h2 id="science-and-consciousness">Science and Consciousness</h2>
<p>These two links are interesting to read/listen to one after the other (in no particular order). Also, I recommend all of <a href="https://www.youtube.com/@MonsieurPhi">Monsieur phi</a>&rsquo;s videos on the subject of LLMs.</p>
<ul>
<li><a href="https://www.zmescience.com/science/biology/consciousness-could-be-an-ancient-trait-evolved-millions-of-years-ago-not-a-human-superpower/">Consciousness Could Be an Ancient Trait Evolved Millions of Years Ago, Not a Human Superpower</a></li>
<li>Video Podcast: <a href="https://www.youtube.com/watch?v=HlGv8ssW5Qs">What if ChatGPT was already conscious? - Albert Moukheiber and Monsieur Phi</a></li>
</ul>
]]></description></item><item><title>Takuya Kuroda plays at New morning Paris</title><link>https://blog.ztec.fr/en/2025/11/19/concert/takuya-kuroda-plays-at-new-morning-paris/</link><pubDate>Wed, 19 Nov 2025 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2025/11/19/concert/takuya-kuroda-plays-at-new-morning-paris/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4af6c977b1e556b3.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_9cca3c42fa4c1d5f.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4af6c977b1e556b3.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        




















    
    
        
    

    
    
        
    

    
    
        
    

    
    





    

    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/11/19/concert/takuya-kuroda-au-new-morning/cover_hu_bc769e7587375de5.webp 1x, /2025/11/19/concert/takuya-kuroda-au-new-morning/cover_hu_765bc6b0de032da0.webp 2x, /2025/11/19/concert/takuya-kuroda-au-new-morning/cover_hu_65b80f5f8125aa98.webp 3x, /2025/11/19/concert/takuya-kuroda-au-new-morning/cover_hu_1e903ce7d8be4986.webp 3.75x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/11/19/concert/takuya-kuroda-au-new-morning/cover_hu_4f8544443cb3cf87.jpg 1x, /2025/11/19/concert/takuya-kuroda-au-new-morning/cover_hu_83b8df03aadf32c6.jpg 2x, /2025/11/19/concert/takuya-kuroda-au-new-morning/cover_hu_fbd5e130947d12b7.jpg 3x, /2025/11/19/concert/takuya-kuroda-au-new-morning/cover_hu_7ef37275029bfd02.jpg 3.75x" />
        

        
        
        <img
            src="/2025/11/19/concert/takuya-kuroda-au-new-morning/cover_hu_4f8544443cb3cf87.jpg"
             alt="Takuya Kuroda sitting on the front steps of a building, possibly in New York, holding his trumpet" 
             title="Takuya Kuroda" 
        />

        
            <div class="credit">ⓒ Hiroyuki Seo</div>
        
    </picture>


<p>Second time for me seeing Takuya Kuroda and his band at New Morning.
Still as classy and jazzy as ever. Each story is delightfully told through
music, easy to follow.</p>
<p>Those guys are pro, precise and fluid. They know their stuff.</p>
<p>The electro/jazz mix is still as good.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt6plh6lfco4we4t">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
                    <figure class="photo photo">
                        
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture >
                                
                                    
                                    <source srcset="
                                    /tile_224_17415736107600134564_hu_ebdbea8dbc4e0ee9.webp 1x,
                                    /tile_500_10773677744434068760_hu_c596460acb4b020a.webp 2x,
                                    /tile_1080_13714704027314332892_hu_9d1a25bd376e2ae6.webp 4x
                                 ">
                                    <img src="/tile_224_17415736107600134564_hu_ebdbea8dbc4e0ee9.webp" alt="Takuya Kuroda playing Trumpet"/>
                                
                            </picture>
                        
                        
                            
                                <figcaption>
                                    
                                        Takuya Kuroda
                                    
                                </figcaption>
                            
                        
                    
                    </figure>
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt6plh5mvs8xihgg">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
                    <figure class="photo photo">
                        
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture >
                                
                                    
                                    <source srcset="
                                    /tile_224_18157215724497701687_hu_4eaa249aeffbfc54.webp 1x,
                                    /tile_500_11677362164447287882_hu_517159483ff01e7c.webp 2x,
                                    /tile_1080_9681634972197276694_hu_3c7f13c954a63a2d.webp 4x
                                 ">
                                    <img src="/tile_224_18157215724497701687_hu_4eaa249aeffbfc54.webp" alt="David Frazier playing drums with sun glasses"/>
                                
                            </picture>
                        
                        
                            
                                <figcaption>
                                    
                                        David Frazier
                                    
                                </figcaption>
                            
                        
                    
                    </figure>
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt6plh5uy6s12xjq">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
                    <figure class="photo photo">
                        
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture >
                                
                                    
                                    <source srcset="
                                    /tile_224_15498925684590311721_hu_ea006ce39cb144b7.webp 1x,
                                    /tile_500_2755446488681773025_hu_fdf4699d7537f88a.webp 2x,
                                    /tile_1080_1094610091709138283_hu_8e75ee972c9d8c60.webp 4x
                                 ">
                                    <img src="/tile_224_15498925684590311721_hu_ea006ce39cb144b7.webp" alt="Craig Hill playing Saxophone"/>
                                
                            </picture>
                        
                        
                            
                                <figcaption>
                                    
                                        Craig Hill
                                    
                                </figcaption>
                            
                        
                    
                    </figure>
                    
    
                
            
    
        
    
                </a>
            
                
                
                <a class="hidden-link" href="https://photos.ztec.fr/p/pt6plh5y9vsp4l3t">
                    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
            
            
            
            
            
            
                
                    
                    
                    
                    
                    
                        
                            
                        
                    
                        
                    
                    
                    
                    
                    
                    
                    
                    
                    <figure class="photo photo">
                        
    
                        
                            
                            
                            
                            
    
                            
                            
                            
                            
                            
                            
    
                            
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
    
                                
                                
                                
    
                                
                                
                                
                                
                                    
                                    
                                        
                                    
                                    
                                    
                                    
                                    
                                    
                                
                                
                                    
                                    
                                    
                                        
                                        
                                        
                                    
                                
    
    
                            
    
                            
                            
                            
    
                            <picture >
                                
                                    
                                    <source srcset="
                                    /tile_224_471854610010777514_hu_f7f80f6327fce48.webp 1x,
                                    /tile_500_1969729108922811452_hu_480f01e3ef06960f.webp 2x,
                                    /tile_1080_12080547733689652780_hu_a7db64ede206e830.webp 4x
                                 ">
                                    <img src="/tile_224_471854610010777514_hu_f7f80f6327fce48.webp" alt="Takahiro Izumikawa playing with knobs of his keyboard"/>
                                
                            </picture>
                        
                        
                            
                                <figcaption>
                                    
                                        Takahiro Izumikawa
                                    
                                </figcaption>
                            
                        
                    
                    </figure>
                    
    
                
            
    
        
    
                </a>
            
        
    


</div>
<p>Takuya Kuroda san told the story about the track &ldquo;<a href="https://www.youtube.com/watch?v=E8vr1QvOMKw">Car 16 15 A</a>&rdquo; like last time.
Always a pleasure to listen to it, especially live where the band takes time
to develop each movement. A little preview on <a href="https://www.youtube.com/watch?v=E8vr1QvOMKw">youtube</a> for the curious, but
live is by far even better.</p>
<p>The Crowd Breakdown: Diverse and young. A few tourists as usual. I had the opportunity to talk to a Japanese lady
and exchange a few recommendations. It was really nice. As always at New Morning, people stay standing and move well.
But don&rsquo;t forget it&rsquo;s jazz sooo no pogos!</p>
]]></description></item><item><title>The story of migrating a (not so) REST API to GraphQL – the Deezer experience</title><link>https://blog.ztec.fr/en/2025/post/rex-migration-graphql-deezer/</link><pubDate>Mon, 10 Nov 2025 00:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/post/rex-migration-graphql-deezer/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    <img src="https://blog.ztec.fr/2025/post/rex-migration-graphql-deezer/video-preview.png"
                                         alt="OpenGraph preview"
                                         class="og-image-preview"/>
                                
                            
                        
                        <p>At Deezer, we decided to move from a homegrown (not really REST) API to GraphQL. Why? That&rsquo;s not the point here.
I&rsquo;m focusing on the how.</p>
<p>Here&rsquo;s an account of how we managed this large-scale migration and some of the challenges we faced.</p>
<blockquote>
<p>Conflict of interest disclosure: Deezer is my employer &#x1f61b; for 10 years now.</p>
</blockquote>
<p>This is a talk I gave at the <a href="https://www.meetup.com/parisgraphql">GraphQL Paris</a> meetup in October 2025.
It gives a broad overview of the topic to fit within a 30-minute presentation slot.</p>
<p>If you&rsquo;d like to know more about a specific aspect, let me know on social media so I can cover it in more detail next time
I present on this subject.</p>
<h2 id="presentation-slides">Presentation slides</h2>
<p>You can find the slides here (in English):</p>
<ul>
<li><a href="/2025/post/rex-migration-graphql-deezer/The-journey-from-not-REST-to-GraphQL-at-scale-The-Deezer-experience.pdf">PDF</a></li>
<li><a href="https://www.slideshare.net/slideshow/the-journey-from-not-rest-to-graphql-at-scale-the-deezer-experience/283901068">Slideshare</a></li>
</ul>
<h2 id="conference-video">Conference video</h2>
<p>Watch the full talk on YouTube:</p>
<blockquote>
<p><strong>Disclaimer:</strong> The video is in French, but the slides are in English.</p>
</blockquote>









    
        
    




    
        
    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="https://www.youtube.com/watch?v=D8dlHdovZdg"
            target="_blank"
    >
        <img
                src="/2025/post/rex-migration-graphql-deezer/video-preview_hu_cd35ac3d7297d455.png"
                 alt="Deezer API migration to GraphQL presentation" 
                 title="[The story of migrating a (not so) REST API to GraphQL – the Deezer experience](https://www.youtube.com/watch?v=D8dlHdovZdg)" 
        />
    </a>
     <figcaption><a href="https://www.youtube.com/watch?v=D8dlHdovZdg">The story of migrating a (not so) REST API to GraphQL – the Deezer experience</a></figcaption> 
</figure>
<p>Thanks for reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item><item><title>Jazz for Palestine at La Petite Halle</title><link>https://blog.ztec.fr/en/2025/06/30/concert/jazz-for-palestine-at-la-petite-halle/</link><pubDate>Mon, 30 Jun 2025 19:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/06/30/concert/jazz-for-palestine-at-la-petite-halle/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_e37df14819e8a22d.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ae14498892d32948.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_e37df14819e8a22d.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>A charitable musical evening bringing together numerous jazz artists in solidarity with Gaza.</p>
<p>All ticket proceeds has been donated to humanitarian aid via UNICEF and the France Palestine Solidarity Association.</p>
<h2 id="participating-artists">Participating Artists</h2>
<p>


<a href="/en/artists/alain-jean-marie/">Alain Jean-Marie</a>, 


<a href="/en/artists/cl%C3%A9lya-abraham/">Clélya Abraham</a>, 


<a href="/en/artists/na%C3%AFssam-jalal/">Naïssam Jalal</a>, 


<a href="/en/artists/erik-truffaz/">Erik Truffaz</a>, 


<a href="/en/artists/estrella-besson/">Estrella Besson</a>, 


<a href="/en/artists/lynn-adib/">Lynn Adib</a>, 


<a href="/en/artists/cyril-atef/">Cyril Atef</a>, 


<a href="/en/artists/arnaud-dolmen/">Arnaud Dolmen</a>, 


<a href="/en/artists/tony-tixier/">Tony Tixier</a>, 


<a href="/en/artists/clim%C3%A8ne-zarkan/">Climène Zarkan</a>, 


<a href="/en/artists/baptiste-ferrandis/">Baptiste Ferrandis</a> (Sarab), 


<a href="/en/artists/leonardo-montana/">Leonardo Montana</a>, 


<a href="/en/artists/no%C3%A9-codjia/">Noé Codjia</a>, 


<a href="/en/artists/neil-saidi/">Neil Saidi</a> 5tet, 


<a href="/en/artists/charlotte-planchou/">Charlotte Planchou</a>, 


<a href="/en/artists/mark-priore/">Mark Priore</a>, 


<a href="/en/artists/lukmil-perez/">Lukmil Perez</a>, 


<a href="/en/artists/mohamed-abozekry/">Mohamed Abozekry</a>, 


<a href="/en/artists/lina-bela%C3%AFd/">Lina Belaïd</a>, 


<a href="/en/artists/wadie-naim/">Wadie Naim</a>, 


<a href="/en/artists/jules-jassef/">Jules Jassef</a>, 


<a href="/en/artists/l%C3%A9o-jassef/">Léo Jassef</a>, 


<a href="/en/artists/omarhaba/">Omarhaba</a>, 


<a href="/en/artists/corentin-giniaux/">Corentin Giniaux</a>, 


<a href="/en/artists/enzo-carniel/">Enzo Carniel</a>, 


<a href="/en/artists/melvin-marquez/">Melvin Marquez</a>, 


<a href="/en/artists/camille-prenant/">Camille Prenant</a>, 


<a href="/en/artists/laure-sanchez/">Laure Sanchez</a>, 


<a href="/en/artists/david-paycha/">David Paycha</a>, 


<a href="/en/artists/no%C3%A9-huchard/">Noé Huchard</a>, 


<a href="/en/artists/cl%C3%A9ment-daldosso/">Clément Daldosso</a>, 


<a href="/en/artists/kevin-lazakis/">Kevin Lazakis</a>, 


<a href="/en/artists/samuel-fhima/">Samuel F&#39;hima</a>, 


<a href="/en/artists/tom-peyron/">Tom Peyron</a>, 


<a href="/en/artists/philippe-maniez/">Philippe Maniez</a>, 


<a href="/en/artists/pablo-campos/">Pablo Campos</a>, 


<a href="/en/artists/malte-arndal/">Malte Arndal</a>, and 


<a href="/en/artists/zoot-big-band/">Zoot Big Band</a>.</p>
]]></description></item><item><title>BadBadNotGood at Philharmonie de Paris</title><link>https://blog.ztec.fr/en/2025/06/29/concert/badbadnotgood-at-philharmonie-de-paris/</link><pubDate>Sun, 29 Jun 2025 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/06/29/concert/badbadnotgood-at-philharmonie-de-paris/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_e8e464b97901cce5.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_9bb1ca90dcc89821.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_e8e464b97901cce5.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="badbadnotgood">BadBadNotGood</h2>
<ul>
<li>


<a href="/en/artists/al-sowinski/">Al Sowinski</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/chester-hansen/">Chester Hansen</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/leland-whitty/">Leland Whitty</a> - 


<a href="/en/instruments/guitar/">Guitar</a>, 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/felix-fox/">Felix Fox</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/juan-carlos-medrano-magallanes/">Juan Carlos Medrano Magallanes</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
<li>


<a href="/en/artists/kae-murphy/">Kae Murphy</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a>, 


<a href="/en/instruments/evi-synthesizer/">EVI synthesizer</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover_hu_1125a0eb2a13b272.webp 1x, /2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover_hu_e13ba8c6c466e9ac.webp 1.79x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover_hu_54f602f0108c8a6f.jpg 1x, /2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover_hu_54876ef68abc4e8b.jpg 1.79x" />
        

        
        
        <img
            src="/2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover_hu_54f602f0108c8a6f.jpg"
             alt="BadBadNotGood" 
             title="BadBadNotGood" 
        />

        
            <div class="credit">©Sylvain Chausse</div>
        
    </picture>


<h2 id="opening-act">Opening act</h2>
<ul>
<li>


<a href="/en/artists/yazmin-lacey/">Yazmin Lacey</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover2_hu_5d2ef203532ec7d2.webp 1x, /2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover2_hu_7059c9ad340eff0c.webp 1.38x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover2_hu_d146b08c1be3360a.jpg 1x, /2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover2_hu_574bbaba63f185d5.jpg 1.38x" />
        

        
        
        <img
            src="/2025/06/29/concert/badbadnotgood-%C3%A0-la-philharmonie-de-paris/cover2_hu_d146b08c1be3360a.jpg"
             alt="Yazmin Lacey" 
             title="Yazmin Lacey" 
        />

        
            <div class="credit">©Myah Jeffers</div>
        
    </picture>


]]></description></item><item><title>Naïssam Jalal at Studio Ermitage</title><link>https://blog.ztec.fr/en/2025/06/10/concert/na%C3%AFssam-jalal-at-studio-ermitage/</link><pubDate>Tue, 10 Jun 2025 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/06/10/concert/na%C3%AFssam-jalal-at-studio-ermitage/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_b3e678b8ca98cf42.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_7da5ca0aab03a628.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_b3e678b8ca98cf42.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Recording of the show: <a href="https://www.youtube.com/watch?app=desktop&amp;v=DIeZf5OzPBk">Naïssam Jalal - &lsquo;Souffles&rsquo; Full Concert, Studio de l&rsquo;Ermitage 2025</a></p>
<ul>
<li>


<a href="/en/artists/na%C3%AFssam-jalal/">Naïssam Jalal</a> - 


<a href="/en/instruments/flute/">flute</a>, 


<a href="/en/instruments/voice/">voice</a>, composition</li>
<li>


<a href="/en/artists/yom/">Yom</a> - 


<a href="/en/instruments/clarinet/">Clarinet</a></li>
<li>


<a href="/en/artists/emile-parisien/">Emile Parisien</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/robinson-khoury/">Robinson Khoury</a> - 


<a href="/en/instruments/trombone/">Trombone</a></li>
<li>


<a href="/en/artists/sylvain-rifflet/">Sylvain Rifflet</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/06/10/concert/na%C3%AFssam-jalal-au-studio-ermitage/cover_hu_993fcb96d099ebe5.webp 1x, /2025/06/10/concert/na%C3%AFssam-jalal-au-studio-ermitage/cover_hu_469f112cad8e006d.webp 1.04x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/06/10/concert/na%C3%AFssam-jalal-au-studio-ermitage/cover_hu_dfb6cc2877485ab8.jpg 1x, /2025/06/10/concert/na%C3%AFssam-jalal-au-studio-ermitage/cover_hu_8f6695b516002ee0.jpg 1.04x" />
        

        
        
        <img
            src="/2025/06/10/concert/na%C3%AFssam-jalal-au-studio-ermitage/cover_hu_dfb6cc2877485ab8.jpg"
             alt="Naïssam Jalal" 
             title="Naïssam Jalal" 
        />

        
            <div class="credit">©Alexandre Lacombe</div>
        
    </picture>


]]></description></item><item><title>Who Parked the Car at Sunset Sunside</title><link>https://blog.ztec.fr/en/2025/05/10/concert/who-parked-the-car-at-sunset-sunside/</link><pubDate>Sat, 10 May 2025 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/05/10/concert/who-parked-the-car-at-sunset-sunside/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_91cee7d16ee821cd.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_18552cf4f4291050.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_91cee7d16ee821cd.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/thomas-salvatore/">Thomas Salvatore</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a>, 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/sebasti%C3%A1n-mu%C3%B1oz/">Sebastián Muñoz</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/f%C3%A9lix-reneault/">Félix Reneault</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/c%C3%A9sar-aouill%C3%A9/">César Aouillé</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/ludovic-prieur/">Ludovic Prieur</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/malo-ropers/">Malo Ropers</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
<li>


<a href="/en/artists/alejandro-dixon/">Alejandro Dixon</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/05/10/concert/who-parked-the-car-au-sunset-sunside/cover_hu_76d3d9cde12244ee.webp 1x, /2025/05/10/concert/who-parked-the-car-au-sunset-sunside/cover_hu_74f900a55fffe85b.webp 1.50x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/05/10/concert/who-parked-the-car-au-sunset-sunside/cover_hu_bddc303502c993a9.jpg 1x, /2025/05/10/concert/who-parked-the-car-au-sunset-sunside/cover_hu_9e153a57aa95714c.jpg 1.50x" />
        

        
        
        <img
            src="/2025/05/10/concert/who-parked-the-car-au-sunset-sunside/cover_hu_bddc303502c993a9.jpg"
             alt="Who Parked the Car" 
             title="Who Parked the Car" 
        />

        
            <div class="credit">©Yoel Reboh</div>
        
    </picture>


]]></description></item><item><title>Moeun at Le Duc des Lombards</title><link>https://blog.ztec.fr/en/2025/04/22/concert/moeun-at-le-duc-des-lombards/</link><pubDate>Tue, 22 Apr 2025 21:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/04/22/concert/moeun-at-le-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_5b3b3ed365433ab8.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d52684b78ebeea74.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_5b3b3ed365433ab8.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/moeun-son/">Moeun Son</a> - 


<a href="/en/instruments/violin/">Violin</a>, compositions</li>
<li>


<a href="/en/artists/dexter-goldberg/">Dexter Goldberg</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/romain-habert/">Romain Habert</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/julia-richard/">Julia Richard</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/wadie-naim/">Wadie Naim</a> - 


<a href="/en/instruments/percussion/">Percussion</a>, 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/04/22/concert/moeun-au-duc-des-lombards/cover_hu_32b1e8a17c08a17f.webp 1x, /2025/04/22/concert/moeun-au-duc-des-lombards/cover_hu_8c7afff01042aafb.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/04/22/concert/moeun-au-duc-des-lombards/cover_hu_3ed72ec8d855616f.jpg 1x, /2025/04/22/concert/moeun-au-duc-des-lombards/cover_hu_39f56aec9dc96d07.jpg 1.60x" />
        

        
        
        <img
            src="/2025/04/22/concert/moeun-au-duc-des-lombards/cover_hu_3ed72ec8d855616f.jpg"
             alt="Moeun" 
             title="Moeun" 
        />

        
            <div class="credit">©unknown</div>
        
    </picture>


]]></description></item><item><title>Makoto Ozone - TRiNFiNiTY at Le Duc des Lombards</title><link>https://blog.ztec.fr/en/2025/04/18/concert/makoto-ozone-trinfinity-at-le-duc-des-lombards/</link><pubDate>Fri, 18 Apr 2025 19:30:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/04/18/concert/makoto-ozone-trinfinity-at-le-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_12f60ee641b55b3b.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_91e74c99a9325bf1.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_12f60ee641b55b3b.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/makoto-ozone/">Makoto Ozone</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/kunito-kitai/">Kunito Kitai</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/shimpei-ogawa/">Shimpei Ogawa</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
</ul>
<p><a href="https://www.youtube.com/watch?v=dDgJW62IELU">Makoto Ozone &ldquo;Trinfinity&rdquo; - Momentary Moment</a> (Youtube)</p>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2025/04/18/concert/makoto-ozone-trinfinity-au-duc-des-lombards/cover_hu_929a802e3b18bce9.webp 1x, /2025/04/18/concert/makoto-ozone-trinfinity-au-duc-des-lombards/cover_hu_fcf597f3b26fd8a4.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2025/04/18/concert/makoto-ozone-trinfinity-au-duc-des-lombards/cover_hu_bf417d41862193fe.jpg 1x, /2025/04/18/concert/makoto-ozone-trinfinity-au-duc-des-lombards/cover_hu_93e40d93612dba0b.jpg 1.60x" />
        

        
        
        <img
            src="/2025/04/18/concert/makoto-ozone-trinfinity-au-duc-des-lombards/cover_hu_bf417d41862193fe.jpg"
             alt="Makoto Ozone - TRiNFiNiTY" 
             title="Makoto Ozone - TRiNFiNiTY" 
        />

        
            <div class="credit">©unknown</div>
        
    </picture>


]]></description></item><item><title>GraphQL JIT, is it worth it?</title><link>https://blog.ztec.fr/en/2025/post/is-graphql-jit-worth-it/</link><pubDate>Wed, 29 Jan 2025 00:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2025/post/is-graphql-jit-worth-it/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    <img src="https://blog.ztec.fr/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/cover-en.jpg"
                                         alt="OpenGraph preview"
                                         class="og-image-preview"/>
                                
                            
                        
                        <h2 id="backstory">Backstory</h2>
<p>A few years ago, I designed and set up a GraphQL server at Deezer. Among all the challenges I faced, one was related to performance. Designing a GraphQL server that is both convenient to use and performant is not an easy task, especially in Node.js.</p>
<p>One of the optimizations we made with <a href="https://fr.linkedin.com/in/jimmythomasinfo">Jimmy Thomas</a> was to use <a href="https://github.com/zalando-incubator/graphql-jit">GraphQL JIT</a> instead of the default GraphQL execution engine.
The <a href="https://github.com/zalando-incubator/graphql-jit?tab=readme-ov-file#why">README</a> claims to improve response time and increase the number of queries that can be executed per second by reducing the CPU time it takes to compute a single query.</p>
<h2 id="what-is-graphql-jit">What is GraphQL JIT</h2>
<p>GraphQL JIT is a Just-In-Time compiler for GraphQL queries. It is designed to take advantage of <a href="https://en.wikipedia.org/wiki/V8_%28JavaScript_engine%29">V8</a> optimizations to increase performance. It is a drop-in replacement for the default execution engine of GraphQL, with a few restrictions.
One of the most important is stated in the project&rsquo;s README:</p>
<blockquote>
<p>All computed properties must have a resolver, and only these can return a Promise.</p>
</blockquote>
<p>Depending on how you design your server, this limitation may or may not be an issue.
In my case, it was not an issue at all.</p>
<p>The performance gain claim is pretty impressive: up to 10 times faster than the default execution engine.</p>
<h2 id="why-we-switched">Why we switched</h2>
<p>At the time, we conducted extensive tests on the project and used <a href="https://en.wikipedia.org/wiki/Gatling_%28software%29">Gatling</a> for load testing. I specifically crafted some reference queries and used them to compare the performance of all the changes made. This way, we could improve response time and admissible load bit by bit. One of the most important changes was the adoption of GraphQL JIT. The performance gain was substantial enough to make it worth the switch at the time.
Unfortunately, all reports and graphs were purged, thanks to Jenkins&rsquo; cleaning policies.</p>
<h2 id="why-reconsider-it-now">Why reconsider it now?</h2>
<p>When we conducted the tests and made the switch, the project was barely used. I completely relied on my test queries for benchmarks. Those queries were built to be representative of a theoretical usage, but they were not real queries as no clients of the API existed yet.</p>
<p>Now, the API is live and in use. I have real-world queries to analyze, and I can observe the server&rsquo;s performance in real-time with real clients.</p>
<p>So, let&rsquo;s revisit this choice and see if it is still the right one.</p>
<h2 id="test-methodology">Test methodology</h2>
<p>Two tests are in order:</p>
<ul>
<li>One in production with real customers queries</li>
<li>One using the old method with Gatling, as before</li>
</ul>
<h3 id="production-test">Production test</h3>
<p>To test the two engines simultaneously, I modified the server&rsquo;s code to randomly start with one engine or the other. When deployed onto the Kubernetes cluster, multiple instances of the service will be started—enough from both engines to gather significant statistics.</p>
<p>The code is quite barbaric but works wonderfully:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-typescript" data-lang="typescript"><span class="line"><span class="ln" id="hl-0-1"><a class="lnlinks" href="#hl-0-1">1</a></span><span class="cl"><span class="nx">expressApp</span><span class="p">.</span><span class="nx">use</span><span class="p">(</span>
</span></span><span class="line"><span class="ln" id="hl-0-2"><a class="lnlinks" href="#hl-0-2">2</a></span><span class="cl">   <span class="p">[...],</span>
</span></span><span class="line"><span class="ln" id="hl-0-3"><a class="lnlinks" href="#hl-0-3">3</a></span><span class="cl">   <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span> <span class="o">&gt;</span> <span class="mf">0.5</span>
</span></span><span class="line"><span class="ln" id="hl-0-4"><a class="lnlinks" href="#hl-0-4">4</a></span><span class="cl">       <span class="o">?</span> <span class="nx">createJitGraphqlMiddleware</span><span class="p">({</span><span class="nx">schema</span><span class="p">})</span>
</span></span><span class="line"><span class="ln" id="hl-0-5"><a class="lnlinks" href="#hl-0-5">5</a></span><span class="cl">       <span class="o">:</span> <span class="nx">createJsGraphqlMiddleware</span><span class="p">(</span><span class="nx">schema</span><span class="p">),</span>
</span></span><span class="line"><span class="ln" id="hl-0-6"><a class="lnlinks" href="#hl-0-6">6</a></span><span class="cl"><span class="p">);</span>
</span></span></code></pre></div><p>Once in production, I will analyze metrics to evaluate the impact of each engine. I will primarily focus on:</p>
<ul>
<li>System metrics such as CPU and memory usage</li>
<li>Node.js system metrics such as <a href="https://nodesource.com/blog/event-loop-utilization-nodejs/">Event Loop Utilization (ELU)</a>, HEAP size, and Garbage Collection</li>
<li>Response time goals (how much it deviates from the target)</li>
<li>Average response time and 95th percentile</li>
</ul>
<h3 id="lab-tests">Lab tests</h3>
<p>For the lab tests, I will use what&rsquo;s already available from my previous tests years ago. I&rsquo;ve set up Gatling with a few typical queries. The queries and rate of fire are not exactly the same as before because, over the years, I&rsquo;ve tuned them to be more representative of the real world. When I say &ldquo;more representative,&rdquo; I don&rsquo;t mean they are truly representative. Instead, I&rsquo;ve simply adjusted them based on our observations in the field and modified them in a way that makes them closer to the real world. Unfortunately, I have no way of confirming this; it&rsquo;s far from scientific here.</p>
<p>The most notable change is the way scenarios are grouped. Previously, each query had its own rules during the test. Now, I&rsquo;ve grouped them into two main categories, representing two typical client profiles:</p>
<ul>
<li><strong>Light users</strong> send small queries. This is standard usage of the API, similar to how any customer would interact with our apps/front-end.</li>
<li><strong>Heavy users</strong> make large and complex queries with lots of fields and nested fields. This is typical of a customer using some costly features of our apps or any rogue client trying to abuse the API.</li>
</ul>
<p>What&rsquo;s important is that the two profiles do not fire queries at the same rate. One fires far more frequently than the other.</p>
<p>The final Gatling scenario looks like this:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-scala" data-lang="scala"><span class="line"><span class="ln" id="hl-1-1"><a class="lnlinks" href="#hl-1-1"> 1</a></span><span class="cl"><span class="k">val</span> <span class="n">heavyUser_ConcurentUser</span> <span class="k">=</span> <span class="n">max_reqps</span><span class="o">/</span><span class="mi">20</span>
</span></span><span class="line"><span class="ln" id="hl-1-2"><a class="lnlinks" href="#hl-1-2"> 2</a></span><span class="cl"><span class="k">val</span> <span class="n">heavyUser_ConcurentRequest</span> <span class="k">=</span> <span class="n">max_reqps</span><span class="o">/</span><span class="mi">20</span>
</span></span><span class="line"><span class="ln" id="hl-1-3"><a class="lnlinks" href="#hl-1-3"> 3</a></span><span class="cl"><span class="k">val</span> <span class="n">lightUser_ConcurentUser</span> <span class="k">=</span> <span class="n">max_reqps</span> <span class="o">-</span> <span class="n">heavyUser_ConcurentUser</span>
</span></span><span class="line"><span class="ln" id="hl-1-4"><a class="lnlinks" href="#hl-1-4"> 4</a></span><span class="cl"><span class="k">val</span> <span class="n">lightUser_ConcurentRequest</span> <span class="k">=</span> <span class="n">max_reqps</span> <span class="o">-</span> <span class="n">heavyUser_ConcurentRequest</span>
</span></span><span class="line"><span class="ln" id="hl-1-5"><a class="lnlinks" href="#hl-1-5"> 5</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-1-6"><a class="lnlinks" href="#hl-1-6"> 6</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-1-7"><a class="lnlinks" href="#hl-1-7"> 7</a></span><span class="cl"><span class="n">setUp</span><span class="o">(</span>
</span></span><span class="line"><span class="ln" id="hl-1-8"><a class="lnlinks" href="#hl-1-8"> 8</a></span><span class="cl">   <span class="n">lightUser</span><span class="o">.</span><span class="n">inject</span><span class="o">(</span>
</span></span><span class="line"><span class="ln" id="hl-1-9"><a class="lnlinks" href="#hl-1-9"> 9</a></span><span class="cl">       <span class="n">rampConcurrentUsers</span><span class="o">(</span><span class="mi">1</span><span class="o">)</span> <span class="n">to</span> <span class="o">(</span><span class="n">lightUser_ConcurentUser</span><span class="o">)</span> <span class="n">during</span> <span class="o">(</span><span class="mi">2</span> <span class="n">minutes</span><span class="o">),</span>
</span></span><span class="line"><span class="ln" id="hl-1-10"><a class="lnlinks" href="#hl-1-10">10</a></span><span class="cl">       <span class="n">constantConcurrentUsers</span><span class="o">(</span><span class="n">lightUser_ConcurentUser</span><span class="o">)</span> <span class="n">during</span> <span class="o">(</span><span class="n">duration</span> <span class="o">-</span> <span class="mi">2</span> <span class="n">minutes</span><span class="o">)</span>
</span></span><span class="line"><span class="ln" id="hl-1-11"><a class="lnlinks" href="#hl-1-11">11</a></span><span class="cl">   <span class="o">).</span><span class="n">throttle</span><span class="o">(</span><span class="n">reachRps</span><span class="o">(</span><span class="n">lightUser_ConcurentRequest</span><span class="o">)</span> <span class="n">in</span> <span class="o">(</span><span class="n">duration</span> <span class="n">minutes</span><span class="o">)),</span>
</span></span><span class="line"><span class="ln" id="hl-1-12"><a class="lnlinks" href="#hl-1-12">12</a></span><span class="cl">  
</span></span><span class="line"><span class="ln" id="hl-1-13"><a class="lnlinks" href="#hl-1-13">13</a></span><span class="cl">   <span class="n">heavyUser</span><span class="o">.</span><span class="n">inject</span><span class="o">(</span>
</span></span><span class="line"><span class="ln" id="hl-1-14"><a class="lnlinks" href="#hl-1-14">14</a></span><span class="cl">       <span class="n">rampConcurrentUsers</span><span class="o">(</span><span class="mi">1</span><span class="o">)</span> <span class="n">to</span> <span class="o">(</span><span class="n">heavyUser_ConcurentUser</span><span class="o">)</span> <span class="n">during</span> <span class="o">(</span><span class="mi">2</span> <span class="n">minutes</span><span class="o">),</span>
</span></span><span class="line"><span class="ln" id="hl-1-15"><a class="lnlinks" href="#hl-1-15">15</a></span><span class="cl">       <span class="n">constantConcurrentUsers</span><span class="o">(</span><span class="n">heavyUser_ConcurentUser</span><span class="o">)</span> <span class="n">during</span> <span class="o">(</span><span class="n">duration</span> <span class="o">-</span> <span class="mi">2</span> <span class="n">minutes</span><span class="o">)</span>
</span></span><span class="line"><span class="ln" id="hl-1-16"><a class="lnlinks" href="#hl-1-16">16</a></span><span class="cl">   <span class="o">).</span><span class="n">throttle</span><span class="o">(</span><span class="n">reachRps</span><span class="o">(</span><span class="n">heavyUser_ConcurentRequest</span><span class="o">)</span> <span class="n">in</span> <span class="o">(</span><span class="n">duration</span> <span class="n">minutes</span><span class="o">))</span>
</span></span><span class="line"><span class="ln" id="hl-1-17"><a class="lnlinks" href="#hl-1-17">17</a></span><span class="cl"><span class="o">).</span><span class="n">protocols</span><span class="o">(</span><span class="n">httpProtocol</span><span class="o">)</span>
</span></span></code></pre></div><p>The Gatling tests will run on my laptop but will target instances of the server deployed in a development Kubernetes cluster. This cluster is similar to the one in production in form and configuration but not in size. I won&rsquo;t push the cluster to its limits, so I&rsquo;m not concerned about the results being skewed by the environment.</p>
<p>I will monitor the same metrics as in the production test. This time, I will not consider the results from Gatling itself because I am running the tests from my laptop and cannot trust the response times gathered by Gatling. Moreover, I don&rsquo;t really need them.</p>
<h2 id="results">Results</h2>
<h3 id="production-results">Production results</h3>
<h4 id="response-times">Response times</h4>
<p>One of the metrics I have is the time it takes for the engine to compute a request and produce a response.
It does not include the time it takes to send the response to the client or network delays.</p>
<p>















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-avg-all.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-avg-all.png"
                 alt="Graph of the average response time per engine" 
                 title="Average response time per engine" 
        />
    </a>
     <figcaption>Average response time per engine</figcaption> 
</figure>
The average response time shows that the JS engine is slightly faster, but with only a one-millisecond difference, it&rsquo;s not really significant.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-95p-all.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-95p-all.png"
                 alt="Graph of the 95th percentile of the response time per engine" 
                 title="95th percentile of the response time per engine" 
        />
    </a>
     <figcaption>95th percentile of the response time per engine</figcaption> 
</figure>
<p>The 95th percentile shows a somewhat greater difference. It is not enormous, but five milliseconds does feel significant.</p>
<p>Regarding response time, we can say, without any doubt, that the `JIT engine’ is not worth it, mathematically speaking. However, we are talking about a five-millisecond difference, so it is not really a big deal either.</p>
<h4 id="system-metrics-cpu--ram">System metrics (CPU &amp; RAM)</h4>
<p>The service is deployed on a Kubernetes cluster. I have access to the cluster metrics and can see how much CPU and RAM are used by the service.</p>
<p>In Kubernetes, we set CPU and RAM reservations. It is a good practice to indicate to the cluster how many resources the pods will need.
For example, we can define that one Node.js process can use up to two CPUs.
The graph then shows how much of these two CPUs are used compared to the reservation.
The same applies to RAM. Of course, the graph shows values for the entire cluster, not just one pod.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="ln" id="hl-2-1"><a class="lnlinks" href="#hl-2-1">1</a></span><span class="cl"><span class="nt">limits</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-2"><a class="lnlinks" href="#hl-2-2">2</a></span><span class="cl"><span class="w"> </span><span class="nt">memory</span><span class="p">:</span><span class="w"> </span><span class="l">512Mi</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-3"><a class="lnlinks" href="#hl-2-3">3</a></span><span class="cl"><span class="w"></span><span class="nt">requests</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-4"><a class="lnlinks" href="#hl-2-4">4</a></span><span class="cl"><span class="w"> </span><span class="nt">memory</span><span class="p">:</span><span class="w"> </span><span class="l">512Mi</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-5"><a class="lnlinks" href="#hl-2-5">5</a></span><span class="cl"><span class="w"> </span><span class="nt">cpu</span><span class="p">:</span><span class="w"> </span><span class="m">2</span><span class="w">
</span></span></span></code></pre></div><p>This is an example of a configuration for a pod. This means the pod will have two CPUs and 512Mi of RAM at its disposal.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-system-cpu.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-system-cpu.png"
                 alt="Percent of the CPU reservation used" 
                 title="Percent of the CPU reservation used" 
        />
    </a>
     <figcaption>Percent of the CPU reservation used</figcaption> 
</figure>
<p>The <code>js-engine’ uses 2% less CPU than the </code>JIT-engine.’ It is a consistent difference, but like the response time gain, it is not that significant. Don&rsquo;t get me wrong, when you deploy hundreds or thousands of pods, 2% can mean a lot, but I&rsquo;m not convinced it does in my case.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-system-RAM.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-system-RAM.png"
                 alt="Percent of the RAM reservation used" 
                 title="Percent of the RAM reservation used" 
        />
    </a>
     <figcaption>Percent of the RAM reservation used</figcaption> 
</figure>
<p>The RAM usage is a bit more interesting. The <code>js-engine’ uses ~20% less RAM than the </code>JIT-engine.’ Here, a 20% difference feels substantial.</p>
<h4 id="nodejs-metrics">Node.js metrics</h4>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-nodejs-elu.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-nodejs-elu.png"
                 alt="Event Loop Utilization min at cluster level, max and average" 
                 title="Event Loop Utilization min at cluster level, max and average" 
        />
    </a>
     <figcaption>Event Loop Utilization min at cluster level, max and average</figcaption> 
</figure>
<p>I challenge you to identify when the deployment occurred. The ELU (Event Loop Utilization) did not shift a single bit, even with 50% of the requests being handled by the <code>js-engine.’ This graph only shows the overall cluster level, as I cannot get metrics for each engine separately. In my opinion, since 50% of the pods use another engine, if the ELU were significantly impacted, we would see it. I will assume that using either </code>JIT’ or `js’ does not change anything in terms of Event Loop Utilization.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-nodejs-heap-old.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/prod-nodejs-heap-old.png"
                 alt="HEAP old space usage at cluster level, min, max, and average" 
                 title="HEAP old space usage at cluster level, min, max, and average" 
        />
    </a>
     <figcaption>HEAP old space usage at cluster level, min, max, and average</figcaption> 
</figure>
<p>Monitoring the HEAP shows that the `old’ space seems to have reduced slightly. It is not very obvious in the graph but it is visible in the average. The maximum did not change, but the minimum did. This confirms what we observed earlier with RAM usage.</p>
<p>Other HEAP spaces were not impacted at all, and the same goes for Garbage Collection. They all tell the same story as the ELU metrics. They remain unchanged from before, so I didn&rsquo;t bother screenshotting the graphs.</p>
<h3 id="lab-results">Lab results</h3>
<p>I ran the Gatling test for each engine in two separate deployments. The tests were run simultaneously. Strictly speaking, they could have impacted one another, but I don&rsquo;t think this effect is significant, as the cluster I was using had enough resources to handle the load. Moreover, the load was not that high, and I kept the request rate well below limits.</p>
<h4 id="response-times-1">Response times</h4>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-all.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-all.png"
                 alt="Average and 95th percentile response time per engine" 
                 title="Average and 95th percentile response time per engine" 
        />
    </a>
     <figcaption>Average and 95th percentile response time per engine</figcaption> 
</figure>
<p>The results are not favorable for the <code>js</code> engine. The difference is substantial. We must remember that this is a lab environment, and response times may differ from those in production. However, we are losing about 50 milliseconds on the 95th percentile and 20 milliseconds on average. These represent slowdowns of approximately 50% and 70%, respectively, compared to the `JIT’ engine.</p>
<h4 id="system-metrics-cpu--ram-1">System metrics (CPU &amp; RAM)</h4>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-system-all-js.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-system-all-js.png"
                 alt="Dashboard of System metrics showing CPU and RAM for the js engine" 
                 title="Dashboard of System metrics showing CPU and RAM for the js engine" 
        />
    </a>
     <figcaption>Dashboard of System metrics showing CPU and RAM for the js engine</figcaption> 
</figure>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-system-all-jit.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-system-all-jit.png"
                 alt="Dashboard of System metrics showing CPU and RAM for the JIT engine" 
                 title="Dashboard of System metrics showing CPU and RAM for the JIT engine" 
        />
    </a>
     <figcaption>Dashboard of System metrics showing CPU and RAM for the JIT engine</figcaption> 
</figure>
<p>The first notable difference is in CPU usage. The <code>js-engine’ uses 20% more CPU than the </code>JIT-engine,’ which is significant.</p>
<p>Regarding RAM, the difference is smaller but still present, with only a few percentage points of increased usage for the `js-engine.’</p>
<p>Overall, our synthetic tests indicate that the JIT engine is more efficient than the JS engine.</p>
<h4 id="nodejs-metrics-1">Node.js metrics</h4>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-nodejs-all-js.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-nodejs-all-js.png"
                 alt="Dashboard of Node.js metrics such as ELU, HEAP, and Garbage Collector for the js engine" 
                 title="Dashboard of Node.js metrics such as ELU, HEAP, and Garbage Collector for the js engine" 
        />
    </a>
     <figcaption>Dashboard of Node.js metrics such as ELU, HEAP, and Garbage Collector for the js engine</figcaption> 
</figure>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-nodejs-all-jit.png"
            target="_blank"
    >
        <img
                src="/2025/post/graphql-jit-est-t-il-vraiment-plus-performant/img/lab-nodejs-all-jit.png"
                 alt="Dashboard of Node.js metrics such as ELU, HEAP, and Garbage Collector for the JIT engine" 
                 title="Dashboard of Node.js metrics such as ELU, HEAP, and Garbage Collector for the JIT engine" 
        />
    </a>
     <figcaption>Dashboard of Node.js metrics such as ELU, HEAP, and Garbage Collector for the JIT engine</figcaption> 
</figure>
<p>The story remains consistent with the Node.js metrics. The `js engine’ uses more HEAP, more Garbage Collection, and has a higher Event Loop Utilization (ELU). Specifically, the ELU increased from 30% to 50%.</p>
<h2 id="what-is-the-meaning-of-all-of-this">What is the meaning of all of this?</h2>
<p>Okay, things are getting interesting. The production results clearly show a slight advantage for the <code>js’ engine. This win is small and could, in some cases, be considered negligible. However, it is still a win. On the other hand, the story is entirely different when we look at the lab results. The </code>JIT’ engine is a clear and substantial winner! Moreover, based solely on the lab results, it is a no-brainer to use the `JIT’ engine.</p>
<p>The lab results were essentially the same as those I had years ago. The <code>JIT’ engine is faster, more efficient, and requires fewer resources in a lab environment. Back then, I only had those results to inform my decision and naturally chose the </code>JIT’ engine.</p>
<p>Today, however, the production results complicate the decision:</p>
<ul>
<li>The <code>js’ engine is better or at least as good as the </code>JIT’ engine in terms of response time, resource usage, and overall performance.</li>
<li>The complexity introduced by the `JIT’ engine has a cost.</li>
<li>The `JIT’ engine has certain limitations. We did not encounter these, so they may not be highly relevant in my context.</li>
<li>The `js’ engine is effectively the &ldquo;standard.&rdquo;</li>
</ul>
<p>The question has been raised internally, and there seems to be a consensus that standardization is important enough to justify switching back to the `js’ engine. I tend to agree with this perspective.</p>
<h2 id="why-does-the-optimization-not-show-up-in-production">Why does the optimization not show up in production?</h2>
<p>The production and lab tests have opposite behaviors that feel counterintuitive. I believe the main reason lies in how we utilize the GraphQL API.</p>
<p>When we began our GraphQL journey, we had a steep learning curve. One of the biggest challenges was designing the schema and envisioning the queries that would be made. We had to rethink everything, moving away from our accustomed REST APIs.</p>
<p>However, as anyone who has worked on an existing system knows (do I hear &ldquo;legacy&rdquo;?), we had to consider many existing scenarios and technical limitations. For example, paginated results were not as common back then as they are today. When designing the schema, we aimed to follow the &ldquo;state of the art&rdquo; in this regard, but it was not always straightforward or even feasible.</p>
<p>After years of learning and striving towards best practices in GraphQL, we find ourselves in a much better situation than expected. For instance, we initially feared processing massive queries with numerous nested fields. This concern hasn&rsquo;t completely disappeared, but looking at the queries generated by our apps, the reality isn&rsquo;t as daunting as we imagined.</p>
<p>Teams have adapted to the new way of thinking, embracing the limitations and concepts of a GraphQL API. Gradually, they&rsquo;ve accepted the need to approach things differently. The quality of our GraphQL queries seems sufficient, indicating that we no longer require the `JIT’ optimizations.</p>
<p>One of the best use cases for `JIT’ appears to be when dealing with complex queries that have many nested fields. We currently don&rsquo;t have that issue, or at least not to a significant extent.</p>
<p>In the future, we may need to reassess this decision based on how we develop our upcoming applications and frontends. But for now, the `js’ engine seems more than adequate.</p>
<h2 id="conclusion">Conclusion</h2>
<p>A few years ago, I designed a GraphQL server and made several architectural decisions. We implemented some obvious optimizations and conducted tests to verify their effectiveness beyond marketing claims, confirming our choices.</p>
<p>Not all decisions were perfect, and there is much to discuss and critique about the project. However, the choice of the ‘JIT’ engine was a good one at the time.</p>
<p>Today, the context has evolved. We have (enough) real-world clients, and both Node.js and V8 have been improved. Additionally, the standard implementations of GraphQL have benefited from years of community enhancements.</p>
<p>Revisiting old decisions has proven to be insightful, if not beneficial. The ability to test a theory in production easily and without the fear of breaking anything is a luxury. I&rsquo;m grateful for this opportunity.</p>
<p>Ultimately, we can conclude that the real world always surpasses the lab and its benchmarks. While this may not come as a surprise, it&rsquo;s always a good reminder. If you have the resources and time, take the opportunity to test your hypotheses using real-world data or actual clients whenever possible. For this, it&rsquo;s crucial to maintain healthy development practices that facilitate easy and safe testing and deployment.</p>
<p>In conclusion:</p>
<pre><code> The `JIT’ engine seems to be worthwhile. However, I would recommend conducting proper tests, if feasible, before fully committing to it. Gains may be small or even imperceptible, depending on your circumstances.

 Anyway, always monitor, metrics are essential!
</code></pre>
<p>Thanks for reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
<hr>
<p>Many thanks to <a href="https://www.linkedin.com/in/pauline-m-b8703048/">Pauline Munier</a> and <a href="https://www.linkedin.com/in/gillian-kelly">Gillian Kelly</a> for their help in writing this article.
You can also find this <a href="https://deezer.io/graphql-jit-is-it-worth-it-64e66f21dbb8">article</a>, on <a href="https://deezer.io/graphql-jit-is-it-worth-it-64e66f21dbb8">Deezer.io</a></p>
]]></description></item><item><title>Benjamin Asnar Trio at Paris Jazz Club</title><link>https://blog.ztec.fr/en/2024/12/20/concert/benjamin-asnar-trio-at-paris-jazz-club/</link><pubDate>Fri, 20 Dec 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/12/20/concert/benjamin-asnar-trio-at-paris-jazz-club/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_c3da06cd11684964.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d6270a161d34f110.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_c3da06cd11684964.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/benjamin-asnar/">Benjamin Asnar</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/lucas-belkhiri/">Lucas Belkhiri</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/francesco-marzetti/">Francesco Marzetti</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/12/20/concert/benjamin-asnar-trio-au-paris-jazz-club/cover_hu_c59f872569040198.webp 1x, /2024/12/20/concert/benjamin-asnar-trio-au-paris-jazz-club/cover_hu_43903a4279ca4186.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/12/20/concert/benjamin-asnar-trio-au-paris-jazz-club/cover_hu_5d6124130e76148c.jpg 1x, /2024/12/20/concert/benjamin-asnar-trio-au-paris-jazz-club/cover_hu_4bcaca65fac395c2.jpg 1.60x" />
        

        
        
        <img
            src="/2024/12/20/concert/benjamin-asnar-trio-au-paris-jazz-club/cover_hu_5d6124130e76148c.jpg"
             alt="Benjamin Asnar Trio" 
             title="Benjamin Asnar Trio" 
        />

        
            <div class="credit">©unknown</div>
        
    </picture>


]]></description></item><item><title>Hadouk at New Morning</title><link>https://blog.ztec.fr/en/2024/12/05/concert/hadouk-at-new-morning/</link><pubDate>Thu, 05 Dec 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/12/05/concert/hadouk-at-new-morning/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_1977b12a6ae089c5.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_734e74fb6749f284.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_1977b12a6ae089c5.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/didier-malherbe/">Didier Malherbe</a> - 


<a href="/en/instruments/duduk/">duduk</a>, 


<a href="/en/instruments/flute/">flute</a>, 


<a href="/en/instruments/ocarina/">ocarina</a>, 


<a href="/en/instruments/clarinet/">Clarinet</a>, 


<a href="/en/instruments/soprano-saxophone/">Soprano Saxophone</a></li>
<li>


<a href="/en/artists/loy-ehrlich/">Loy Ehrlich</a> - 


<a href="/en/instruments/hajouj/">hajouj</a>, 


<a href="/en/instruments/kora/">kora</a>, 


<a href="/en/instruments/sanza/">sanza</a>, 


<a href="/en/instruments/vielle/">vielle</a>, 


<a href="/en/instruments/ribab/">ribab</a>, 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
</ul>
<p>Guests:</p>
<ul>
<li>


<a href="/en/artists/steve-shehan/">Steve Shehan</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
<li>


<a href="/en/artists/jean-luc-di-fraya/">Jean-Luc Di Fraya</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
<li>


<a href="/en/artists/%C3%A9ric-l%C3%B6hrer/">Éric Löhrer</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
</ul>
<p><a href="https://www.youtube.com/watch?v=PVHDlXi7OLc">Hadouk - Teaser album 2024</a> (Youtube)</p>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/12/05/concert/hadouk-au-new-morning/cover_hu_6b3325173aa2f7bb.webp 1x, /2024/12/05/concert/hadouk-au-new-morning/cover_hu_f8dab92ecf8f99aa.webp 1.25x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/12/05/concert/hadouk-au-new-morning/cover_hu_b56a2ebe37472a78.jpg 1x, /2024/12/05/concert/hadouk-au-new-morning/cover_hu_2b07624a8687f3c5.jpg 1.25x" />
        

        
        
        <img
            src="/2024/12/05/concert/hadouk-au-new-morning/cover_hu_b56a2ebe37472a78.jpg"
             alt="Hadouk" 
             title="Hadouk" 
        />

        
            <div class="credit">©unknown</div>
        
    </picture>


]]></description></item><item><title>Léa Cazauran And Andy Emler Make'em Move at L'Imprévu</title><link>https://blog.ztec.fr/en/2024/11/15/concert/l%C3%A9a-cazauran-and-andy-emler-makeem-move-at-limpr%C3%A9vu/</link><pubDate>Fri, 15 Nov 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/11/15/concert/l%C3%A9a-cazauran-and-andy-emler-makeem-move-at-limpr%C3%A9vu/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_16d2f689f4d0fdd1.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_5cca0a027c29a970.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_16d2f689f4d0fdd1.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="andy-emler-megaoctet">Andy Emler MegaOctet</h2>
<ul>
<li>


<a href="/en/artists/adrien-sanchez/">Adrien Sanchez</a> - 


<a href="/en/instruments/tenor-saxophone/">Tenor Saxophone</a></li>
<li>


<a href="/en/artists/philippe-sellam/">Philippe Sellam</a> - 


<a href="/en/instruments/alto-saxophone/">Alto Saxophone</a></li>
<li>


<a href="/en/artists/guillaume-orti/">Guillaume Orti</a> - 


<a href="/en/instruments/alto-saxophone/">Alto Saxophone</a></li>
<li>


<a href="/en/artists/fran%C3%A7ois-thuillier/">François Thuillier</a> - 


<a href="/en/instruments/tuba/">Tuba</a></li>
<li>


<a href="/en/artists/laurent-blondiau/">Laurent Blondiau</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/andy-emler/">Andy Emler</a> - 


<a href="/en/instruments/piano/">Piano</a>, composition</li>
<li>


<a href="/en/artists/claude-tchamitchian/">Claude Tchamitchian</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/%C3%A9ric-%C3%A9champard/">Éric Échampard</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/fran%C3%A7ois-verly/">François Verly</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
</ul>
<h2 id="léa-cazauran-lady-rocks">Léa Cazauran Lady Rocks</h2>
<ul>
<li>


<a href="/en/artists/l%C3%A9a-cazauran/">Léa Cazauran</a> - 


<a href="/en/instruments/choreography/">choreography</a>, 


<a href="/en/instruments/dance/">dance</a></li>
<li>


<a href="/en/artists/julia-ortola/">Julia Ortola</a> - 


<a href="/en/instruments/dance/">dance</a></li>
<li>


<a href="/en/artists/rodrigue-lino/">Rodrigue Lino</a> - 


<a href="/en/instruments/dance/">dance</a></li>
<li>


<a href="/en/artists/jesus-gil/">Jesus Gil</a> - 


<a href="/en/instruments/dance/">dance</a></li>
<li>


<a href="/en/artists/ma%C3%ABlle-dufour/">Maëlle Dufour</a> - 


<a href="/en/instruments/dance/">dance</a></li>
<li>


<a href="/en/artists/lisa-dwomoh/">Lisa Dwomoh</a> - 


<a href="/en/instruments/dance/">dance</a></li>
<li>


<a href="/en/artists/santiago-codon-gras/">Santiago Codon Gras</a> - 


<a href="/en/instruments/dance/">dance</a></li>
<li>


<a href="/en/artists/ludovic-piscioneri/">Ludovic Piscioneri</a> - 


<a href="/en/instruments/dance/">dance</a></li>
<li>


<a href="/en/artists/virgile-garcia/">Virgile Garcia</a> - 


<a href="/en/instruments/dance/">dance</a></li>
</ul>
<h2 id="technical-team">Technical team</h2>
<ul>
<li>


<a href="/en/artists/vincent-mahey/">Vincent Mahey</a> - 


<a href="/en/instruments/sound/">sound</a></li>
<li>


<a href="/en/artists/marine-stroeher/">Marine Stroeher</a> - 


<a href="/en/instruments/lighting/">lighting</a></li>
</ul>
<p><a href="https://www.youtube.com/watch?v=xlODI5S98Js">Make &rsquo;em Move - Andy Emler MegaOctet (musique) + Lady Rocks (danse hip hop)</a> (Youtube)</p>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/11/15/concert/l%C3%A9a-cazauran-et-andy-emler-makeem-move-%C3%A0-limpr%C3%A9vu/cover_hu_921bc407fd3339db.webp 1x, /2024/11/15/concert/l%C3%A9a-cazauran-et-andy-emler-makeem-move-%C3%A0-limpr%C3%A9vu/cover_hu_c3691826f863e47c.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/11/15/concert/l%C3%A9a-cazauran-et-andy-emler-makeem-move-%C3%A0-limpr%C3%A9vu/cover_hu_7e6a639cb050fb96.jpg 1x, /2024/11/15/concert/l%C3%A9a-cazauran-et-andy-emler-makeem-move-%C3%A0-limpr%C3%A9vu/cover_hu_7c3919b4b57ce88e.jpg 1.60x" />
        

        
        
        <img
            src="/2024/11/15/concert/l%C3%A9a-cazauran-et-andy-emler-makeem-move-%C3%A0-limpr%C3%A9vu/cover_hu_7e6a639cb050fb96.jpg"
             alt="Léa Cazauran And Andy Emler Make&#39;em Move" 
             title="Léa Cazauran And Andy Emler Make&#39;em Move" 
        />

        
            <div class="credit">©unknown</div>
        
    </picture>


]]></description></item><item><title>Meshell Ndegeocello at New Morning</title><link>https://blog.ztec.fr/en/2024/11/13/concert/meshell-ndegeocello-at-new-morning/</link><pubDate>Wed, 13 Nov 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/11/13/concert/meshell-ndegeocello-at-new-morning/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_7e70c049a7f91f49.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_5be2895e620e063b.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_7e70c049a7f91f49.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/meshell-ndegeocello/">Meshell Ndegeocello</a> - 


<a href="/en/instruments/bass/">Bass</a>, 


<a href="/en/instruments/keyboards/">Keyboards</a>, 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/jebin-bruni/">Jebin Bruni</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a>, 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/abraham-rounds/">Abraham Rounds</a> - 


<a href="/en/instruments/drums/">Drums</a>, 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/christopher-bruce/">Christopher Bruce</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/kyle-miles/">Kyle Miles</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/justin-hicks/">Justin Hicks</a> - 


<a href="/en/instruments/voice/">voice</a></li>
</ul>





















    
    
        
    

    
    
        
    

    
    

    
    





    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/11/13/concert/meshell-ndegeocello-au-new-morning/cover_hu_a6e90e9f89f49b57.webp 1x, /2024/11/13/concert/meshell-ndegeocello-au-new-morning/cover_hu_878ce24e9d7b4354.webp 2x, /2024/11/13/concert/meshell-ndegeocello-au-new-morning/cover_hu_9b51a3bfa5041958.webp 2.40x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/11/13/concert/meshell-ndegeocello-au-new-morning/cover_hu_e033e2a13fe50d1e.jpg 1x, /2024/11/13/concert/meshell-ndegeocello-au-new-morning/cover_hu_6f07ccbb1fb5ee4b.jpg 2x, /2024/11/13/concert/meshell-ndegeocello-au-new-morning/cover_hu_a2bc37104cef0b31.jpg 2.40x" />
        

        
        
        <img
            src="/2024/11/13/concert/meshell-ndegeocello-au-new-morning/cover_hu_e033e2a13fe50d1e.jpg"
             alt="Meshell Ndegeocello" 
             title="Meshell Ndegeocello" 
        />

        
            <div class="credit">©unknown</div>
        
    </picture>


]]></description></item><item><title>Robinson Khoury - MŸA at Café de la danse</title><link>https://blog.ztec.fr/en/2024/10/21/concert/robinson-khoury-m%C3%BFa-at-caf%C3%A9-de-la-danse/</link><pubDate>Mon, 21 Oct 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/10/21/concert/robinson-khoury-m%C3%BFa-at-caf%C3%A9-de-la-danse/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_688cb7a7910fc3a4.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_13bbd49df0eda129.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_688cb7a7910fc3a4.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="robinson-khoury">Robinson Khoury</h2>
<ul>
<li>


<a href="/en/artists/robinson-khoury/">Robinson Khoury</a> - 


<a href="/en/instruments/trombone/">Trombone</a>, various brass instruments, 


<a href="/en/instruments/voice/">voice</a>, modular synthesizer</li>
<li>


<a href="/en/artists/lynn-adib/">Lynn Adib</a> (guest)</li>
<li>


<a href="/en/artists/anissa-nehari/">Anissa Nehari</a> - digital 


<a href="/en/instruments/percussion/">Percussion</a>, 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/l%C3%A9o-jassef/">Léo Jassef</a> - 


<a href="/en/instruments/piano/">Piano</a>, 


<a href="/en/instruments/keyboards/">Keyboards</a>, 


<a href="/en/instruments/voice/">voice</a></li>
</ul>
<p>On digital percussion and voice: Anissa Nehari, a musician with sensitive dynamism, captivating and captivated by the rhythms of the world.</p>
<p>On piano, synthesizers and voice is Léo Jassef, a versatile artist of great sensitivity who has been heard alongside Yom.</p>
<p>Robinson Khoury on trombone, various brass instruments, voice and modular synthesizer.</p>
<p><a href="https://www.youtube.com/watch?v=c6TP9iRFsnU">Robinson Khoury &ldquo;MŸA&rdquo; - Horizon</a> (Youtube)</p>





















    
    
        
    

    
    
        
    

    
    

    
    





    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/10/21/concert/robinson-khoury-m%C3%BFa-au-caf%C3%A9-de-la-danse/cover_hu_d723ea00d8c4bd53.webp 1x, /2024/10/21/concert/robinson-khoury-m%C3%BFa-au-caf%C3%A9-de-la-danse/cover_hu_ff680cb5e7260ce1.webp 2x, /2024/10/21/concert/robinson-khoury-m%C3%BFa-au-caf%C3%A9-de-la-danse/cover_hu_5fba60c0292ac26d.webp 2.88x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/10/21/concert/robinson-khoury-m%C3%BFa-au-caf%C3%A9-de-la-danse/cover_hu_e894f9e3d6e48544.jpg 1x, /2024/10/21/concert/robinson-khoury-m%C3%BFa-au-caf%C3%A9-de-la-danse/cover_hu_d3f4fb5ba25464b7.jpg 2x, /2024/10/21/concert/robinson-khoury-m%C3%BFa-au-caf%C3%A9-de-la-danse/cover_hu_1072ca92933eedc1.jpg 2.88x" />
        

        
        
        <img
            src="/2024/10/21/concert/robinson-khoury-m%C3%BFa-au-caf%C3%A9-de-la-danse/cover_hu_e894f9e3d6e48544.jpg"
             alt="Robinson Khoury - MŸA" 
             title="Robinson Khoury" 
        />

        
            <div class="credit">©unknown</div>
        
    </picture>


<h2 id="opening-act">Opening act</h2>



<a href="/en/artists/mohamed-abozekry/">Mohamed Abozekry</a>
]]></description></item><item><title>The Headhunters at New Morning</title><link>https://blog.ztec.fr/en/2024/10/18/concert/the-headhunters-at-new-morning/</link><pubDate>Fri, 18 Oct 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/10/18/concert/the-headhunters-at-new-morning/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_a2a899e1d30360d7.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ae873056fc6cc01e.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_a2a899e1d30360d7.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/bill-summers/">Bill Summers</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
<li>


<a href="/en/artists/mike-clark/">Mike Clark</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/chris-severin/">Chris Severin</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/donald-harrison/">Donald Harrison</a> - 


<a href="/en/instruments/alto-saxophone/">Alto Saxophone</a></li>
<li>


<a href="/en/artists/kyle-roussel/">Kyle Roussel</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/10/18/concert/the-headhunters-au-new-morning/cover_hu_41319dc9c489f91d.webp 1x, /2024/10/18/concert/the-headhunters-au-new-morning/cover_hu_1b91616d5d335709.webp 1.25x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/10/18/concert/the-headhunters-au-new-morning/cover_hu_3f6645e1008df00d.jpg 1x, /2024/10/18/concert/the-headhunters-au-new-morning/cover_hu_5daa4879cf9c8c59.jpg 1.25x" />
        

        
        
        <img
            src="/2024/10/18/concert/the-headhunters-au-new-morning/cover_hu_3f6645e1008df00d.jpg"
             alt="The Headhunters" 
             title="The Headhunters" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Takuya Kuroda at New Morning</title><link>https://blog.ztec.fr/en/2024/10/16/concert/takuya-kuroda-at-new-morning/</link><pubDate>Wed, 16 Oct 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/10/16/concert/takuya-kuroda-at-new-morning/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_cdfd90ec13764bdf.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_315ae5b1aaeab0f.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_cdfd90ec13764bdf.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/takuya-kuroda/">Takuya Kuroda</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/craig-hill/">Craig Hill</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/takahiro-izumikawa/">Takahiro Izumikawa</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/kyle-miles/">Kyle Miles</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/chris-napo/">Chris Napo</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/10/16/concert/takuya-kuroda-au-new-morning/cover_hu_969779ec2ec022ab.webp 1x, /2024/10/16/concert/takuya-kuroda-au-new-morning/cover_hu_5ed66c6051348d41.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/10/16/concert/takuya-kuroda-au-new-morning/cover_hu_e41c56b43e928284.jpg 1x, /2024/10/16/concert/takuya-kuroda-au-new-morning/cover_hu_a9f1321b64ba53b6.jpg 1.60x" />
        

        
        
        <img
            src="/2024/10/16/concert/takuya-kuroda-au-new-morning/cover_hu_e41c56b43e928284.jpg"
             alt="Takuya Kuroda" 
             title="Takuya Kuroda" 
        />

        
            <div class="credit">©unknown</div>
        
    </picture>


]]></description></item><item><title>Node.js 20 upgrade: a Journey through unexpected HEAP issues with kubernetes</title><link>https://blog.ztec.fr/en/2024/post/node.js-20-upgrade-journey-though-unexpected-heap-issues-with-kubernetes/</link><pubDate>Wed, 18 Sep 2024 07:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/post/node.js-20-upgrade-journey-though-unexpected-heap-issues-with-kubernetes/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_2059a8f4f0ce692c.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_a358ba2c7d219164.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_2059a8f4f0ce692c.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>This summer, I upgraded a project from Node 18 to Node.js 20.
The code was not that old, and I did not expect any problems….But as with every Node.js upgrade, unexpected behaviors happened.</p>
<h2 id="why-upgrade">Why upgrade?</h2>
<p>It is common practice to keep projects up to date. Lagging behind too much may increase the work
needed to upgrade when the choice isn’t yours anymore.
I could have waited, but I had some time to do it.
Node.js 18 is currently in “MAINTENANCE”, which means there are security fixes but no more new features.
Maintenance is set to end in June of next year.</p>
<p>Node.js 20 is the current LTS version available. It is in active development and will enter its maintenance phase next year.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/nodejs-roadmap.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/nodejs-roadmap.png"
                 alt="All Node.js versions from 16 to 24 and their different phases: Current, Active, Maintenance" 
                 title="Node.js release roadmap" 
        />
    </a>
     <figcaption>Node.js release roadmap</figcaption> 
</figure>
<p>Soon after the next LTS (Node.js 22) is released, a migration will be scheduled (and maybe another post?)</p>
<h2 id="how">How?</h2>
<p>This part is pretty simple: change a few versions values in the &ldquo;package.json&rdquo; file, then run <code>npm install</code> as usual.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/diff-package.json.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/diff-package.json.png"
                 alt="Engines Node is updated to &gt;=20.15.1 and npm to &gt;= 10.7.0" 
                 title="Diff of the package.json file" 
        />
    </a>
     <figcaption>Diff of the package.json file</figcaption> 
</figure>
<p>All dependencies versions are managed by <a href="https://github.com/renovatebot/renovate">renovate</a> bot. Therefore,
“package.json” only contains the exact versions of each dependency.</p>
<p>The version is set to Node “20.15.1” because it was the very last version available at the time of the upgrade.
Any future minor upgrade will be done automatically without changing anything in the “package.json” file.
Docker images are built regularly and target the latest version of Node.js 20 like a rolling release.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/diff-dockerfile.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/diff-dockerfile.png"
                 alt="Diff of the Dockerfile changing the `FROM` from one node-18 image to node-20, both maintained internally" 
                 title="Diff of the Dockerfile" 
        />
    </a>
     <figcaption>Diff of the Dockerfile</figcaption> 
</figure>
<h2 id="deployment-and-first-results">Deployment and first results</h2>
<p>This is a critical project, but deploying it is usually simple and quick. No one fears its deployment.
But as this was a potentially impactful upgrade, I paid more attention than usual.</p>
<h3 id="project-vitals">Project vitals</h3>
<p>The main dashboard I look at during a deployment is the project&rsquo;s vitals.
It contains all the required metrics to know at a glance if the project is healthy or not.
I won&rsquo;t go into details here for confidentiality reasons, but I can show you the response time goal of
the project:</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-project-goal.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-project-goal.png"
                 alt="Graph showing the percentage of requests with a response time under 100ms, 50ms, 10ms, respectively around 97%, 90%, and 45%" 
                 title="Response time goals" 
        />
    </a>
     <figcaption>Response time goals</figcaption> 
</figure>
<p>The purple vertical line is roughly when the deployment occurred. You can see the response time went up.
Note: Given that the purple line is not displayed on all graphs, follow the red arrow instead.
The graph shows the percentage of responses that match one of the three response time goals we follow.
Requests faster than 100ms went from 96.8% to 96.1%—a minor defeat at the first battle.</p>
<p>Sure, we can agree that losing around 1% is perfectly acceptable, but it shows that something happened.</p>
<p>Looking at the average response time, we can see the increase more easily. It went from ~23ms to ~28ms.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-project-response-time.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-project-response-time.png"
                 alt="Graph showing the average response time oscillating between 22ms and 25ms" 
                 title="Response time average" 
        />
    </a>
     <figcaption>Response time average</figcaption> 
</figure>
<p>I then looked at all the other graphs, metrics, and logs. After validating and considering the project as healthy,
it was time to dig in to understand what was happening.
As there was no immediate threat to the project’s stability and the response time was still well above the <a href="https://www.atlassian.com/incident-management/kpis/error-budget">budget</a> thresholds,
I could take some time to dig deeper; otherwise, a rollback would have been in order.</p>
<h3 id="system-vitals">System vitals</h3>
<p>The project is running on a Kubernetes cluster. I have access to the cluster&rsquo;s metrics and can see the pods&rsquo; CPU and RAM usage.
Those unfamiliar with Kubernetes can consider a pods like one Node.js process started inside a Docker container.</p>
<h4 id="cpu-increase">CPU increase</h4>
<p>I noticed an increase in CPU usage, going from 24% to 30% of the reservation after the deployment—another defeat.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-CPU.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-CPU.png"
                 alt="The CPU went from 24% to 30%" 
                 title="CPU Graph" 
        />
    </a>
     <figcaption>CPU Graph</figcaption> 
</figure>
<blockquote>
<p>In Kubernetes, we set CPU and RAM reservations. It is a good practice to indicate to the cluster how many resources the pods will need.
For example, we can define that one Node.js process can use up to 2 CPUs.
The graph then shows how much of these two CPUs is used compared to the reservation.
The same applies to RAM. Of course, the graph shows values for the entire cluster, not only one pod.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="ln" id="hl-0-1"><a class="lnlinks" href="#hl-0-1">1</a></span><span class="cl"><span class="nt">limits</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-0-2"><a class="lnlinks" href="#hl-0-2">2</a></span><span class="cl"><span class="w">  </span><span class="nt">memory</span><span class="p">:</span><span class="w"> </span><span class="l">512Mi</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-0-3"><a class="lnlinks" href="#hl-0-3">3</a></span><span class="cl"><span class="w"></span><span class="nt">requests</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-0-4"><a class="lnlinks" href="#hl-0-4">4</a></span><span class="cl"><span class="w">  </span><span class="nt">memory</span><span class="p">:</span><span class="w"> </span><span class="l">512Mi</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-0-5"><a class="lnlinks" href="#hl-0-5">5</a></span><span class="cl"><span class="w">  </span><span class="nt">cpu</span><span class="p">:</span><span class="w"> </span><span class="m">2</span><span class="w">
</span></span></span></code></pre></div><p>This is an example of a configuration for a pod. This means the pod will have two CPUs and 512Mi of RAM at its disposal.</p>
</blockquote>
<h4 id="memory-usage-decrease">Memory usage decrease</h4>
<p>The memory usage went down. A small victory!</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-RAM.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-RAM.png"
                 alt="The RAM went from 75% to 55%" 
                 title="RAM usage" 
        />
    </a>
     <figcaption>RAM usage</figcaption> 
</figure>
<p>This project always loses weight after each deployment. It is normal, and it gains it back after a while.
It takes a few hours to stabilize, but here, it went down more than usual, and at first glance, it will likely stay like that.</p>
<h3 id="nodejs-vitals">Node.js vitals</h3>
<p>The first Node.js metric I was interested in is the <a href="https://nodesource.com/blog/event-loop-utilization-nodejs/">Event Loop Utilization (ELU)</a>.
This metric is essential to understand the health of a Node.js process. It basically shows how much time the process is spending doing work in the <a href="https://nodejs.org/en/learn/asynchronous-work/event-loop-timers-and-nexttick">event loop</a>, from ~0% for an idle process to 100% for a process that is always executing JavaScript code.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-ELU.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-ELU.png"
                 alt="The ELU went from 17% to 20% on average" 
                 title="Event Loop Utilization" 
        />
    </a>
     <figcaption>Event Loop Utilization</figcaption> 
</figure>
<p>The graph shows a slight increase after the deployment, going from 17% to 20% on average. A defeat, again!
It is not really surprising as we know the CPU usage increased,
but we can clearly see that it had a (small) impact on the JavaScript code running.
This may be the reason for the increase in response time.</p>
<p>After that, I looked at the HEAP and the Garbage collector statistics. They both make sense together.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-HEAP-GC.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-HEAP-GC.png"
                 alt="Multiple graphs showing all HEAP spaces and the Garbage Collector statistics" 
                 title="HEAP and Garbage collector metrics" 
        />
    </a>
     <figcaption>HEAP and Garbage collector metrics</figcaption> 
</figure>
<p>We lost weight on the HEAP, but something is happening with the Garbage Collector.
The minor GC is running more often and is taking more time.</p>
<p>Without going into too much detail, the <a href="https://v8.dev/blog/trash-talk#minor-gc">minor GC</a> is a process that targets newly created objects in the HEAP.
Another one (the Major GC) targets all &ldquo;old&rdquo; objects.</p>
<p>The Minor GC is a fast process that runs often. It is normal to see it called at high volume.
However, something changed after the upgrade as we went from a few calls to thousands of them.
Even if it is a fast process, it ate up almost 4 seconds of CPU time on the entire cluster. By comparison, we were only eating up less than 1 second before the deployment.</p>
<p>This increase in GC can easily explain the CPU usage and part of the ELU increase, which results in a slower response time.</p>
<p>I might have my culprit here.</p>
<h2 id="issue-identified-now-what">Issue identified, now what?</h2>
<p>Ok, there is clearly something going on with the Garbage Collector. But what is it?</p>
<p>If we look at the HEAP in detail, there were a few notable changes after the deployment:</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-HEAP-NEW.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-1-HEAP-NEW.png"
                 alt="Gaph of few HEAP spaces size: map, new, shared" 
                 title="Gaph of few HEAP spaces size: map, new, shared" 
        />
    </a>
     <figcaption>Gaph of few HEAP spaces size: map, new, shared</figcaption> 
</figure>
<p>The <strong>map</strong> HEAP space disappeared, and the <strong>shared</strong> spaces appeared. But most importantly, the <strong>new</strong> space went from ~33MB to ~8MB.</p>
<p>Do you remember what I wrote a few lines back?</p>
<blockquote>
<p>The Minor GC targets newly created objects in the HEAP.</p>
</blockquote>
<p>Is this the reason why the GC is now running so often? I think a smaller space means more frequent GC runs because when the space is full,
the GC needs to run to free some space. If the space is smaller, it will become full quicker and run more often.</p>
<h3 id="why-is-the-new-space-smaller">Why is the new space smaller?</h3>
<p>There is no configuration of the HEAP that targets the new space in the project.
This means Node.JS itself probably changed between versions 18 and 20.
But there is one HEAP space that is configured: the old space. We run the server with the following command:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-1-1"><a class="lnlinks" href="#hl-1-1">1</a></span><span class="cl">node --max-old-space-size<span class="o">=</span><span class="m">300</span> dist/server.js
</span></span></code></pre></div><p>I don&rsquo;t know if this impacts the new space as well.
I started searching for references to the new space in the Node.js release notes.
At first, I found nothing relevant, but after a while, I made the link between “new space” and “semi space.”
The V8 engine under the hood of Node.js uses this wording instead of “new space.”
And sure enough, I found a change in the Node.js 19 release notes: <a href="https://github.com/nodejs/node/pull/44436">https://github.com/nodejs/node/pull/44436</a></p>
<p>The parameter “&ndash;max-semi-space-size” was added because it was itself added to the V8 engine.
By following breadcrumbs, I finally found these changes in the V8 engine:
<a href="https://chromium-review.googlesource.com/c/v8/v8/&#43;/1631593">https://chromium-review.googlesource.com/c/v8/v8/+/1631593</a> and <a href="https://chromium-review.googlesource.com/c/v8/v8/&#43;/4384482">https://chromium-review.googlesource.com/c/v8/v8/+/4384482</a></p>
<p>These changes modified the way the max-semi-space-size is computed. I&rsquo;m no C expert,
but by simply reading comments and some parts of the code, we can see that the new space’s size has changed.
The new value is now computed from various others.
Unfortunately, I could not find how it is computed exactly as my C++ is a bit rusty, and V8 is not a simple project.
I can only make hypotheses at this investigation stage; one is that the new space’s size is computed in relation to the old space’s size.</p>
<p>The first change was introduced in V8 10.6 and is now part of Node.js 20, which uses 11.3. For reference, Node.js 18 was using V8 10.2.
This means that going from Node.js 18 to 20, we also went from V8 10.2 to 11.3.</p>
<h3 id="a-workaround">A workaround?</h3>
<p>The “new” HEAP space is now computed differently. Upon the upgrade, it went from ~32MB to ~8MB. It is most likely the reason why the GC is now eating up so much CPU time compared to before.</p>
<p>A new parameter was introduced to specify the “new” space’s size: “&ndash;max-semi-space-size.”</p>
<p>I tried to set it to the previous value and see if it solved the issue.</p>
<p>I changed the command to start the server to:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-2-1"><a class="lnlinks" href="#hl-2-1">1</a></span><span class="cl">node --max-semi-space-size<span class="o">=</span><span class="m">16</span> --max-old-space-size<span class="o">=</span><span class="m">300</span> dist/server.js
</span></span></code></pre></div><p>The value “16” comes from the <a href="https://github.com/nodejs/node/blob/86415e4688f466c67878d525db4ebc545492bcd7/doc/api/cli.md?plain=1#L3363">documentation itself</a>.</p>
<pre><code>--max-semi-space-size=SIZE (in megabytes)

Sets the maximum [semi-space][] size for V8's [scavenge garbage collector][] in
MiB (megabytes).
Increasing the max size of a semi-space may improve throughput for Node.js at
the cost of more memory consumption.
[...]    
The default value is 16 MiB for 64-bit systems and 8 MiB for 32-bit systems. 
[...]
</code></pre>
<p>Let&rsquo;s deploy this simple change and see if it works.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-2-project.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-2-project.png"
                 alt="Graph showing the percentage of requests with a response time under 100ms, 50ms, 10ms, and the average response time" 
                 title="Response time goals &amp; average response time" 
        />
    </a>
     <figcaption>Response time goals &amp; average response time</figcaption> 
</figure>
<p>The response time has gone back to the previous values. It&rsquo;s a win!</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-2-system.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-2-system.png"
                 alt="Graph showing the CPU and RAM usage returning to normal values" 
                 title="CPU &amp; RAM usage" 
        />
    </a>
     <figcaption>CPU &amp; RAM usage</figcaption> 
</figure>
<p>The CPU usage is also back to normal, and the RAM usage is still lower than before. It&rsquo;s a double win!</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-2-nodejs.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/deploy-2-nodejs.png"
                 alt="Graph showing the ELU, HEAP and GC returning to normal values" 
                 title="Node.js metrics including ELU, HEAP and GC" 
        />
    </a>
     <figcaption>Node.js metrics including ELU, HEAP and GC</figcaption> 
</figure>
<p>Finally, we can see that the GC went back to a &ldquo;normal&rdquo; behavior.
Also, the new space is now back to its original value.
It confirms my hypothesis that the new space’s size was the issue.</p>
<h2 id="what-happened">What happened?</h2>
<p>At this point, the issue has been solved in production.
But I still need to understand what exactly caused the new space to shrink like this.
I hypothesize that the <code>max-semi-space-size</code> is now computed in relation to the old space’s size. Since we specify a <code>--max-old-space-size</code> of 300MB, a relatively low value for Node.js,
it would not be surprising that it significantly impacted the “new” space’s size and caused it to shrink that much.</p>
<p>Let&rsquo;s build a lab project to test and confirm this hypothesis.</p>
<h3 id="lab-project">Lab project</h3>
<p>I found a basic HEAP consumption script online and used the standard “V8” module to obtain HEAP statistics.
Here is the resulting script:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-javascript" data-lang="javascript"><span class="line"><span class="ln" id="hl-3-1"><a class="lnlinks" href="#hl-3-1"> 1</a></span><span class="cl"><span class="kr">const</span> <span class="nx">v8</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">&#39;v8&#39;</span><span class="p">);</span>
</span></span><span class="line"><span class="ln" id="hl-3-2"><a class="lnlinks" href="#hl-3-2"> 2</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-3-3"><a class="lnlinks" href="#hl-3-3"> 3</a></span><span class="cl"><span class="c1">// Dumb function stolen somewhere on the internet and modified to allocate
</span></span></span><span class="line"><span class="ln" id="hl-3-4"><a class="lnlinks" href="#hl-3-4"> 4</a></span><span class="cl"><span class="c1">// lots of new objects. A bit barbaric, I know, but it does the job.
</span></span></span><span class="line"><span class="ln" id="hl-3-5"><a class="lnlinks" href="#hl-3-5"> 5</a></span><span class="cl"><span class="c1"></span><span class="kd">function</span> <span class="nx">allocateMemory</span><span class="p">(</span><span class="nx">size</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="ln" id="hl-3-6"><a class="lnlinks" href="#hl-3-6"> 6</a></span><span class="cl">    <span class="c1">// Simulate allocation of bytes
</span></span></span><span class="line"><span class="ln" id="hl-3-7"><a class="lnlinks" href="#hl-3-7"> 7</a></span><span class="cl"><span class="c1"></span>    <span class="kr">const</span> <span class="nx">numbers</span> <span class="o">=</span> <span class="nx">size</span> <span class="o">/</span> <span class="mi">8</span><span class="p">;</span>
</span></span><span class="line"><span class="ln" id="hl-3-8"><a class="lnlinks" href="#hl-3-8"> 8</a></span><span class="cl">    <span class="kr">const</span> <span class="nx">arr</span> <span class="o">=</span> <span class="p">[];</span>
</span></span><span class="line"><span class="ln" id="hl-3-9"><a class="lnlinks" href="#hl-3-9"> 9</a></span><span class="cl">    <span class="nx">arr</span><span class="p">.</span><span class="nx">length</span> <span class="o">=</span> <span class="nx">numbers</span><span class="p">;</span>
</span></span><span class="line"><span class="ln" id="hl-3-10"><a class="lnlinks" href="#hl-3-10">10</a></span><span class="cl">    <span class="k">for</span> <span class="p">(</span><span class="kd">let</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="nx">numbers</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
</span></span><span class="line"><span class="ln" id="hl-3-11"><a class="lnlinks" href="#hl-3-11">11</a></span><span class="cl">        <span class="nx">arr</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&#34;test&#34;</span><span class="o">:</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()};</span>
</span></span><span class="line"><span class="ln" id="hl-3-12"><a class="lnlinks" href="#hl-3-12">12</a></span><span class="cl">        <span class="nx">arr</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="sb">`</span><span class="si">${</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span><span class="si">}</span><span class="sb">`</span><span class="p">]</span> <span class="o">=</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">();</span>
</span></span><span class="line"><span class="ln" id="hl-3-13"><a class="lnlinks" href="#hl-3-13">13</a></span><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="ln" id="hl-3-14"><a class="lnlinks" href="#hl-3-14">14</a></span><span class="cl">    <span class="k">return</span> <span class="nx">arr</span><span class="p">;</span>
</span></span><span class="line"><span class="ln" id="hl-3-15"><a class="lnlinks" href="#hl-3-15">15</a></span><span class="cl"><span class="p">}</span>
</span></span><span class="line"><span class="ln" id="hl-3-16"><a class="lnlinks" href="#hl-3-16">16</a></span><span class="cl"><span class="c1">// We allocate memory to trigger the garbage collector 
</span></span></span><span class="line"><span class="ln" id="hl-3-17"><a class="lnlinks" href="#hl-3-17">17</a></span><span class="cl"><span class="c1">// &amp; force the HEAP to grow, including the `new_space`
</span></span></span><span class="line"><span class="ln" id="hl-3-18"><a class="lnlinks" href="#hl-3-18">18</a></span><span class="cl"><span class="c1"></span><span class="nx">allocateMemory</span><span class="p">(</span><span class="mi">1000000</span><span class="p">)</span>
</span></span><span class="line"><span class="ln" id="hl-3-19"><a class="lnlinks" href="#hl-3-19">19</a></span><span class="cl"><span class="kr">const</span> <span class="nx">heapSpaces</span> <span class="o">=</span> <span class="nx">v8</span><span class="p">.</span><span class="nx">getHeapSpaceStatistics</span><span class="p">()</span>
</span></span><span class="line"><span class="ln" id="hl-3-20"><a class="lnlinks" href="#hl-3-20">20</a></span><span class="cl"><span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span>
</span></span><span class="line"><span class="ln" id="hl-3-21"><a class="lnlinks" href="#hl-3-21">21</a></span><span class="cl">	<span class="nx">heapSpaces</span><span class="p">.</span><span class="nx">filter</span><span class="p">(</span><span class="nx">item</span> <span class="p">=&gt;</span> <span class="nx">item</span><span class="p">.</span><span class="nx">space_name</span> <span class="o">===</span> <span class="s1">&#39;new_space&#39;</span><span class="p">)[</span><span class="mi">0</span><span class="p">].</span><span class="nx">space_size</span> 
</span></span><span class="line"><span class="ln" id="hl-3-22"><a class="lnlinks" href="#hl-3-22">22</a></span><span class="cl">    <span class="o">/</span> <span class="mi">1024</span> <span class="o">/</span> <span class="mi">1024</span> <span class="c1">// We display the value in MB for convenience
</span></span></span><span class="line"><span class="ln" id="hl-3-23"><a class="lnlinks" href="#hl-3-23">23</a></span><span class="cl"><span class="c1"></span><span class="p">);</span>
</span></span></code></pre></div><p>When running this script, the output will be a single number representing the size of the “new_space” in MB.
Before outputting it, I ensured that this space was grown to its maximum value by allocating objects in memory.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-4-1"><a class="lnlinks" href="#hl-4-1">1</a></span><span class="cl">$ node test.js
</span></span><span class="line"><span class="ln" id="hl-4-2"><a class="lnlinks" href="#hl-4-2">2</a></span><span class="cl"><span class="m">32</span>
</span></span></code></pre></div><p>Now, let&rsquo;s run this script with the “&ndash;max-old-space-size” set to 300MB using Node 18 and then Node 20.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-5-1"><a class="lnlinks" href="#hl-5-1">1</a></span><span class="cl">$ nvm use <span class="m">18</span>
</span></span><span class="line"><span class="ln" id="hl-5-2"><a class="lnlinks" href="#hl-5-2">2</a></span><span class="cl">Now using node v18.20.4 <span class="o">(</span>npm v10.7.0<span class="o">)</span>
</span></span><span class="line"><span class="ln" id="hl-5-3"><a class="lnlinks" href="#hl-5-3">3</a></span><span class="cl">$ node --max-old-space-size<span class="o">=</span><span class="m">300</span> test.js
</span></span><span class="line"><span class="ln" id="hl-5-4"><a class="lnlinks" href="#hl-5-4">4</a></span><span class="cl"><span class="m">32</span>
</span></span><span class="line"><span class="ln" id="hl-5-5"><a class="lnlinks" href="#hl-5-5">5</a></span><span class="cl">$ nvm use <span class="m">20</span>
</span></span><span class="line"><span class="ln" id="hl-5-6"><a class="lnlinks" href="#hl-5-6">6</a></span><span class="cl">Now using node v20.15.1 <span class="o">(</span>npm v10.7.0<span class="o">)</span>
</span></span><span class="line"><span class="ln" id="hl-5-7"><a class="lnlinks" href="#hl-5-7">7</a></span><span class="cl">$ node --max-old-space-size<span class="o">=</span><span class="m">300</span> test.js
</span></span><span class="line"><span class="ln" id="hl-5-8"><a class="lnlinks" href="#hl-5-8">8</a></span><span class="cl"><span class="m">32</span>
</span></span></code></pre></div><p>The “new_space” size is the same for both versions. I was clearly wrong.</p>
<p>Of course, doing the same without the “&ndash;max-old-space-size” gives the exact same result.</p>









    
        
    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/doctor-what.png"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/doctor-what_hu_48995b93e6c3abcd.png"
                 alt="Me (represented by William Hartnell) watching the results with astonishment" 
                 title="Me watching the results" 
        />
    </a>
     <figcaption>Me watching the results</figcaption> 
</figure>
<p>What is going on? Why is my project behaving differently? At this stage, I can’t understand the reason why.</p>
<p>After more searching in V8 code and, most importantly, a hint from one of my colleagues <a href="https://blog.ztec.fr/en/sources/zibok/zibock/">Zibock</a>, I may have a new hypothesis related to the memory reservation in the Kubernetes configuration.</p>
<p>The hypothesis now is the “new_space” size is computed in relation to the memory reservation of the pod.</p>
<blockquote>
<p>Without going into details, Kubernetes memory and CPU reservation are done through the Kernel.
Meaning that what is actually enforcing the reservation is the Kernel itself. It is applied directly to the process running inside the pod via the <a href="https://en.wikipedia.org/wiki/Cgroups">cgroups</a>.
Therefore, the process itself can be aware of the limit and adapt.</p>
</blockquote>
<p>I could test that in a Kubernetes Cluster, but there may be an easier way to test this hypothesis.
Sure enough, Docker allows setting memory reservations, too, via the <code>--memory</code> parameter. More on that <a href="https://docs.docker.com/config/containers/resource_constraints/">here</a>.</p>
<p>Firstly, the results without memory reservation:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-6-1"><a class="lnlinks" href="#hl-6-1">1</a></span><span class="cl">$ docker run -ti --rm -v ./:/ node:18 node /test.js
</span></span><span class="line"><span class="ln" id="hl-6-2"><a class="lnlinks" href="#hl-6-2">2</a></span><span class="cl"><span class="m">32</span>
</span></span><span class="line"><span class="ln" id="hl-6-3"><a class="lnlinks" href="#hl-6-3">3</a></span><span class="cl">$ docker run -ti --rm -v ./:/ node:20 node /test.js
</span></span><span class="line"><span class="ln" id="hl-6-4"><a class="lnlinks" href="#hl-6-4">4</a></span><span class="cl"><span class="m">32</span>
</span></span></code></pre></div><p>These results show the exact same result as before, as expected.</p>
<p>Then, with limits:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-7-1"><a class="lnlinks" href="#hl-7-1">1</a></span><span class="cl">$ docker run --memory<span class="o">=</span>512m -ti --rm -v ./:/ node:18 node /test.js
</span></span><span class="line"><span class="ln" id="hl-7-2"><a class="lnlinks" href="#hl-7-2">2</a></span><span class="cl"><span class="m">32</span>
</span></span><span class="line"><span class="ln" id="hl-7-3"><a class="lnlinks" href="#hl-7-3">3</a></span><span class="cl">$ docker run --memory<span class="o">=</span>512m -ti --rm -v ./:/ node:20 node /test.js
</span></span><span class="line"><span class="ln" id="hl-7-4"><a class="lnlinks" href="#hl-7-4">4</a></span><span class="cl"><span class="m">2</span>
</span></span></code></pre></div><p>Finally, we have a different result.
The “new_space” size is now 2MB. It confirms the hypothesis that the memory reservation is used to compute the “new_space” size.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/doctor-disco.gif"
            target="_blank"
    >
        <img
                src="/2024/post/node.js-20-aventure-inattendue-kubernetes/img/doctor-disco.gif"
                 alt="Me (represented by Peter Capaldi) dancing of joy and walking away from a small tardis door" 
                 title="Me celebrating the results" 
        />
    </a>
     <figcaption>Me celebrating the results</figcaption> 
</figure>
<p>I now have my culprit. The memory reservation in the Kubernetes configuration is the reason why the &ldquo;new_space&rdquo; size shrunk so much.</p>
<h2 id="conclusion">Conclusion</h2>
<p>The overall upgrade to Node.js 20 is a win. The global memory consumption is significantly lower than before, and apart from the few moments when the “new_space” size was too small, everything worked flawlessly.</p>
<p>When using Node.js in a Kubernetes environment, and more broadly in a containerized scenario, you must consider the memory and CPU reservation. It needs to be configured in order to set limits to your process that would otherwise consume more than you expected. Also, setting it to low values requires attention to ensure the process accommodates the limit appropriately.</p>
<p>Today, we saw that setting RAM limits on a process also impacts how much it will allow itself to consume. Production services with high loads or receiving tons of requests can impact performance and latency. If I had not monitored the metrics, we would have missed our target response time, dropping by a whole percent! A shame, I know.</p>
<p>The impacts of CPU limits on Node.js processes would make good material for a next post, as I observed surprising effects when I did some tests a few years ago. Maybe I&rsquo;ll write about it in the future&hellip; So keep your eye on the blog!</p>
<p>The final <del>word</del> paragraph is:</p>
<blockquote>
<p>In Node.js, HEAP space is now (since Node 19) sized in relation to the memory limits of the process (among other things).</p>
<p>In a Kubernetes/Container context, where setting RAM limits is a common practice, it can unexpectedly impact the
performance of your Node.js process.
The “&ndash;max-semi-space-size” parameter must be considered in those scenarios.</p>
</blockquote>
<h4 id="update-24th-october-2024">Update 24th October 2024</h4>
<p><a href="https://github.com/joebowbeer">Joe Bowbeer</a> opened an <a href="https://github.com/nodejs/node/issues/55487">issue</a> and proposed a <a href="https://github.com/nodejs/node/pull/55495">PR</a> on Node.js project to clarify the semi-space behavior.
PR still open for review as of today.</p>
<p>Thanks for reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
<p>—</p>
<p>Many thanks to <a href="https://www.linkedin.com/in/pauline-m-b8703048/">Pauline Munier</a> and <a href="https://www.linkedin.com/in/gillian-kelly">Gillian Kelly</a> for their help in writing this article.
You can also find this article on Deezer.io : <a href="https://deezer.io/node-js-20-upgrade-a-journey-through-unexpected-heap-issues-with-kubernetes-27ae3d325646">https://deezer.io</a></p>]]></description></item><item><title>El Comité and Anthony Joseph at la cité de la musique</title><link>https://blog.ztec.fr/en/2024/09/05/concert/el-comit%C3%A9-and-anthony-joseph-at-la-cit%C3%A9-de-la-musique/</link><pubDate>Thu, 05 Sep 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/09/05/concert/el-comit%C3%A9-and-anthony-joseph-at-la-cit%C3%A9-de-la-musique/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_866a10701351a716.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_1efab3a4f05f591a.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_866a10701351a716.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="el-comité">El Comité</h2>





















    
    
        
    

    
    
        
    

    
    

    
    





    

    
        
    




    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover1_hu_2b8128a5b59241c8.webp 1x, /2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover1_hu_446de56a2ce8bd63.webp 2x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover1_hu_5159253d0a24d23e.jpg 1x, /2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover1_hu_5722e0fe6282517c.jpg 2x" />
        

        
        
        <img
            src="/2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover1_hu_5159253d0a24d23e.jpg"
             alt="El Comité" 
             title="El Comité" 
        />

        
            <div class="credit">EL Comite ⓒ Anastasia Polak</div>
        
    </picture>


<ul>
<li>


<a href="/en/artists/rolando-luna/">Rolando Luna</a> - 


<a href="/en/instruments/piano/">Piano</a>, Fender, 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/harold-l%C3%B3pez-nussa/">Harold López-Nussa</a> - 


<a href="/en/instruments/piano/">Piano</a>, Fender, 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/gast%C3%B3n-joya/">Gastón Joya</a> - 


<a href="/en/instruments/double-bass/">Double bass</a>, 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/rodney-barreto/">Rodney Barreto</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/yaroldy-abreu/">Yaroldy Abreu</a> - 


<a href="/en/instruments/percussion/">Percussion</a>, congas</li>
<li>


<a href="/en/artists/carlos-sarduy/">Carlos Sarduy</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/irving-acao/">Irving Acao</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/flavia-coelho/">Flavia Coelho</a> - 


<a href="/en/instruments/voice/">voice</a> (guest)</li>
</ul>
<h2 id="anthony-joseph---black-history">Anthony Joseph - Black History</h2>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover2_hu_28efd7dfb6c201f5.webp 1x, /2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover2_hu_2ab56b7c06a4eb4a.webp 1.88x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover2_hu_74878630f7dec288.jpg 1x, /2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover2_hu_ccd4d7d109ed2843.jpg 1.88x" />
        

        
        
        <img
            src="/2024/09/05/concert/el-comit%C3%A9-et-anthony-joseph-%C3%A0-la-cit%C3%A9-de-la-musique/cover2_hu_74878630f7dec288.jpg"
             alt="Anthony Joseph" 
             title="Anthony Joseph" 
        />

        
            <div class="credit">ⓒ AJ</div>
        
    </picture>


<ul>
<li>


<a href="/en/artists/anthony-joseph/">Anthony Joseph</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/andrew-john/">Andrew John</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/thibaut-remy/">Thibaut Remy</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/rod-youngs/">Rod Youngs</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/renato-paris/">Renato Paris</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/colin-webster/">Colin Webster</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/dave-okumu/">Dave Okumu</a> - multi-instrumentalist (guest)</li>
<li>


<a href="/en/artists/roger-raspail/">Roger Raspail</a> - 


<a href="/en/instruments/percussion/">Percussion</a> (guest)</li>
</ul>
]]></description></item><item><title>Man with a mission at Le Trianon</title><link>https://blog.ztec.fr/en/2024/09/04/concert/man-with-a-mission-at-le-trianon/</link><pubDate>Wed, 04 Sep 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/09/04/concert/man-with-a-mission-at-le-trianon/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f97dd7505db64a20.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_de7a17ee8f6cb17f.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f97dd7505db64a20.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        




















    
    
        
    

    
    
        
    

    
    

    
    





    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/09/04/concert/man-with-a-mission-au-trianon/cover_hu_9768bcb7523aca71.webp 1x, /2024/09/04/concert/man-with-a-mission-au-trianon/cover_hu_ff70a0754d059352.webp 2x, /2024/09/04/concert/man-with-a-mission-au-trianon/cover_hu_1ca85d6a7a94504.webp 2.40x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/09/04/concert/man-with-a-mission-au-trianon/cover_hu_f5b8c6e3297fe4c9.jpg 1x, /2024/09/04/concert/man-with-a-mission-au-trianon/cover_hu_12b0477d9fb45e61.jpg 2x, /2024/09/04/concert/man-with-a-mission-au-trianon/cover_hu_771d98c2eb5a3c3b.jpg 2.40x" />
        

        
        
        <img
            src="/2024/09/04/concert/man-with-a-mission-au-trianon/cover_hu_f5b8c6e3297fe4c9.jpg"
             alt="Man with a Mission - Kizuna no Kiseki Europe Tour 2024" 
             title="Man with a Mission" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Le Cri du Caire and The Harvest Time Experiment - Tribute to Pharoah Sanders</title><link>https://blog.ztec.fr/en/2024/09/02/concert/le-cri-du-caire-and-the-harvest-time-experiment-tribute-to-pharoah-sanders/</link><pubDate>Mon, 02 Sep 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/09/02/concert/le-cri-du-caire-and-the-harvest-time-experiment-tribute-to-pharoah-sanders/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_3a8d033e3f40f7b6.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8d4b97da26a2d576.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_3a8d033e3f40f7b6.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="le-cri-du-caire">Le Cri du Caire</h2>
<ul>
<li>


<a href="/en/artists/abdullah-miniawy/">Abdullah Miniawy</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/peter-corser/">Peter Corser</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/karsten-hochapfel/">Karsten Hochapfel</a> - 


<a href="/en/instruments/cello/">Cello</a></li>
</ul>
<h2 id="the-harvest-time-experiment---tribute-to-pharoah-sanders">The Harvest Time Experiment - Tribute to Pharoah Sanders</h2>
<ul>
<li>


<a href="/en/artists/tisziji-mu%C3%B1oz/">Tisziji Muñoz</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/joshua-abrams/">Joshua Abrams</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/hamid-drake/">Hamid Drake</a> - 


<a href="/en/instruments/drums/">Drums</a>, 


<a href="/en/instruments/percussion/">Percussion</a></li>
<li>


<a href="/en/artists/sheila-maurice-grey/">Sheila Maurice-Grey</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/idris-rahman/">Idris Rahman</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a>, 


<a href="/en/instruments/clarinet/">Clarinet</a></li>
<li>


<a href="/en/artists/emre-ramazanoglu/">Emre Ramazanoglu</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/liran-donin/">Liran Donin</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
</ul>
]]></description></item><item><title>Makaya McCraven at Philharmonie de Paris</title><link>https://blog.ztec.fr/en/2024/08/30/concert/makaya-mccraven-at-philharmonie-de-paris/</link><pubDate>Fri, 30 Aug 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/08/30/concert/makaya-mccraven-at-philharmonie-de-paris/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_cbdb064ea0cf9067.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4276fd8e1d451652.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_cbdb064ea0cf9067.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="makaya-mccraven">Makaya McCraven</h2>
<ul>
<li>


<a href="/en/artists/makaya-mccraven/">Makaya McCraven</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/jahari-stampley/">Jahari Stampley</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/matt-gold/">Matt Gold</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/marquis-hill/">Marquis Hill</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/junius-paul/">Junius Paul</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
</ul>





















    
    
        
    

    
    
        
    

    
    

    
    





    

    
        
    




    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover2_hu_59cfc316d821a84c.webp 1x, /2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover2_hu_e14c3631c0e2c023.webp 2x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover2_hu_fab51ac75fe0f664.jpg 1x, /2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover2_hu_620a897ed66d7ec7.jpg 2x" />
        

        
        
        <img
            src="/2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover2_hu_fab51ac75fe0f664.jpg"
             alt="Makaya McCraven" 
             title="Makaya McCraven" 
        />

        
            <div class="credit">©Nate Schuls</div>
        
    </picture>


<h2 id="opening-act-endea-owens--the-cookout">Opening act: Endea Owens &amp; the Cookout</h2>
<ul>
<li>


<a href="/en/artists/endea-owens/">Endea Owens</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/miki-hayama/">Miki Hayama</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/shenel-johns/">Shenel Johns</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/louis-fouch%C3%A9/">Louis Fouché</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/kris-johnson/">Kris Johnson</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/lee-pearson/">Lee Pearson</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    
        
    

    
    

    
    





    

    
        
    




    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover_hu_79e9cff1378f62d1.webp 1x, /2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover_hu_31250fc71dce4069.webp 2x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover_hu_82325115e1d46ff1.jpg 1x, /2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover_hu_3b3cb754a6243805.jpg 2x" />
        

        
        
        <img
            src="/2024/08/30/concert/makaya-mccraven-%C3%A0-la-philharmonie-de-paris/cover_hu_82325115e1d46ff1.jpg"
             alt="Endea Owens" 
             title="Endea Owens" 
        />

        
            <div class="credit">©EO</div>
        
    </picture>


]]></description></item><item><title>Makaya McCraven and Endea Owens &amp; the Cookout</title><link>https://blog.ztec.fr/en/2024/08/20/concert/makaya-mccraven-and-endea-owens-the-cookout/</link><pubDate>Tue, 20 Aug 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/08/20/concert/makaya-mccraven-and-endea-owens-the-cookout/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_aeee54d86151406c.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_350bebca5d6e8ace.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_aeee54d86151406c.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="endea-owens--the-cookout">Endea Owens &amp; the Cookout</h2>
<ul>
<li>


<a href="/en/artists/endea-owens/">Endea Owens</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/miki-hayama/">Miki Hayama</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/shenel-johns/">Shenel Johns</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/louis-fouch%C3%A9/">Louis Fouché</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/kris-johnson/">Kris Johnson</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/lee-pearson/">Lee Pearson</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>
<h2 id="makaya-mccraven-quartet">Makaya McCraven Quartet</h2>
<ul>
<li>


<a href="/en/artists/makaya-mccraven/">Makaya McCraven</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/jahari-stampley/">Jahari Stampley</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/matt-gold/">Matt Gold</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/marquis-hill/">Marquis Hill</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/junius-paul/">Junius Paul</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
</ul>
]]></description></item><item><title>Tribute to Amy Winehouse at Sunset sunside</title><link>https://blog.ztec.fr/en/2024/07/20/concert/tribute-to-amy-winehouse-at-sunset-sunside/</link><pubDate>Sat, 20 Jul 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/07/20/concert/tribute-to-amy-winehouse-at-sunset-sunside/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_526ae0d2087b98c7.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_e2f916e09e8f3bb5.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_526ae0d2087b98c7.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>


<a href="/en/artists/melissa-lesnie-sextet/">Melissa Lesnie Sextet</a> - Tribute to Amy Winehouse</strong></p>
<ul>
<li>


<a href="/en/artists/melissa-lesnie/">Melissa Lesnie</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/victor-pitoiset/">Victor Pitoiset</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/nicola-sabato/">Nicola Sabato</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/erwan-morisse/">Erwan Morisse</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/07/20/concert/hommage-%C3%A0-amy-winehouse-au-sunset-sunside/cover_hu_ec858e0678e94a4e.webp 1x, /2024/07/20/concert/hommage-%C3%A0-amy-winehouse-au-sunset-sunside/cover_hu_9a69ab62f349af75.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/07/20/concert/hommage-%C3%A0-amy-winehouse-au-sunset-sunside/cover_hu_8c3259f40ca4bd6c.jpg 1x, /2024/07/20/concert/hommage-%C3%A0-amy-winehouse-au-sunset-sunside/cover_hu_d78e864a9476436d.jpg 1.60x" />
        

        
        
        <img
            src="/2024/07/20/concert/hommage-%C3%A0-amy-winehouse-au-sunset-sunside/cover_hu_8c3259f40ca4bd6c.jpg"
             alt="Tribute to Amy Winehouse" 
             title="Tribute to Amy Winehouse" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Shibuuya! at Le Duc Des Lombards</title><link>https://blog.ztec.fr/en/2024/06/24/concert/shibuuya-at-le-duc-des-lombards/</link><pubDate>Mon, 24 Jun 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/06/24/concert/shibuuya-at-le-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_9c522204a1d22a98.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f3836f1b6f284fd7.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_9c522204a1d22a98.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>


<a href="/en/artists/shibuuya/">Shibuuya!</a></strong></p>
<ul>
<li>


<a href="/en/artists/pierre-louis-varnier/">Pierre-Louis Varnier</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a>, sampler SP-MKII</li>
<li>


<a href="/en/artists/japhet-boristh%C3%A8ne/">Japhet Boristhène</a> - 


<a href="/en/instruments/drums/">Drums</a>, SPDSX</li>
<li>


<a href="/en/artists/lucas-benedetti/">Lucas Benedetti</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
</ul>
<p><a href="https://www.youtube.com/watch?v=N0Yu9eydOUY">SHIBUUYA! | NEONAIR LIVE SET</a></p>





















    
    
        
    

    
    

    
    

    
    





    
        
    




    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/06/24/concert/shibuuya-au-duc-des-lombards/cover_hu_d0024a9b1179671e.webp 1x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/06/24/concert/shibuuya-au-duc-des-lombards/cover_hu_e9d2b0d699d65e6d.jpg 1x" />
        

        
        
        <img
            src="/2024/06/24/concert/shibuuya-au-duc-des-lombards/cover_hu_e9d2b0d699d65e6d.jpg"
             alt="Shibuuya! logo" 
             title="Shibuuya!" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>























    
    
        
    

    
    
        
    

    
    

    
    





    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/06/24/concert/shibuuya-au-duc-des-lombards/cover2_hu_2df3ab555f1ccc6b.webp 1x, /2024/06/24/concert/shibuuya-au-duc-des-lombards/cover2_hu_1f926ea60f8436a.webp 2x, /2024/06/24/concert/shibuuya-au-duc-des-lombards/cover2_hu_ed23c0c2e1cbc2c6.webp 2.50x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/06/24/concert/shibuuya-au-duc-des-lombards/cover2_hu_4a5a1711e2dd3e04.jpg 1x, /2024/06/24/concert/shibuuya-au-duc-des-lombards/cover2_hu_9a73d62170b5604.jpg 2x, /2024/06/24/concert/shibuuya-au-duc-des-lombards/cover2_hu_18b9f557d7b2ad11.jpg 2.50x" />
        

        
        
        <img
            src="/2024/06/24/concert/shibuuya-au-duc-des-lombards/cover2_hu_4a5a1711e2dd3e04.jpg"
             alt="Shibuuya! performance" 
             title="Shibuuya!" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Robinson Khoury - MŸA at La Gare Le Gore</title><link>https://blog.ztec.fr/en/2024/06/21/concert/robinson-khoury-m%C3%BFa-at-la-gare-le-gore/</link><pubDate>Fri, 21 Jun 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/06/21/concert/robinson-khoury-m%C3%BFa-at-la-gare-le-gore/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d4a0b63097e535f.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ac3c7ab15fb53a60.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d4a0b63097e535f.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/robinson-khoury/">Robinson Khoury</a> - 


<a href="/en/instruments/trombone/">Trombone</a>, various brass instruments, 


<a href="/en/instruments/voice/">voice</a>, modular synthesizer</li>
<li>


<a href="/en/artists/lynn-adib/">Lynn Adib</a> (guest)</li>
<li>


<a href="/en/artists/anissa-nehari/">Anissa Nehari</a> - digital 


<a href="/en/instruments/percussion/">Percussion</a>, 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/l%C3%A9o-jassef/">Léo Jassef</a> - 


<a href="/en/instruments/piano/">Piano</a>, 


<a href="/en/instruments/keyboards/">Keyboards</a>, 


<a href="/en/instruments/voice/">voice</a></li>
</ul>
<p>On digital percussion and voice: Anissa Nehari, a musician with sensitive dynamism, captivating and captivated by the rhythms of the world.</p>
<p>On piano, synthesizers and voice is Léo Jassef, a versatile artist of great sensitivity who has been heard alongside Yom.</p>
<p>Robinson Khoury on trombone, various brass instruments, voice and modular synthesizer.</p>
<p><a href="https://www.youtube.com/watch?v=c6TP9iRFsnU">Robinson Khoury &ldquo;MŸA&rdquo; - Horizon</a> (Youtube)</p>





















    
    
        
    

    
    
        
    

    
    

    
    





    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/06/21/concert/robinson-khoury-m%C3%BFa-%C3%A0-la-gare-le-gore/cover_hu_d723ea00d8c4bd53.webp 1x, /2024/06/21/concert/robinson-khoury-m%C3%BFa-%C3%A0-la-gare-le-gore/cover_hu_ff680cb5e7260ce1.webp 2x, /2024/06/21/concert/robinson-khoury-m%C3%BFa-%C3%A0-la-gare-le-gore/cover_hu_5fba60c0292ac26d.webp 2.88x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/06/21/concert/robinson-khoury-m%C3%BFa-%C3%A0-la-gare-le-gore/cover_hu_e894f9e3d6e48544.jpg 1x, /2024/06/21/concert/robinson-khoury-m%C3%BFa-%C3%A0-la-gare-le-gore/cover_hu_d3f4fb5ba25464b7.jpg 2x, /2024/06/21/concert/robinson-khoury-m%C3%BFa-%C3%A0-la-gare-le-gore/cover_hu_1072ca92933eedc1.jpg 2.88x" />
        

        
        
        <img
            src="/2024/06/21/concert/robinson-khoury-m%C3%BFa-%C3%A0-la-gare-le-gore/cover_hu_e894f9e3d6e48544.jpg"
             alt="Robinson Khoury - MŸA" 
             title="Robinson Khoury" 
        />

        
            <div class="credit">©unknown</div>
        
    </picture>


]]></description></item><item><title>Son Moeun Project - Reflet at Le Duc des Lombards</title><link>https://blog.ztec.fr/en/2024/05/21/concert/son-moeun-project-reflet-at-le-duc-des-lombards/</link><pubDate>Tue, 21 May 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/05/21/concert/son-moeun-project-reflet-at-le-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_92461fc088152949.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_faffa59a8467c4fe.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_92461fc088152949.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>Son Moeun Project - Reflet</strong></p>
<ul>
<li>


<a href="/en/artists/moeun-son/">Moeun Son</a> - 


<a href="/en/instruments/violin/">Violin</a></li>
<li>


<a href="/en/artists/dexter-goldberg/">Dexter Goldberg</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/galindo-cuadra/">Galindo Cuadra</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/florent-allirot/">Florent Allirot</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/gabriel-ferrari/">Gabriel Ferrari</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    
        
    




    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/05/21/concert/son-moeun-project-reflet-au-duc-des-lombards/cover_hu_2dc67649cf1da0ce.webp 1x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/05/21/concert/son-moeun-project-reflet-au-duc-des-lombards/cover_hu_a6ea5eb3a4346099.jpg 1x" />
        

        
        
        <img
            src="/2024/05/21/concert/son-moeun-project-reflet-au-duc-des-lombards/cover_hu_a6ea5eb3a4346099.jpg"
             alt="Moeun Son playing violin" 
             title="Son Moeun Project" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Emma Rawicz Quintet at Vortex</title><link>https://blog.ztec.fr/en/2024/05/03/concert/emma-rawicz-quintet-at-vortex/</link><pubDate>Fri, 03 May 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/05/03/concert/emma-rawicz-quintet-at-vortex/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d56041d759c4d314.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8046f1f3dce5f8ae.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d56041d759c4d314.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>Emma Rawicz Quintet</strong></p>
<ul>
<li>


<a href="/en/artists/emma-rawicz/">Emma Rawicz</a> - 


<a href="/en/instruments/tenor-saxophone/">Tenor Saxophone</a></li>
<li>


<a href="/en/artists/ivo-neame/">Ivo Neame</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/jim-hart/">Jim Hart</a> - 


<a href="/en/instruments/vibraphone/">Vibraphone</a></li>
<li>


<a href="/en/artists/kevin-glasgow/">Kevin Glasgow</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/marc-michel/">Marc Michel</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    

    
    

    
    

    
    








    <picture class="inner-cover type-full">
        
        

        
        

        
        
        <img
            src="/2024/05/03/concert/emma-rawicz-quintet-au-vortex/cover_hu_a147fe787960efc8.jpg"
             alt="Emma Rawicz" 
             title="Emma Rawicz" 
        />

        
            <div class="credit">ⓒACT Gregor Hohenberg</div>
        
    </picture>


]]></description></item><item><title>Theo Croker at New Morning</title><link>https://blog.ztec.fr/en/2024/04/30/concert/theo-croker-at-new-morning/</link><pubDate>Tue, 30 Apr 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/04/30/concert/theo-croker-at-new-morning/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_1d1f18d58f24788b.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_229018ff901b37a7.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_1d1f18d58f24788b.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>Theo Croker Quartet</strong></p>
<ul>
<li>


<a href="/en/artists/theo-croker/">Theo Croker</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/eric-wheeler/">Eric Wheeler</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/idris-frederick/">Idris Frederick</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a>, 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/jeremiah-collier/">Jeremiah Collier</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    
        
    

    
    

    
    





    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/04/30/concert/theo-croker-au-new-morning/cover_hu_83c27be7a86c6c36.webp 1x, /2024/04/30/concert/theo-croker-au-new-morning/cover_hu_40baf838bcf5c735.webp 2x, /2024/04/30/concert/theo-croker-au-new-morning/cover_hu_480b18f0c2ccab89.webp 2.50x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/04/30/concert/theo-croker-au-new-morning/cover_hu_b1a859b2475b9d0e.jpg 1x, /2024/04/30/concert/theo-croker-au-new-morning/cover_hu_6636de18814b8141.jpg 2x, /2024/04/30/concert/theo-croker-au-new-morning/cover_hu_f41cda33a76997bb.jpg 2.50x" />
        

        
        
        <img
            src="/2024/04/30/concert/theo-croker-au-new-morning/cover_hu_b1a859b2475b9d0e.jpg"
             alt="Theo Croker" 
             title="Theo Croker" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Who Parked The Car + Kalupto + Notap at New Morning</title><link>https://blog.ztec.fr/en/2024/04/17/concert/who-parked-the-car--kalupto--notap-at-new-morning/</link><pubDate>Wed, 17 Apr 2024 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/04/17/concert/who-parked-the-car--kalupto--notap-at-new-morning/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ab7a13259724846.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4a652dc44984b5ab.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ab7a13259724846.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>A mini-festival presented by Resolution label featuring 3 emerging groups from the new Parisian scene:</p>
<h2 id="kalupto">Kalupto</h2>
<ul>
<li>


<a href="/en/artists/calypso-larrazet-llop/">Calypso Larrazet-Llop</a> - 


<a href="/en/instruments/voice/">voice</a>, 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/victor-gonon/">Victor Gonon</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
</ul>
<p>Indie-Pop and Folk-tronica</p>
<h2 id="who-parked-the-car">Who parked the car</h2>
<ul>
<li>


<a href="/en/artists/laura-wamba/">Laura Wamba</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/sebasti%C3%A1n-mu%C3%B1oz/">Sebastián Muñoz</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/f%C3%A9lix-reneault/">Félix Reneault</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/c%C3%A9sar-aouill%C3%A9/">César Aouillé</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/thomas-salvatore/">Thomas Salvatore</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a>, 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/ludovic-prieur/">Ludovic Prieur</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/malo-ropers/">Malo Ropers</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
<li>


<a href="/en/artists/alejandro-dixon/">Alejandro Dixon</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>
<p>Presenting their EP &ldquo;Drafts&rdquo; - Soul, Jazz, Funk, Afro Groove, Acid Jazz, Hip Hop and Electro.</p>
<p><strong>Videos:</strong></p>
<ul>
<li><a href="https://www.youtube.com/watch?v=eXf83cm8_4w">Amande • Live at New Morning</a> (Youtube)</li>
<li><a href="https://www.youtube.com/watch?v=6cY2YAxGCOI">Only Missing You • Live at New Morning</a> (Youtube)</li>
<li><a href="https://www.youtube.com/watch?v=UwDk5e_AU9U">Trapped In Forever • Live at New Morning</a> (Youtube)</li>
<li><a href="https://www.youtube.com/watch?v=RIi2jqMGLUs">Cesar&rsquo;s Dream • guitar solo • Live at New Morning</a> (Youtube)</li>
</ul>
<h2 id="notap">Notap</h2>
<p>Pop arrangements from the 2000s to 2020s.</p>
]]></description></item><item><title>Loreena McKennitt at Salle Pleyel</title><link>https://blog.ztec.fr/en/2024/03/18/concert/loreena-mckennitt-at-salle-pleyel/</link><pubDate>Mon, 18 Mar 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/03/18/concert/loreena-mckennitt-at-salle-pleyel/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_2d89d54225cd3a33.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_985d40c57c50132a.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_2d89d54225cd3a33.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>


<a href="/en/artists/loreena-mckennitt/">Loreena McKennitt</a></strong></p>





















    
    

    
    

    
    

    
    








    <picture class="inner-cover type-full">
        
        

        
        

        
        
        <img
            src="/2024/03/18/concert/loreena-mckennitt-%C3%A0-salle-pleyel/cover_hu_b4f4491053a3b08e.jpg"
             alt="Loreena McKennitt" 
             title="Loreena McKennitt" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Thylacine Symphonique at La Seine Musicale</title><link>https://blog.ztec.fr/en/2024/03/06/concert/thylacine-symphonique-at-la-seine-musicale/</link><pubDate>Wed, 06 Mar 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/03/06/concert/thylacine-symphonique-at-la-seine-musicale/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_944540e4078f2236.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_203f86b6aacca879.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_944540e4078f2236.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>Opening Act:</strong></p>
<ul>
<li>


<a href="/en/artists/gr%C3%A9goire-jokic/">Grégoire Jokic</a></li>
</ul>
<p><strong>Thylacine Symphonique</strong></p>
<ul>
<li>


<a href="/en/artists/thylacine/">Thylacine</a> - composition, performance</li>
<li>


<a href="/en/artists/uele-lamore/">Uele Lamore</a> - direction and arrangements</li>
<li>


<a href="/en/artists/orchestre-lamoureux/">Orchestre Lamoureux</a></li>
<li>


<a href="/en/artists/bravinsan/">Bravinsan</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
</ul>





















    
    

    
    

    
    

    
    








    <picture class="inner-cover type-full">
        
        

        
        

        
        
        <img
            src="/2024/03/06/concert/thylacine-symphonique-%C3%A0-la-seine-musicale/cover_hu_f71ec4a062a498a7.jpg"
             alt="Thylacine Symphonique" 
             title="Thylacine Symphonique" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Making plants grow inside Ikea Kallax furniture</title><link>https://blog.ztec.fr/en/2024/post/semi-saga/the-beginning-kallax-as-greenhouse/</link><pubDate>Wed, 06 Mar 2024 12:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2024/post/semi-saga/the-beginning-kallax-as-greenhouse/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    <img src="https://blog.ztec.fr/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-04_hue723daa16d9678c917ee276e55afa68d_7452447_1024x0_resize_q75_box.jpg"
                                         alt="OpenGraph preview"
                                         class="og-image-preview"/>
                                
                            
                        
                        <blockquote>
<p>Reader: I don&rsquo;t have the time to read, what are you talking about?</p>
<p>Blogger: I plant peppers and show how I turned an Ikea Kallax into a greenhouse for my apartment.
It&rsquo;s cool and works great. I hope, I still don&rsquo;t have any peppers.</p>
</blockquote>









    
        
    




    
        
    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-04_hu_1f38cd61d9849561.jpg"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-04_hu_86dcb628db9e865c.jpg"
                 alt="Kallax shelf with aluminum on all walls, including the doors. Plants are visible inside." 
                
        />
    </a>
    
</figure>
<h1 id="the-beginning-plants">The beginning, plants</h1>
<p>I have recently developed a new interest: plants! It&rsquo;s cool and makes the room nicer.
However, this new hobby takes time and requires attention. Also, I need to confess that my final score is not great.
This clearly proves I&rsquo;m still a padawan. I&rsquo;m currently in the learning phase and I try to learn as much as I can from my mistakes.</p>
<ul>
<li>Too much water here</li>
<li>Not enough water over there</li>
<li>Not enough light on this one</li>
<li>Too much water here as well</li>
<li>Pot too big there</li>
<li>Drawing for the last one</li>
</ul>
<p>Anyway, I learn day by day. Except maybe about watering, where I think I may have a sadistic wish to drown my plants. I don&rsquo;t see any other explanations.</p>
<p>Seeing plants grow is pleasing and brings enjoyment to me. However, the market&rsquo;s offering of plants seems to always revolve around the same kinds.
Once you have a Monstera, Yucca, Ficus, or Pachira, stores seem to always have the same things.</p>
<p>This has sparked a new interest for me: growing my own plants. Ideally, exotic ones that are not often seen here.</p>
<p>Obviously, I&rsquo;m the very first in the world to grow such an interest, and I&rsquo;m also the very first to try this experience.
What an original I am!</p>
<h1 id="the-beginning-ii-seeding">The beginning II, seeding</h1>
<p>Here I am in a new world, the world of cultivation. How does one make seeds sprout?
I can already hear you saying it&rsquo;s easy: Put the seed in the ground, pour some water, and wait!</p>
<p>Nope. If it were so simple, there would be no science, nor would there be industrial agronomy :-p.
As a young padawan, you can guess I went in almost blindly anyway with little to no thought and just put seeds in good soil, then patiently waited!</p>
<h2 id="indor-sprouting">Indor sprouting</h2>
<p>I&rsquo;m an urban dweller, living in Paris in a typical Haussmann-style apartment.
My windows face south and west, but I don&rsquo;t receive a lot of sunlight during the day.
Despite these challenges, I&rsquo;m determined to make plants thrive and sprout in less-than-ideal conditions.</p>
<p>To summarize:</p>
<ul>
<li>Low light</li>
<li>Indoors</li>
<li>Any time of the year because I&rsquo;m not patient!</li>
</ul>
<h1 id="the-beginning-iii-first-fail-test--flamboyant">The beginning III, first <del>fail</del> test : Flamboyant</h1>
<p>I recently bought Flamboyant (Delonix regia) seeds, a beautiful tree!</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/flamboyant_hu_2f9ef7825a019995.webp"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/flamboyant_hu_d9162018f6716607.webp"
                 alt="A beautiful red tree,the Flamboyant" 
                 title="Flamboyant" 
        />
    </a>
     <figcaption>Flamboyant</figcaption> 
</figure>

</div>
<p>First issue: It&rsquo;s a big tree and needs to live outside. These problems will of course be problems for future me.
Good luck, future me!</p>
<p>Second issue: It needs a lot of light. Therefore, it probably won&rsquo;t fully grow in my little flat unless I use growing lights.</p>
<p>Here I am searching for good growing lights compatible with a living space.</p>
<h2 id="artificial-indor-sun">Artificial indor Sun</h2>
<p>On Amazon, I found lots of options using LED lights. I chose a random one with 8 LED strips and a timer allowing for automatic switching on/off of the light.
For 50 € I went for it to try.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/LED-01-01_hu_94e87126b534e8e1.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/LED-01-01_hu_1305e9e3427bc300.webp"
                     alt="Growing light with timer" 
                     title="Growing light with timer" 
            />
        </a>
         <figcaption>Growing light with timer</figcaption> 
    </figure>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/LED-01-02_hu_722a9cf70d6e6049.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/LED-01-02_hu_408e906c34918cc6.webp"
                     alt="The timer allow to choose between 3h, 6h, 12h of lighting" 
                     title="Timer" 
            />
        </a>
         <figcaption>Timer</figcaption> 
    </figure>

</div>
<p>I don&rsquo;t provide any links, but you can easily find these products yourself with different prices and options.
I set up everything basically in a square of one of my existing furniture, an Ikea Kallax lying around in my living room.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/kallax-01_hu_bb618a528081a696.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/kallax-01_hu_a759e972849fb6ab.webp"
                     alt="Ikea Kallax furniture with LED strips in multiple squares. Plants and objects are visible in each square." 
                     title="Kallax for plants" 
            />
        </a>
         <figcaption>Kallax for plants</figcaption> 
    </figure>

</div>
<h2 id="seeding">Seeding</h2>
<p>I am now ready to seed, but as I&rsquo;m really ignorant, I decide to look around on the internet to seek some advice.
I find this <a href="https://www.aujardin.info/plantes/flamboyant.php">page</a>.
I read and learned that I need to &ldquo;scarify&rdquo; seeds then put them in water for two days.</p>
<p>&ldquo;Scarify&rdquo; means grinding the seed to remove the outer layer that usually protects the seed interior.
They explain everything <a href="https://www.aujardin.info/fiches/scarification-graines.php">here</a>.</p>
<p>This process will help the sprouting of the seed.
As I didn&rsquo;t have any sandpaper to do it, I skipped this step and directly put the seeds into water.</p>
<p>I did not take pictures, but after two days, each seed was clearly opening with a little extra white/green tips on one side.
It was like it was sprouting already.</p>
<p>Finally, I put each seed in potting soil, one seed per pot. I used the most basic potting soil I could find at a local store.</p>
<h2 id="sprouting">Sprouting</h2>
<p>Out of all the seeds (10, I think), only two sprouted and only one survived more than two days.</p>
<p>Score of 1/10 for my first try.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/flamboyant-01_hu_4a3454030a89d39a.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/flamboyant-01_hu_3961fc74023eb21c.webp"
                     alt="Small Flamboyant seedling with visible cotyledons" 
                     title="Flamboyant seedling" 
            />
        </a>
         <figcaption>Flamboyant seedling</figcaption> 
    </figure>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/flamboyant-02_hu_6c168e498b121319.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/flamboyant-02_hu_7809aa5edfbdc559.webp"
                     alt="Small Flamboyant seedling with first real leaves" 
                     title="Flamboyant seedling" 
            />
        </a>
         <figcaption>Flamboyant seedling</figcaption> 
    </figure>

</div>
<h2 id="the-ultimate-sacrifice">The ultimate sacrifice</h2>
<p>Once the Flamboyant sprouted, I moved it near the window for better lighting.
LEDs are good, but the sun is best anyway, even in my situation.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/flamboyant-03_hu_c346fb6a5cd11db1.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/flamboyant-03_hu_7358aa99e0ce16d6.webp"
                     alt="Small green Flamboyant" 
                     title="Small Flamboyant" 
            />
        </a>
         <figcaption>Small Flamboyant</figcaption> 
    </figure>

</div>
<p>This is the last known picture of my little Flamboyant, still alive.
A few weeks later, all the leaves died, and it stopped growing&hellip; forever.</p>
<h2 id="flamboyant-conclusion">Flamboyant conclusion</h2>
<p>It is obvious it didn&rsquo;t have enough light to grow. The Flamboyant needed more than I could give it, using the growing light or the real sun through the window.
Moreover, I need to be careful with watering. The cause of death is not clear, but with the lack of light, drowning was probably not helping the plant to thrive.</p>
<h1 id="the-beginning--iv-second-test-pili-pili">The beginning  IV, second test: Pili Pili</h1>
<p>While cooking, I kept some seeds of a small pepper called &ldquo;bird&rsquo;s eye chili&rdquo; or Pili Pili. Tasty, spicy, and good looking.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/piment_hu_582839356445fe76.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/piment_hu_6667bf563091622e.webp"
                     alt="Small red peper" 
                     title="bird&#39;s eye chili or Pili Pili" 
            />
        </a>
         <figcaption>bird&rsquo;s eye chili or Pili Pili</figcaption> 
    </figure>

</div>
<p>Online, I found out that like the Flamboyant, you need to leave the seeds in water for 12 hours before seeding them.
Also, sprouting is best between 28°C and 30°C, and the temperature needs to be stable and go down below 20°C.</p>
<p>My living room temperature does not go under 20°C, so there&rsquo;s no issue there.
But I&rsquo;m not really fond of living in a 28-30°C living room.
Therefore, I tried to create a heated greenhouse.</p>
<h3 id="kallax-heated-greenhouse">Kallax heated greenhouse</h3>
<p>I built the greenhouse with the same tools as before but assembled differently.
Instead of having 8 LED strips spread over different squares, I put all of them in one.
I added aluminum foil to reflect light and heat radiation.
The goal is to get the most out of the light and radiation emitted by the LED strips.
The Kallax is black; by itself, it would have absorbed most of the light not directly reaching the plants.
Having the aluminum foil helped as most rays of light had another chance to hit a plant.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-01_hu_a281d9ee1f40d2d5.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-01_hu_1b5990674e7c5db7.webp"
                     alt="Ikea Kallax square with 8 LED strips and a towel to seal off the back." 
                     title="Empty square" 
            />
        </a>
         <figcaption>Empty square</figcaption> 
    </figure>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-02_hu_3da1fe9943765465.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-02_hu_4dd9c55087c23fa1.webp"
                     alt="Ikea Kallax square sealed of with a towel" 
                     title="Closed square" 
            />
        </a>
         <figcaption>Closed square</figcaption> 
    </figure>

</div>
<p>I made that with what I had lying around. I screwed old towels to almost seal off the back and front of the squares.
The front towel is only screwed at the top, allowing me to raise it to look inside.
This is not sealed perfectly, but I hope it will reduce enough airflow to allow the temperature to rise to 28-30°C.</p>
<p>Another cool thing: once closed, the light inside does not bother me anymore in the living room.
Days of a purple-lighted living room are over.
I will be able to set up the timer without any bother from the light when I watch a movie.</p>
<p>I set up a <a href="https://fr.aliexpress.com/w/wholesale-Xiaomi-Mi-Flora.html">temperature and light probe</a> and started a timer cycle.</p>









    
        
    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/grafana-semi-01-01-tem-lum.png"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/grafana-semi-01-01-tem-lum_hu_cb2cc2bb39cf831.png"
                 alt="Temperature and lighting for 15 days" 
                 title="Graph of temperature and lighting" 
        />
    </a>
     <figcaption>Graph of temperature and lighting</figcaption> 
</figure>
<p>This is not perfect, but we can clearly see that when the lights are on, the temperature stays around 29°C which is enough.
If I disable the timer (and live the light always on), the temperature says.</p>
<h3 id="birds-eye-chili-seeding--sprouting">Bird&rsquo;s eye chili seeding &amp; sprouting</h3>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-03_hu_3646069e0d851482.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-03_hu_cf3d7ed30d14aa0.webp"
                     alt="4 mini-greenhouses in a Ikea Kallax square lighted by LED strips" 
                     title="Completed seeding" 
            />
        </a>
         <figcaption>Completed seeding</figcaption> 
    </figure>

</div>
<p>With such temperatures, I quickly seeded all my Pili Pili. Given my last success rate (1/10), I put between 3 and 5 seeds per pot.
I had hopes of getting some of them to sprout, at least one per pot.</p>
<p>In only a few days, the first sprouting happened. This time, I had almost a 100% success rate.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-01_hu_6dd4c8381c0be740.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-01_hu_ab20be3dbb551dfd.webp"
                     alt="Pili Pili seedlings" 
                     title="Pili Pili seedlings" 
            />
        </a>
         <figcaption>Pili Pili seedlings</figcaption> 
    </figure>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-02_hu_c9d3970f31ef73bb.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-02_hu_57f673e50dcb2315.webp"
                     alt="Pili Pili seedlings with cotyledons. Every pot have one or more." 
                     title="Pili Pili seedlings" 
            />
        </a>
         <figcaption>Pili Pili seedlings</figcaption> 
    </figure>

</div>
<p>With so many seedlings, I decided to conduct some tests by leaving one mini greenhouse in the lighted square, and one beside the window.
We can clearly see the impact of growing lights after just a few days. My window does not let enough sun in.</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-03_hu_a979053d414dab65.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-03_hu_80845ac753dbfbb9.webp"
                     alt="Twi mini greenhouse with Pili Pili showing a different growth rate. The left one (greenhouse) is much more filled when the one on the right (window) barely changed." 
                     title="Greenhouse vs Window" 
            />
        </a>
         <figcaption>Greenhouse vs Window</figcaption> 
    </figure>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-04_hu_552057c2c99c9df9.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-04_hu_eec1d7ed8097d255.webp"
                     alt="The seedlings turn and chase the light. They lean toward the window to get most light as possible." 
                     title="Window" 
            />
        </a>
         <figcaption>Window</figcaption> 
    </figure>

</div>
<h3 id="repotting">Repotting</h3>
<p>After a few days, when all the true leaves started to grow, I decided to repot all the seedlings as they had already outgrown their pots.
I did not expect all seeds to sprout and grow like that in each and every pot.</p>
<p>I tried to separate some plants, but many of them were already intertwined.
I took the cautious path and left some of them as is to reduce the risk of losing any.</p>
<p>This choice may have consequences in the future. We&rsquo;ll see; I&rsquo;m confident future me will keep you informed!</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-05_hu_963166dafc1ad1db.webp"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-05_hu_337a3a881425ec6b.webp"
                 alt="Two Kallax square filled with pots" 
                
        />
    </a>
    
</figure>

</div>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-06_hu_a069267cc1a4ea07.webp"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-06_hu_7cc2cc8398e4f293.webp"
                 alt="Closeup, on a Pili Pili leave" 
                
        />
    </a>
    
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-07_hu_ff8d8ee0baffbf11.webp"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-07_hu_ea45fd933c405003.webp"
                 alt="Lots of pots with Pili Pili inside" 
                
        />
    </a>
    
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-08_hu_3183233fd0ff114a.webp"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-08_hu_db3a8df88e1a557e.webp"
                 alt="Top view of plate with all Pili Pili pots" 
                
        />
    </a>
    
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-09_hu_561c63332389ba77.webp"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/pili-09_hu_c6d629fbfe0a5cbf.webp"
                 alt="Top view of plate with all Pili Pili pots" 
                
        />
    </a>
    
</figure>

</div>
<h1 id="kallax-greenhouse-paf-improvement">Kallax greenhouse PAF improvement</h1>
<p>The next step after the first towel prototype was to enhance the PAF (Partner Acceptance Factor) of the solution.
Make it less ugly for a living-room space.
Who would like to have such a horrible, ugly towel thing near your TV or your best decorating thing.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/salon-01_hu_98d3f823c9b42bda.webp"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/salon-01_hu_8d051d3b01d7ed8c.webp"
                 alt="Global view of the Kallax with the towel hiding two squares" 
                 title="It&#39;s ugly" 
        />
    </a>
     <figcaption>It&rsquo;s ugly</figcaption> 
</figure>

</div>
<p>Ikea sells doors that feel ideal for this purpose. Moreover, the door comes with a complete seal of the square, making the full square sealed up from both front and back. Perfect!</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/ikea-kallax-porte_hu_8a2546cb0e96bc1.webp"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/ikea-kallax-porte_hu_3698102a72101741.webp"
                 alt="KALLAX door" 
                 title="KALLAX door" 
        />
    </a>
     <figcaption>KALLAX door</figcaption> 
</figure>

</div>
<p>Without hesitating, I get one to test it. After following thoroughly the really long and complex manual, here I am with a closed square with Growing LED lights inside.
I took the time to put aluminum foil on each side as before, including the door. This last part is more important than it looks. (More details on the next episode)</p>


<div class="photo-gallery ">
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-04_hu_c7d39a13339567f7.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-04_hu_2de863e40de6c25b.webp"
                     alt="Kallax shelf with aluminium all around, including the door. Plants can be sported inside." 
                    
            />
        </a>
        
    </figure>
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    <figure class="photo ">
        
        <a
                class="hidden-link"
                href="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-05_hu_6c96dc88c4375a38.webp"
                target="_blank"
        >
            <img
                    src="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-05_hu_3a517b9126e5606c.webp"
                     alt="Kallax shelf with the door closed. As any other Kallax in the world, nothing shows there is plant inside." 
                    
            />
        </a>
        
    </figure>

</div>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-06_hu_9042bd876cf90cb8.webp"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/serre-kallax-06_hu_6155d5dbc818a3c4.webp"
                 alt="Global view of Ikea Kallax with 3 squares converted into greenhouses. One upper left with a proper door, the other with the ugly towel." 
                
        />
    </a>
    
</figure>

</div>
<p>I find the result clean and okay. The PAF definitely increased. Performance is also a win.</p>









    
        
    




    
        
    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2024/post/semi-saga/le-debut-serre-kallax/img/grafana-semi-03-01_hu_aea892bf49af9a3b.png"
            target="_blank"
    >
        <img
                src="/2024/post/semi-saga/le-debut-serre-kallax/img/grafana-semi-03-01_hu_e936aac59560932a.png"
                 alt="Lighting &amp; temperature for 2 days with a maximum at 30.8°C" 
                 title="Graph of Lighting &amp; temperature" 
        />
    </a>
     <figcaption>Graph of Lighting &amp; temperature</figcaption> 
</figure>
<p>More doors will be acquired to further increase the PAF of the other squares and finally remove this ugly towel.</p>
<h1 id="the-beginning-conclusion-will-i-have-pepper-to-eat-">The beginning, conclusion. Will I have pepper to eat ?</h1>
<p>You (almost) already have all the technical information to answer this question by yourself.
But, I did not explain how to do the math.
This will be the next article&rsquo;s main focus, to include more science into the mix.
I will also explain how I chose the LED strips for the 3rd square, with some hints to make better choices in this regard.</p>
<p>I&rsquo;m still a young padawan, so don&rsquo;t take all I write too seriously as I&rsquo;m in the learning process.
Of course, I don&rsquo;t really know if I will have any fruit one day as all plants are still growing right now. But if the science
I found works, I have a non-zero chance to have some.</p>
<p>Thanks reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
<p>P.S.: This article was written when I was still living in Paris.
I have since moved to a brighter place that will have some (hopefully good) consequences.</p>
]]></description></item><item><title>Avishai Cohen &amp; Makoto Ozone - The Amity Duet</title><link>https://blog.ztec.fr/en/2024/02/04/concert/avishai-cohen-makoto-ozone-the-amity-duet/</link><pubDate>Sun, 04 Feb 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/02/04/concert/avishai-cohen-makoto-ozone-the-amity-duet/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_39a0a57a853c409b.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_39571432cdf9dc4b.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_39a0a57a853c409b.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>Avishai Cohen &amp; Makoto Ozone - The Amity Duet</strong></p>
<p><a href="https://philharmoniedeparis.fr/fr/live/concert/1163708-avishai-cohen-makoto-ozone">Listen and watch</a></p>
<p><strong>Tracklisting:</strong></p>
<ol>
<li>On Green Dolphin Street - 09:29</li>
<li>Gesture #2 - 05:00</li>
<li>Oberek - 12:37</li>
<li>Lazy Uncle - 09:19</li>
<li>Intervention - 02:09</li>
<li>Remembering - 06:51</li>
<li>The Ever Evolving Etude - 06:36</li>
</ol>
]]></description></item><item><title>Etibar Asadli Trio - Mugham electro/oriental project</title><link>https://blog.ztec.fr/en/2024/01/16/concert/etibar-asadli-trio-mugham-electro/oriental-project/</link><pubDate>Tue, 16 Jan 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/01/16/concert/etibar-asadli-trio-mugham-electro/oriental-project/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_60fa1b4f65f54422.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4c6b288751f4ad2f.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_60fa1b4f65f54422.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>Etibar Asadli Trio - Mugham electro/oriental project</strong></p>
<ul>
<li>


<a href="/en/artists/etibar-asadli/">Etibar Asadli</a> - 


<a href="/en/instruments/piano/">Piano</a>, 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/ranto-rakotomalala/">Ranto Rakotomalala</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/martin-wangermee/">Martin Wangermee</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/01/16/concert/etibar-asadli-trio-mugham-electro/oriental-project/cover_hu_436eb17d451b7fe8.webp 1x, /2024/01/16/concert/etibar-asadli-trio-mugham-electro/oriental-project/cover_hu_9f6d49930bfa8df2.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/01/16/concert/etibar-asadli-trio-mugham-electro/oriental-project/cover_hu_4bdca0be8756929e.jpg 1x, /2024/01/16/concert/etibar-asadli-trio-mugham-electro/oriental-project/cover_hu_a0d51a29778609b0.jpg 1.60x" />
        

        
        
        <img
            src="/2024/01/16/concert/etibar-asadli-trio-mugham-electro/oriental-project/cover_hu_4bdca0be8756929e.jpg"
             alt="Etibar Asadli Trio" 
             title="Etibar Asadli Trio" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Who parked the car at Sunset sunside</title><link>https://blog.ztec.fr/en/2024/01/05/concert/who-parked-the-car-at-sunset-sunside/</link><pubDate>Fri, 05 Jan 2024 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2024/01/05/concert/who-parked-the-car-at-sunset-sunside/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_99811626d60ed6cf.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_bc2c6ea795187223.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_99811626d60ed6cf.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>


<a href="/en/artists/who-parked-the-car/">Who Parked The Car</a></strong></p>
<ul>
<li>


<a href="/en/artists/laura-wamba/">Laura Wamba</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/sebasti%C3%A1n-mu%C3%B1oz/">Sebastián Muñoz</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/f%C3%A9lix-reneault/">Félix Reneault</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/c%C3%A9sar-aouill%C3%A9/">César Aouillé</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/thomas-salvatore/">Thomas Salvatore</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a>, 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/ludovic-prieur/">Ludovic Prieur</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/malo-ropers/">Malo Ropers</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
<li>


<a href="/en/artists/alejandro-dixon/">Alejandro Dixon</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2024/01/05/concert/who-parked-the-car-au-sunset-sunside/cover_hu_771969e2fab58269.webp 1x, /2024/01/05/concert/who-parked-the-car-au-sunset-sunside/cover_hu_c29a198bb96d5f8.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2024/01/05/concert/who-parked-the-car-au-sunset-sunside/cover_hu_825a139b26f0b9d4.jpg 1x, /2024/01/05/concert/who-parked-the-car-au-sunset-sunside/cover_hu_13ed4313f28e382.jpg 1.60x" />
        

        
        
        <img
            src="/2024/01/05/concert/who-parked-the-car-au-sunset-sunside/cover_hu_825a139b26f0b9d4.jpg"
             alt="Who parked the car band" 
             title="Who parked the car" 
        />

        
            <div class="credit">ⓒYoel Reboh</div>
        
    </picture>


]]></description></item><item><title>Ma Mère l'Oye / L'Enfant et les Sortilèges at Palais Garnier</title><link>https://blog.ztec.fr/en/2023/11/25/concert/ma-m%C3%A8re-loye-/-lenfant-et-les-sortil%C3%A8ges-at-palais-garnier/</link><pubDate>Sat, 25 Nov 2023 19:30:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2023/11/25/concert/ma-m%C3%A8re-loye-/-lenfant-et-les-sortil%C3%A8ges-at-palais-garnier/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_687bd2822a465589.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_cc94ffcd1563178b.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_687bd2822a465589.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Ballet in one act, five tableaux and an apotheosis (1912)</p>
<p>Based on Charles Perrault, Madame Leprince de Beaumont, Madame d&rsquo;Aulnoy</p>
<h2 id="artistic-team">Artistic team</h2>
<ul>
<li>


<a href="/en/artists/maurice-ravel/">Maurice Ravel</a> - Music</li>
<li>


<a href="/en/artists/martin-chaix/">Martin Chaix</a> - Choreography</li>
<li>


<a href="/en/artists/patrick-lange/">Patrick Lange</a> - Musical direction</li>
<li>


<a href="/en/artists/camille-dugas/">Camille Dugas</a> - Sets</li>
<li>


<a href="/en/artists/aleksandar-noshpal/">Aleksandar Noshpal</a> - Costumes</li>
<li>


<a href="/en/artists/tom-klefstad/">Tom Klefstad</a> - Lighting</li>
</ul>





















    
    

    
    

    
    

    
    








    <picture class="inner-cover type-full">
        
        

        
        

        
        
        <img
            src="/2023/11/25/concert/ma-m%C3%A8re-loye-/-lenfant-et-les-sortil%C3%A8ges-au-palais-garnier/cover1_hu_3dbaa1b0d17e13cc.jpg"
             alt="Ma Mère l&#39;Oye / L&#39;Enfant et les Sortilèges" 
             title="Ma Mère l&#39;Oye / L&#39;Enfant et les Sortilèges" 
        />

        
            <div class="credit">© Julien Benhamou / OnP</div>
        
    </picture>























    
    

    
    

    
    

    
    








    <picture class="inner-cover type-full">
        
        

        
        

        
        
        <img
            src="/2023/11/25/concert/ma-m%C3%A8re-loye-/-lenfant-et-les-sortil%C3%A8ges-au-palais-garnier/cover2_hu_7cfc4f24b102ddb1.jpg"
             alt="Ma Mère l&#39;Oye / L&#39;Enfant et les Sortilèges" 
             title="Ma Mère l&#39;Oye / L&#39;Enfant et les Sortilèges" 
        />

        
            <div class="credit">© Julien Benhamou / OnP</div>
        
    </picture>























    
    

    
    

    
    

    
    








    <picture class="inner-cover type-full">
        
        

        
        

        
        
        <img
            src="/2023/11/25/concert/ma-m%C3%A8re-loye-/-lenfant-et-les-sortil%C3%A8ges-au-palais-garnier/cover3_hu_2b743b3c868b4177.jpg"
             alt="Ma Mère l&#39;Oye / L&#39;Enfant et les Sortilèges" 
             title="Ma Mère l&#39;Oye / L&#39;Enfant et les Sortilèges" 
        />

        
            <div class="credit">© Julien Benhamou / OnP</div>
        
    </picture>


]]></description></item><item><title>Oscar les vacances at ADN Montmartre - Fête des Vendanges de Montmartre</title><link>https://blog.ztec.fr/en/2023/10/14/concert/oscar-les-vacances-at-adn-montmartre-f%C3%AAte-des-vendanges-de-montmartre/</link><pubDate>Sat, 14 Oct 2023 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/10/14/concert/oscar-les-vacances-at-adn-montmartre-f%C3%AAte-des-vendanges-de-montmartre/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ce9b3da6330ab078.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_59d8e29ea2778a4b.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ce9b3da6330ab078.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Singer and multi-instrumentalist Oscar les Vacances has a fine and incisive writing style. He talks about adolescence, questions modernity, masculinity, speed, and tries to make us travel into the depths of our imagination and our unspeakable fantasies. An intimate face-to-face concert especially for you…</p>
<ul>
<li>


<a href="/en/artists/oscar-les-vacances/">Oscar les vacances</a> - 


<a href="/en/instruments/voice/">voice</a></li>
</ul>
]]></description></item><item><title>Etibar Asadli Trio "Mugham" electro/oriental project at Duc des Lombards</title><link>https://blog.ztec.fr/en/2023/09/25/concert/etibar-asadli-trio-mugham-electro/oriental-project-at-duc-des-lombards/</link><pubDate>Mon, 25 Sep 2023 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/09/25/concert/etibar-asadli-trio-mugham-electro/oriental-project-at-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ebfb5d96b942a283.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4a2de04b5a923397.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ebfb5d96b942a283.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Fusion between mugham and jazz.</p>
<ul>
<li>


<a href="/en/artists/etibar-asadli/">Etibar Asadli</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/chris-jennings/">Chris Jennings</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/yoann-schmidt/">Yoann Schmidt</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2023/09/25/concert/etibar-asadli-trio-mugham-electro/oriental-project-au-duc-des-lombards/cover_hu_d9e303a95ca58dd5.webp 1x, /2023/09/25/concert/etibar-asadli-trio-mugham-electro/oriental-project-au-duc-des-lombards/cover_hu_ca79d8403a0c581d.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2023/09/25/concert/etibar-asadli-trio-mugham-electro/oriental-project-au-duc-des-lombards/cover_hu_8080dc5521e291db.jpg 1x, /2023/09/25/concert/etibar-asadli-trio-mugham-electro/oriental-project-au-duc-des-lombards/cover_hu_acfe3f3aae884c8a.jpg 1.60x" />
        

        
        
        <img
            src="/2023/09/25/concert/etibar-asadli-trio-mugham-electro/oriental-project-au-duc-des-lombards/cover_hu_8080dc5521e291db.jpg"
             alt="Etibar Asadli Trio" 
             title="Etibar Asadli Trio" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Ana Layla "Introvert and Naked" at Duc des Lombards</title><link>https://blog.ztec.fr/en/2023/09/23/concert/ana-layla-introvert-and-naked-at-duc-des-lombards/</link><pubDate>Sat, 23 Sep 2023 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/09/23/concert/ana-layla-introvert-and-naked-at-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_c98c445febd45148.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_3724158ff5b452c5.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_c98c445febd45148.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/ana-layla/">Ana Layla</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/dr%C3%A9-pallemaerts/">Dré Pallemaerts</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/victor-foulon/">Victor Foulon</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/raphael-debacker/">Raphael DeBacker</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/diego-di-vito/">Diego Di Vito</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    
        
    




    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2023/09/23/concert/ana-layla-introvert-and-naked-au-duc-des-lombards/cover_hu_8ca1c6225a58cfc5.webp 1x" />
        

        
        
            <source type="image/jpeg" srcset="/2023/09/23/concert/ana-layla-introvert-and-naked-au-duc-des-lombards/cover_hu_f14551b4200c67a2.jpg 1x" />
        

        
        
        <img
            src="/2023/09/23/concert/ana-layla-introvert-and-naked-au-duc-des-lombards/cover_hu_f14551b4200c67a2.jpg"
             alt="Ana Layla" 
             title="Ana Layla" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Theo Croker / Lakecia Benjamin "Phoenix" at Philharmonie de Paris</title><link>https://blog.ztec.fr/en/2023/09/03/concert/theo-croker-/-lakecia-benjamin-phoenix-at-philharmonie-de-paris/</link><pubDate>Sun, 03 Sep 2023 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/09/03/concert/theo-croker-/-lakecia-benjamin-phoenix-at-philharmonie-de-paris/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_488467c8a69906c5.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_834f6f8dbad73150.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_488467c8a69906c5.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="lakecia-benjamin-phoenix">Lakecia Benjamin &ldquo;Phoenix&rdquo;</h2>
<ul>
<li>


<a href="/en/artists/lakecia-benjamin/">Lakecia Benjamin</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/zaccal-curtis/">Zaccal Curtis</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/elias-bailey/">Elias Bailey</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/ej-strickland/">EJ Strickland</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>
<h2 id="theo-croker">Theo Croker</h2>
<ul>
<li>


<a href="/en/artists/theo-croker/">Theo Croker</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a>, 


<a href="/en/instruments/voice/">voice</a>, laptop, efex</li>
<li>


<a href="/en/artists/mike-king/">Mike King</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/eric-wheeler/">Eric Wheeler</a> - 


<a href="/en/instruments/bass/">Bass</a>, 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/shekwoaga-ode/">Shekwoaga Ode</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>
]]></description></item><item><title>Yonathan Avishai by candlelight at Sunset Sunside</title><link>https://blog.ztec.fr/en/2023/08/30/concert/yonathan-avishai-by-candlelight-at-sunset-sunside/</link><pubDate>Wed, 30 Aug 2023 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/08/30/concert/yonathan-avishai-by-candlelight-at-sunset-sunside/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4570754f8a0b3771.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d0572e0248af04d7.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4570754f8a0b3771.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/yonathan-avishai/">Yonathan Avishai</a> - 


<a href="/en/instruments/piano/">Piano</a> solo</li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover_hu_3ba5970fc71fda0c.webp 1x, /2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover_hu_47bbdd775471bfe9.webp 1.28x" />
        

        
        
            <source type="image/jpeg" srcset="/2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover_hu_a56a1204a0c53d32.jpg 1x, /2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover_hu_d520021c2fa083cd.jpg 1.28x" />
        

        
        
        <img
            src="/2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover_hu_a56a1204a0c53d32.jpg"
             alt="Yonathan Avishai" 
             title="Yonathan Avishai" 
        />

        
            <div class="credit">©Annie-Claire Alvoët</div>
        
    </picture>























    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover2_hu_14b55a7b26208.webp 1x, /2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover2_hu_d7913a0515d96bcc.webp 1.28x" />
        

        
        
            <source type="image/jpeg" srcset="/2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover2_hu_c54530aa317abbd5.jpg 1x, /2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover2_hu_72da12dab5737cc.jpg 1.28x" />
        

        
        
        <img
            src="/2023/08/30/concert/yonathan-avishai-%C3%A0-la-bougie-au-sunset-sunside/cover2_hu_c54530aa317abbd5.jpg"
             alt="Yonathan Avishai" 
             title="Yonathan Avishai" 
        />

        
            <div class="credit">©Annie-Claire Alvoët</div>
        
    </picture>


]]></description></item><item><title>Man with a mission at La Cigale</title><link>https://blog.ztec.fr/en/2023/06/14/concert/man-with-a-mission-at-la-cigale/</link><pubDate>Wed, 14 Jun 2023 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/06/14/concert/man-with-a-mission-at-la-cigale/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_fa8a8f270ab00fa9.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_e30b31fe3e0139bc.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_fa8a8f270ab00fa9.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/man-with-a-mission/">Man with a mission</a></li>
</ul>





















    
    

    
    

    
    

    
    








    <picture class="inner-cover type-full">
        
        

        
        

        
        
        <img
            src="/2023/06/14/concert/man-with-a-mission-%C3%A0-la-cigale/cover_hu_e903ee01ab9fc23e.jpg"
             alt="Man with a mission" 
             title="Man with a mission" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Andrew McCormack trio feat. Kyle Eastwood at Duc des Lombards</title><link>https://blog.ztec.fr/en/2023/04/20/concert/andrew-mccormack-trio-feat.-kyle-eastwood-at-duc-des-lombards/</link><pubDate>Thu, 20 Apr 2023 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/04/20/concert/andrew-mccormack-trio-feat.-kyle-eastwood-at-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f2f727cf76c0bf7d.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4a5fb1872ecc85a9.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f2f727cf76c0bf7d.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/andrew-mccormack/">Andrew McCormack</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/kyle-eastwood/">Kyle Eastwood</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/gautier-garrigue/">Gautier Garrigue</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2023/04/20/concert/andrew-mccormack-trio-feat.-kyle-eastwood-au-duc-des-lombards/cover_hu_ab21822efaf49fae.webp 1x, /2023/04/20/concert/andrew-mccormack-trio-feat.-kyle-eastwood-au-duc-des-lombards/cover_hu_b5ddb8eafbf596d7.webp 1.38x" />
        

        
        
            <source type="image/jpeg" srcset="/2023/04/20/concert/andrew-mccormack-trio-feat.-kyle-eastwood-au-duc-des-lombards/cover_hu_d89ae07bf74609e7.jpg 1x, /2023/04/20/concert/andrew-mccormack-trio-feat.-kyle-eastwood-au-duc-des-lombards/cover_hu_3444932f3bcc46ee.jpg 1.38x" />
        

        
        
        <img
            src="/2023/04/20/concert/andrew-mccormack-trio-feat.-kyle-eastwood-au-duc-des-lombards/cover_hu_d89ae07bf74609e7.jpg"
             alt="Andrew McCormack" 
             title="Andrew McCormack" 
        />

        
            <div class="credit">© DR</div>
        
    </picture>


]]></description></item><item><title>Custom package name for go libraries</title><link>https://blog.ztec.fr/en/2023/post/remove-github-com-from-golang-package-name/</link><pubDate>Tue, 18 Apr 2023 02:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/post/remove-github-com-from-golang-package-name/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_3a60ef8a89d06589.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ce15d1881d5ed379.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_3a60ef8a89d06589.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>I recently released a small project called <a href="https://poulpe.ztec.fr">poulpe.ztec.fr</a>.
I personally use this repository as a library in one of my other projects. When I do so, my import statement looks like this:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-0-1"><a class="lnlinks" href="#hl-0-1">1</a></span><span class="cl"><span class="c1">// main.go</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-0-2"><a class="lnlinks" href="#hl-0-2">2</a></span><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="nx">git2</span><span class="p">.</span><span class="nx">riper</span><span class="p">.</span><span class="nx">fr</span><span class="o">/</span><span class="nx">ztec</span><span class="o">/</span><span class="nx">poulpe</span><span class="w">
</span></span></span></code></pre></div><p>I have two issues with this approach:</p>
<ul>
<li>It&rsquo;s ugly, right ?</li>
<li>If I ever change the location of my library, the import statement will break. (You may have already noticed the &lsquo;2&rsquo; in the name.)</li>
</ul>
<p>Most open-source projects rely on GitHub and simply use &lsquo;github.com&rsquo; imports.
However, as you may know, GitHub is now owned by a company doesn&rsquo;t care about open-source anymore.
To promote the safety of open-source, we should reduce or remove our dependency on GitHub.</p>
<p>Having thousands of imports that specifically target GitHub.com is not ideal for achieving this goal.</p>
<h2 id="tldr"><a href="/en/2023/post/remove-github-com-from-golang-package-name/#custom-name">TL;DR</a></h2>
<p>We can use our own domain name as long as we have ownership of the hosting at that address.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln" id="hl-1-1"><a class="lnlinks" href="#hl-1-1">1</a></span><span class="cl">// main.go
</span></span><span class="line"><span class="ln" id="hl-1-2"><a class="lnlinks" href="#hl-1-2">2</a></span><span class="cl">import poulpe.ztec.fr
</span></span></code></pre></div><h2 id="goproxy">GOPROXY</h2>
<p>You can use <code>GOPROXY</code> to specify an intermediary between your <code>go get</code> command and the version control system (VCS), such as GitHub.
This is a nice way to ensure resiliency to GitHub unavailability, among other things.
However, using <code>GOPROXY</code> does not solve the issues of ugliness and specifying the location by name.</p>
<h2 id="replace">Replace</h2>
<p>In your <code>go.mod</code> file, you can use the <code>replace</code> directive to specify where to fetch a package.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-2-1"><a class="lnlinks" href="#hl-2-1">1</a></span><span class="cl"><span class="c1">// go.mod</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-2"><a class="lnlinks" href="#hl-2-2">2</a></span><span class="cl"><span class="w"></span><span class="nx">replace</span><span class="w"> </span><span class="nx">github</span><span class="p">.</span><span class="nx">com</span><span class="o">/</span><span class="nx">ztec</span><span class="o">/</span><span class="nx">poulpe</span><span class="w"> </span><span class="nx">v0</span><span class="mf">.3.1</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">git2</span><span class="p">.</span><span class="nx">riper</span><span class="p">.</span><span class="nx">fr</span><span class="o">/</span><span class="nx">ztec</span><span class="o">/</span><span class="nx">poulpe</span><span class="w"> </span><span class="nx">v0</span><span class="mf">.3.1</span><span class="w">
</span></span></span></code></pre></div><p>This is useful, but not practical to do on every package. Additionally, it is the responsibility of the library user to do so.</p>
<h2 id="instead-of">Instead of</h2>
<p>Alternatively, you can globally change where and how to load library code based on domains. This is often used to fetch
libraries using ssh instead of https, allowing the use of credentials. It is as simple as adding this kind of configuration to your <code>~/.gitconfig</code> file.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln" id="hl-3-1"><a class="lnlinks" href="#hl-3-1">1</a></span><span class="cl">[url &#34;ssh://git@github.com/&#34;]
</span></span><span class="line"><span class="ln" id="hl-3-2"><a class="lnlinks" href="#hl-3-2">2</a></span><span class="cl">	insteadOf = https://github.com/
</span></span></code></pre></div><p>or</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="ln" id="hl-4-1"><a class="lnlinks" href="#hl-4-1">1</a></span><span class="cl">[url &#34;https://git2.riper.fr/ztec&#34;]
</span></span><span class="line"><span class="ln" id="hl-4-2"><a class="lnlinks" href="#hl-4-2">2</a></span><span class="cl">	insteadOf = https://github.com/ztec
</span></span></code></pre></div><p>This is somewhat useful as well, but it requires the library user to perform the task and does not give you, the owner, control.
Additionally, you still need GitHub.com to deliver the library.</p>
<h2 id="custom-name">Custom name</h2>
<p>If you think about it, the only thing you can be sure you own is your domain and what&rsquo;s hosted behind it. Golang allows
you to redirect any URL to a proper Golang repository. It is easy and gives you control, not the library user.</p>
<p>For example, I changed my package name from <code>git2.riper.fr/ztec/poulpe</code> to <code>poulpe.ztec.fr</code>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-5-1"><a class="lnlinks" href="#hl-5-1">1</a></span><span class="cl"><span class="c1">// go.mod</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-5-2"><a class="lnlinks" href="#hl-5-2">2</a></span><span class="cl"><span class="w"></span><span class="nx">module</span><span class="w"> </span><span class="nx">poulpe</span><span class="p">.</span><span class="nx">ztec</span><span class="p">.</span><span class="nx">fr</span><span class="w">
</span></span></span></code></pre></div><p>Just doing so will work for the project itself. However, anyone who wants to use your library won&rsquo;t be able to use it with the new name.
Worse, they will probably have a nightmare to use it as Golang checks the name of the module in the <code>go.mod</code> file against the import name
and fails if they do not match.</p>
<p>To make it work for everyone, you can simply add this to the HTML file at the URL <code>https://poulpe.ztec.fr</code>.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="ln" id="hl-6-1"><a class="lnlinks" href="#hl-6-1">1</a></span><span class="cl"> <span class="p">&lt;</span><span class="nt">meta</span> <span class="na">name</span><span class="o">=</span><span class="s">go-import</span> <span class="na">content</span><span class="o">=</span><span class="s">&#34;poulpe.ztec.fr git https://git2.riper.fr/ztec/poulpe.git&#34;</span><span class="p">&gt;</span>
</span></span></code></pre></div><p>When doing <code>go get</code>, Golang will check the URL and search for this meta.</p>
<h2 id="perks-of-custom-name">Perks of custom name</h2>
<p>With the custom name, you now have full power over the naming of your package. You can also change its location if you wish.
There is no reference to GitHub, although you can still host it on GitHub.
The name uses a domain that you probably own.</p>
<p>You also reduce the imprint of GitHub on projects using your library and can decide to migrate your code wherever you want.</p>
<p>Thank you reading this,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
<hr>
<p>More detailed informations:</p>
<ul>
<li><a href="https://github.com/golang/go/wiki/Modules#when-should-i-use-the-replace-directive">when-should-i-use-the-replace-directive</a></li>
<li><a href="https://github.com/golang/go/wiki/Modules#are-there-always-on-module-repositories-and-enterprise-proxies">are-there-always-on-module-repositories-and-enterprise-proxies</a></li>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-use-a-private-go-module-in-your-own-project">how-to-use-a-private-go-module-in-your-own-project</a></li>
<li><a href="https://go.dev/ref/mod#private-module-repo-auth">private-module-repo-auth</a></li>
<li><a href="https://pkg.go.dev/rsc.io/go-import-redirector">https://pkg.go.dev/rsc.io/go-import-redirector</a></li>
<li><a href="https://pkg.go.dev/cmd/go#hdr-Remote_import_paths">Remote_import_paths</a></li>
</ul>
]]></description></item><item><title>Georgia Cécile at Duc des Lombards</title><link>https://blog.ztec.fr/en/2023/04/15/concert/georgia-c%C3%A9cile-at-duc-des-lombards/</link><pubDate>Sat, 15 Apr 2023 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/04/15/concert/georgia-c%C3%A9cile-at-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_65ab155350d4653f.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d677b53636ede73.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_65ab155350d4653f.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/georgia-c%C3%A9cile/">Georgia Cécile</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/euan-stevenson/">Euan Stevenson</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/edouard-pennes/">Edouard Pennes</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/max-popp/">Max Popp</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2023/04/15/concert/georgia-c%C3%A9cile-au-duc-des-lombards/cover_hu_2d64a961043aed00.webp 1x, /2023/04/15/concert/georgia-c%C3%A9cile-au-duc-des-lombards/cover_hu_760d3f97f063f9f0.webp 1.25x" />
        

        
        
            <source type="image/jpeg" srcset="/2023/04/15/concert/georgia-c%C3%A9cile-au-duc-des-lombards/cover_hu_c1ad77d8fbc41a74.jpg 1x, /2023/04/15/concert/georgia-c%C3%A9cile-au-duc-des-lombards/cover_hu_89ac2b17153961d5.jpg 1.25x" />
        

        
        
        <img
            src="/2023/04/15/concert/georgia-c%C3%A9cile-au-duc-des-lombards/cover_hu_c1ad77d8fbc41a74.jpg"
             alt="Georgia Cécile" 
             title="Georgia Cécile" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Nobuo Uematsu</title><link>https://blog.ztec.fr/en/2023/04/08/concert/nobuo-uematsu/</link><pubDate>Sat, 08 Apr 2023 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/04/08/concert/nobuo-uematsu/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8b141b6a5d4f7718.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ae505f704295cc46.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8b141b6a5d4f7718.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Nobuo Uematsu</p>





















    
    

    
    

    
    

    
    








    <picture class="inner-cover type-full">
        
        

        
        

        
        
        <img
            src="/2023/04/08/concert/nobuo-uematsu/cover_hu_652b483bd357b110.jpg"
             alt="Nobuo Uematsu" 
             title="Nobuo Uematsu" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>poulpe.ztec.fr - The emoji search engine open-sourced</title><link>https://blog.ztec.fr/en/2023/post/poulpe-emoji-search-engine/</link><pubDate>Tue, 04 Apr 2023 12:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/post/poulpe-emoji-search-engine/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_59854c7405ed1fa2.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_4f2f7ab2d0934496.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_59854c7405ed1fa2.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>I talked about it in my <a href="https://blog.ztec.fr/en/2023/post/emoji-search-engine/">previous post</a>, I made an emoji search engine. It is integrated into my
systems. But as I had sometimes, and it was quite fun to do it, I made a standalone version that I published online</p>
<p>Now, you can test it and see the code by yourself.</p>
<ul>
<li>The preview: <a href="https://poulpe.ztec.fr">https://poulpe.ztec.fr</a></li>
<li>The code: <a href="https://git2.riper.fr/ztec/poulpe">https://git2.riper.fr/ztec/poulpe</a> or <a href="https://github.com/ztec/poulpe">https://github.com/ztec/poulpe</a></li>
</ul>









    
        
    




    
        
    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2023/post/poulpe-moteur-de-recherche-emoji/img/preview_hu_83f5acdf7ff13907.png"
            target="_blank"
    >
        <img
                src="/2023/post/poulpe-moteur-de-recherche-emoji/img/preview_hu_ceb5e1a56c620b75.png"
                 alt="Search result for the query `love` displaying some emoji related to love" 
                 title="Poulpe the emoji search engine" 
        />
    </a>
     <figcaption>Poulpe the emoji search engine</figcaption> 
</figure>
<p>Thank you reading this,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item><item><title>🐙 Search engine for emoji in go</title><link>https://blog.ztec.fr/en/2023/post/emoji-search-engine/</link><pubDate>Sun, 02 Apr 2023 01:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/post/emoji-search-engine/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_315442a9475d51a9.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_578def1c8f982332.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_315442a9475d51a9.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>For a project of mine, I had to handle emojis. The goal was to create a search engine to find emojis.
I am not starting from scratch and have to include my code into an already existing Go program.
So, let&rsquo;s see how to build a little search engine for emojis in Go.</p>
<p>TL;DR: The full result is available here: <a href="https://git2.riper.fr/ztec/emoji-search-engine-go">git2.riper.fr/ztec/emoji-search-engine-go</a></p>
<p>You can also test and see the final result. All details here: <a href="https://blog.ztec.fr/en/2023/post/poulpe-emoji-search-engine/">poulpe.ztec.fr - The emoji search engine open-sourced</a></p>
<h2 id="boar-emoji-get-them-all">&#x1f417; Emoji! Get them all!</h2>
<p>First, I had to find the list of all available emojis. Easy! You can find it on the official Unicode website.</p>
<p><a href="https://unicode.org/Public/emoji/15.0/emoji-test.txt">https://unicode.org/Public/emoji/15.0/emoji-test.txt</a></p>
<p>This file look like this</p>
<pre tabindex="0"><code>[…]
# group: Smileys &amp; Emotion

# subgroup: face-smiling
1F600                                                  ; fully-qualified     # 😀 E1.0 grinning face
1F603                                                  ; fully-qualified     # 😃 E0.6 grinning face with big eyes
1F604                                                  ; fully-qualified     # 😄 E0.6 grinning face with smiling eyes
1F601                                                  ; fully-qualified     # 😁 E0.6 beaming face with smiling eyes
1F606                                                  ; fully-qualified     # 😆 E0.6 grinning squinting face
1F605                                                  ; fully-qualified     # 😅 E0.6 grinning face with sweat
[…]
</code></pre><p>Basically, there is the Unicode code, the character itself, and a description. The file is
dedicated for machines, so it should not be hard to load and parse it.</p>
<p>Before starting head down, let&rsquo;s do our due diligence and check what the community has already done.</p>
<p>I found:</p>
<ul>
<li><a href="https://github.com/enescakir/emoji">github.com/enescakir/emoji</a>, last updated in 2020.</li>
<li><a href="https://github.com/AkinAD/emoji">AkinAD/emoji</a>, last updated in 2022 (a fork of the first).</li>
<li><a href="https://github.com/kenshaw/emoji">github.com/kenshaw/emoji</a>, last updated in 2021.</li>
</ul>
<p>Looking at the code of those libraries, I found something
fascinating: <a href="https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json">https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json</a></p>
<p>This file, which is regularly updated, is perfect and can be parsed with less effort.
Moreover, it already contains some metadata like aliases.</p>
<p>This is the way, lets load this file</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-1-1"><a class="lnlinks" href="#hl-1-1"> 1</a></span><span class="cl"><span class="kn">package</span><span class="w"> </span><span class="nx">pouet</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-2"><a class="lnlinks" href="#hl-1-2"> 2</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-3"><a class="lnlinks" href="#hl-1-3"> 3</a></span><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="p">(</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-4"><a class="lnlinks" href="#hl-1-4"> 4</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;encoding/json&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-5"><a class="lnlinks" href="#hl-1-5"> 5</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;github.com/go-zoox/fetch&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-6"><a class="lnlinks" href="#hl-1-6"> 6</a></span><span class="cl"><span class="w"></span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-7"><a class="lnlinks" href="#hl-1-7"> 7</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-8"><a class="lnlinks" href="#hl-1-8"> 8</a></span><span class="cl"><span class="w"></span><span class="kd">type</span><span class="w"> </span><span class="nx">EmojiDescription</span><span class="w"> </span><span class="kd">struct</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-9"><a class="lnlinks" href="#hl-1-9"> 9</a></span><span class="cl"><span class="w">	</span><span class="nx">Emoji</span><span class="w">          </span><span class="kt">string</span><span class="w">   </span><span class="s">`json:&#34;emoji&#34;`</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-10"><a class="lnlinks" href="#hl-1-10">10</a></span><span class="cl"><span class="w">	</span><span class="nx">Description</span><span class="w">    </span><span class="kt">string</span><span class="w">   </span><span class="s">`json:&#34;description&#34;`</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-11"><a class="lnlinks" href="#hl-1-11">11</a></span><span class="cl"><span class="w">	</span><span class="nx">Category</span><span class="w">       </span><span class="kt">string</span><span class="w">   </span><span class="s">`json:&#34;category&#34;`</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-12"><a class="lnlinks" href="#hl-1-12">12</a></span><span class="cl"><span class="w">	</span><span class="nx">Aliases</span><span class="w">        </span><span class="p">[]</span><span class="kt">string</span><span class="w"> </span><span class="s">`json:&#34;aliases&#34;`</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-13"><a class="lnlinks" href="#hl-1-13">13</a></span><span class="cl"><span class="w">	</span><span class="nx">Tags</span><span class="w">           </span><span class="p">[]</span><span class="kt">string</span><span class="w"> </span><span class="s">`json:&#34;tags&#34;`</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-14"><a class="lnlinks" href="#hl-1-14">14</a></span><span class="cl"><span class="w">	</span><span class="nx">HasSkinTones</span><span class="w">   </span><span class="kt">bool</span><span class="w">     </span><span class="s">`json:&#34;skin_tones,omitempty&#34;`</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-15"><a class="lnlinks" href="#hl-1-15">15</a></span><span class="cl"><span class="w">	</span><span class="nx">UnicodeVersion</span><span class="w"> </span><span class="kt">string</span><span class="w">   </span><span class="s">`json:&#34;unicode_version&#34;`</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-16"><a class="lnlinks" href="#hl-1-16">16</a></span><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-17"><a class="lnlinks" href="#hl-1-17">17</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-18"><a class="lnlinks" href="#hl-1-18">18</a></span><span class="cl"><span class="w"></span><span class="kd">type</span><span class="w"> </span><span class="nx">GithubDescriptionResponse</span><span class="w"> </span><span class="p">[]</span><span class="nx">EmojiDescription</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-19"><a class="lnlinks" href="#hl-1-19">19</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-20"><a class="lnlinks" href="#hl-1-20">20</a></span><span class="cl"><span class="w"></span><span class="kd">func</span><span class="w"> </span><span class="nf">fetchEmojiFromGithub</span><span class="p">()</span><span class="w"> </span><span class="p">(</span><span class="nx">results</span><span class="w"> </span><span class="p">[]</span><span class="nx">EmojiDescription</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="kt">error</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-21"><a class="lnlinks" href="#hl-1-21">21</a></span><span class="cl"><span class="w">	</span><span class="nx">response</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">fetch</span><span class="p">.</span><span class="nf">Get</span><span class="p">(</span><span class="s">&#34;https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json&#34;</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-22"><a class="lnlinks" href="#hl-1-22">22</a></span><span class="cl"><span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-23"><a class="lnlinks" href="#hl-1-23">23</a></span><span class="cl"><span class="w">		</span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-24"><a class="lnlinks" href="#hl-1-24">24</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-25"><a class="lnlinks" href="#hl-1-25">25</a></span><span class="cl"><span class="w">	</span><span class="nx">err</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">json</span><span class="p">.</span><span class="nf">Unmarshal</span><span class="p">(</span><span class="nx">response</span><span class="p">.</span><span class="nx">Body</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="nx">results</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-26"><a class="lnlinks" href="#hl-1-26">26</a></span><span class="cl"><span class="w">	</span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-1-27"><a class="lnlinks" href="#hl-1-27">27</a></span><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
</span></span></span></code></pre></div><p>I used <code>github.com/go-zoox/fetch</code> to fetch the file just because I&rsquo;m a lounger</p>
<h2 id="zebra-emoji-scan-them-all">&#x1f993; Emoji, Scan them all!</h2>
<p>In my program, I already use <a href="https://blevesearch.com/">Bleve</a> to index and search through other things, so I will
do the same here. The operation is pretty simple as I do not have to store anything and can keep an in-memory index.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-2-1"><a class="lnlinks" href="#hl-2-1"> 1</a></span><span class="cl"><span class="kn">package</span><span class="w"> </span><span class="nx">pouet</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-2"><a class="lnlinks" href="#hl-2-2"> 2</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-3"><a class="lnlinks" href="#hl-2-3"> 3</a></span><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="p">(</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-4"><a class="lnlinks" href="#hl-2-4"> 4</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;fmt&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-5"><a class="lnlinks" href="#hl-2-5"> 5</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;github.com/blevesearch/bleve/v2&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-6"><a class="lnlinks" href="#hl-2-6"> 6</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;github.com/sirupsen/logrus&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-7"><a class="lnlinks" href="#hl-2-7"> 7</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;strconv&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-8"><a class="lnlinks" href="#hl-2-8"> 8</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;strings&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-9"><a class="lnlinks" href="#hl-2-9"> 9</a></span><span class="cl"><span class="w"></span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-10"><a class="lnlinks" href="#hl-2-10">10</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-11"><a class="lnlinks" href="#hl-2-11">11</a></span><span class="cl"><span class="w"></span><span class="kd">var</span><span class="w"> </span><span class="p">(</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-12"><a class="lnlinks" href="#hl-2-12">12</a></span><span class="cl"><span class="w">	</span><span class="nx">index</span><span class="w">  </span><span class="nx">bleve</span><span class="p">.</span><span class="nx">Index</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-13"><a class="lnlinks" href="#hl-2-13">13</a></span><span class="cl"><span class="w">	</span><span class="nx">emojis</span><span class="w"> </span><span class="p">[]</span><span class="nx">EmojiDescription</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-14"><a class="lnlinks" href="#hl-2-14">14</a></span><span class="cl"><span class="w"></span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-15"><a class="lnlinks" href="#hl-2-15">15</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-16"><a class="lnlinks" href="#hl-2-16">16</a></span><span class="cl"><span class="w"></span><span class="kd">func</span><span class="w"> </span><span class="nf">indexEmojis</span><span class="p">()</span><span class="w"> </span><span class="kt">error</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-17"><a class="lnlinks" href="#hl-2-17">17</a></span><span class="cl"><span class="w">	</span><span class="c1">// we create a new indexMapping. I used the default one that will index all fields of my EmojiDescription</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-18"><a class="lnlinks" href="#hl-2-18">18</a></span><span class="cl"><span class="w">	</span><span class="nx">mapping</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">bleve</span><span class="p">.</span><span class="nf">NewIndexMapping</span><span class="p">()</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-19"><a class="lnlinks" href="#hl-2-19">19</a></span><span class="cl"><span class="w">	</span><span class="c1">// we create the index instance</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-20"><a class="lnlinks" href="#hl-2-20">20</a></span><span class="cl"><span class="w">	</span><span class="nx">bleveIndex</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">bleve</span><span class="p">.</span><span class="nf">NewMemOnly</span><span class="p">(</span><span class="nx">mapping</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-21"><a class="lnlinks" href="#hl-2-21">21</a></span><span class="cl"><span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-22"><a class="lnlinks" href="#hl-2-22">22</a></span><span class="cl"><span class="w">		</span><span class="k">return</span><span class="w"> </span><span class="nx">err</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-23"><a class="lnlinks" href="#hl-2-23">23</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-24"><a class="lnlinks" href="#hl-2-24">24</a></span><span class="cl"><span class="w">	</span><span class="c1">// we fetch the emoji from the internet. This can fail, and may be embedded for better performance</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-25"><a class="lnlinks" href="#hl-2-25">25</a></span><span class="cl"><span class="w">	</span><span class="nx">e</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nf">fetchEmojiFromGithub</span><span class="p">()</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-26"><a class="lnlinks" href="#hl-2-26">26</a></span><span class="cl"><span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-27"><a class="lnlinks" href="#hl-2-27">27</a></span><span class="cl"><span class="w">		</span><span class="nx">logrus</span><span class="p">.</span><span class="nf">WithError</span><span class="p">(</span><span class="nx">err</span><span class="p">).</span><span class="nf">Error</span><span class="p">(</span><span class="s">&#34;Could fetch emoji list&#34;</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-28"><a class="lnlinks" href="#hl-2-28">28</a></span><span class="cl"><span class="w">		</span><span class="k">return</span><span class="w"> </span><span class="nx">err</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-29"><a class="lnlinks" href="#hl-2-29">29</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-30"><a class="lnlinks" href="#hl-2-30">30</a></span><span class="cl"><span class="w">	</span><span class="nx">emojis</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">e</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-31"><a class="lnlinks" href="#hl-2-31">31</a></span><span class="cl"><span class="w">	</span><span class="k">for</span><span class="w"> </span><span class="nx">eNumber</span><span class="p">,</span><span class="w"> </span><span class="nx">eDescription</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">range</span><span class="w"> </span><span class="nx">emojis</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-32"><a class="lnlinks" href="#hl-2-32">32</a></span><span class="cl"><span class="w">		</span><span class="c1">// this will index each item one by one. No need to be quick here for me, I can wait few ms for the program to start</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-33"><a class="lnlinks" href="#hl-2-33">33</a></span><span class="cl"><span class="w">		</span><span class="nx">err</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">bleveIndex</span><span class="p">.</span><span class="nf">Index</span><span class="p">(</span><span class="nx">fmt</span><span class="p">.</span><span class="nf">Sprintf</span><span class="p">(</span><span class="s">&#34;%d&#34;</span><span class="p">,</span><span class="w"> </span><span class="nx">eNumber</span><span class="p">),</span><span class="w"> </span><span class="nx">eDescription</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-34"><a class="lnlinks" href="#hl-2-34">34</a></span><span class="cl"><span class="w">		</span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-35"><a class="lnlinks" href="#hl-2-35">35</a></span><span class="cl"><span class="w">			</span><span class="nx">logrus</span><span class="p">.</span><span class="nf">WithError</span><span class="p">(</span><span class="nx">err</span><span class="p">).</span><span class="nf">Error</span><span class="p">(</span><span class="s">&#34;Could not index an emoji&#34;</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-36"><a class="lnlinks" href="#hl-2-36">36</a></span><span class="cl"><span class="w">		</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-37"><a class="lnlinks" href="#hl-2-37">37</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-38"><a class="lnlinks" href="#hl-2-38">38</a></span><span class="cl"><span class="w">	</span><span class="nx">index</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">bleveIndex</span><span class="w"> </span><span class="c1">// we make the index available</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-39"><a class="lnlinks" href="#hl-2-39">39</a></span><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
</span></span></span></code></pre></div><p>Once <code>indexEmojis</code> is called, I have an <code>index</code> ready to be used to search for emojis. Let&rsquo;s test it.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-3-1"><a class="lnlinks" href="#hl-3-1"> 1</a></span><span class="cl"><span class="kn">package</span><span class="w"> </span><span class="nx">pouet</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-2"><a class="lnlinks" href="#hl-3-2"> 2</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-3"><a class="lnlinks" href="#hl-3-3"> 3</a></span><span class="cl"><span class="w"></span><span class="kn">import</span><span class="w"> </span><span class="p">(</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-4"><a class="lnlinks" href="#hl-3-4"> 4</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;fmt&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-5"><a class="lnlinks" href="#hl-3-5"> 5</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;github.com/AkinAD/emoji&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-6"><a class="lnlinks" href="#hl-3-6"> 6</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;github.com/blevesearch/bleve/v2&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-7"><a class="lnlinks" href="#hl-3-7"> 7</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;github.com/sirupsen/logrus&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-8"><a class="lnlinks" href="#hl-3-8"> 8</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;strconv&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-9"><a class="lnlinks" href="#hl-3-9"> 9</a></span><span class="cl"><span class="w">	</span><span class="s">&#34;strings&#34;</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-10"><a class="lnlinks" href="#hl-3-10">10</a></span><span class="cl"><span class="w"></span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-11"><a class="lnlinks" href="#hl-3-11">11</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-12"><a class="lnlinks" href="#hl-3-12">12</a></span><span class="cl"><span class="w"></span><span class="kd">var</span><span class="w"> </span><span class="p">(</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-13"><a class="lnlinks" href="#hl-3-13">13</a></span><span class="cl"><span class="w">	</span><span class="nx">index</span><span class="w">  </span><span class="nx">bleve</span><span class="p">.</span><span class="nx">Index</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-14"><a class="lnlinks" href="#hl-3-14">14</a></span><span class="cl"><span class="w">	</span><span class="nx">emojis</span><span class="w"> </span><span class="p">[]</span><span class="nx">EmojiDescription</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-15"><a class="lnlinks" href="#hl-3-15">15</a></span><span class="cl"><span class="w"></span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-16"><a class="lnlinks" href="#hl-3-16">16</a></span><span class="cl"><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-17"><a class="lnlinks" href="#hl-3-17">17</a></span><span class="cl"><span class="w"></span><span class="kd">func</span><span class="w"> </span><span class="nf">Search</span><span class="p">(</span><span class="nx">q</span><span class="w"> </span><span class="kt">string</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nx">results</span><span class="w"> </span><span class="p">[]</span><span class="nx">EmojiDescription</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-18"><a class="lnlinks" href="#hl-3-18">18</a></span><span class="cl"><span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="nx">index</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-19"><a class="lnlinks" href="#hl-3-19">19</a></span><span class="cl"><span class="w">		</span><span class="c1">// no Index mean indexEmojies was not called yet or did not finished. No results (boot process)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-20"><a class="lnlinks" href="#hl-3-20">20</a></span><span class="cl"><span class="w">		</span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-21"><a class="lnlinks" href="#hl-3-21">21</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-22"><a class="lnlinks" href="#hl-3-22">22</a></span><span class="cl"><span class="w">	</span><span class="c1">// we create a query as bleve expect.</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-23"><a class="lnlinks" href="#hl-3-23">23</a></span><span class="cl"><span class="w">	</span><span class="nx">query</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">bleve</span><span class="p">.</span><span class="nf">NewQueryStringQuery</span><span class="p">(</span><span class="nx">q</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-24"><a class="lnlinks" href="#hl-3-24">24</a></span><span class="cl"><span class="w">	</span><span class="c1">// we define the search options and limit to 200 results. This should be enough.</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-25"><a class="lnlinks" href="#hl-3-25">25</a></span><span class="cl"><span class="w">	</span><span class="nx">searchrequest</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">bleve</span><span class="p">.</span><span class="nf">NewSearchRequestOptions</span><span class="p">(</span><span class="nx">query</span><span class="p">,</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="kc">false</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-26"><a class="lnlinks" href="#hl-3-26">26</a></span><span class="cl"><span class="w">	</span><span class="c1">// we do the search itself. This is the longest. Approximately few hundreds of us </span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-27"><a class="lnlinks" href="#hl-3-27">27</a></span><span class="cl"><span class="w">	</span><span class="nx">searchresults</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">index</span><span class="p">.</span><span class="nf">Search</span><span class="p">(</span><span class="nx">searchrequest</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-28"><a class="lnlinks" href="#hl-3-28">28</a></span><span class="cl"><span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-29"><a class="lnlinks" href="#hl-3-29">29</a></span><span class="cl"><span class="w">		</span><span class="nx">logrus</span><span class="p">.</span><span class="nf">WithError</span><span class="p">(</span><span class="nx">err</span><span class="p">).</span><span class="nf">Error</span><span class="p">(</span><span class="s">&#34;Could not search for an emoji&#34;</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-30"><a class="lnlinks" href="#hl-3-30">30</a></span><span class="cl"><span class="w">		</span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-31"><a class="lnlinks" href="#hl-3-31">31</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-32"><a class="lnlinks" href="#hl-3-32">32</a></span><span class="cl"><span class="w">	
</span></span></span><span class="line"><span class="ln" id="hl-3-33"><a class="lnlinks" href="#hl-3-33">33</a></span><span class="cl"><span class="w">	</span><span class="c1">// we return the results. I use the index to find my original object stored in `emojis` because it&#39;s simpler. Optimisation possible.</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-34"><a class="lnlinks" href="#hl-3-34">34</a></span><span class="cl"><span class="w">	</span><span class="k">for</span><span class="w"> </span><span class="nx">_</span><span class="p">,</span><span class="w"> </span><span class="nx">result</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">range</span><span class="w"> </span><span class="nx">searchresults</span><span class="p">.</span><span class="nx">Hits</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-35"><a class="lnlinks" href="#hl-3-35">35</a></span><span class="cl"><span class="w">		</span><span class="nx">numIndex</span><span class="p">,</span><span class="w"> </span><span class="nx">_</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">strconv</span><span class="p">.</span><span class="nf">ParseInt</span><span class="p">(</span><span class="nx">result</span><span class="p">.</span><span class="nx">ID</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">64</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-36"><a class="lnlinks" href="#hl-3-36">36</a></span><span class="cl"><span class="w">		</span><span class="nx">results</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">append</span><span class="p">(</span><span class="nx">results</span><span class="p">,</span><span class="w"> </span><span class="nx">emojis</span><span class="p">[</span><span class="nx">numIndex</span><span class="p">])</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-37"><a class="lnlinks" href="#hl-3-37">37</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-38"><a class="lnlinks" href="#hl-3-38">38</a></span><span class="cl"><span class="w">	</span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-39"><a class="lnlinks" href="#hl-3-39">39</a></span><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
</span></span></span></code></pre></div><p>I decided to use the <code>NewQueryStringQuery</code> as it allows for <a href="https://blevesearch.com/docs/Query-String-Query/">many options</a> of searching directly from the query string.
I will be able to search within fields or add modifiers. I use it a lot for my other purposes; it might be less useful here, but it does not cost a lot, so I kept it.</p>
<blockquote>
<p>Open your mind and imagine a clip-show of me adding the above code in my program and creating the interface to send the
query and display the results.</p>
</blockquote>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2023/post/moteur-de-recherche-emojis/img/search-ok-grin_hu_61b951f0eead8260.webp"
            target="_blank"
    >
        <img
                src="/2023/post/moteur-de-recherche-emojis/img/search-ok-grin_hu_212f8ea991042b84.webp"
                 alt="Search result for the query `grin` displaying the `grin` emoji as expected" 
                 title="Search results for grin" 
        />
    </a>
     <figcaption>Search results for grin</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2023/post/moteur-de-recherche-emojis/img/search-ok-smile_hu_65cbb12cf77d5351.webp"
            target="_blank"
    >
        <img
                src="/2023/post/moteur-de-recherche-emojis/img/search-ok-smile_hu_3e1339e47d1a47e0.webp"
                 alt="Search result for the query `smile` displaying multiple emoji smiling" 
                 title="Search results for smile" 
        />
    </a>
     <figcaption>Search results for smile</figcaption> 
</figure>

</div>
<h2 id="bubble_tea-fuzzy-search">&#x1f9cb; Fuzzy search</h2>
<p>Cool, the results seem promising. But there seems to be a problem.</p>









    
        
    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2023/post/moteur-de-recherche-emojis/img/search-ko-hug.png"
            target="_blank"
    >
        <img
                src="/2023/post/moteur-de-recherche-emojis/img/search-ko-hug_hu_ff495ba7fb242f3c.png"
                 alt="Search result for the query `hug` displaying no results" 
                 title="Search results for hug" 
        />
    </a>
     <figcaption>Search results for hug</figcaption> 
</figure>
<p>I should have an emoji here, &#x1f917; to be exact. If I add the <code>s</code> to the query, it finds it, but not without it. Let&rsquo;s try
to enhance the search for this kind of purpose by adding a bit of fuzziness to the search.</p>
<p>The idea is to allow some inexact words to match the query. For that, we will use what&rsquo;s called <a href="https://en.wikipedia.org/wiki/Levenshtein_distance">Levenshtein distance</a>.
In fact, as I already said, I&rsquo;m a slacker, so Bleve will do it for me. Unfortunately, I could not find any way
to add a default fuzzy parameter to <code>query</code> search. I still can add <code>~</code> to words of my search to enable fuzzy search on them.
As my expectations are not high, I will do it the &ldquo;just hack it&rdquo; way. If I have no results from the query, I will do a specific
fuzzy search instead.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-4-1"><a class="lnlinks" href="#hl-4-1"> 1</a></span><span class="cl"><span class="kd">func</span><span class="w"> </span><span class="nf">Search</span><span class="p">(</span><span class="nx">q</span><span class="w"> </span><span class="kt">string</span><span class="p">)</span><span class="w"> </span><span class="p">(</span><span class="nx">results</span><span class="w"> </span><span class="p">[]</span><span class="nx">EmojiDescription</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-2"><a class="lnlinks" href="#hl-4-2"> 2</a></span><span class="cl"><span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="nx">index</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-3"><a class="lnlinks" href="#hl-4-3"> 3</a></span><span class="cl"><span class="w">		</span><span class="c1">// no Index mean indexEmojies was not called yet or did not finished. No results (boot process)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-4"><a class="lnlinks" href="#hl-4-4"> 4</a></span><span class="cl"><span class="w">		</span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-5"><a class="lnlinks" href="#hl-4-5"> 5</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-6"><a class="lnlinks" href="#hl-4-6"> 6</a></span><span class="cl"><span class="w">	</span><span class="c1">// we create a query as bleve expect.</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-7"><a class="lnlinks" href="#hl-4-7"> 7</a></span><span class="cl"><span class="w">	</span><span class="nx">query</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">bleve</span><span class="p">.</span><span class="nf">NewQueryStringQuery</span><span class="p">(</span><span class="nx">q</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-8"><a class="lnlinks" href="#hl-4-8"> 8</a></span><span class="cl"><span class="w">	</span><span class="c1">// we define the search options and limit to 200 results. This should be enough.</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-9"><a class="lnlinks" href="#hl-4-9"> 9</a></span><span class="cl"><span class="w">	</span><span class="nx">searchrequest</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">bleve</span><span class="p">.</span><span class="nf">NewSearchRequestOptions</span><span class="p">(</span><span class="nx">query</span><span class="p">,</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="kc">false</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-10"><a class="lnlinks" href="#hl-4-10">10</a></span><span class="cl"><span class="w">	</span><span class="c1">// we do the search itself. This is the longest. Approximately few hundreds of us </span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-11"><a class="lnlinks" href="#hl-4-11">11</a></span><span class="cl"><span class="w">	</span><span class="nx">searchresults</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">index</span><span class="p">.</span><span class="nf">Search</span><span class="p">(</span><span class="nx">searchrequest</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-12"><a class="lnlinks" href="#hl-4-12">12</a></span><span class="cl"><span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-13"><a class="lnlinks" href="#hl-4-13">13</a></span><span class="cl"><span class="w">		</span><span class="nx">logrus</span><span class="p">.</span><span class="nf">WithError</span><span class="p">(</span><span class="nx">err</span><span class="p">).</span><span class="nf">Error</span><span class="p">(</span><span class="s">&#34;Could not search for an emoji&#34;</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-14"><a class="lnlinks" href="#hl-4-14">14</a></span><span class="cl"><span class="w">		</span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-15"><a class="lnlinks" href="#hl-4-15">15</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-16"><a class="lnlinks" href="#hl-4-16">16</a></span><span class="cl"><span class="w">	
</span></span></span><span class="line"><span class="ln" id="hl-4-17"><a class="lnlinks" href="#hl-4-17">17</a></span><span class="cl"><span class="w">	</span><span class="c1">// If we have no results we try to do a basic fuzzy search</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-18"><a class="lnlinks" href="#hl-4-18">18</a></span><span class="cl"><span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="nb">len</span><span class="p">(</span><span class="nx">searchresults</span><span class="p">.</span><span class="nx">Hits</span><span class="p">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-19"><a class="lnlinks" href="#hl-4-19">19</a></span><span class="cl"><span class="w">		</span><span class="c1">// this time, we create a fuzzy query. The rest is the same as before. CopyPasta style. </span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-20"><a class="lnlinks" href="#hl-4-20">20</a></span><span class="cl"><span class="w">		</span><span class="nx">fuzzyQuery</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">bleve</span><span class="p">.</span><span class="nf">NewFuzzyQuery</span><span class="p">(</span><span class="nx">q</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-21"><a class="lnlinks" href="#hl-4-21">21</a></span><span class="cl"><span class="w">		</span><span class="nx">searchrequest</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">bleve</span><span class="p">.</span><span class="nf">NewSearchRequestOptions</span><span class="p">(</span><span class="nx">fuzzyQuery</span><span class="p">,</span><span class="w"> </span><span class="mi">200</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="kc">false</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-22"><a class="lnlinks" href="#hl-4-22">22</a></span><span class="cl"><span class="w">		</span><span class="nx">searchresults</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">index</span><span class="p">.</span><span class="nf">Search</span><span class="p">(</span><span class="nx">searchrequest</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-23"><a class="lnlinks" href="#hl-4-23">23</a></span><span class="cl"><span class="w">		</span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-24"><a class="lnlinks" href="#hl-4-24">24</a></span><span class="cl"><span class="w">			</span><span class="nx">logrus</span><span class="p">.</span><span class="nf">WithError</span><span class="p">(</span><span class="nx">err</span><span class="p">).</span><span class="nf">Error</span><span class="p">(</span><span class="s">&#34;Could not search for emoji&#34;</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-25"><a class="lnlinks" href="#hl-4-25">25</a></span><span class="cl"><span class="w">			</span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-26"><a class="lnlinks" href="#hl-4-26">26</a></span><span class="cl"><span class="w">		</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-27"><a class="lnlinks" href="#hl-4-27">27</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-28"><a class="lnlinks" href="#hl-4-28">28</a></span><span class="cl"><span class="w">	</span><span class="c1">// we return the results. I use the index to find my original object stored in `emojis` because it&#39;s simpler. Optimisation possible.</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-29"><a class="lnlinks" href="#hl-4-29">29</a></span><span class="cl"><span class="w">	</span><span class="k">for</span><span class="w"> </span><span class="nx">_</span><span class="p">,</span><span class="w"> </span><span class="nx">result</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">range</span><span class="w"> </span><span class="nx">searchresults</span><span class="p">.</span><span class="nx">Hits</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-30"><a class="lnlinks" href="#hl-4-30">30</a></span><span class="cl"><span class="w">		</span><span class="nx">numIndex</span><span class="p">,</span><span class="w"> </span><span class="nx">_</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">strconv</span><span class="p">.</span><span class="nf">ParseInt</span><span class="p">(</span><span class="nx">result</span><span class="p">.</span><span class="nx">ID</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">64</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-31"><a class="lnlinks" href="#hl-4-31">31</a></span><span class="cl"><span class="w">		</span><span class="nx">results</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">append</span><span class="p">(</span><span class="nx">results</span><span class="p">,</span><span class="w"> </span><span class="nx">emojis</span><span class="p">[</span><span class="nx">numIndex</span><span class="p">])</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-32"><a class="lnlinks" href="#hl-4-32">32</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-33"><a class="lnlinks" href="#hl-4-33">33</a></span><span class="cl"><span class="w">	</span><span class="k">return</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-4-34"><a class="lnlinks" href="#hl-4-34">34</a></span><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
</span></span></span></code></pre></div>








    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2023/post/moteur-de-recherche-emojis/img/search-ok-hug.png"
            target="_blank"
    >
        <img
                src="/2023/post/moteur-de-recherche-emojis/img/search-ok-hug.png"
                 alt="Search result for the query `hug` now displaying multiple emoji including hugs" 
                 title="Search results for hug" 
        />
    </a>
     <figcaption>Search results for hug</figcaption> 
</figure>
<p>This time, I have my <code>hugs</code> emoji when I search for <code>hug</code>. I also have other results, but that&rsquo;s fine for me. I don&rsquo;t expect
to have only one result and picking the right one as long as it is visible on screen with few to no scrolls is ok for me.</p>
<blockquote>
<p>side note: I could have also used prefix search, but I don&rsquo;t always search using the beginning of an emoji&rsquo;s name, so I prefer using the fuzzy search.</p>
</blockquote>
<h2 id="purple_square-skin-tones">&#x1f7ea; Skin tones</h2>
<p>If I search for <code>ok hand</code> I find the emoji, right? But as you can see, there is only the standard variation - the yellow one.
I would like to have the skin tone variation as well.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2023/post/moteur-de-recherche-emojis/img/search-ok-hand-no-black.png"
            target="_blank"
    >
        <img
                src="/2023/post/moteur-de-recherche-emojis/img/search-ok-hand-no-black.png"
                 alt="Search result for the query `ok hand` displaying only the yellow emoji" 
                 title="Search results for ok hand" 
        />
    </a>
     <figcaption>Search results for ok hand</figcaption> 
</figure>
<blockquote>
<p>Open your mind again and imagine a narrator with a deep voice popping in your head and saying the following:
&ldquo;Zed did not know how hard it would be to include those fancy skin toned emojis. Hours would pass before he finally understands.&rdquo;</p>
</blockquote>
<p>Before continuing, I need to explain (what I understood) how emojis and UTF-8 works for skin tone variations.
UTF-8 characters can be composed together. This allows to create what we call <a href="https://en.wikipedia.org/wiki/Ligature_%28writing%29">ligatures</a>.
Basically, you take the code of two characters, and you smash them together into one UTF-8 character. On your screen, if your reader and font are compatible,
you will see a different character in place of the two characters. The beauty of it is that even if your reader or font are not compatible, you
will still see the original characters anyway. Cool, right?</p>
<p>Emoji skin tone is handled like this. You &ldquo;smash&rdquo; together the original emoji and the skin tone color to create a new emoji of the original one, but the
yellow is replaced by the skin tone.</p>
<pre tabindex="0"><code>1F44C                                                  ; fully-qualified     # 👌 E0.6 OK hand
1F44C 1F3FB                                            ; fully-qualified     # 👌🏻 E1.0 OK hand: light skin tone
1F44C 1F3FC                                            ; fully-qualified     # 👌🏼 E1.0 OK hand: medium-light skin tone
1F44C 1F3FD                                            ; fully-qualified     # 👌🏽 E1.0 OK hand: medium skin tone
1F44C 1F3FE                                            ; fully-qualified     # 👌🏾 E1.0 OK hand: medium-dark skin tone
1F44C 1F3FF                                            ; fully-qualified     # 👌🏿 E1.0 OK hand: dark skin tone
</code></pre><p>The first column contains the UTF-8 code for each emoji. As you can read, the first one is the same and is the <code>ok_hand</code> emoji
itself. The second code is for the skin tone, so we have a list of each available skin tone.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-6-1"><a class="lnlinks" href="#hl-6-1">1</a></span><span class="cl"><span class="w">	</span><span class="nx">tones</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">][]</span><span class="kt">rune</span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-6-2"><a class="lnlinks" href="#hl-6-2">2</a></span><span class="cl"><span class="w">      </span><span class="s">&#34;light skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FB&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-6-3"><a class="lnlinks" href="#hl-6-3">3</a></span><span class="cl"><span class="w">      </span><span class="s">&#34;medium-light skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FC&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-6-4"><a class="lnlinks" href="#hl-6-4">4</a></span><span class="cl"><span class="w">      </span><span class="s">&#34;medium skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FD&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-6-5"><a class="lnlinks" href="#hl-6-5">5</a></span><span class="cl"><span class="w">      </span><span class="s">&#34;medium-dark skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FE&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-6-6"><a class="lnlinks" href="#hl-6-6">6</a></span><span class="cl"><span class="w">      </span><span class="s">&#34;dark skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FF&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-6-7"><a class="lnlinks" href="#hl-6-7">7</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span></code></pre></div><p>The original library, and most libraries I&rsquo;ve seen, handle emojis as strings and manipulate them with string methods using the <code>\Uxxxxxxxx</code> format.
Golang has a type dedicated to UTF-8 character management: the <code>rune</code>. I decided to use it. Unfortunately, there are not many examples online of rune usage, especially with ligatures.
I used the string representation to easily make the connection between the UTF-8 code and the runes in Go.</p>
<p>Now, we need to create a new emoji for each skin tone. Not all emojis can support skin tone. I could parse the original
Unicode file, but if you paid attention, the JSON file I fetched already has this information.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-7-1"><a class="lnlinks" href="#hl-7-1"> 1</a></span><span class="cl"><span class="kd">func</span><span class="w"> </span><span class="nf">enhanceEmojiListWithVariations</span><span class="p">(</span><span class="nx">list</span><span class="w"> </span><span class="p">[]</span><span class="nx">EmojiDescription</span><span class="p">)</span><span class="w"> </span><span class="p">[]</span><span class="nx">EmojiDescription</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-2"><a class="lnlinks" href="#hl-7-2"> 2</a></span><span class="cl"><span class="w">	</span><span class="nx">tones</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">][]</span><span class="kt">rune</span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-3"><a class="lnlinks" href="#hl-7-3"> 3</a></span><span class="cl"><span class="w">        </span><span class="s">&#34;light skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FB&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-4"><a class="lnlinks" href="#hl-7-4"> 4</a></span><span class="cl"><span class="w">        </span><span class="s">&#34;medium-light skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FC&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-5"><a class="lnlinks" href="#hl-7-5"> 5</a></span><span class="cl"><span class="w">        </span><span class="s">&#34;medium skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FD&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-6"><a class="lnlinks" href="#hl-7-6"> 6</a></span><span class="cl"><span class="w">        </span><span class="s">&#34;medium-dark skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FE&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-7"><a class="lnlinks" href="#hl-7-7"> 7</a></span><span class="cl"><span class="w">        </span><span class="s">&#34;dark skin tone&#34;</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="p">[]</span><span class="nb">rune</span><span class="p">(</span><span class="s">&#34;\U0001F3FF&#34;</span><span class="p">),</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-8"><a class="lnlinks" href="#hl-7-8"> 8</a></span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-9"><a class="lnlinks" href="#hl-7-9"> 9</a></span><span class="cl"><span class="w">	</span><span class="k">for</span><span class="w"> </span><span class="nx">_</span><span class="p">,</span><span class="w"> </span><span class="nx">originalEmoji</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">range</span><span class="w"> </span><span class="nx">list</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-10"><a class="lnlinks" href="#hl-7-10">10</a></span><span class="cl"><span class="w">		</span><span class="c1">// we only add variations for emoji that supports it</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-11"><a class="lnlinks" href="#hl-7-11">11</a></span><span class="cl"><span class="w">		</span><span class="k">if</span><span class="w"> </span><span class="nx">originalEmoji</span><span class="p">.</span><span class="nx">HasSkinTones</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-12"><a class="lnlinks" href="#hl-7-12">12</a></span><span class="cl"><span class="w">			</span><span class="c1">// we do it for every skin tone</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-13"><a class="lnlinks" href="#hl-7-13">13</a></span><span class="cl"><span class="w">			</span><span class="k">for</span><span class="w"> </span><span class="nx">skinToneName</span><span class="p">,</span><span class="w"> </span><span class="nx">tone</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">range</span><span class="w"> </span><span class="nx">tones</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-14"><a class="lnlinks" href="#hl-7-14">14</a></span><span class="cl"><span class="w">				</span><span class="c1">// we make a copy of the emojiDescription</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-15"><a class="lnlinks" href="#hl-7-15">15</a></span><span class="cl"><span class="w">				</span><span class="nx">currentEmojiWithSkinTone</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">originalEmoji</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-16"><a class="lnlinks" href="#hl-7-16">16</a></span><span class="cl"><span class="w">				
</span></span></span><span class="line"><span class="ln" id="hl-7-17"><a class="lnlinks" href="#hl-7-17">17</a></span><span class="cl"><span class="w">				</span><span class="c1">// This is the important bit that took me hours to figure out</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-18"><a class="lnlinks" href="#hl-7-18">18</a></span><span class="cl"><span class="w">				</span><span class="c1">// we convert the emoji in rune (string -&gt; []rune). An emoji can already be composed of multiple sub UTF8 characters, therefore multiple runes.</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-19"><a class="lnlinks" href="#hl-7-19">19</a></span><span class="cl"><span class="w">				</span><span class="c1">// we append to the list of runes the one for the skin tone.</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-20"><a class="lnlinks" href="#hl-7-20">20</a></span><span class="cl"><span class="w">				</span><span class="c1">// finally, we convert that in string using the type conversion. Using fmt would result in printing all runes independently</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-21"><a class="lnlinks" href="#hl-7-21">21</a></span><span class="cl"><span class="w">				</span><span class="nx">currentEmojiWithSkinTone</span><span class="p">.</span><span class="nx">Emoji</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">string</span><span class="p">(</span><span class="nb">append</span><span class="p">([]</span><span class="nb">rune</span><span class="p">(</span><span class="nx">currentEmojiWithSkinTone</span><span class="p">.</span><span class="nx">Emoji</span><span class="p">),</span><span class="w"> </span><span class="nx">tone</span><span class="o">...</span><span class="p">))</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-22"><a class="lnlinks" href="#hl-7-22">22</a></span><span class="cl"><span class="w">				
</span></span></span><span class="line"><span class="ln" id="hl-7-23"><a class="lnlinks" href="#hl-7-23">23</a></span><span class="cl"><span class="w">				</span><span class="c1">// we adapt the description and metadata to match the skin tone</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-24"><a class="lnlinks" href="#hl-7-24">24</a></span><span class="cl"><span class="w">				</span><span class="nx">currentEmojiWithSkinTone</span><span class="p">.</span><span class="nx">Description</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">fmt</span><span class="p">.</span><span class="nf">Sprintf</span><span class="p">(</span><span class="s">&#34;%s %s&#34;</span><span class="p">,</span><span class="w"> </span><span class="nx">currentEmojiWithSkinTone</span><span class="p">.</span><span class="nx">Description</span><span class="p">,</span><span class="w"> </span><span class="nx">skinToneName</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-25"><a class="lnlinks" href="#hl-7-25">25</a></span><span class="cl"><span class="w">				</span><span class="nx">aliases</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="p">[]</span><span class="kt">string</span><span class="p">{}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-26"><a class="lnlinks" href="#hl-7-26">26</a></span><span class="cl"><span class="w">				</span><span class="k">for</span><span class="w"> </span><span class="nx">_</span><span class="p">,</span><span class="w"> </span><span class="nx">alias</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">range</span><span class="w"> </span><span class="nx">currentEmojiWithSkinTone</span><span class="p">.</span><span class="nx">Aliases</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-27"><a class="lnlinks" href="#hl-7-27">27</a></span><span class="cl"><span class="w">					</span><span class="c1">// we update all aliases to include the skin tone</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-28"><a class="lnlinks" href="#hl-7-28">28</a></span><span class="cl"><span class="w">					</span><span class="nx">aliases</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">append</span><span class="p">(</span><span class="nx">aliases</span><span class="p">,</span><span class="w"> </span><span class="nx">fmt</span><span class="p">.</span><span class="nf">Sprintf</span><span class="p">(</span><span class="s">&#34;%s_%s&#34;</span><span class="p">,</span><span class="nx">alias</span><span class="p">,</span><span class="nx">strings</span><span class="p">.</span><span class="nf">ReplaceAll</span><span class="p">(</span><span class="nx">strings</span><span class="p">.</span><span class="nf">ReplaceAll</span><span class="p">(</span><span class="nx">skinToneName</span><span class="p">,</span><span class="s">&#34;-&#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;_&#34;</span><span class="p">),</span><span class="s">&#34; &#34;</span><span class="p">,</span><span class="w"> </span><span class="s">&#34;_&#34;</span><span class="p">)))</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-29"><a class="lnlinks" href="#hl-7-29">29</a></span><span class="cl"><span class="w">				</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-30"><a class="lnlinks" href="#hl-7-30">30</a></span><span class="cl"><span class="w">				</span><span class="nx">currentEmojiWithSkinTone</span><span class="p">.</span><span class="nx">Aliases</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">aliases</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-31"><a class="lnlinks" href="#hl-7-31">31</a></span><span class="cl"><span class="w">                </span><span class="c1">// I cleared the unicode version because some emoji with skin tone were added way after their original. I could parse the unicode list,</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-32"><a class="lnlinks" href="#hl-7-32">32</a></span><span class="cl"><span class="w">				</span><span class="c1">// but I&#39;m a loafer, so I did not.</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-33"><a class="lnlinks" href="#hl-7-33">33</a></span><span class="cl"><span class="w">				</span><span class="nx">currentEmojiWithSkinTone</span><span class="p">.</span><span class="nx">UnicodeVersion</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="s">&#34;&#34;</span><span class="w"> 
</span></span></span><span class="line"><span class="ln" id="hl-7-34"><a class="lnlinks" href="#hl-7-34">34</a></span><span class="cl"><span class="w">				</span><span class="c1">// we add the new emoji to the list</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-35"><a class="lnlinks" href="#hl-7-35">35</a></span><span class="cl"><span class="w">                </span><span class="nx">list</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">append</span><span class="p">(</span><span class="nx">list</span><span class="p">,</span><span class="w"> </span><span class="nx">currentEmojiWithSkinTone</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-36"><a class="lnlinks" href="#hl-7-36">36</a></span><span class="cl"><span class="w">			</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-37"><a class="lnlinks" href="#hl-7-37">37</a></span><span class="cl"><span class="w">		</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-38"><a class="lnlinks" href="#hl-7-38">38</a></span><span class="cl"><span class="w">	</span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-39"><a class="lnlinks" href="#hl-7-39">39</a></span><span class="cl"><span class="w">	</span><span class="k">return</span><span class="w"> </span><span class="nx">list</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-7-40"><a class="lnlinks" href="#hl-7-40">40</a></span><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
</span></span></span></code></pre></div><p>The key &#x1f511; here is this line:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-8-1"><a class="lnlinks" href="#hl-8-1">1</a></span><span class="cl"><span class="nx">currentEmojiWithSkinTone</span><span class="p">.</span><span class="nx">Emoji</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">string</span><span class="p">(</span><span class="nb">append</span><span class="p">([]</span><span class="nb">rune</span><span class="p">(</span><span class="nx">currentEmojiWithSkinTone</span><span class="p">.</span><span class="nx">Emoji</span><span class="p">),</span><span class="w"> </span><span class="nx">tone</span><span class="o">...</span><span class="p">))</span><span class="w">
</span></span></span></code></pre></div><p>I&rsquo;m no expert in Go, and I probably missed something, but after hours of playing with <code>fmt</code> to print the emoji with ligatures
and failing, always two characters were displayed. I inadvertently used type conversion, and it worked. I have no idea why it took me two 🖕🏿 hours to do it.</p>
<p>We now have our skin tone variations! &#x1f389;</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2023/post/moteur-de-recherche-emojis/img/search-ok-hand-black.png"
            target="_blank"
    >
        <img
                src="/2023/post/moteur-de-recherche-emojis/img/search-ok-hand-black.png"
                 alt="Search result for the query `ok hand` now displaying all the color variations" 
                 title="Search results for ok hand" 
        />
    </a>
     <figcaption>Search results for ok hand</figcaption> 
</figure>
<h2 id="no_entry_sign-unsupported-emoji">&#x1f6ab; Unsupported Emoji</h2>
<p>My computer and my phone do not support Emoji version 14 and higher well. But, as I said earlier, the beauty of UTF8 ligatures
is that even if you cannot process them fully, you get the characters. This way, you can still understand the intention.</p>









    
        
    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2023/post/moteur-de-recherche-emojis/img/search-ok-no-ligature.png"
            target="_blank"
    >
        <img
                src="/2023/post/moteur-de-recherche-emojis/img/search-ok-no-ligature_hu_8e79ff23e3bca3f3.png"
                 alt="Multiple emojis `couple with heart man man` with skin tone displayed as two emojis. The original one &#43; the skin tone itself as a square" 
                 title="Search results with unsupported skin-toned emoji" 
        />
    </a>
     <figcaption>Search results with unsupported skin-toned emoji</figcaption> 
</figure>
<p>If you want to test it yourself and tinker with it, you can find the full working example in this repository <a href="https://git2.riper.fr/ztec/emoji-search-engine-go">git2.riper.fr/ztec/emoji-search-engine-go</a>.</p>
<p>You can also test and see the final result. All details here: <a href="https://blog.ztec.fr/en/2023/post/poulpe-emoji-search-engine/">poulpe.ztec.fr</a></p>
<h2 id="interrobang-why-did-i-do-all-of-that-">&#x2049;&#xfe0f; Why did I do all of that ?</h2>
<p>First of all, why not. Just playing with emoji is fun, sort of. But mostly, my goal was to have on hand an emoji finder to easily copy them elsewhere.
Every system I found online had flaws that were annoying.</p>
<ul>
<li>way too slow to load or search</li>
<li>way too useless. I don&rsquo;t want to search for my emoji in a huge list of yellow icons</li>
</ul>
<p>The best solution I had was a shortcut to the unicode list itself. Not all common names are present,
so I had to learn some official names. The big reason I decided to build my own search &ldquo;engine&rdquo; on that is &ldquo;unicode website was down!&rdquo; &#x2b07;&#xfe0f;</p>
<p>Yeah, I might be the only one in the world that knows that the unicode website sometimes does not respond, and be impacted by that! &#x1f923;</p>
<h2 id="next_track_button-whats-next-">&#x23ed;&#xfe0f; What&rsquo;s next ?</h2>
<p>This engine is really simple and basic. There are already ways to improve it. I have already included a reverse search, even if
I did not talk about it here. The indexing engine is somewhat powerful and cool, but still misses some obvious cases. I&rsquo;ll
see what&rsquo;s bothering me the most upon usage and improve it. Maybe the result will be open-sourced, but for that, I have
a lot to do. Emojis are not the only things I have in my little search engine. &#x1f609;</p>
<p>Thank you reading this,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item><item><title>Webcam on = Lights on (Philips Hue)</title><link>https://blog.ztec.fr/en/2023/post/auto-light-when-using-webcam/</link><pubDate>Fri, 31 Mar 2023 11:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2023/post/auto-light-when-using-webcam/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f759e46174ad06f5.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_ed5b1625181e2ebb.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f759e46174ad06f5.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>On my desk at home, while working remotely and doing a video call, I turn on my webcam.
I find it more pleasant for others to be able to see me.
I also appreciate it when others do the same, but everyone has their preferences on this subject.</p>
<p>To ensure that my image is clear and clean, I installed a lamp that shines a lot of lumens on my face.
This way, I&rsquo;m sure I&rsquo;m visible!
I used to forget to turn it on or worse, turn it off. So, I automated the process.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2023/post/lumiere-webcam-automatic-a-l-usage/img/light_hu_bb05e4b3b2fd5e0f.webp"
            target="_blank"
    >
        <img
                src="/2023/post/lumiere-webcam-automatic-a-l-usage/img/light_hu_10eacb93f7f49388.webp"
                 alt="A webcam on top of a light between two screens" 
                 title="Light and webcam" 
        />
    </a>
     <figcaption>Light and webcam</figcaption> 
</figure>

</div>
<p>The lamp I use is a <a href="https://www.philips-hue.com/en-us/p/hue-white-and-color-ambiance-play-light-bar-single-pack/7820130U7">Philips Hue Play</a>, which can be controlled through the entire Philips Hue ecosystem.</p>
<p>I also have a tablet on my desk with big buttons to turn the lamp on and off.
It&rsquo;s convenient, but it still requires an extra gesture.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2023/post/lumiere-webcam-automatic-a-l-usage/img/tablet_hu_45a1c83ac4d69530.webp"
            target="_blank"
    >
        <img
                src="/2023/post/lumiere-webcam-automatic-a-l-usage/img/tablet_hu_b7f2f5d84d9560a.webp"
                 alt="Tablet on the desk with big square buttons to turn on or off lights including the webcam light" 
                 title="Control tablet" 
        />
    </a>
     <figcaption>Control tablet</figcaption> 
</figure>

</div>
<p>##API to turn on the lamp</p>
<p>Philips Hue lamps can be controlled through the bridge, which has a fairly simple REST API.</p>
<p>After some research on the internet, I built a script snippet to turn the lamp on or off:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-0-1"><a class="lnlinks" href="#hl-0-1"> 1</a></span><span class="cl"><span class="cp">#!/bin/bash
</span></span></span><span class="line"><span class="ln" id="hl-0-2"><a class="lnlinks" href="#hl-0-2"> 2</a></span><span class="cl"><span class="cp"></span><span class="nv">HUE_BRIDGE_IP</span><span class="o">=</span><span class="s2">&#34;10.20.0.4&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-0-3"><a class="lnlinks" href="#hl-0-3"> 3</a></span><span class="cl"><span class="nv">HUE_USER_NAME</span><span class="o">=</span><span class="s2">&#34;secretCodeYouGetByPressingTheBridgeButton&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-0-4"><a class="lnlinks" href="#hl-0-4"> 4</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-0-5"><a class="lnlinks" href="#hl-0-5"> 5</a></span><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Turning off the light&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-0-6"><a class="lnlinks" href="#hl-0-6"> 6</a></span><span class="cl">curl --insecure -X PUT -d <span class="s1">&#39;{&#34;on&#34;: false}&#39;</span>  <span class="s2">&#34;https://</span><span class="si">${</span><span class="nv">HUE_BRIDGE_IP</span><span class="si">}</span><span class="s2">/api/</span><span class="si">${</span><span class="nv">HUE_USER_NAME</span><span class="si">}</span><span class="s2">/lights/4/state&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-0-7"><a class="lnlinks" href="#hl-0-7"> 7</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-0-8"><a class="lnlinks" href="#hl-0-8"> 8</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-0-9"><a class="lnlinks" href="#hl-0-9"> 9</a></span><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Turning on the light&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-0-10"><a class="lnlinks" href="#hl-0-10">10</a></span><span class="cl">curl --insecure -X PUT -d <span class="s1">&#39;{&#34;on&#34;: true}&#39;</span>  <span class="s2">&#34;https://</span><span class="si">${</span><span class="nv">HUE_BRIDGE_IP</span><span class="si">}</span><span class="s2">/api/</span><span class="si">${</span><span class="nv">HUE_USER_NAME</span><span class="si">}</span><span class="s2">/lights/4/state&#34;</span>
</span></span></code></pre></div><p>To access the API on the bridge itself, this page describes the steps to follow: <a href="https://developers.meethue.com/develop/get-started-2/">https://developers.meethue.com/develop/get-started-2/</a></p>
<p>There is a process to obtain the &ldquo;username&rdquo; which serves as a secret code.
To put it briefly, you need to send the following request:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-1-1"><a class="lnlinks" href="#hl-1-1">1</a></span><span class="cl">curl -X POST -d <span class="s1">&#39;{&#34;devicetype&#34;:&#34;nom_de_votre_script&#34;}&#39;</span>
</span></span></code></pre></div><p>Quickly press the button on the bridge and start again.
The code is then returned, and I write it down, notably in the HUE_USER_NAME variable.
This code must then be inserted in the URL between /api/ and the &ldquo;resources&rdquo; path.</p>
<p>Next, I had to understand how the API works. In summary:</p>
<ul>
<li>There are &ldquo;resources&rdquo; that represent the scenes that we have configured (via an application, for example). The scenes define the desired state for each lamp in the scene.</li>
<li>There are &ldquo;resources&rdquo; for each lamp to modify them.</li>
<li>There is, of course, the possibility to retrieve the list of scenes and lamps.</li>
<li>Applying a scene involves obtaining the list of desired states for each lamp and making a call for each with the scene values.</li>
</ul>
<p>I didn&rsquo;t go further. There are probably subtleties for dynamic scenes or certain features. After some trial and error, I discovered that the number of my lamp is 4.</p>
<h2 id="webcam-usage-detection">Webcam usage detection</h2>
<p>I did some research on the internet, and I don&rsquo;t quite remember where I found the answer.
To detect if my webcam is being used, I just need to run <code>lsmod</code> and &ldquo;look&rdquo; at the status in front of <code>uvcvideo</code>. It looks like this:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-2-1"><a class="lnlinks" href="#hl-2-1">1</a></span><span class="cl"><span class="nv">IS_CAM_IN_USE</span><span class="o">=</span><span class="k">$(</span>lsmod <span class="p">|</span> grep uvcvideo<span class="p">|</span>head -n 1<span class="p">|</span>awk <span class="s1">&#39;{print $3}&#39;</span><span class="k">)</span>
</span></span></code></pre></div><p>This command outputs a 0 or 1. If there&rsquo;s more than one webcam, it&rsquo;s likely that the method needs to be adapted a bit.</p>
<h2 id="webcam-settings">Webcam settings</h2>
<p>With the light on, no need to let the webcam adjust it setting itself. I can set it how I want with fixed exposition time, sensibility and white balance.
This way, I won&rsquo;t look sick because the white balance is wrong.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-3-1"><a class="lnlinks" href="#hl-3-1"> 1</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">exposure_auto</span><span class="o">=</span><span class="m">1</span>
</span></span><span class="line"><span class="ln" id="hl-3-2"><a class="lnlinks" href="#hl-3-2"> 2</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">exposure_auto_priority</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="ln" id="hl-3-3"><a class="lnlinks" href="#hl-3-3"> 3</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">exposure_absolute</span><span class="o">=</span><span class="m">120</span>
</span></span><span class="line"><span class="ln" id="hl-3-4"><a class="lnlinks" href="#hl-3-4"> 4</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">white_balance_temperature_auto</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="ln" id="hl-3-5"><a class="lnlinks" href="#hl-3-5"> 5</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">white_balance_temperature</span><span class="o">=</span><span class="m">3500</span>
</span></span><span class="line"><span class="ln" id="hl-3-6"><a class="lnlinks" href="#hl-3-6"> 6</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">brightness</span><span class="o">=</span><span class="m">200</span>
</span></span><span class="line"><span class="ln" id="hl-3-7"><a class="lnlinks" href="#hl-3-7"> 7</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">contrast</span><span class="o">=</span><span class="m">110</span>
</span></span><span class="line"><span class="ln" id="hl-3-8"><a class="lnlinks" href="#hl-3-8"> 8</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">gain</span><span class="o">=</span><span class="m">170</span>
</span></span><span class="line"><span class="ln" id="hl-3-9"><a class="lnlinks" href="#hl-3-9"> 9</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">power_line_frequency</span><span class="o">=</span><span class="m">1</span>
</span></span><span class="line"><span class="ln" id="hl-3-10"><a class="lnlinks" href="#hl-3-10">10</a></span><span class="cl">v4l2-ctl --set-ctrl <span class="nv">zoom_absolute</span><span class="o">=</span><span class="m">100</span>
</span></span></code></pre></div><p>Those are my settings. Play with them to find your best on your hardware.</p>
<h2 id="final-assembly">Final assembly</h2>
<p>To build the final script, we just need to put everything together</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-4-1"><a class="lnlinks" href="#hl-4-1"> 1</a></span><span class="cl">~/bin/auto-cam.sh
</span></span><span class="line"><span class="ln" id="hl-4-2"><a class="lnlinks" href="#hl-4-2"> 2</a></span><span class="cl"><span class="c1">#!/bin/bash</span>
</span></span><span class="line"><span class="ln" id="hl-4-3"><a class="lnlinks" href="#hl-4-3"> 3</a></span><span class="cl"><span class="nv">HUE_BRIDGE_IP</span><span class="o">=</span><span class="s2">&#34;10.20.0.4&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-4-4"><a class="lnlinks" href="#hl-4-4"> 4</a></span><span class="cl"><span class="nv">HUE_DEVICE_TYPE</span><span class="o">=</span><span class="s2">&#34;linuxauto&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-4-5"><a class="lnlinks" href="#hl-4-5"> 5</a></span><span class="cl"><span class="nv">HUE_USER_NAME</span><span class="o">=</span><span class="s2">&#34;AH1gq0t6MlKDi4cVYQuxaD-35vgq-ves2W57Tz4G&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-4-6"><a class="lnlinks" href="#hl-4-6"> 6</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-4-7"><a class="lnlinks" href="#hl-4-7"> 7</a></span><span class="cl"><span class="nv">IS_CAM_IN_USE</span><span class="o">=</span><span class="k">$(</span>lsmod <span class="p">|</span> grep uvcvideo<span class="p">|</span>head -n 1<span class="p">|</span>awk <span class="s1">&#39;{print $3}&#39;</span><span class="k">)</span>
</span></span><span class="line"><span class="ln" id="hl-4-8"><a class="lnlinks" href="#hl-4-8"> 8</a></span><span class="cl"><span class="nv">STATE_FILE</span><span class="o">=</span><span class="s2">&#34;/tmp/hue_state&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-4-9"><a class="lnlinks" href="#hl-4-9"> 9</a></span><span class="cl"><span class="nv">HUE_STATE</span><span class="o">=</span><span class="k">$(</span>cat <span class="si">${</span><span class="nv">STATE_FILE</span><span class="si">}</span><span class="k">)</span>
</span></span><span class="line"><span class="ln" id="hl-4-10"><a class="lnlinks" href="#hl-4-10">10</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-4-11"><a class="lnlinks" href="#hl-4-11">11</a></span><span class="cl"><span class="k">if</span> <span class="o">[</span> <span class="s2">&#34;</span><span class="si">${</span><span class="nv">IS_CAM_IN_USE</span><span class="si">}</span><span class="s2">&#34;</span> <span class="o">==</span> <span class="s2">&#34;0&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="ln" id="hl-4-12"><a class="lnlinks" href="#hl-4-12">12</a></span><span class="cl">	<span class="nb">echo</span> CAM NOT IN USE<span class="p">;</span>
</span></span><span class="line"><span class="ln" id="hl-4-13"><a class="lnlinks" href="#hl-4-13">13</a></span><span class="cl">	<span class="k">if</span> <span class="o">[</span> <span class="s2">&#34;</span><span class="si">${</span><span class="nv">HUE_STATE</span><span class="si">}</span><span class="s2">&#34;</span> !<span class="o">=</span> <span class="s2">&#34;0&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span> 
</span></span><span class="line"><span class="ln" id="hl-4-14"><a class="lnlinks" href="#hl-4-14">14</a></span><span class="cl">		<span class="nb">echo</span> <span class="s2">&#34;Turning off the light&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-4-15"><a class="lnlinks" href="#hl-4-15">15</a></span><span class="cl"> 		curl --insecure -X PUT -d <span class="s1">&#39;{&#34;on&#34;: false}&#39;</span>  <span class="s2">&#34;https://</span><span class="si">${</span><span class="nv">HUE_BRIDGE_IP</span><span class="si">}</span><span class="s2">/api/</span><span class="si">${</span><span class="nv">HUE_USER_NAME</span><span class="si">}</span><span class="s2">/lights/4/state&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-4-16"><a class="lnlinks" href="#hl-4-16">16</a></span><span class="cl">		<span class="nb">echo</span> <span class="s2">&#34;0&#34;</span> &gt; <span class="si">${</span><span class="nv">STATE_FILE</span><span class="si">}</span>
</span></span><span class="line"><span class="ln" id="hl-4-17"><a class="lnlinks" href="#hl-4-17">17</a></span><span class="cl">	<span class="k">fi</span>
</span></span><span class="line"><span class="ln" id="hl-4-18"><a class="lnlinks" href="#hl-4-18">18</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-4-19"><a class="lnlinks" href="#hl-4-19">19</a></span><span class="cl"><span class="k">else</span>
</span></span><span class="line"><span class="ln" id="hl-4-20"><a class="lnlinks" href="#hl-4-20">20</a></span><span class="cl">	<span class="nb">echo</span> CAM IN USE<span class="p">;</span>
</span></span><span class="line"><span class="ln" id="hl-4-21"><a class="lnlinks" href="#hl-4-21">21</a></span><span class="cl">	<span class="k">if</span> <span class="o">[</span> <span class="s2">&#34;</span><span class="si">${</span><span class="nv">HUE_STATE</span><span class="si">}</span><span class="s2">&#34;</span> !<span class="o">=</span> <span class="s2">&#34;1&#34;</span> <span class="o">]</span><span class="p">;</span> <span class="k">then</span>
</span></span><span class="line"><span class="ln" id="hl-4-22"><a class="lnlinks" href="#hl-4-22">22</a></span><span class="cl">		<span class="nb">echo</span> <span class="s2">&#34;Turning on the light&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-4-23"><a class="lnlinks" href="#hl-4-23">23</a></span><span class="cl">		curl --insecure -X PUT -d <span class="s1">&#39;{&#34;on&#34;: true}&#39;</span>  <span class="s2">&#34;https://</span><span class="si">${</span><span class="nv">HUE_BRIDGE_IP</span><span class="si">}</span><span class="s2">/api/</span><span class="si">${</span><span class="nv">HUE_USER_NAME</span><span class="si">}</span><span class="s2">/lights/4/state&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-4-24"><a class="lnlinks" href="#hl-4-24">24</a></span><span class="cl">		<span class="nb">echo</span> <span class="s2">&#34;1&#34;</span> &gt; <span class="si">${</span><span class="nv">STATE_FILE</span><span class="si">}</span>
</span></span><span class="line"><span class="ln" id="hl-4-25"><a class="lnlinks" href="#hl-4-25">25</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">exposure_auto</span><span class="o">=</span><span class="m">1</span>
</span></span><span class="line"><span class="ln" id="hl-4-26"><a class="lnlinks" href="#hl-4-26">26</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">exposure_auto_priority</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="ln" id="hl-4-27"><a class="lnlinks" href="#hl-4-27">27</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">exposure_absolute</span><span class="o">=</span><span class="m">120</span>
</span></span><span class="line"><span class="ln" id="hl-4-28"><a class="lnlinks" href="#hl-4-28">28</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">white_balance_temperature_auto</span><span class="o">=</span><span class="m">0</span>
</span></span><span class="line"><span class="ln" id="hl-4-29"><a class="lnlinks" href="#hl-4-29">29</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">white_balance_temperature</span><span class="o">=</span><span class="m">3500</span>
</span></span><span class="line"><span class="ln" id="hl-4-30"><a class="lnlinks" href="#hl-4-30">30</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">brightness</span><span class="o">=</span><span class="m">200</span>
</span></span><span class="line"><span class="ln" id="hl-4-31"><a class="lnlinks" href="#hl-4-31">31</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">contrast</span><span class="o">=</span><span class="m">110</span>
</span></span><span class="line"><span class="ln" id="hl-4-32"><a class="lnlinks" href="#hl-4-32">32</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">gain</span><span class="o">=</span><span class="m">170</span>
</span></span><span class="line"><span class="ln" id="hl-4-33"><a class="lnlinks" href="#hl-4-33">33</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">power_line_frequency</span><span class="o">=</span><span class="m">1</span>
</span></span><span class="line"><span class="ln" id="hl-4-34"><a class="lnlinks" href="#hl-4-34">34</a></span><span class="cl">		v4l2-ctl --set-ctrl <span class="nv">zoom_absolute</span><span class="o">=</span><span class="m">100</span>
</span></span><span class="line"><span class="ln" id="hl-4-35"><a class="lnlinks" href="#hl-4-35">35</a></span><span class="cl">	<span class="k">fi</span>
</span></span><span class="line"><span class="ln" id="hl-4-36"><a class="lnlinks" href="#hl-4-36">36</a></span><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="ln" id="hl-4-37"><a class="lnlinks" href="#hl-4-37">37</a></span><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;END&#34;</span> 
</span></span></code></pre></div><p>I added a state file to remember whether the lamp is on or off. This is not mandatory, but it saves me from making an API call every second.
In fact, when I start my computer, I run the following script, which simply runs the previous script every second.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-5-1"><a class="lnlinks" href="#hl-5-1">1</a></span><span class="cl">~/bin/cam-watcher.sh
</span></span><span class="line"><span class="ln" id="hl-5-2"><a class="lnlinks" href="#hl-5-2">2</a></span><span class="cl"><span class="c1">#!/bin/bash</span>
</span></span><span class="line"><span class="ln" id="hl-5-3"><a class="lnlinks" href="#hl-5-3">3</a></span><span class="cl"><span class="k">while</span> true<span class="p">;</span> <span class="k">do</span>
</span></span><span class="line"><span class="ln" id="hl-5-4"><a class="lnlinks" href="#hl-5-4">4</a></span><span class="cl">	~/bin/auto-cam.sh
</span></span><span class="line"><span class="ln" id="hl-5-5"><a class="lnlinks" href="#hl-5-5">5</a></span><span class="cl">	sleep <span class="m">1</span>
</span></span><span class="line"><span class="ln" id="hl-5-6"><a class="lnlinks" href="#hl-5-6">6</a></span><span class="cl"><span class="k">done</span>
</span></span></code></pre></div><p>And voilà! When I use my webcam, the light turns on automatically.
It resumes the last setting I used.
Therefore, I can still adjust its brightness with the tablet (because sometimes it&rsquo;s too intense for my sleepy morning eyes).</p>
<h2 id="about-de-philips-hue">About de Philips Hue</h2>
<p>I fell into the Philips Hue trap a few years ago, but I am satisfied with it - probably a Stockholm syndrome.
I haven&rsquo;t tested other brands, including Elgato for my webcam lighting.
So, I don&rsquo;t know if it&rsquo;s easy to control them without installing a spy app on your phone.
Regarding Philips Hue, everything is done locally, and the APIs are relatively easy to access.
This makes it easy for the community to build around it.
I was pleasantly surprised by how little time it took me to create this script.
Writing this article was probably longer.</p>
<p>Thank you reading this,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item><item><title>Snorre Kirk featuring Giacomo Smith at Duc des Lombards</title><link>https://blog.ztec.fr/en/2023/03/01/concert/snorre-kirk-featuring-giacomo-smith-at-duc-des-lombards/</link><pubDate>Wed, 01 Mar 2023 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2023/03/01/concert/snorre-kirk-featuring-giacomo-smith-at-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_22d5458ce44bda8b.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d9bd94b89396f174.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_22d5458ce44bda8b.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/giacomo-smith/">Giacomo Smith</a> - 


<a href="/en/instruments/alto-saxophone/">Alto Saxophone</a>, 


<a href="/en/instruments/clarinet/">Clarinet</a></li>
<li>


<a href="/en/artists/joe-webb/">Joe Webb</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/anders-fjeldsted/">Anders Fjeldsted</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/snorre-kirk/">Snorre Kirk</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    
        
    

    
    

    
    





    

    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2023/03/01/concert/snorre-kirk-featuring-giacomo-smith-au-duc-des-lombards/cover_hu_128315c2a538a167.webp 1x, /2023/03/01/concert/snorre-kirk-featuring-giacomo-smith-au-duc-des-lombards/cover_hu_b67ab79b07844e87.webp 2x, /2023/03/01/concert/snorre-kirk-featuring-giacomo-smith-au-duc-des-lombards/cover_hu_c52303acfe435262.webp 2.92x" />
        

        
        
            <source type="image/jpeg" srcset="/2023/03/01/concert/snorre-kirk-featuring-giacomo-smith-au-duc-des-lombards/cover_hu_615e40e164b4aabd.jpg 1x, /2023/03/01/concert/snorre-kirk-featuring-giacomo-smith-au-duc-des-lombards/cover_hu_7d71d5b672a22cdc.jpg 2x, /2023/03/01/concert/snorre-kirk-featuring-giacomo-smith-au-duc-des-lombards/cover_hu_44c28b3ff9ba5037.jpg 2.92x" />
        

        
        
        <img
            src="/2023/03/01/concert/snorre-kirk-featuring-giacomo-smith-au-duc-des-lombards/cover_hu_615e40e164b4aabd.jpg"
             alt="Snorre Kirk" 
             title="Snorre Kirk" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>First Aid Kit</title><link>https://blog.ztec.fr/en/2023/02/07/concert/first-aid-kit/</link><pubDate>Tue, 07 Feb 2023 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2023/02/07/concert/first-aid-kit/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_441377aba1c5fec7.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8f4c25b980f16bd7.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_441377aba1c5fec7.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>First Aid Kit</p>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2023/02/07/concert/first-aid-kit/cover_hu_227734674ddc89fc.webp 1x, /2023/02/07/concert/first-aid-kit/cover_hu_f29357680fe925c7.webp 1.35x" />
        

        
        
            <source type="image/jpeg" srcset="/2023/02/07/concert/first-aid-kit/cover_hu_82706ce3af78bc9c.jpg 1x, /2023/02/07/concert/first-aid-kit/cover_hu_34b1c08708152c01.jpg 1.35x" />
        

        
        
        <img
            src="/2023/02/07/concert/first-aid-kit/cover_hu_82706ce3af78bc9c.jpg"
             alt="Cover of the tour" 
             title="First Aid Kit" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Avishai Cohen at Duc des Lombards</title><link>https://blog.ztec.fr/en/2022/12/03/concert/avishai-cohen-at-duc-des-lombards/</link><pubDate>Sat, 03 Dec 2022 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2022/12/03/concert/avishai-cohen-at-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f12b759831cae33c.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_c3732873fa64acd1.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f12b759831cae33c.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/avishai-cohen/">Avishai Cohen</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/guy-moskovich/">Guy Moskovich</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/roni-kaspi/">Roni Kaspi</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2022/12/03/concert/avishai-cohen-au-duc-des-lombards/cover_hu_ceae19abaa991576.webp 1x, /2022/12/03/concert/avishai-cohen-au-duc-des-lombards/cover_hu_5fa5fb6d698e1961.webp 1.39x" />
        

        
        
            <source type="image/jpeg" srcset="/2022/12/03/concert/avishai-cohen-au-duc-des-lombards/cover_hu_8f4a09ab0f6438e8.jpg 1x, /2022/12/03/concert/avishai-cohen-au-duc-des-lombards/cover_hu_6fe2dcbe5215944e.jpg 1.39x" />
        

        
        
        <img
            src="/2022/12/03/concert/avishai-cohen-au-duc-des-lombards/cover_hu_8f4a09ab0f6438e8.jpg"
             alt="Avishai Cohen" 
             title="Avishai Cohen" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>One command to win 1.2To of free space</title><link>https://blog.ztec.fr/en/2022/post/tune2fs-reserved-space/</link><pubDate>Fri, 25 Nov 2022 00:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/post/tune2fs-reserved-space/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_959910b5a6596073.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8444747b838a0140.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_959910b5a6596073.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h3 id="tldr">TL;DR:</h3>
<p>Ext4 partitions <a href="https://listman.redhat.com/archives/ext3-users/2009-January/msg00026.html">reserve 5%</a> of the volume to ensure enough free space is always available.
I have tuned my ext4 filesystem to reduce reserved space from 5% to 0.05% to maximise usage on a multi Terabytes volume.
For that I use the following command</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-0-1"><a class="lnlinks" href="#hl-0-1">1</a></span><span class="cl">sudo tune2fs -m 0.05 /dev/vda
</span></span></code></pre></div><h2 id="i-have-nas">I have NAS</h2>
<p>I have a personal NAS that I manage myself. No TrueNAS or anything pre-made.
I manage it myself on a computer. It&rsquo;s a Debian based distribution (proxmox to be exact)
with hardware RAID drives attached.</p>
<p>I have a big <a href="https://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29">LVM</a> volume with an ext4 partition where I put all my files inside. I have this exact volume for 3-4 years now.
It grew whenever I add drives to it. From few TeraBytes it is 24To large now.</p>
<p>I have a monitoring in place to follow its usage. And you guessed it, empty drive space does stay empty very long.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/tune2fs-espace-reserve/img/fullCargoGraph.png"
            target="_blank"
    >
        <img
                src="/2022/post/tune2fs-espace-reserve/img/fullCargoGraph.png"
                 alt="A gauge showing that the cargo volume is full red at 97.2%" 
                 title="Cargo is full" 
        />
    </a>
     <figcaption>Cargo is full</figcaption> 
</figure>
<p>As I&rsquo;m not able to grow any <a href="https://sims.fandom.com/wiki/Money_tree">Simoleon Tree</a> at my place. I cannot add drive endlessly.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/tune2fs-espace-reserve/img/MoneyTree.png"
            target="_blank"
    >
        <img
                src="/2022/post/tune2fs-espace-reserve/img/MoneyTree.png"
                 alt="A Sims2 money tree" 
                 title="Sims 2 money tree" 
        />
    </a>
     <figcaption>Sims 2 money tree</figcaption> 
</figure>
<p>I perform some cleaning on a regular basis to try to keep the used space under control. I mostly delete anything not relevant anymore.
From Movies files to project dataset I abandoned I can sometimes free multiple Terabytes of data.</p>
<h2 id="cleaning-day">Cleaning day</h2>
<p>Today was cleaning day. After doing the usual stuff, I go on the recycle bin to permanently delete some dangling files.
I do a <code>df</code> on the server to check free space after that and find odd values.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/tune2fs-espace-reserve/img/dfBefore.png"
            target="_blank"
    >
        <img
                src="/2022/post/tune2fs-espace-reserve/img/dfBefore.png"
                 alt="Results of the `df` command showing size=24T, used=20T, Available=2.4T use=90%" 
                 title="df before" 
        />
    </a>
     <figcaption>df before</figcaption> 
</figure>
<h3 id="who-did-steal-my-12to-">Who did steal my 1.2To ?</h3>
<p>I check with a reliable calculator (my brain isn&rsquo;t) and yes: 24-20=4 not 2.4.
I know there is always some loss in filesystem to hold for maps, journals, or whatnot.
But 1.6To seems excessive.</p>
<p>After some <a href="https://www.linuxquestions.org/questions/linux-general-1/reserved-space-on-ext4-database-file-system-4175564363/">search</a> on the great library of Internet, I found that ext4 filesystem, by default, reserve a small portion of
any partition made to ensure there is always free space on a volume.</p>
<p>This seems at the utmost importance for system partitions because no space mean no shell.
Believe me, I&rsquo;m old enough to have worked on ancient system that did not have any protection in this regard,
and it was a real challenge to get a shell on those computers. (considering you do not have physical access to it, of course)</p>
<p>Another usage of this reserved space is to fight against <a href="https://en.wikipedia.org/wiki/Fragmentation_%28computing%29">fragmentation</a>.
As I&rsquo;m running on HardDrive and not SSD, Fragmentation is still a thing I need to consider.
My volume is for cold storage mostly. I have some hot files that change a lot,
but they represent a minimal amount of the total data on the drives. Fragmentation should be low.</p>
<h3 id="get-my-terabyte-back">Get my terabyte back</h3>
<p>As I don&rsquo;t have a real usage of this reserved space, It is safe for me to remove it or at least reduce it a lot.
So let&rsquo;s go.  Simply run the following command and done</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-1-1"><a class="lnlinks" href="#hl-1-1">1</a></span><span class="cl">sudo tune2fs -m 0.05 /dev/vda
</span></span></code></pre></div><p>And voilà !
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/tune2fs-espace-reserve/img/dfAfter.png"
            target="_blank"
    >
        <img
                src="/2022/post/tune2fs-espace-reserve/img/dfAfter.png"
                 alt="command `sudo tune2fs -m 0.05 /dev/vda` and results of the `df` command showing size=24T, used=20T, Available=3.6T use=86%" 
                 title="df after" 
        />
    </a>
     <figcaption>df after</figcaption> 
</figure>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/tune2fs-espace-reserve/img/notSoFullCargo.png"
            target="_blank"
    >
        <img
                src="/2022/post/tune2fs-espace-reserve/img/notSoFullCargo.png"
                 alt="A gauge showing that the cargo volume is not full anymore at 85.1%" 
                 title="Cargo is not full anymore" 
        />
    </a>
     <figcaption>Cargo is not full anymore</figcaption> 
</figure></p>
<h2 id="so-what-">So what ?</h2>
<p>I manage my NAS by hand, and learn with it. Today I learned. Goal achieved.</p>
<ul>
<li>Now there is safety to avoid being locked away from a servers (when you have credentials)</li>
<li>Ext4 reserve 5% of a volume and this is not really useful if the volume is not used as root, or fragmentation is not a concern.</li>
<li><a href="https://manpages.ubuntu.com/manpages/bionic/man8/e4defrag.8.html">e4defrag</a> exist and can be used to report on fragmentation and de-fragment a volume, but is really really really long.</li>
</ul>
<p>Thanks reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item><item><title>2022 though lenses</title><link>https://blog.ztec.fr/en/2022/post/2022-though-lenses/</link><pubDate>Thu, 17 Nov 2022 01:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/post/2022-though-lenses/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_159364e658fb973f.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_32114997ddd055ad.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_159364e658fb973f.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>I take a lot of picture, and 2022 does not make any exception. Most of them stay private, but I like sharing a few.
You can see them on this post, and on Flickr. I will post on social platforms the one I like the most.</p>
<p>There is no rules either regarding topics, groups or themes.
This page will be updated to include new pictures each time I feel it.</p>
<p>Le&rsquo;ts go</p>
<h2 id="plants">Plants</h2>
<p>I find it really hard to take pictures of plants that are relevant and pleasant to the eye.
Often, the light is hard to catch, and the dynamic make it hard to capture the scene, moreover when I only have my phone on me.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Duck%20hunt_hu_18b1823f085b091b.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Duck%20hunt_hu_d6cae092db75877b.webp"
                 alt="A duck hiding the foliage" 
                 title="[Duck hunt](https://www.flickr.com/photos/ztec/52505190808)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52505190808">Duck hunt</a></figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Greening_hu_268f507c850d7786.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Greening_hu_c74006f5dd75c383.webp"
                 alt="Some green plants round shaped like a pinecone" 
                 title="[Greening](https://www.flickr.com/photos/ztec/52505113115)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52505113115">Greening</a></figcaption> 
</figure>



















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/wall_hu_2a034d31b1f285e4.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/wall_hu_487aeb7c7778d158.webp"
                 alt="The sun shine through hanging brown/orange plants creating contrast between the dark core, and the light edges" 
                 title="[Wall](https://www.flickr.com/photos/ztec/52504636676)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52504636676">Wall</a></figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Orange_hu_2b34e45ac0c6505d.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Orange_hu_72a78a914dd4e675.webp"
                 alt="An orange flower in a closeup" 
                 title="[Orange](https://www.flickr.com/photos/ztec/52504746346)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52504746346">Orange</a></figcaption> 
</figure>

</div>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/inside_hu_7af813bb2fb628ae.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/inside_hu_84f02ffdabe06aa4.webp"
                 alt="A green plant shaped like small green tubes" 
                 title="[Inside](https://www.flickr.com/photos/ztec/52504907754)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52504907754">Inside</a></figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/half%20baked_hu_3ef08e50de387162.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/half%20baked_hu_2ab1ffc5310fd75f.webp"
                 alt="A sunflower with two part, one half fully developed and yellow, and another half still green" 
                 title="[Half baked](https://www.flickr.com/photos/ztec/52505190793)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52505190793">Half baked</a></figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Prison%20break_hu_86e13b169e136e39.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Prison%20break_hu_99b7701bfae011a4.webp"
                 alt="Lots of tulip on the right. They are all grouped together. One tulip is growing outside the group, alone. It&#39;s like it wish to escape others" 
                 title="[Prison break](https://www.flickr.com/photos/ztec/52504746326)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52504746326">Prison break</a></figcaption> 
</figure>

</div>
<h2 id="photos-de-musee">Photos de musee</h2>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/The%20mask_hu_cdfecf4b99a2759c.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/The%20mask_hu_387a26a22110aa10.webp"
                 alt="A green rock/Crystal that look like a face, reminding of the mask of the movie The mask" 
                 title="[The mask](https://www.flickr.com/photos/ztec/52504148297)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52504148297">The mask</a></figcaption> 
</figure>

</div>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Palette_hu_ccb9ce10d0d7c8a0.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Palette_hu_3313f886f40629.webp"
                 alt="Side of a museum with 4 floor visible. Color goes from dark orange at the bottom to magenta on top. Building style remind of old buildings in the virtoran age" 
                 title="[Palette](https://www.flickr.com/photos/ztec/52504148307)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52504148307">Palette</a></figcaption> 
</figure>

</div>
<h2 id="philharmonie-de-paris">Philharmonie de paris</h2>
<p>I really love this building. It always catches my eye. You can enjoy it by being close or far away. It&rsquo;s always a different expérience. Reflections always amaze me and I really like the way the tiles on the walls are shaped. It creates mouvements following curves, shaping the reflections in all directions.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Slide%201_hu_4221940750356c56.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Slide%201_hu_d1f31bf27c22a936.webp"
                 alt="Picture of the Philharmonie in Paris, a concert hall. Warm colors of the sun reflects on the cold mirror texture of the building walls. A man is standing and looking closely at one wall" 
                 title="[Side 1](https://www.flickr.com/photos/ztec/52504636736)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52504636736">Side 1</a></figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Migrating%20to%20slide%202_hu_49575c36619b2802.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Migrating%20to%20slide%202_hu_d00d57f5127f6c19.webp"
                 alt="Picture of the Philharmonie in Paris, a concert hall. Warm colours of the sun reflects on the cold mirror texture of the building walls. A man is in the middle walking towards the other side" 
                 title="[Side 2](https://www.flickr.com/photos/ztec/52504636781)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52504636781">Side 2</a></figcaption> 
</figure>

</div>
<h2 id="concerts">Concerts</h2>
<p>Often, Concerts pictures are awful. Not because the subject or composition is bad, but mostly because it needs good hardware to have decent results.
Sometimes, even if the file quality is far from perfect, results feel good anyway.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/A%20gauche%20de%20la%20regie_hu_ce68041131bf1f5f.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/A%20gauche%20de%20la%20regie_hu_34c1fdc53b3710e2.webp"
                 alt="A picture taken during a concert where the stage is visible in the middle. The eye is quickly directed towards the console in from. The title refers to the place where everyone direct friends to meet" 
                 title="[A gauche de la régie](https://www.flickr.com/photos/ztec/52504907724) (left to sound engineers)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52504907724">A gauche de la régie</a> (left to sound engineers)</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/The%20boat_hu_94c90d91ea10ca79.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/The%20boat_hu_7bd1822ac454849c.webp"
                 alt="Picture of balcony of a concert hall. It&#39;s modern and composed of parallel wooden planks. The picture is a crop of the real thing reminding of people on a boat" 
                 title="[The boat](https://www.flickr.com/photos/ztec/52505190848)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52505190848">The boat</a></figcaption> 
</figure>

</div>
<h2 id="divers">Divers</h2>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Bouboulette_hu_5ff3e9673e625d01.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Bouboulette_hu_f8d058bd5c583a65.webp"
                 alt="A close shot of a cat watching outside the window" 
                 title="[Bouboulette](https://www.flickr.com/photos/ztec/52505015984/in/dateposted/)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52505015984/in/dateposted/">Bouboulette</a></figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Isolation_hu_15015280655310c0.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Isolation_hu_d3df6e05572e5402.webp"
                 alt="Someone is sit in a char turning their back to us. Only shoes are visible" 
                 title="[Isolation](https://www.flickr.com/photos/ztec/52163301779/in/dateposted/)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52163301779/in/dateposted/">Isolation</a></figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Sunset_hu_5bd72f179820413f.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Sunset_hu_2385a24d2af12686.webp"
                 alt="The neon light logo of the Sunset Jazz club" 
                 title="[Sunset](https://www.flickr.com/photos/ztec/52166383763)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52166383763">Sunset</a></figcaption> 
</figure>



















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/French%20XP_hu_be013b19f4e54f11.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/French%20XP_hu_f00d129943734143.webp"
                 alt="Like the famous Windows XP wallpaper, but in France" 
                 title="[French XP](https://www.flickr.com/photos/ztec/52232455659)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52232455659">French XP</a></figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Qui%20vas%20la_hu_68e7a0b8b3722da.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Qui%20vas%20la_hu_49a8379b19e6acbc.webp"
                 alt="A CCTV camera in a subway. it is pointing right. It is attached to a rode coming from the top of the frame, like it comes from nowhere, or is it ?" 
                 title="[Qui vas la](https://www.flickr.com/photos/ztec/52505015959)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52505015959">Qui vas la</a></figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Selfi_hu_f57f4bb31f8291c3.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Selfi_hu_97c21174bd04ad51.webp"
                 alt="A picture of myself reflecting on a window glass. We can see the eiffel tower in the background" 
                 title="Selfi" 
        />
    </a>
     <figcaption>Selfi</figcaption> 
</figure>


</div>
<h2 id="paris-is-beautiful"><a href="https://blog.ztec.fr/en/2022/post/paris-is-beautiful/">Paris is beautiful</a></h2>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/2022-derriere-l-objectif/photos/Shoot%20me_hu_ffdfa05e46cacdd4.webp"
            target="_blank"
    >
        <img
                src="/2022/post/2022-derriere-l-objectif/photos/Shoot%20me_hu_645cbb04da7e4c2.webp"
                 alt="Picture of a Paris&#39;s canal. A girl is visible on the side, taking the same picture" 
                 title="[Shoot me](https://www.flickr.com/photos/ztec/52213604967)" 
        />
    </a>
     <figcaption><a href="https://www.flickr.com/photos/ztec/52213604967">Shoot me</a></figcaption> 
</figure>

</div>
<p>I made dedicated an article on some pictures of Paris.
You can follow <a href="https://blog.ztec.fr/en/2022/post/paris-is-beautiful/">this link</a> to watch more Pictures of Paris I took this year (2022).</p>
<p>Thanks <strike>reading me</strike> watching my pictures,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
<hr>
<p>This page may be updated with new pictures. To get the news, follow me on <a href="https://twitter.com/ztec6/">twitter.com</a> or <a href="https://mamot.fr/@ztec">mamot.fr</a></p>
]]></description></item><item><title>Rag'n'Bone man at Salle Pleyel</title><link>https://blog.ztec.fr/en/2022/11/08/concert/ragnbone-man-at-salle-pleyel/</link><pubDate>Tue, 08 Nov 2022 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2022/11/08/concert/ragnbone-man-at-salle-pleyel/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_5a4704aab4b18271.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_605db59c2adce7ad.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_5a4704aab4b18271.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="ragnbone-man">Rag&rsquo;n&rsquo;Bone man</h2>
<ul>
<li>


<a href="/en/artists/ragnbone-man/">Rag&#39;n&#39;Bone man</a></li>
</ul>
<h2 id="mathilda-homer">Mathilda Homer</h2>
<ul>
<li>


<a href="/en/artists/mathilda-homer/">Mathilda Homer</a> - opening act</li>
</ul>





















    
    

    
    

    
    

    
    








    <picture class="inner-cover type-full">
        
        

        
        

        
        
        <img
            src="/2022/11/08/concert/ragnbone-man-%C3%A0-la-salle-pleyel/cover_hu_8b00880666069e8d.jpg"
             alt="Rag&#39;n&#39;Bone man" 
             title="Rag&#39;n&#39;Bone man" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Nothing Ear (1), the Wireless Earbuds to Hear Nothing!</title><link>https://blog.ztec.fr/en/2022/post/nothing-ear-one-the-wireless-earbuds-to-hear-nothing/</link><pubDate>Fri, 28 Oct 2022 18:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/post/nothing-ear-one-the-wireless-earbuds-to-hear-nothing/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d01b401d4e1b4673.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_c787235d7dcf3dfa.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d01b401d4e1b4673.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Spoiler: I regret buying them. Its trash.
It had one job, and failed at it. No good points can make it ok as long as no music reach my ears.</p>





    





    
        
    




    
        
    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/nothing-ear-one-sans-fil-sans-son/pic-nothing-ear-1_hu_1ee4349294c69a8f.jpg"
            target="_blank"
    >
        <img
                src="/2022/post/nothing-ear-one-sans-fil-sans-son/pic-nothing-ear-1_hu_7ef9ea21c01f88a9.jpg"
                 alt="Nothing ear (1)" 
                 title="Nothing ear (1)" 
        />
    </a>
     <figcaption>Nothing ear (1)</figcaption> 
</figure>
<h2 id="why-nothing-ear-1">Why Nothing ear (1)</h2>
<p>First, let me explain how I have chosen them and why.
I&rsquo;m not a wireless guy usually. I still use wired headphones and earbuds, and will probably continue for a long time.
With covid, and mask, it was cumbersome to put on and off earbuds because of the mask.
It&rsquo;s not an existential issue, I give you that, but it was enough for me to look for wireless earbuds anyway.</p>
<h3 id="my-key-buying-points">My key buying points</h3>
<ul>
<li>Small, not creating a big visual ball in ears (Unlike some sony&rsquo;s propositions)</li>
<li>In-ear design as I always preferred this for noise isolation and quality (to lower the volume)</li>
<li>Does not require to sel organs to buy it</li>
<li>Ultimately, comfortable enough but this is really hard to consider without testing them myself beforehand.</li>
</ul>
<p>After some searches I ended up with few candidates with two main eligible categories</p>
<ul>
<li>Good but not so expensive earbuds (around 100€)</li>
<li>Really cheap (between 9€ and 40€ shipping included )</li>
</ul>
<p>I&rsquo;m able to afford ~100€ for this and I think that the really cheap ones might be garbage just because of the price.</p>
<p>More expensive felt too much for the requirements and usage I expect to have.</p>
<p>The final choice was the Nothing ear (1) because of the form factor, size, and quality reviews.
Other candidates were also good options, and all of them was meeting requirements but ultimately
the price convinced me, as the Nothing ear (1) were between 10€ and 30€ cheaper for the same features as others.</p>
<h2 id="first-experience-promising">First experience: promising</h2>
<p>Upon reception, I tested them for few days, mostly indoors at home. Quality was good enough
(it was not my main concern anyway). Range was almost covering my 40m² flat, with the phone in center.
Noise cancellation was good, especially covering hoover&rsquo;s noise.
At this point they were the perfect cleaning accessory to listen to music or podcast when doing chores.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/nothing-ear-one-sans-fil-sans-son/freddieHoovering.gif"
            target="_blank"
    >
        <img
                src="/2022/post/nothing-ear-one-sans-fil-sans-son/freddieHoovering.gif"
                 alt="Freddie Mercury vacuuming in  [Queen - I want to break free](https://www.youtube.com/watch?v=f4Mc-NYPHaQ)" 
                 title="Queen - I want to break free" 
        />
    </a>
     <figcaption>Queen - I want to break free</figcaption> 
</figure>
<h2 id="real-usage-they-are-useless">Real usage: they are useless</h2>
<p>At some point, I had to get outside, to go to work or just wandering around.
This was the real test because it is outside I intended to use them.</p>
<p>To put it simply</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/nothing-ear-one-sans-fil-sans-son/cat.gif"
            target="_blank"
    >
        <img
                src="/2022/post/nothing-ear-one-sans-fil-sans-son/cat.gif"
                 alt="A cat tries to jump but fail miserably" 
                 title="Cat jumping outside" 
        />
    </a>
     <figcaption>Cat jumping outside</figcaption> 
</figure>
<p>As soon as I was outside, music started to constantly cut, degrade, cut and degrade again.</p>
<p>By &ldquo;cut&rdquo; I mean, no sound for 2-3 seconds.
By degrading I mean, &ldquo;mono phone quality with real bad compression artefacts&rdquo; sound for 10-20s.</p>
<p>For you to fully understand what I just said, I made a quick simulation of what it is to experience those earbuds.
You have to listen until the end to really
understand. Micro drop are also a thing in real life.</p>


    



<div class="media-player">
    <audio controls   >
        <source src="https://blog.ztec.fr/2022/post/nothing-ear-one-sans-fil-sans-son/simulation-listening-to-nothing-ear-one.mp3" type="audio/mpeg">
    </audio>
    
    <p>
        <a href="
        https://blog.ztec.fr/2022/post/nothing-ear-one-sans-fil-sans-son/simulation-listening-to-nothing-ear-one.mp3
        " target="_blank"> Example file that simulate low quality audio </a>
    </p>
    
</div>

<p>The only ways I found to avoid those issues was  keeping my phone into my hand, in front of me.
This is unacceptable for me as the place of my smartphone is in my pocket, not around my neck.
The distance between my pocket and my ears is roughly 1m !  I even tested with my phone in my interior jacket pocket,
same behavior.</p>
<p>To put it simply, I cannot use those earbuds at all outside, moreover if I need my hand for something else.</p>
<p>I tested all the different latency options. No change.
I tested on a one plus 5, one plus 7t Pro, and finally on my Sony Xperia one mark IV, same behaviour.
I consider all those phones either top of the line or excellent and don&rsquo;t consider them the source of the issues.</p>
<h2 id="unfinished-product">Unfinished product</h2>
<p>As useless as it is, it&rsquo;s not the end. I don&rsquo;t know the conditions in which the product was designed and built,
but it was probably terrible. There is many little things that shows that nobody involved in the making of this thing
cared at all about its usage, or even used it.</p>
<p>It does not memorise parameter like noise cancellation level. I have to re-enable it each time I connect the ear buds.
The nothing ear (1) App still display the option as enabled, but I have to manually disable it and re-enable it to make it work again.
To make this worst, half the time, only one activate the noise cancellation. I don&rsquo;t know if you tried this before,
but it is really unconformable to have only one ear with such option activated. With or without music. To fix that
I always have to put them in the box again and redo the whole process hoping it works this time.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/nothing-ear-one-sans-fil-sans-son/turn-it-off-and-on-again.gif"
            target="_blank"
    >
        <img
                src="/2022/post/nothing-ear-one-sans-fil-sans-son/turn-it-off-and-on-again.gif"
                 alt="From IT-Crowd, a guy on the phone doing helpdesk, asking Have you tried turning it off and on again ?" 
                 title="Did you tried turning it off and on again ?" 
        />
    </a>
     <figcaption>Did you tried turning it off and on again ?</figcaption> 
</figure>
<p>Some gestures and touch actions cannot be disabled at all. Not a problem if they were not getting in the way.
I personally disable the &ldquo;Pause when removing earbud&rdquo; feature, mostly because it never worked for me.
Consequently, when I take them out I always accidentally activate touch actions. Annoying when removing one to speak to someone,
I always end up with a pause or worse, a skip on my music app.</p>
<p>Transparent mode is a joke to. Really, don&rsquo;t bother at this point. It is intended to hear what&rsquo;s going on outside mixed with the music.
In reality, music quality become bad and I don&rsquo;t hear much of the outside things or people speaking (Even if it&rsquo;s better than other modes).</p>
<p>I simply never successfully used the touch and hold feature to change the noise cancellation mode.<br>
Maybe I do not know how to use my fingers, but it never worked when needed. I could only make it work when I did not want to,
all the time I really needed them it ended up skipping or pausing the music. (one of the un-disablable touch actions).
I finally simply disabled this feature at all.<br>
That would not be an issue if buds simply kept memory of the noise cancellation options they had last time I used them.</p>
<p>The sound quality is good, when on the highest level. As it goes to garbage mode pretty all the time,
It&rsquo;s better to make a call and listen to the crappy waiting music than listen to those ear buds.</p>
<p>Often, one of the buds does not connect properly. It just does not connect at all.
Putting them in the case again and retrying the connection always solved the issue. Not a big deal, just annoying because frequent.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/nothing-ear-one-sans-fil-sans-son/turn-it-off-and-on-again.gif"
            target="_blank"
    >
        <img
                src="/2022/post/nothing-ear-one-sans-fil-sans-son/turn-it-off-and-on-again.gif"
                 alt="From IT-Crowd, a guy on the phone doing helpdesk, asking Have you tried turning it off and on again ?" 
                 title="Did you tried turning it off and on again ?" 
        />
    </a>
     <figcaption>Did you tried turning it off and on again ?</figcaption> 
</figure>
<p>All those details clearly show this product was finished in soo bad conditions that I do not wish to know how badly people were treated.</p>
<h2 id="the-good-things">The good things</h2>
<p>All the reviews online already point to the good things, nothing new here, but for fairness, I wish to list some of them.</p>
<p>When you have the chance to have the highest quality codec working, sound quality is good.
I don&rsquo;t expect more for a nomad listening device anyway.
I personally add an <a href="https://en.wikipedia.org/wiki/Equalization_%28audio%29">EQ</a> to lower the basses, but it&rsquo;s my preference.</p>
<p>The case is small enough for me and do its job.
The red and white color do not help me as I&rsquo;m always putting the wrong one first (You know, like you have to test the 3 side of a USB plug).
You may have a better brain than me tho.</p>
<p>The autonomy is plenty enough for me. Only had them reach the end once in all the time I had them. It was a long cleaning day!</p>
<p>The low latency mode still has a noticeable lag, but it&rsquo;s enough when you watch a movie or a tv-show for me.</p>
<p>And &hellip;, that&rsquo;s all. Nothing good bring the nothing ear (1) to the level of any simply functioning earbuds, unfortunately.</p>
<h2 id="conclusion-i-regret-buying-them">Conclusion: I regret buying them</h2>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/nothing-ear-one-sans-fil-sans-son/regrets.gif"
            target="_blank"
    >
        <img
                src="/2022/post/nothing-ear-one-sans-fil-sans-son/regrets.gif"
                 alt="Droopy lying on  his dog&#39;s house under the rain" 
                 title="REGRETS" 
        />
    </a>
     <figcaption>REGRETS</figcaption> 
</figure>
<p>It&rsquo;s my first time with wireless earbuds. It&rsquo;s bad. The product quality is bad, and the only feature required
to be expected to works by this product is not … working at all.
By itself, this is a big disappointment, and I really feel I just lost 100€</p>
<p>All the details of badly implemented stuff, and broken feature are soo many clues over the conditions this product was made.
The nothing ear (1) is unfinished, release in an alpha state, even 6-8 month after I bought them
(firmware and app updated the latest available in October 2022).</p>
<p>To conclude, don&rsquo;t bother buying the nothing ear (1).
I will personally boycott Nothing for all their futur product, because there is too much red-flags here to gamble again
on another of their product.</p>
<p>I will get back to my wired earbuds I use for more than 20 years now, that cost 10€ and have an ok sound that just works.</p>
<p>Nothing ear (1), the earbuds to hear nothing!</p>
<p>Thanks reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
<p>ps: This is my experience and thoughts, Your mileage may vary and if you find yourself enjoying your Nothing ear (1),
please continue, nothing wrong with that. Moreover, there is still a chance my earbuds were defective, but I&rsquo;m not convinced of that.</p>





    





    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/nothing-ear-one-sans-fil-sans-son/nothing.gif"
            target="_blank"
    >
        <img
                src="/2022/post/nothing-ear-one-sans-fil-sans-son/nothing.gif"
                 alt="Nothing" 
                 title="Nothing" 
        />
    </a>
     <figcaption>Nothing</figcaption> 
</figure>
]]></description></item><item><title>Go Library to Parse EDF Teleinfo Data</title><link>https://blog.ztec.fr/en/2022/post/go_edf_teleinfo_release/</link><pubDate>Wed, 26 Oct 2022 19:09:19 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/post/go_edf_teleinfo_release/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8087e900ea6e5f44.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_e57bd54f963532ae.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8087e900ea6e5f44.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="tldr">TL;DR:</h2>
<p>I just released a library to read and parse data from french electronic energy meters (linky or older models).</p>
<p><a href="https://git2.riper.fr/ztec/go_edf_teleinfo">https://git2.riper.fr/ztec/go_edf_teleinfo</a> also on <a href="https://github.com/ztec/go_edf_teleinfo">github</a></p>
<h2 id="once-upon-a-time">Once upon a time</h2>
<p>Since 2018, I have a raspberry-pi hanging near my <a href="https://en.wikipedia.org/wiki/%C3%89lectricit%C3%A9_de_France">EDF</a> energy meter.
Following some tutorials back then, I have connected them to follow my energy consumption in real time.</p>
<p>Without going into the details, EDF electronic meter (even before the ugly linky was imposed) have 3 connector on the right lower hand side.
Two of them allow to receive constant data about the meter and the instantaneous state such as power consumption.
I won&rsquo;t detail how I did it because there is a lot of better content that go in details online. Just do some
duckduckgo search with &ldquo;EDF, teleinfo, raspberry-pi&rdquo; for example.</p>


<div class="photo-gallery ">
    





    














<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/recevoir_analyser_edf_teleinfo_linky/linky_hu_14d1e2583bb73878.webp"
            target="_blank"
    >
        <img
                src="/2022/post/recevoir_analyser_edf_teleinfo_linky/linky_hu_540ede11fce5d75f.webp"
                 alt="Linky with raspberry-pi on the side" 
                 title="Linky with raspberry-pi on the side" 
        />
    </a>
     <figcaption>Linky with raspberry-pi on the side</figcaption> 
</figure>





    














<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/recevoir_analyser_edf_teleinfo_linky/connection_hu_9fbcbaa6a0b2c1ca.webp"
            target="_blank"
    >
        <img
                src="/2022/post/recevoir_analyser_edf_teleinfo_linky/connection_hu_383da7bb00354bb7.webp"
                 alt="Linky connection" 
                 title="Linky connection" 
        />
    </a>
     <figcaption>Linky connection</figcaption> 
</figure>

</div>
<p>Unfortunately, I broke all my data platform end of 2019. No mor history (visage triste). However, I never removed the
raspberry-pi. So, it is still there, hanging and connected to the meter, powered down.</p>
<p>Meanwhilem <a href="https://fr.wikipedia.org/wiki/Enedis">ENEDIS</a> the French electrical grid operator, changed my meter by one of the
new Linky. The technician that installed was a bit surprised at first to see two wire connected to the meter like that.
After some explanation he understood, and even re-installed them carefully on the new meter.
After that, the raspberry-pi stayed there, connected, but off.</p>
<p>With recent european electricity price &ldquo;changes&rdquo;, I was curious again to see my electrical trend (Visage innocent)
At this point, I don&rsquo;t even know if the new meter have a working Téléinfo. I don&rsquo;t know either if my code still works.
Speaking of code… (tête en pleine réflexion)</p>
<p>I search in my old backups (thanks backups (visage heureux). You can read more about them on <a href="https://blog.ztec.fr/en/2021/post/backup-with-borg/">Borg backup</a>)
I&rsquo;m lucky and find my old code. I put it in a repository, add some debug lines, compile and test int on the raspberry-pi I switch on again for the ocasion.</p>
<p>It works! Nothing to update, re-write. It worked on the first try. I now have logs like this:</p>
<pre tabindex="0"><code>Oct 26 19:27:31 compteur plumbus[3960]: time=&#34;2022-10-26T19:27:31+02:00&#34; level=info msg=&#34;EDF PAYLOAD&#34; HCHC=5605491 HCHP=12906199 HHPHC=A IINST=3 IMAX=90 ISOUSC=30 OPTARIF=HC.. PAPP=750 PTEC=HP..
Oct 26 19:27:32 compteur plumbus[3960]: time=&#34;2022-10-26T19:27:32+02:00&#34; level=info msg=&#34;EDF PAYLOAD&#34; HCHC=5605491 HCHP=12906199 HHPHC=A IINST=3 IMAX=90 ISOUSC=30 OPTARIF=HC.. PAPP=760 PTEC=HP..
Oct 26 19:27:34 compteur plumbus[3960]: time=&#34;2022-10-26T19:27:34+02:00&#34; level=info msg=&#34;EDF PAYLOAD&#34; HCHC=5605491 HCHP=12906200 HHPHC=A IINST=3 IMAX=90 ISOUSC=30 OPTARIF=HC.. PAPP=770 PTEC=HP..
Oct 26 19:27:35 compteur plumbus[3960]: time=&#34;2022-10-26T19:27:35+02:00&#34; level=info msg=&#34;EDF PAYLOAD&#34; HCHC=5605491 HCHP=12906200 HHPHC=A IINST=3 IMAX=90 ISOUSC=30 OPTARIF=HC.. PAPP=800 PTEC=HP..
Oct 26 19:27:36 compteur plumbus[3960]: time=&#34;2022-10-26T19:27:36+02:00&#34; level=info msg=&#34;EDF PAYLOAD&#34; HCHC=5605491 HCHP=12906200 HHPHC=A IINST=3 IMAX=90 ISOUSC=30 OPTARIF=HC.. PAPP=790 PTEC=HP..
</code></pre><p>I put all of that in my new data hoarding platform, and here me again with nerdy graphs.</p>
















<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/recevoir_analyser_edf_teleinfo_linky/Graph.png"
            target="_blank"
    >
        <img
                src="/2022/post/recevoir_analyser_edf_teleinfo_linky/Graph.png"
                 alt="Dashboard following consumption of electricity" 
                 title="EDF dasbhoard" 
        />
    </a>
     <figcaption>EDF dasbhoard</figcaption> 
</figure>
<p>You can now make fun of me and my outrageous energy consumption. It&rsquo;s not pretty I know. I will talk about that maybe one day.</p>
<h2 id="go-library">Go library</h2>
<p>So, why do I invite you in my life like that ? I decided to publish the code that works and that
I <strike>stole I don't remember where</strike> did years ago.
Maybe you to build a personal home automation &ldquo;platform&rdquo; using go as your main language. With this
library, you will have less to write I hope.</p>
<p><a href="https://git2.riper.fr/ztec/go_edf_teleinfo">https://git2.riper.fr/ztec/go_edf_teleinfo</a> also on <a href="https://github.com/ztec/go_edf_teleinfo">github</a></p>
<p>I won&rsquo;t lie to you. It is not my best code of art. First because it&rsquo;s from 2018, when I started with go. Then, because I
did nothing to improve it. I just publish it as is, with no guaranties. Not even Tests !!!</p>
<p>If future me&rsquo;s <a href="https://waitbutwhy.com/2013/10/why-procrastinators-procrastinate.html">Panic monster</a> wake up some day,
maybe some tests will appear, and the ENEDIS specification coverage could be increased.
Good luck!</p>
<h3 id="ça-fé-quoi--what-does-it-do-">Ça fé quoi ? (what does it do ?)</h3>
<p>The library has 3 things:</p>
<ul>
<li>A mean to identify the beginning and end of teleinfo data</li>
<li>A mean to parse teleinfo data and validate it thanks to checksums included</li>
<li>A simple struct to hold all the resulting data, that is auto-completion friendly for you loved IDE</li>
</ul>
<p>More information on the <a href="https://git2.riper.fr/ztec/go_edf_teleinfo/src/branch/main/README.md">readme.md</a>.</p>
<h3 id="what-does-it-need-">What does it need ?</h3>
<p>Basically, you need to get the teleinfo data sent by the EDF meter.
The simplest way, is ti use the raspberry-pi <a href="https://fr.wikipedia.org/wiki/UART">UART</a>, configure it with the proper
parameters then open and read the interface in you program.</p>
<pre tabindex="0"><code>/!\ WARNING /!\ /!\ WARNING /!\ /!\ WARNING /!\ /!\ WARNING /!\ 

Do not connect the raspberry-pi to the metter directly!
Please check onlines tutorials based on optocoupler, 
or use secial purpose equipment such as the one you can find for 15e

/!\ WARNING /!\ /!\ WARNING /!\ /!\ WARNING /!\ /!\ WARNING /!\ 
</code></pre><p>Finally, speaking go, it looks like this:</p>
<p>Extracted from <a href="https://git2.riper.fr/ztec/go_edf_teleinfo/src/branch/main/README.md">Readme.md</a></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-2-1"><a class="lnlinks" href="#hl-2-1"> 1</a></span><span class="cl"><span class="nx">fi</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">os</span><span class="p">.</span><span class="nf">Open</span><span class="p">(</span><span class="s">&#34;/dev/ttyAMA0&#34;</span><span class="p">)</span><span class="w"> </span><span class="c1">// Open the interface. It must be already configured with correct parameters</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-2"><a class="lnlinks" href="#hl-2-2"> 2</a></span><span class="cl"><span class="w"></span><span class="nx">scanner</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">bufio</span><span class="p">.</span><span class="nf">NewScanner</span><span class="p">(</span><span class="nx">fi</span><span class="p">)</span><span class="w"> </span><span class="c1">// Creating a scanner reading incoming data from interface</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-3"><a class="lnlinks" href="#hl-2-3"> 3</a></span><span class="cl"><span class="w"></span><span class="nx">scanner</span><span class="p">.</span><span class="nf">Split</span><span class="p">(</span><span class="nx">go_edf_teleinfo</span><span class="p">.</span><span class="nx">ScannerSplitter</span><span class="p">)</span><span class="w"> </span><span class="c1">// Adding a &#34;content splitter&#34; to identify each teleinfo messages</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-4"><a class="lnlinks" href="#hl-2-4"> 4</a></span><span class="cl"><span class="w"></span><span class="k">for</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-5"><a class="lnlinks" href="#hl-2-5"> 5</a></span><span class="cl"><span class="w">    </span><span class="k">for</span><span class="w"> </span><span class="nx">scanner</span><span class="p">.</span><span class="nf">Scan</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-6"><a class="lnlinks" href="#hl-2-6"> 6</a></span><span class="cl"><span class="w">        </span><span class="nx">teleinfo</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">go_edf_teleinfo</span><span class="p">.</span><span class="nf">PayloadToTeleinfo</span><span class="p">(</span><span class="nx">scanner</span><span class="p">.</span><span class="nf">Bytes</span><span class="p">())</span><span class="w"> </span><span class="c1">// Reading the latest packet  </span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-7"><a class="lnlinks" href="#hl-2-7"> 7</a></span><span class="cl"><span class="w">        </span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-8"><a class="lnlinks" href="#hl-2-8"> 8</a></span><span class="cl"><span class="w">            </span><span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">&#34;ERROR %s. %#v\n&#34;</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="p">,</span><span class="w"> </span><span class="nx">teleinfo</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-9"><a class="lnlinks" href="#hl-2-9"> 9</a></span><span class="cl"><span class="w">            </span><span class="k">continue</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-10"><a class="lnlinks" href="#hl-2-10">10</a></span><span class="cl"><span class="w">        </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-11"><a class="lnlinks" href="#hl-2-11">11</a></span><span class="cl"><span class="w">        </span><span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">&#34;EDF TELEINFO PAYLOAD %#v\n&#34;</span><span class="p">,</span><span class="w"> </span><span class="nx">teleinfo</span><span class="p">)</span><span class="w"> </span><span class="c1">// You can now use this data as you wish</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-12"><a class="lnlinks" href="#hl-2-12">12</a></span><span class="cl"><span class="w">    </span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-2-13"><a class="lnlinks" href="#hl-2-13">13</a></span><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
</span></span></span></code></pre></div><p>On my side, data are sent in a prometheus collector. I configured the prometheus server to scrap metrics every 5 seconds</p>
<p>That look like this</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="ln" id="hl-3-1"><a class="lnlinks" href="#hl-3-1"> 1</a></span><span class="cl"><span class="nx">teleinfo</span><span class="p">,</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">go_edf_teleinfo</span><span class="p">.</span><span class="nf">PayloadToTeleinfo</span><span class="p">(</span><span class="nx">scanner</span><span class="p">.</span><span class="nf">Bytes</span><span class="p">())</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-2"><a class="lnlinks" href="#hl-3-2"> 2</a></span><span class="cl"><span class="w"></span><span class="k">if</span><span class="w"> </span><span class="nx">err</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">nil</span><span class="w"> </span><span class="p">{</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-3"><a class="lnlinks" href="#hl-3-3"> 3</a></span><span class="cl"><span class="w">    </span><span class="nx">services</span><span class="p">.</span><span class="nf">GetLogger</span><span class="p">().</span><span class="nf">WithError</span><span class="p">(</span><span class="nx">err</span><span class="p">).</span><span class="nf">Error</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-4"><a class="lnlinks" href="#hl-3-4"> 4</a></span><span class="cl"><span class="w">    </span><span class="k">continue</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-5"><a class="lnlinks" href="#hl-3-5"> 5</a></span><span class="cl"><span class="w"></span><span class="p">}</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-6"><a class="lnlinks" href="#hl-3-6"> 6</a></span><span class="cl"><span class="w"></span><span class="nx">edfPAPP</span><span class="p">.</span><span class="nf">Set</span><span class="p">(</span><span class="nb">float64</span><span class="p">(</span><span class="nx">teleinfo</span><span class="p">.</span><span class="nx">PAPP</span><span class="p">))</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-7"><a class="lnlinks" href="#hl-3-7"> 7</a></span><span class="cl"><span class="w"></span><span class="nx">edfPAPPHistogram</span><span class="p">.</span><span class="nf">Observe</span><span class="p">(</span><span class="nb">float64</span><span class="p">(</span><span class="nx">teleinfo</span><span class="p">.</span><span class="nx">PAPP</span><span class="p">))</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-8"><a class="lnlinks" href="#hl-3-8"> 8</a></span><span class="cl"><span class="w"></span><span class="nx">edfIINST</span><span class="p">.</span><span class="nf">Set</span><span class="p">(</span><span class="nb">float64</span><span class="p">(</span><span class="nx">teleinfo</span><span class="p">.</span><span class="nx">IINST</span><span class="p">))</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-9"><a class="lnlinks" href="#hl-3-9"> 9</a></span><span class="cl"><span class="w"></span><span class="nx">edfIINSTHistogram</span><span class="p">.</span><span class="nf">Observe</span><span class="p">(</span><span class="nb">float64</span><span class="p">(</span><span class="nx">teleinfo</span><span class="p">.</span><span class="nx">IINST</span><span class="p">))</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-10"><a class="lnlinks" href="#hl-3-10">10</a></span><span class="cl"><span class="w"></span><span class="nx">edfHCHC</span><span class="p">.</span><span class="nf">Set</span><span class="p">(</span><span class="nb">float64</span><span class="p">(</span><span class="nx">teleinfo</span><span class="p">.</span><span class="nx">HCHC</span><span class="p">))</span><span class="w">
</span></span></span><span class="line"><span class="ln" id="hl-3-11"><a class="lnlinks" href="#hl-3-11">11</a></span><span class="cl"><span class="w"></span><span class="nx">edfHCHP</span><span class="p">.</span><span class="nf">Set</span><span class="p">(</span><span class="nb">float64</span><span class="p">(</span><span class="nx">teleinfo</span><span class="p">.</span><span class="nx">HCHP</span><span class="p">))</span><span class="w">
</span></span></span></code></pre></div><h3 id="contributions-">Contributions ?</h3>
<p>If you want to participate and <strike>fix my ugly code</strike> improve the library, please do. Open a PR on github and
you will receive tons of virtual hugs as thanks.</p>
<hr>
<p>If anyone on earth use this code one day, coool. If not, future me will anyway.
he will probably break everything again, and start from scratch again like today, in 5 years.
(I suspecte he does not learn from mistakes)</p>
<p>Thank you reading this,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item><item><title>Kafka: Must know</title><link>https://blog.ztec.fr/en/2022/post/kafka-must-know/</link><pubDate>Sat, 22 Oct 2022 16:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/post/kafka-must-know/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_fb69cb11b04ee002.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_2c12d8ac0c29c7f2.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_fb69cb11b04ee002.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        















<figure class="illustration dark-protection" >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/kafka-logo.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/kafka-logo.png"
                 alt="Logo of Apache Kafka" 
                 title="Apache Kafka" 
        />
    </a>
     <figcaption>Apache Kafka</figcaption> 
</figure>
<p>You are a developer, and you heard of Apache <a href="https://en.wikipedia.org/wiki/Franz_Kafka">Kafka</a>, the message broker, and you find it probably complex and difficult to work with.
Today, I will try to give you the basic knowledge about kafka you need to know to be able to work with it on a daily basis.</p>
<p>This page is what I compiled over the years as my simplified view of Kafka and I often use it to explain Kafka to my pairs.</p>
<p>This Post contains lots of content from already great articles written by others. If you want to refer to the original materials, you can skip
to the end and watch the &ldquo;source&rdquo; section. I&rsquo;ve put them all.</p>
<h2 id="basic-knowledge-about-kafka">Basic knowledge about Kafka</h2>
<p>In order to correctly use Kafka as a developer, you must know and understand a bit about how it works <strong>externally</strong> AND <strong>internally</strong>.</p>
<p>Remember that this post is simplified and skip some details to make things simpler.
If you have a doubt about a detail, you can check the official documentation which is clear and exhaustive: <a href="https://kafka.apache.org/documentation/">https://kafka.apache.org/documentation/</a></p>
<h2 id="what-is-kafka">What is Kafka?</h2>
<p>Kafka is a <a href="https://en.wikipedia.org/wiki/Message_broker">message broker</a>. Its goal is to receive messages and pass them as is to something else. Nothing more. It is also associated to &ldquo;stream&rdquo; processing as it can do it in real-time.</p>
<p>Kafka offers some guarantees about its job:</p>
<ul>
<li>A message received by Kafka will be delivered <strong>at least</strong> once to each consumer group.</li>
<li>A message can be stored for a custom duration independently of consumers</li>
<li>A message can be secured at reception with configured replicas</li>
<li>Kafka is designed to be clustered, this mean scalable</li>
</ul>
<h2 id="how-kafka-works">How Kafka works</h2>
<p>Kafka is designed to be clustered. This mean its internal construction was created for this purpose.</p>
<p>The next two section describe what I will describe in this article. I strongly suggest you to read them once, then read them again
after each section of this post. You should understand it completely once you&rsquo;ve read the whole post.</p>









    




    





<figure class="illustration dark-protection" >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/OverviewApacheKafka.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/OverviewApacheKafka.png"
                 alt="Overview of Apache Kafka with Topic, Partitions, Consumers, and Producers" 
                 title="Overview Apache Kafka" 
        />
    </a>
     <figcaption>Overview Apache Kafka</figcaption> 
</figure>
<h3 id="production-of-message">Production of message:</h3>
<p>The <strong>Producer</strong> sends <strong>messages</strong> into <strong>topic</strong> to one Kafka server of the cluster. Kafka find the <strong>partition</strong> associated to the message and sends it to the <strong>partition leader&rsquo;s</strong> Kafka server.
The partition leader can either:</p>
<ul>
<li>store locally the message, acknowledge back, then send the message to all replica servers</li>
<li>store locally the message, send it to all partition replica then wait for all replica servers to acknowledge then acknowledge back.</li>
</ul>
<h3 id="consumption-of-message">Consumption of message:</h3>
<p><strong>Consumer</strong> connects to one <strong>Kafka broker node</strong> and registers itself as consumer of a topic with a <strong>group.id</strong>.
The node return a list of nodes related to the topic the consumer is registered on.
Kafka will trigger a <strong>re-balance</strong> process and <strong>assign some partition to the consumer</strong>.
The consumer receives the list of partition assigned to it, and servers hosting them.
It connects to all and starts consuming message.</p>
<p>At some point, the consumer will record its advancement by <strong>committing the offset</strong> of the last processed message, for each partition assigned to it.</p>
<h2 id="lets-explain-all">Let&rsquo;s explain all</h2>
<h3 id="broker">Broker</h3>
<p>A broker as a single node/server in the Kafka cluster. Broker is the word used to name nodes, nothing more.</p>
<h3 id="producer">Producer</h3>
<p>A producer &ldquo;produces&rdquo; messages and sends it to the Kafka cluster. The producer has two responsibilities:</p>
<ul>
<li>Forge the payload, the content of the message</li>
<li>Define the topic where to send the message to</li>
<li>Optionally calculate the ID of the message according to specific rules. You should let kafka handle that for you.</li>
</ul>
<p>Producer will connect to a broker of the cluster and send the message. Producer can vary broker acknowledgement requirements as such:</p>
<ul>
<li>No acknowledgement (no response from server is expected). Fast but no guarantee</li>
<li>Leader acknowledgement (will wait for the partition leader to secure the message on its own local store) Still fast, but losing the partition leader = losing the data</li>
<li>Leader AND replica acknowledgement (will wait for the partition leader AND all replica to secure the message on their own local store). Slowest, but most secure</li>
</ul>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/producing-to-partition.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/producing-to-partition.png"
                 alt="Path taken by a message though topic &amp; partitions" 
                 title="Producing to partition" 
        />
    </a>
     <figcaption>Producing to partition</figcaption> 
</figure>
<h3 id="consumer">Consumer</h3>
<p>A Consumer will &ldquo;consume&rdquo; message that Kafka assigned to it.</p>
<p>A consumer starts by connecting to a broker node and will receive back metadata about the cluster topology in order to connect to other nodes if required.</p>
<p>A consumer has one property <strong>group.id</strong> and can have metadata such as <strong>client.id</strong> (like user-agent).</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/consumer-groups.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/consumer-groups.png"
                 alt="Connection schematic of Consumer groups to Partitions" 
                 title="Consumer group" 
        />
    </a>
     <figcaption>Consumer group</figcaption> 
</figure>
<h3 id="groupid">group.id</h3>
<p>The group.id is also called the <strong>consumer group</strong>.</p>
<p>Consumer with the same group.id will share message consumption. That mean that each partition of a topic will be assigned to one (and only one) consumer with the same group.id.</p>
<p>Consumer with different group.id will consume sames messages. That mean that you can have multiple consumers processing same messages at the same time. Each consumer&rsquo;s group will receive partition assignments.</p>
<h3 id="consumer-group">Consumer group</h3>
<p>All consumers having the same group.id</p>
<h3 id="re-balance">Re-balance</h3>
<p>When a partition leader unexpectedly die, the cluster will detect it and starts an election process to find a new leader.
This means that producer &amp; client will receive a <strong>LeaderNotAvailable</strong> message during the process and must handle this gracefully, meaning they must wait.</p>
<p>The election can take seconds to minutes to elect a new leader. (The delay is configured in kafka itself)</p>
<p>The process of stoping all consumer, and sometimes electing a new leader, then re-assigning partition ton consumers for them to resum their work, is called a <strong>rebalance</strong>.</p>
<p>The rebalance can happen in multiple situations, when</p>
<ul>
<li>a partition leader die or become unavailable. (All consumers registered on the topic associated to the partition, whatever the group.id, receive a stop, and must wait)</li>
<li>a node is added or removed to the cluster. (same as above)</li>
<li>a consumer with a group.id register itself to consume message. (All consumers registered on the topic associated to the partition, and <strong>same group.id</strong> receive a stop and must wait)</li>
<li>a consumer with a group.id leave or is considered dead. (same as above)</li>
</ul>
<p>The last two are important to consider. It imply that starting a new consumer on a topic with a group.id will stop the
consumption process at this moment, and elections must be doe before all consumers with the group.id can resume.</p>
<h3 id="message">Message</h3>
<p>A message in Kafka is composed of (among other things)</p>
<ul>
<li>id</li>
<li>payload</li>
</ul>
<p>Payload can be binary data or text. Message is agnostic of payload format. Payload can be small or big. The limit is manly
fixed by the size of your disks, network connections, CPU available, and consumption delay you want.</p>
<p>Id is optional from producer point of view. If not provided, it will be a derivative of the payload hash.</p>
<p>I strongly recommend to let Kafka generate it, moreover if your payload is rather small.
Generating it will have impact on how scalable your usage of Kafka will be. If you wish to go this road, you must read the official documentation about how kafka decide
where messages go into partions</p>
<h3 id="topic">Topic</h3>
<p>A topic in Kafka is a logical place where you send message. Topics are split in partition according to a configuration (per topic).</p>
<p>It is usual to hear, &ldquo;send those message to the playlist topic&rdquo; or &ldquo;Consume the topic playlist&rdquo;.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/log-anatomy.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/log-anatomy.png"
                 alt="Representation of how messages stored, in  order by Partitions" 
                 title="Log anatomy" 
        />
    </a>
     <figcaption>Log anatomy</figcaption> 
</figure>
<h3 id="partition">Partition</h3>
<p>Each topic is stored physically by partition. At minimum, a topic has 1 (one) partition, but can have much more.</p>
<p>When a message is received into a topic, a partition is selected and the message is stored inside. <strong>The message will never be in another partition.</strong>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/producing-to-second-partition.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/producing-to-second-partition.png"
                 alt="A producer sending a message to a partitions leader, showing replcias" 
                 title="Producing to second partition" 
        />
    </a>
     <figcaption>Producing to second partition</figcaption> 
</figure>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/producing-to-partition.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/producing-to-partition.png"
                 alt="A producer sending a message on one partitions, showing replcias" 
                 title="Producing to partition" 
        />
    </a>
     <figcaption>Producing to partition</figcaption> 
</figure></p>
<h3 id="partition-replica">Partition replica</h3>
<p>Each partition can be store in 1 (one) or more node for resilience.
That means that the partition content will be synced between all replicas
when a message is received. This is how Kafka can guarantee you one message is received and not lost in the way.
Multiple copies exist like a <a href="https://simple.wikipedia.org/wiki/RAID#RAID_1_.22mirroring.22">RAID 1</a></p>
<h3 id="partition-leader">Partition leader</h3>
<p>When having multiple partitions, a single node will be elected as Partition leader. This means that at a time, it is the only server to contact for consuming/write message from/to the specific partition.</p>
<p>Partition leader can change when some events occurred. For example when a node is added/removed, or when partition configuration is changed.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/partitions.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/partitions.png"
                 alt="Partitions with replicas and leader in different colors" 
                 title="Partitions" 
        />
    </a>
     <figcaption>Partitions</figcaption> 
</figure>
<h3 id="offset">Offset</h3>
<p>Each message in a partition has a &ldquo;number&rdquo; associated. Like &ldquo;this is the first message, this is the second message, the 3rd, the 4th etc&hellip;&rdquo;</p>
<p>Consumer will record process status on partition by committing offset, the number of the last message processed.
Each consumer&rsquo;s group.id will have its own offset. They all consume the same messages, but does not process them at
the same rate and need to record their progress independently.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/consumer-groups.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/consumer-groups.png"
                 alt="Connection schematic of Consumer groups to Partitions" 
                 title="consumer-groups.png" 
        />
    </a>
     <figcaption>consumer-groups.png</figcaption> 
</figure>
<p>The offset is a simple per-partition atomic counter. For example,</p>
<ul>
<li>message 1 : counter = 4</li>
<li>message 2 : counter = 5</li>
<li>message 4 : counter = 7</li>
<li>…</li>
</ul>
<p>By design, it has one implication: <strong>Consumer must process message in order.</strong> This is intended, as designed like they said.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/data-log.png"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/data-log.png"
                 alt="One datalog with two read offset at different places" 
                 title="Data log" 
        />
    </a>
     <figcaption>Data log</figcaption> 
</figure>
<p>Unlike other message broker (nsq, rabbitMQ), it is not possible to acknowledge a particular message.
This is fundamental to understand because it will have a huge impact on retry/error strategies you will have to implements.</p>
<h3 id="retention-duration">Retention duration</h3>
<p>Each partition will store messages for a given duration. This duration depend on needs and is configured on Kafka cluster.
It can be global but also specific to topics.</p>
<h3 id="what-about-zookeeper">What about Zookeeper?</h3>
<p>Zookeeper is the tool used by Kafka to maintain cluster coherence.
It is the single service that always knows the exact topology of the whole cluster.
For example, during election of leaders, Zookeeper is the tool actually doing the election because he knows the status of each broker and can decide which one is eligible.</p>
<p>Zookeeper is also a clustered program, but this is for another day.</p>
<h2 id="how-kafka-works-1">How Kafka works</h2>
<p>Now, let&rsquo;s get back to the beginning of the article.</p>
<h3 id="production-of-message-1">Production of message:</h3>
<p>The <strong>Producer</strong> sends <strong>messages</strong> into <strong>topic</strong> to one Kafka server of the cluster. Kafka find the <strong>partition</strong> associated to the message and sends it to the <strong>partition leader&rsquo;s</strong> Kafka server.
The partition leader can either:</p>
<ul>
<li>store locally the message, acknowledge back, then send the message to all replica servers</li>
<li>store locally the message, send it to all partition replica then wait for all replica servers to acknowledge then acknowledge back.</li>
</ul>
<h3 id="consumption-of-message-1">Consumption of message:</h3>
<p><strong>Consumer</strong> connects to one <strong>Kafka broker node</strong> and registers itself as consumer of a topic with a <strong>group.id</strong>.
The node return a list of nodes related to the topic the consumer is registered on.
Kafka will trigger a <strong>re-balance</strong> process and <strong>assign some partition to the consumer</strong>.
The consumer receives the list of partition assigned to it, and servers hosting them.
It connects to all and starts consuming message.</p>
<h2 id="conclusion--personal-notes">Conclusion &amp; Personal notes</h2>
<p>This page is not complete enough to understand all Apache Kafka aspect, and after some times you will probably have to
go deeper.
For that I suggest starting by the <a href="https://kafka.apache.org/documentation/">official documentation</a>, it is excellent.</p>
<p>Kafka is a wonder full tool to work with as long as you have excellent engineer to install and manage it.
I consider myself incapable of managing such complex software on a production environment.
But as a &ldquo;simple&rdquo; user, it&rsquo;s wonderfully and performance are astonishing.</p>
<p>I professionally work with it as a simple message broker (same as RabitMQ or ZeroMQ). That&rsquo;s why I totaly skiped
the streaming aspect of Kafka, or all the glorious things it can do in a &ldquo;Big data&rdquo; or <a href="https://martinfowler.com/eaaDev/EventSourcing.html">Event sourcing</a> context.</p>
<p>Thanks reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
<hr>
<h5 id="sources">Sources:</h5>
<ul>
<li><a href="https://sookocheff.com/post/kafka/kafka-in-a-nutshell/">https://sookocheff.com/post/kafka/kafka-in-a-nutshell/</a>
<ul>
<li>consumer-groups.png © Kevin Sookocheff</li>
<li>data-log.png © Kevin Sookocheff</li>
<li>log-anatomy.png © Kevin Sookocheff</li>
<li>partitions.png © Kevin Sookocheff</li>
<li>producing-to-partitions.png © Kevin Sookocheff</li>
<li>producing-to-second-partition.png © Kevin Sookocheff</li>
</ul>
</li>
<li><a href="https://cwiki.apache.org/confluence/display/KAFKA/A&#43;Guide&#43;To&#43;The&#43;Kafka&#43;Protocol">https://cwiki.apache.org/confluence/display/KAFKA/A+Guide+To+The+Kafka+Protocol</a></li>
<li><a href="https://Kafka.apache.org/0102/documentation.html">https://Kafka.apache.org/0102/documentation.html</a></li>
<li><a href="https://Kafka.apache.org/documentation/">https://Kafka.apache.org/documentation/</a></li>
<li><a href="https://en.wikipedia.org/wiki/Apache_Kafka">https://en.wikipedia.org/wiki/Apache_Kafka</a>
<ul>
<li>OverviewApacheKafka.png By Ch.ko123 - Own work, CC BY 4.0, <a href="https://commons.wikimedia.org/w/index.php?curid=59871096">https://commons.wikimedia.org/w/index.php?curid=59871096</a></li>
</ul>
</li>
<li><a href="https://cwiki.apache.org/confluence/display/KAFKA/FAQ">https://cwiki.apache.org/confluence/display/KAFKA/FAQ</a></li>
</ul>









    
        
    




    
        
    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2022/post/kafka-doit-savoir/img/KafkaMonument_hu_5a580cc1504ded66.jpg"
            target="_blank"
    >
        <img
                src="/2022/post/kafka-doit-savoir/img/KafkaMonument_hu_234eacf31b7fbd16.jpg"
                 alt="Monument of Franz Kafka in Prague" 
                 title="Kafka monument" 
        />
    </a>
     <figcaption>Kafka monument</figcaption> 
</figure>
]]></description></item><item><title>Tom Ibarra - La nouvelle scène at Duc des Lombards</title><link>https://blog.ztec.fr/en/2022/10/04/concert/tom-ibarra-la-nouvelle-sc%C3%A8ne-at-duc-des-lombards/</link><pubDate>Tue, 04 Oct 2022 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/10/04/concert/tom-ibarra-la-nouvelle-sc%C3%A8ne-at-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_256d5675a141bb4b.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_abec14b31a94292b.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_256d5675a141bb4b.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/tom-ibarra/">Tom Ibarra</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/auxane-cartigny/">Auxane Cartigny</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/lilian-mille/">Lilian Mille</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/jeff-mercadi%C3%A9/">Jeff Mercadié</a> - 


<a href="/en/instruments/tenor-saxophone/">Tenor Saxophone</a></li>
<li>


<a href="/en/artists/tao-ehrlich/">Tao Ehrlich</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/no%C3%A9-berne/">Noé Berne</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
</ul>
<p><a href="https://www.youtube.com/watch?v=i6lqt_l7nMc">Windows (Chick corea) by Tom Ibarra</a></p>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2022/10/04/concert/tom-ibarra-la-nouvelle-sc%C3%A8ne-au-duc-des-lombards/cover_hu_fd7106d90b00945b.webp 1x, /2022/10/04/concert/tom-ibarra-la-nouvelle-sc%C3%A8ne-au-duc-des-lombards/cover_hu_e297a1d1a852426d.webp 1.60x" />
        

        
        
            <source type="image/jpeg" srcset="/2022/10/04/concert/tom-ibarra-la-nouvelle-sc%C3%A8ne-au-duc-des-lombards/cover_hu_d8681784db63d0cf.jpg 1x, /2022/10/04/concert/tom-ibarra-la-nouvelle-sc%C3%A8ne-au-duc-des-lombards/cover_hu_2e74509dfcc196a6.jpg 1.60x" />
        

        
        
        <img
            src="/2022/10/04/concert/tom-ibarra-la-nouvelle-sc%C3%A8ne-au-duc-des-lombards/cover_hu_d8681784db63d0cf.jpg"
             alt="Tom Ibarra" 
             title="Tom Ibarra" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>La Maison Tellier at La Maroquinerie</title><link>https://blog.ztec.fr/en/2022/09/23/concert/la-maison-tellier-at-la-maroquinerie/</link><pubDate>Fri, 23 Sep 2022 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/09/23/concert/la-maison-tellier-at-la-maroquinerie/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f13cf8de44336c15.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_84592e15a7b0752a.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f13cf8de44336c15.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="la-maison-tellier">La Maison Tellier</h2>
<ul>
<li>


<a href="/en/artists/la-maison-tellier/">La Maison Tellier</a></li>
</ul>
<h2 id="flora-hibberd">Flora Hibberd</h2>
<ul>
<li>


<a href="/en/artists/flora-hibberd/">Flora Hibberd</a> - opening act</li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2022/09/23/concert/la-maison-tellier-%C3%A0-la-maroquinerie/cover_hu_67b8de022e5f2fc9.webp 1x, /2022/09/23/concert/la-maison-tellier-%C3%A0-la-maroquinerie/cover_hu_2b59bdf9621682b.webp 1.50x" />
        

        
        
            <source type="image/jpeg" srcset="/2022/09/23/concert/la-maison-tellier-%C3%A0-la-maroquinerie/cover_hu_187452f6f11a6d1.jpg 1x, /2022/09/23/concert/la-maison-tellier-%C3%A0-la-maroquinerie/cover_hu_f572e5b2cf7a0b52.jpg 1.50x" />
        

        
        
        <img
            src="/2022/09/23/concert/la-maison-tellier-%C3%A0-la-maroquinerie/cover_hu_187452f6f11a6d1.jpg"
             alt="La Maison Tellier" 
             title="La Maison Tellier" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Erwan Keravec - In C 20 sonneurs at Le 104</title><link>https://blog.ztec.fr/en/2022/09/12/concert/erwan-keravec-in-c-20-sonneurs-at-le-104/</link><pubDate>Mon, 12 Sep 2022 21:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/09/12/concert/erwan-keravec-in-c-20-sonneurs-at-le-104/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d50cbbfad2b3a2c2.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_b955534cde348c28.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_d50cbbfad2b3a2c2.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="in-c-20-sonneurs">In C 20 sonneurs</h2>
<ul>
<li>


<a href="/en/artists/erwan-keravec/">Erwan Keravec</a> - artistic direction, arrangements, 


<a href="/en/instruments/bagpipe/">bagpipe</a></li>
</ul>
<h3 id="the-20-sonneurs">The 20 sonneurs</h3>
<ul>
<li>


<a href="/en/artists/ga%C3%ABl-chauvin/">Gaël Chauvin</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/kevin-colas/">Kevin Colas</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/ewen-couriaut/">Ewen Couriaut</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/ylan-couriaut/">Ylan Couriaut</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/c%C3%A9line-cozien/">Céline Cozien</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/micka%C3%ABl-cozien/">Mickaël Cozien</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/nathalie-drant/">Nathalie Drant</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/pierre-gateclou-marest/">Pierre Gateclou-Marest</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/ernesto-gongora/">Ernesto Gongora</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/erwan-hamon/">Erwan Hamon</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/st%C3%A9phane-hardy/">Stéphane Hardy</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/gweltaz-herv%C3%A9/">Gweltaz Hervé</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/gu%C3%A9nol%C3%A9-keravec/">Guénolé Keravec</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/lionel-le-page/">Lionel Le Page</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/vincent-marin/">Vincent Marin</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/enora-morice/">Enora Morice</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/gwena%C3%ABl-piel/">Gwenaël Piel</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/fran%C3%A7ois-robin/">François Robin</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/pierre-thebault/">Pierre Thebault</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
<li>


<a href="/en/artists/quentin-viannais/">Quentin Viannais</a> - 


<a href="/en/instruments/bagpipe/">bagpipe</a>, 


<a href="/en/instruments/biniou/">biniou</a>, 


<a href="/en/instruments/bombarde/">bombarde</a></li>
</ul>
<p><a href="https://www.youtube.com/watch?v=gabrrMbENas">Goebbels/Glass/Radigue, Erwan Keravec</a></p>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2022/09/12/concert/erwan-keravec-in-c-20-sonneurs-au-104/cover_hu_28259ce2063a537c.webp 1x, /2022/09/12/concert/erwan-keravec-in-c-20-sonneurs-au-104/cover_hu_6ffeafa52a566404.webp 1.25x" />
        

        
        
            <source type="image/jpeg" srcset="/2022/09/12/concert/erwan-keravec-in-c-20-sonneurs-au-104/cover_hu_f06c833318adee66.jpg 1x, /2022/09/12/concert/erwan-keravec-in-c-20-sonneurs-au-104/cover_hu_5c63237df9fc8654.jpg 1.25x" />
        

        
        
        <img
            src="/2022/09/12/concert/erwan-keravec-in-c-20-sonneurs-au-104/cover_hu_f06c833318adee66.jpg"
             alt="In C 20 sonneurs" 
             title="In C 20 sonneurs" 
        />

        
            <div class="credit">ⓒ Christophe Raynaud De Lage</div>
        
    </picture>


]]></description></item><item><title>Ravi Coltrane - Cosmic Music: A Contemporary Exploration into the Music of John &amp; Alice Coltrane</title><link>https://blog.ztec.fr/en/2022/09/11/concert/ravi-coltrane-cosmic-music-a-contemporary-exploration-into-the-music-of-john-alice-coltrane/</link><pubDate>Sun, 11 Sep 2022 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/09/11/concert/ravi-coltrane-cosmic-music-a-contemporary-exploration-into-the-music-of-john-alice-coltrane/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_79744ce160e4d7b9.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_74748eaad2312e9e.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_79744ce160e4d7b9.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>Ravi Coltrane - Cosmic Music: A Contemporary Exploration into the Music of John &amp; Alice Coltrane</strong></p>
<ul>
<li>


<a href="/en/artists/ravi-coltrane/">Ravi Coltrane</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/gadi-lehavi/">Gadi Lehavi</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/rashaan-carter/">Rashaan Carter</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/el%C3%A9-howell/">Elé Howell</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>
<p><strong>Opening act: Emile Parisien &ldquo;Louise&rdquo;</strong></p>
<ul>
<li>


<a href="/en/artists/emile-parisien/">Emile Parisien</a> - 


<a href="/en/instruments/saxophone/">Saxophone</a></li>
<li>


<a href="/en/artists/theo-croker/">Theo Croker</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/roberto-negro/">Roberto Negro</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/manu-codjia/">Manu Codjia</a> - 


<a href="/en/instruments/guitar/">Guitar</a></li>
<li>


<a href="/en/artists/joe-martin/">Joe Martin</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
<li>


<a href="/en/artists/nasheet-waits/">Nasheet Waits</a> - 


<a href="/en/instruments/percussion/">Percussion</a></li>
</ul>
]]></description></item><item><title>Elise Dabrowski - PARKING</title><link>https://blog.ztec.fr/en/2022/09/09/concert/elise-dabrowski-parking/</link><pubDate>Fri, 09 Sep 2022 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/09/09/concert/elise-dabrowski-parking/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8a9b53f19f88614b.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_2236e414dedaf1f0.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_8a9b53f19f88614b.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>PARKING Trio</strong></p>
<ul>
<li>


<a href="/en/artists/elise-dabrowski/">Elise Dabrowski</a> - 


<a href="/en/instruments/voice/">voice</a></li>
<li>


<a href="/en/artists/olivier-l%C3%A9t%C3%A9/">Olivier Lété</a> - 


<a href="/en/instruments/bass/">Bass</a></li>
<li>


<a href="/en/artists/fidel-fourneyron/">Fidel Fourneyron</a> - 


<a href="/en/instruments/trombone/">Trombone</a></li>
</ul>
]]></description></item><item><title>Kenny Barron, Dave Holland &amp; Johnathan Blake Trio</title><link>https://blog.ztec.fr/en/2022/09/02/concert/kenny-barron-dave-holland-johnathan-blake-trio/</link><pubDate>Fri, 02 Sep 2022 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/09/02/concert/kenny-barron-dave-holland-johnathan-blake-trio/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_b9d77f47ceb3efaa.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_bb1b7da8a5b5a29b.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_b9d77f47ceb3efaa.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>Kenny Barron, Dave Holland &amp; Johnathan Blake Trio</strong></p>
<ul>
<li>


<a href="/en/artists/kenny-barron/">Kenny Barron</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/dave-holland/">Dave Holland</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/johnathan-blake/">Johnathan Blake</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>
<p><strong>Opening act: Alain Jean-Marie &amp; Diego Imbert - The Music of Bill Evans</strong></p>
<ul>
<li>


<a href="/en/artists/alain-jean-marie/">Alain Jean-Marie</a> - 


<a href="/en/instruments/piano/">Piano</a></li>
<li>


<a href="/en/artists/diego-imbert/">Diego Imbert</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
</ul>
]]></description></item><item><title>Paris is beautiful</title><link>https://blog.ztec.fr/en/2022/post/paris-is-beautiful/</link><pubDate>Tue, 14 Jun 2022 01:03:51 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/post/paris-is-beautiful/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_a7e1d7a8d12da907.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_7cfe91f2bb296da.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_a7e1d7a8d12da907.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>I love Paris, since the dawn of my memory.
I&rsquo;m lucky to have studied and now live there
I&rsquo;m near the Gambetta place. It is really easy to find on a Paris&rsquo;s map. Look for a huge green square on the east.
You just found the cemetery of <a href="https://en.wikipedia.org/wiki/P%C3%A8re_Lachaise_Cemetery">Père-Lachaise</a>.
Gambetta, is right on top of the cemetery.</p>
<p>In the area, there is some interesting monuments I saw countless times, mostly in cars from the <a href="https://en.wikipedia.org/wiki/Boulevard_P%C3%A9riph%C3%A9rique">Périphérique</a>.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Twisted-Lamppost-Star_hu_b0c1e407b5c3bbe3.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Twisted-Lamppost-Star_hu_39f13db6a89fa20a.webp"
                 alt="[Twisted Lamppost Star](https://fr.wikipedia.org/wiki/Twisted_Lamppost_Star)" 
                 title="Twisted Lamppost Star" 
        />
    </a>
     <figcaption>Twisted Lamppost Star</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Tours-Mercuriales_hu_b46eea251c02d2e4.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Tours-Mercuriales_hu_3d117238494b25ef.webp"
                 alt="[Tours Mercuriales](https://fr.wikipedia.org/wiki/Tours_Mercuriales)" 
                 title="Tours Mercuriales" 
        />
    </a>
     <figcaption>Tours Mercuriales</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Place-gambetta_hu_6ab28c384a7cc654.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Place-gambetta_hu_810708d1326f3444.webp"
                 alt="[Fontaine place Gambetta](https://fr.wikipedia.org/wiki/Place_Gambetta_(Paris))" 
                 title="Fontaine place Gambetta" 
        />
    </a>
     <figcaption>Fontaine place Gambetta</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Buttes_hu_6985121e17e82d08.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Buttes_hu_df37a9b978c32189.webp"
                 alt="[Parc des Buttes-Chaumont](https://fr.wikipedia.org/wiki/Parc_des_Buttes-Chaumont)" 
                 title="Buttes Chaumon" 
        />
    </a>
     <figcaption>Buttes Chaumon</figcaption> 
</figure>

</div>
<hr>
<p>The Gambetta neighborhood is really &hellip; full of life. Days and night. Not the busier street of Paris of course.
In france, every year we have what we call &ldquo;Fête de la music&rdquo; (Music party) where the whole country put music everywhere.
Come at Gambetta on this time, push your luck to hear the fanfare (or be the lucky one to be awakened by trompette every saturday)</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/clap_hu_55205ea09ed821e0.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/clap_hu_dd98d0807cdacb5a.webp"
                 alt="Femme illuminée clappant des mains derrière un Corp" 
                 title="Clap" 
        />
    </a>
     <figcaption>Clap</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Saxo_hu_b18387d714272199.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Saxo_hu_477d94e95d87f51f.webp"
                 alt="Joueur de saxophone" 
                 title="Saxo" 
        />
    </a>
     <figcaption>Saxo</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Trompette_hu_5d3909161d213e77.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Trompette_hu_4f70a1e393618dbb.webp"
                 alt="Joueur de trompette" 
                 title="Trompette" 
        />
    </a>
     <figcaption>Trompette</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/dancing_hu_da8d604a02e7fdb1.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/dancing_hu_fc77033d0f59cd13.webp"
                 alt="Un homme et une femme s&#39;éloignant au loin en dansant de joie" 
                 title="Dacing" 
        />
    </a>
     <figcaption>Dacing</figcaption> 
</figure>

</div>
<hr>
<p>I live there for 7 year now. For all this time I never truly took the time to discover my neighborhood outside
the streets where I buy food and utils.</p>
<p>Few weeks ago I decided to lost myself in Paris. Recently I willingly lost myself around my place. I tried to make myself
aware of the beauty of the city. Street art, parisien typical building and street, broken bench, bucolic streets, I think everyone
can see one beauty or another.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Amazing_hu_f5f25ecff4aa48fb.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Amazing_hu_7f77d99227011441.webp"
                 alt="Bar wall with street art on it" 
                 title="Amazing" 
        />
    </a>
     <figcaption>Amazing</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/FinDeCourse_hu_ec193d3806653b3c.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/FinDeCourse_hu_6adf6371c1b99818.webp"
                 alt="Car parked in front of a typical parisian bar" 
                 title="Fin de course" 
        />
    </a>
     <figcaption>Fin de course</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/NonPotable_hu_cec034549bbd6bbc.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/NonPotable_hu_20a9bb2f8888a3e6.webp"
                 alt="Lion&#39;s Fountain surrounded by two painted spiders on the wall" 
                 title="Non potable" 
        />
    </a>
     <figcaption>Non potable</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/ParisALaCampagne_hu_34e718e62c3ad7ef.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/ParisALaCampagne_hu_9c3a1c72b8925ec0.webp"
                 alt="[Campagne à Paris](https://fr.wikipedia.org/wiki/Campagne_%C3%A0_Paris)" 
                 title="Paris à la campagne" 
        />
    </a>
     <figcaption>Paris à la campagne</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/VillaOlivierM%C3%A9tra_hu_55912a73890fb7a3.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/VillaOlivierM%C3%A9tra_hu_16dafc4afabfa4ec.webp"
                 alt="[Villa Olivier-Métra](https://fr.wikipedia.org/wiki/Villa_Olivier-M%C3%A9tra)" 
                 title="Villa Olivier Métra" 
        />
    </a>
     <figcaption>Villa Olivier Métra</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/VoieVerdur%C3%A9e_hu_9c9db2afb45b90b.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/VoieVerdur%C3%A9e_hu_5f6cd952f040de8b.webp"
                 alt="Typical parisian street with plants" 
                 title="Voie verdurée" 
        />
    </a>
     <figcaption>Voie verdurée</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/CanILiveThere_hu_1734a51867c2114f.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/CanILiveThere_hu_f6e935f3fd336639.webp"
                 alt="no so typical parisian houses" 
                 title="Can I Live there?" 
        />
    </a>
     <figcaption>Can I Live there?</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/WalkingToDeath_hu_acb03cedb2ceec7f.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/WalkingToDeath_hu_ecb096f95075a879.webp"
                 alt="A woman walking away with a pink bag at [Cimetière du Père-Lachaise](https://fr.wikipedia.org/wiki/Cimeti%C3%A8re_du_P%C3%A8re-Lachaise)" 
                 title="Le père lachaise" 
        />
    </a>
     <figcaption>Le père lachaise</figcaption> 
</figure>

</div>
<p>What a discovery! I did not expect to find soo much bucolic places soo far away from the typical parisien street style.</p>
<hr>
<p>I saw some peculiar things worth the look</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Bee_hu_b6a21988c6902c0a.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Bee_hu_a0b55daf5bcfc905.webp"
                 alt="A bee on the street" 
                 title="Bee" 
        />
    </a>
     <figcaption>Bee</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/BearinMind_hu_a33f9d8551d36c62.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/BearinMind_hu_c6ce06fbf8ee52dd.webp"
                 alt="Stay free" 
                 title="Bear in mind" 
        />
    </a>
     <figcaption>Bear in mind</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Alf_hu_9ad70ca64a54d62.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Alf_hu_64dcca7931f9f87a.webp"
                 alt="Alf saying `I like your smile!`" 
                 title="Alf" 
        />
    </a>
     <figcaption>Alf</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/FresqueManouchian_hu_9450e8744242edc8.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/FresqueManouchian_hu_d50576b59deb6c2.webp"
                 alt="[La fresque de Popof](https://mairie20.paris.fr/pages/il-etait-une-fois-le-20e-la-rue-du-groupe-manouchian-20448)" 
                 title="Fresque Manouchian" 
        />
    </a>
     <figcaption>Fresque Manouchian</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/FresqueElephant_hu_79864d703d1ef079.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/FresqueElephant_hu_3961a42290f3bc22.webp"
                 alt="An Elephant on the wall" 
                 title="Fresque Elephant" 
        />
    </a>
     <figcaption>Fresque Elephant</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Koalachnikov_hu_5c6de471e00cbde0.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Koalachnikov_hu_ddb82ac5ddef6ef9.webp"
                 alt="I Love Koalachnikov" 
                 title="I Love Koalachnikov" 
        />
    </a>
     <figcaption>I Love Koalachnikov</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/V%C3%A9loASaisir_hu_8954469fe25f8eca.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/V%C3%A9loASaisir_hu_bbb54dec8b713cc8.webp"
                 alt="A bike on takeaway" 
                 title="A saisir" 
        />
    </a>
     <figcaption>A saisir</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/AttentionChatEnPsy_hu_aac7b8723126bedd.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/AttentionChatEnPsy_hu_6c7d2436cbf66d88.webp"
                 alt="Warning, Cat under psychanalyse" 
                 title="Attention chat en psychanalyse" 
        />
    </a>
     <figcaption>Attention chat en psychanalyse</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/ChienGentilsMaitreLunatique_hu_84345e070d929d0e.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/ChienGentilsMaitreLunatique_hu_4fe13e2563436f1.webp"
                 alt="Nice dog, temperamental owner" 
                 title="Chien gentils Maitre lunatique" 
        />
    </a>
     <figcaption>Chien gentils Maitre lunatique</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/LapinLunatique_hu_bc1ed8d513d19aab.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/LapinLunatique_hu_aafcdc8800579728.webp"
                 alt="Temperamental rabbit" 
                 title="Lapin lunatique" 
        />
    </a>
     <figcaption>Lapin lunatique</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/JohnHamon_hu_1dba00dbc090d6a9.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/JohnHamon_hu_ce989bfc64a5f383.webp"
                 alt="The mysterious John Hamon" 
                 title="John Hamon" 
        />
    </a>
     <figcaption>John Hamon</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Leloup_hu_8f9f828ea7a8ed6a.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Leloup_hu_2d3bd7e1eeec3882.webp"
                 alt="Wolf climbing stairs" 
                 title="Le loup" 
        />
    </a>
     <figcaption>Le loup</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Aziz_hu_c0f26925c11f8100.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Aziz_hu_b7d6626bfadf7602.webp"
                 alt="So I brought light" 
                 title="Aziz" 
        />
    </a>
     <figcaption>Aziz</figcaption> 
</figure>

</div>
<hr>
<p>Paris also contains some famous building it cannot be Paris without.</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/LeLouvre_hu_2538e09e861c62fc.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/LeLouvre_hu_9fd3e197f68e9986.webp"
                 alt="Pyramide du louvre" 
                 title="Le louvre" 
        />
    </a>
     <figcaption>Le louvre</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/BNF_hu_20adaa08a40563b9.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/BNF_hu_45f0151ee1a75d62.webp"
                 alt="National French library" 
                 title="BNF" 
        />
    </a>
     <figcaption>BNF</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/BNF2_hu_c6512eaecd06155b.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/BNF2_hu_3a65d4672644f5b2.webp"
                 alt="The national french library" 
                 title="BNF2" 
        />
    </a>
     <figcaption>BNF2</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Bastille_hu_17cb1499aa0c53fb.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Bastille_hu_2c0cf1e5db8cc037.webp"
                 alt="Bastille place angle" 
                 title="Bastille" 
        />
    </a>
     <figcaption>Bastille</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/r%C3%A9pu_hu_938bb2f59db3195a.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/r%C3%A9pu_hu_74de5c8d7416574c.webp"
                 alt="Republic place with a bench on foreground" 
                 title="Répu" 
        />
    </a>
     <figcaption>Répu</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/arc_hu_93d49107b5767e95.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/arc_hu_aeda757057fc0c8a.webp"
                 alt="Two woman before the Arc de Triomphe" 
                 title="Arc" 
        />
    </a>
     <figcaption>Arc</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/laTour_hu_94c8ff209389cdd5.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/laTour_hu_8df84100be18502a.webp"
                 alt="THE Eiffel tower with my face in the reflexion" 
                 title="La Tour" 
        />
    </a>
     <figcaption>La Tour</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/op%C3%A9ra_hu_aa6df98bd454dd13.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/op%C3%A9ra_hu_c705cc6d4ed40304.webp"
                 alt="One the [l&#39;opéra garnier](https://fr.wikipedia.org/wiki/Op%C3%A9ra_Garnier) roof statue" 
                 title="l&#39;opéra" 
        />
    </a>
     <figcaption>l&rsquo;opéra</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Sacr%C3%A9coeur_hu_37e2924ca6ecade9.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Sacr%C3%A9coeur_hu_f6b341de56abd97f.webp"
                 alt="[Le sacré coeur](https://en.wikipedia.org/wiki/Sacr%C3%A9-C%C5%93ur,_Paris)" 
                 title="Sacré coeur" 
        />
    </a>
     <figcaption>Sacré coeur</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Samaritaine_hu_13d3221ae914514e.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Samaritaine_hu_36d1b75ec6cd1eaf.webp"
                 alt="[La Samaritaine](https://fr.wikipedia.org/wiki/La_Samaritaine)" 
                 title="La Samaritaine" 
        />
    </a>
     <figcaption>La Samaritaine</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Crop_hu_86d6e3899bde4406.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Crop_hu_f2a27ae6d33fec7.webp"
                 alt="[Montparnasse tower](https://en.wikipedia.org/wiki/Tour_Montparnasse) through Eiffel tower" 
                 title="Tour Montparnasse" 
        />
    </a>
     <figcaption>Tour Montparnasse</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Orsay_hu_9c8db51a3ca014ce.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Orsay_hu_7c15e161b6d80da8.webp"
                 alt="[Orsay Museum](https://en.wikipedia.org/wiki/Mus%C3%A9e_d%27Orsay)" 
                 title="Musée d&#39;Orsay" 
        />
    </a>
     <figcaption>Musée d&rsquo;Orsay</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Troca_hu_6290c1d0220b2496.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Troca_hu_a14661678d838bc5.webp"
                 alt="Trocadéro statue" 
                 title="Trocadéro" 
        />
    </a>
     <figcaption>Trocadéro</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/R%C3%A9pu2_hu_bc8e13db9dc50eac.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/R%C3%A9pu2_hu_ef03cc44b0e9b600.webp"
                 alt="République place" 
                 title="République" 
        />
    </a>
     <figcaption>République</figcaption> 
</figure>

</div>
<hr>
<p>Since I enjoy paris I often too busy to look. Sometimes I try to open myself and my eyes to see teh beautiful and take a pictures.
With no order, here is some shot I took. I had to dig in my archives, the oldest picture here is from 2008.
This is probably the beginning of my journey as a photographer. I started on film, even if digital camera were already a thing back then.
Will you be able to tell ?</p>


<div class="photo-gallery ">
    


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/CetD_hu_82ab6fa65a474c5.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/CetD_hu_9281e6dedd8b42ee.webp"
                 alt="Small cinema theatre room entrances" 
                 title="MK2 Bibliothèque, les petites salles" 
        />
    </a>
     <figcaption>MK2 Bibliothèque, les petites salles</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/VirginDisco_hu_4124a95cd55f2b3b.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/VirginDisco_hu_3d5df5627cdbb0b1.webp"
                 alt="Virgin Megastore discotheque at Champs Élysée" 
                 title="Virgin disco" 
        />
    </a>
     <figcaption>Virgin disco</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/ugcWheel_hu_7afb8bb35aa0f5a.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/ugcWheel_hu_8ce2bd8d504f1f61.webp"
                 alt="UGC restaurent" 
                 title="UGC Wheel" 
        />
    </a>
     <figcaption>UGC Wheel</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/D%C3%A9colage_hu_4ac66ccffb4a6c6c.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/D%C3%A9colage_hu_62bbf0c26cbfe70.webp"
                 alt="A plan toy on a window" 
                 title="Décolage" 
        />
    </a>
     <figcaption>Décolage</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/WaitingForTheMovie_hu_6b7b8c51b6e9ff61.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/WaitingForTheMovie_hu_c98a2fc18cf20891.webp"
                 alt="A woman waiting, her friends, in the shadows" 
                 title="Waiting" 
        />
    </a>
     <figcaption>Waiting</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Madelene_hu_5d485654d87620cc.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Madelene_hu_5c0053ce4947e035.webp"
                 alt="Madeleine station plants line 14" 
                 title="Madelene" 
        />
    </a>
     <figcaption>Madelene</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/m%C3%A9tro_hu_54808a88fc9d4a5d.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/m%C3%A9tro_hu_d2a62a83291c39de.webp"
                 alt="Entrance of the métro" 
                 title="Métro parisien" 
        />
    </a>
     <figcaption>Métro parisien</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/LaPetiteRivi%C3%A8re_hu_90ad73bb025d55f3.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/LaPetiteRivi%C3%A8re_hu_1e4c79bd7c202714.webp"
                 alt="The small river in the center of Paris with fashion institute on the right " 
                 title="La Petite Rivière" 
        />
    </a>
     <figcaption>La Petite Rivière</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/ModernHabitats_hu_1313142c4d3e6e2f.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/ModernHabitats_hu_7799c27a0f50a39b.webp"
                 alt="modern-ish living building in 12e arrondissement" 
                 title="Les habitations" 
        />
    </a>
     <figcaption>Les habitations</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/sunoff_hu_4f74f6756605922e.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/sunoff_hu_689aa70931aa7fac.webp"
                 alt="Paris from the eiffel tower." 
                 title="Sun off" 
        />
    </a>
     <figcaption>Sun off</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/ChampsElysees_hu_6c03c40e164de3f0.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/ChampsElysees_hu_c3d6135d338017e3.webp"
                 alt="Champs Élysées metro station" 
                 title="Champs Élysées" 
        />
    </a>
     <figcaption>Champs Élysées</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/EscalatorLyon_hu_f2a57e6f6d73e0e6.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/EscalatorLyon_hu_3c1e33f03b253b02.webp"
                 alt="Moving stairs of Gare de lyon railway station" 
                 title="Escalator Lyon" 
        />
    </a>
     <figcaption>Escalator Lyon</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/LaGrande_hu_d1000831832b35d0.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/LaGrande_hu_4b04e9a24e463000.webp"
                 alt="Eiffel tower from the ground" 
                 title="La Grande" 
        />
    </a>
     <figcaption>La Grande</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/LeChat_hu_fcc4289e63870e1c.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/LeChat_hu_f32a6b8db90aeda5.webp"
                 alt="A cat on a window" 
                 title="Le Chat" 
        />
    </a>
     <figcaption>Le Chat</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Briques_hu_bafac6fde3f28439.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Briques_hu_b4c598118a31230d.webp"
                 alt="Red brick building" 
                 title="Briques" 
        />
    </a>
     <figcaption>Briques</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/M%C3%A9troParisien_hu_55f7c1f551dc8ea8.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/M%C3%A9troParisien_hu_1e9810648c12f1a6.webp"
                 alt="Paris métro" 
                 title="Le métro parisien" 
        />
    </a>
     <figcaption>Le métro parisien</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/StairwayToFlotte_hu_b5fc9e4f61319fc5.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/StairwayToFlotte_hu_596e9d5b0a4d3b59.webp"
                 alt="Stairway to watter" 
                 title="StairwayToFlotte" 
        />
    </a>
     <figcaption>StairwayToFlotte</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/TGV_hu_7088d28283159753.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/TGV_hu_878ecc6d8a9fc762.webp"
                 alt="TGV at Gare de lyon" 
                 title="TGV" 
        />
    </a>
     <figcaption>TGV</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Tourists_hu_797cb0fccb397e7e.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Tourists_hu_8374c68b9042b5cf.webp"
                 alt="Two tourist being taken in picture in front of the eiffel tower" 
                 title="Tourists" 
        />
    </a>
     <figcaption>Tourists</figcaption> 
</figure>


















<figure class="photo ">
    
    <a
            class="hidden-link"
            href="/2022/post/paris-est-magique/photos/Villette_hu_625521d3b9c315f0.webp"
            target="_blank"
    >
        <img
                src="/2022/post/paris-est-magique/photos/Villette_hu_bef8bbeedc1bb5e3.webp"
                 alt="La Villette building at night" 
                 title="Vilette" 
        />
    </a>
     <figcaption>Vilette</figcaption> 
</figure>

</div>
<hr>
<p>I love Paris. This city is as unbearable as I love it. Klaxons noise, emergency sirens, Mad-ish or waisted people at night.
But also birds songs, architecture and mostly Art. Art is everywhere. If you pay attention, the streets are full of
work of art, from tinny to huge like the unmissable Eiffel tower. From history empowered statues; Curiosity locations; Curiosity people,
and sometimes rue people; Tourist waisting your time and patience.</p>
<p>From Paris you can go anywhere. Often you don&rsquo;t need to get outside the city itself.I happy to live there
and, in my way, to contribute. I wish more people could have this opportunity, and Paris was not reserved to
people that are rich enough to live there or old enough to have known the war.</p>
<p>One day my feeling towards this city may fade away. Until then, Paris is beautiful!</p>
<hr>
<p>You can find some of the pictures, and much more, on my Flickr Paris Album here : <a href="https://www.flickr.com/photos/ztec/albums/72177720295387877">https://www.flickr.com/photos/ztec/albums/72177720295387877</a></p>
<p>Thanks reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item><item><title>Pieter Jan Leusink conducts Mozart's Requiem at Concertgebouw</title><link>https://blog.ztec.fr/en/2022/05/07/concert/pieter-jan-leusink-conducts-mozarts-requiem-at-concertgebouw/</link><pubDate>Sat, 07 May 2022 19:30:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/05/07/concert/pieter-jan-leusink-conducts-mozarts-requiem-at-concertgebouw/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_bd86620148e3d15a.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f7c52cd5910ddd58.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_bd86620148e3d15a.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <ul>
<li>


<a href="/en/artists/pieter-jan-leusink/">Pieter Jan Leusink</a> - conductor</li>
<li>


<a href="/en/artists/the-bach-choir--orchestra-of-the-netherlands/">The Bach Choir &amp; Orchestra of the Netherlands</a></li>
</ul>
<h2 id="programme">Programme</h2>
<ul>
<li>Wolfgang Amadeus Mozart: Missa in C, &ldquo;Coronation&rdquo;, K317</li>
<li>Wolfgang Amadeus Mozart: Requiem in D minor, K626</li>
<li>Gregorio Allegri: Miserere mei</li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2022/05/07/concert/pieter-jan-leusink-dirige-le-requiem-de-mozart-au-concertgebouw/cover_hu_39de5a17cc90d67b.webp 1x, /2022/05/07/concert/pieter-jan-leusink-dirige-le-requiem-de-mozart-au-concertgebouw/cover_hu_b45192b159d5478e.webp 1.50x" />
        

        
        
            <source type="image/jpeg" srcset="/2022/05/07/concert/pieter-jan-leusink-dirige-le-requiem-de-mozart-au-concertgebouw/cover_hu_dfe9420d6504f4a.jpg 1x, /2022/05/07/concert/pieter-jan-leusink-dirige-le-requiem-de-mozart-au-concertgebouw/cover_hu_1fe5617d17c4b01c.jpg 1.50x" />
        

        
        
        <img
            src="/2022/05/07/concert/pieter-jan-leusink-dirige-le-requiem-de-mozart-au-concertgebouw/cover_hu_dfe9420d6504f4a.jpg"
             alt="Mozart Requiem" 
             title="Mozart Requiem" 
        />

        
            <div class="credit">ⓒ Gocomgo 2020</div>
        
    </picture>


]]></description></item><item><title>Tijs Klaassen Quintet / Jort Terwijn Önder at Bimhuis</title><link>https://blog.ztec.fr/en/2022/05/05/concert/tijs-klaassen-quintet-/-jort-terwijn-%C3%B6nder-at-bimhuis/</link><pubDate>Thu, 05 May 2022 20:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2022/05/05/concert/tijs-klaassen-quintet-/-jort-terwijn-%C3%B6nder-at-bimhuis/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_a56fb4a6f37dd28f.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_f8adfc564165155c.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_a56fb4a6f37dd28f.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <h2 id="tijs-klaassen-quintet">Tijs Klaassen Quintet</h2>
<ul>
<li>


<a href="/en/artists/mo-van-der-does/">Mo van der Does</a> - 


<a href="/en/instruments/alto-saxophone/">Alto Saxophone</a>, 


<a href="/en/instruments/clarinet/">Clarinet</a></li>
<li>


<a href="/en/artists/matthias-van-den-brande/">Matthias Van den Brande</a> - 


<a href="/en/instruments/tenor-saxophone/">Tenor Saxophone</a>, 


<a href="/en/instruments/flute/">flute</a></li>
<li>


<a href="/en/artists/floris-kappeyne/">Floris Kappeyne</a> - 


<a href="/en/instruments/piano/">Piano</a>, 


<a href="/en/instruments/synthesizer/">synthesizer</a></li>
<li>


<a href="/en/artists/tijs-klaassen/">Tijs Klaassen</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/wouter-k%C3%BChne/">Wouter Kühne</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>
<h2 id="jort-terwijn-önder">Jort Terwijn Önder</h2>
<ul>
<li>


<a href="/en/artists/jort-terwijn/">Jort Terwijn</a> - composition, 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/federico-calcagno/">Federico Calcagno</a> - 


<a href="/en/instruments/bass-clarinet/">bass clarinet</a></li>
<li>


<a href="/en/artists/hristo-goleminov/">Hristo Goleminov</a> - 


<a href="/en/instruments/bass-clarinet/">bass clarinet</a></li>
<li>


<a href="/en/artists/alessandro-mazzieri/">Alessandro Mazzieri</a> - 


<a href="/en/instruments/bass-guitar/">bass guitar</a></li>
<li>


<a href="/en/artists/nick-thessalonikefs/">Nick Thessalonikefs</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    


    
    



    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2022/05/05/concert/tijs-klaassen-quintet-/-jort-terwijn-%C3%B6nder-au-bimhuis/cover_hu_c34dfe1b852c5db8.webp 1x, /2022/05/05/concert/tijs-klaassen-quintet-/-jort-terwijn-%C3%B6nder-au-bimhuis/cover_hu_6c6fbca2758b88c8.webp 1.50x" />
        

        
        
            <source type="image/jpeg" srcset="/2022/05/05/concert/tijs-klaassen-quintet-/-jort-terwijn-%C3%B6nder-au-bimhuis/cover_hu_bceba92cdcbf2a7f.jpg 1x, /2022/05/05/concert/tijs-klaassen-quintet-/-jort-terwijn-%C3%B6nder-au-bimhuis/cover_hu_e4580f5c05454302.jpg 1.50x" />
        

        
        
        <img
            src="/2022/05/05/concert/tijs-klaassen-quintet-/-jort-terwijn-%C3%B6nder-au-bimhuis/cover_hu_bceba92cdcbf2a7f.jpg"
             alt="Tijs Klaassen Quintet" 
             title="Tijs Klaassen Quintet" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Theo Croker at Le Duc Des Lombards</title><link>https://blog.ztec.fr/en/2021/11/02/concert/theo-croker-at-le-duc-des-lombards/</link><pubDate>Tue, 02 Nov 2021 20:00:00 +0100</pubDate><guid>https://blog.ztec.fr/en/2021/11/02/concert/theo-croker-at-le-duc-des-lombards/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_83e28798875e064a.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_184072c54c36682d.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_83e28798875e064a.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p><strong>Theo Croker Quartet</strong></p>
<ul>
<li>


<a href="/en/artists/theo-croker/">Theo Croker</a> - 


<a href="/en/instruments/trumpet/">Trumpet</a></li>
<li>


<a href="/en/artists/mike-king/">Mike King</a> - 


<a href="/en/instruments/keyboards/">Keyboards</a></li>
<li>


<a href="/en/artists/eric-wheeler/">Eric Wheeler</a> - 


<a href="/en/instruments/double-bass/">Double bass</a></li>
<li>


<a href="/en/artists/shekwoaga-ode/">Shekwoaga Ode</a> - 


<a href="/en/instruments/drums/">Drums</a></li>
<li>


<a href="/en/artists/dleo/">D&#39;Leo</a> - Art &amp; sound design</li>
</ul>





















    
    
        
    

    
    

    
    

    
    





    
        
    




    <picture class="inner-cover type-full">
        
        
            <source type="image/webp" srcset="/2021/11/02/concert/theo-croker-au-duc-des-lombards/cover_hu_4072cadbd7abdc90.webp 1x" />
        

        
        
            <source type="image/jpeg" srcset="/2021/11/02/concert/theo-croker-au-duc-des-lombards/cover_hu_41071b827b2eb88f.jpg 1x" />
        

        
        
        <img
            src="/2021/11/02/concert/theo-croker-au-duc-des-lombards/cover_hu_41071b827b2eb88f.jpg"
             alt="Theo Croker with his trumpet" 
             title="Theo Croker" 
        />

        
            <div class="credit">ⓒunknown</div>
        
    </picture>


]]></description></item><item><title>Backup with Borg</title><link>https://blog.ztec.fr/en/2021/post/backup-with-borg/</link><pubDate>Sun, 18 Apr 2021 17:59:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2021/post/backup-with-borg/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_2acb0452823f76e1.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_61fb8bee02ddbf17.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_2acb0452823f76e1.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>You probably already heard of the <a href="https://twitter.com/olesovhcom/status/1369478732247932929">OVH&rsquo;s recent fire</a>.
It was a hard reminder for many people and companies. Many websites and services had big outage consequently and some
<a href="https://twitter.com/playrust/status/1369611688539009025">lost everything in the fire</a></p>









    
        
    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2021/post/backup-avec-borg/OVH-Datacenter-On-Fire.jpg"
            target="_blank"
    >
        <img
                src="/2021/post/backup-avec-borg/OVH-Datacenter-On-Fire_hu_be5f647f5c526bec.jpg"
                 alt="Picture of OVH&#39;s strasbourg datacenter burning" 
                 title="OVH is on fire" 
        />
    </a>
     <figcaption>OVH is on fire</figcaption> 
</figure>
<p>Most website went down for few hours. Avoiding service interruption when a whole datacenter disappear is not something easy. Some already had everything in place
for this kind of scenario. I won&rsquo;t talk about that today.</p>
<p>Today, I will explain how I do my personal backup.</p>
<h2 id="the-basics">The basics</h2>
<p>When talking backup, we often point out 3 rules to follow:</p>
<ul>
<li>Having at least 3 copies of you data</li>
<li>At least two copies on different media type</li>
<li>The third copy must be somewhere else (not in the same geographic space as the other two)</li>
</ul>
<p>The most important and often forgotten  bullet point is the last one. If your backups are stolen or destroyed all together,
they are not really useful anymore.</p>
<p>The cloud is a good third place to store backup, but I decided to avoid it for cost&rsquo;s reasons, principle, and learning interest.</p>
<h2 id="borg">Borg</h2>
<p><a href="https://www.borgbackup.org/">Borg</a> is a command line tool, meaning there is no interface to click on, meant to back up data incrementally.
This mean it can reduce backup time by only focusing on changed files instead of doing a full swipe every times. Borg also use a powerfull
deduplication mechanism to reduce backup archive size. If two identical files are found, they will not be store twice, but only once.</p>
<p>Borg works mostly on linux, but I successfully used it on Windows thanks to the <a href="https://docs.microsoft.com/en-us/windows/wsl/install-manual">Windows Subsystem Linux</a></p>
<p>Borg works by scanning a folder, and copying it&rsquo;s content to a borg archive via a ssh connection.</p>
<p>A basic example:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-0-1"><a class="lnlinks" href="#hl-0-1">1</a></span><span class="cl">borg create -s locutus@host:/path/borg/backup/repo/<span class="nv">$REPO_NAME</span>::<span class="nv">$ARCHIVE_NAME</span>-<span class="nv">$CURRENT_DATE</span>  /path/to/backup
</span></span></code></pre></div><p>Will give you this output</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-1-1"><a class="lnlinks" href="#hl-1-1"> 1</a></span><span class="cl">------------------------------------------------------------------------------
</span></span><span class="line"><span class="ln" id="hl-1-2"><a class="lnlinks" href="#hl-1-2"> 2</a></span><span class="cl">Archive name: mirror-2021-04-13-13h57
</span></span><span class="line"><span class="ln" id="hl-1-3"><a class="lnlinks" href="#hl-1-3"> 3</a></span><span class="cl">Archive fingerprint: c2f6ffa259f358636371439767dd9edc571ec01d84aa474c052c555b70b5c76f
</span></span><span class="line"><span class="ln" id="hl-1-4"><a class="lnlinks" href="#hl-1-4"> 4</a></span><span class="cl">Time <span class="o">(</span>start<span class="o">)</span>: Tue, 2021-04-13 13:59:22
</span></span><span class="line"><span class="ln" id="hl-1-5"><a class="lnlinks" href="#hl-1-5"> 5</a></span><span class="cl">Time <span class="o">(</span>end<span class="o">)</span>:   Tue, 2021-04-13 13:59:27
</span></span><span class="line"><span class="ln" id="hl-1-6"><a class="lnlinks" href="#hl-1-6"> 6</a></span><span class="cl">Duration: 4.67 seconds
</span></span><span class="line"><span class="ln" id="hl-1-7"><a class="lnlinks" href="#hl-1-7"> 7</a></span><span class="cl">Number of files: <span class="m">0</span>
</span></span><span class="line"><span class="ln" id="hl-1-8"><a class="lnlinks" href="#hl-1-8"> 8</a></span><span class="cl">Utilization of max. archive size: 0%
</span></span><span class="line"><span class="ln" id="hl-1-9"><a class="lnlinks" href="#hl-1-9"> 9</a></span><span class="cl">------------------------------------------------------------------------------
</span></span><span class="line"><span class="ln" id="hl-1-10"><a class="lnlinks" href="#hl-1-10">10</a></span><span class="cl">                       Original size      Compressed size    Deduplicated size
</span></span><span class="line"><span class="ln" id="hl-1-11"><a class="lnlinks" href="#hl-1-11">11</a></span><span class="cl">This archive:                  <span class="m">712</span> B                <span class="m">640</span> B                <span class="m">640</span> B
</span></span><span class="line"><span class="ln" id="hl-1-12"><a class="lnlinks" href="#hl-1-12">12</a></span><span class="cl">All archives:                2.77 TB              2.79 TB            137.29 GB
</span></span><span class="line"><span class="ln" id="hl-1-13"><a class="lnlinks" href="#hl-1-13">13</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-1-14"><a class="lnlinks" href="#hl-1-14">14</a></span><span class="cl">                       Unique chunks         Total chunks
</span></span><span class="line"><span class="ln" id="hl-1-15"><a class="lnlinks" href="#hl-1-15">15</a></span><span class="cl">Chunk index:                   <span class="m">53243</span>              <span class="m">1224153</span>
</span></span><span class="line"><span class="ln" id="hl-1-16"><a class="lnlinks" href="#hl-1-16">16</a></span><span class="cl">------------------------------------------------------------------------------
</span></span></code></pre></div><p>I invite you to follow the <a href="https://borgbackup.readthedocs.io/en/stable/">official documentation</a> to find out how to create repository.
There is a lot of ways to do it, I won&rsquo;t go in details.</p>
<h3 id="overview">Overview</h3>
<p>Basically, here is how I built my backup system:</p>
















<figure class="illustration dark-protection" >
    <a
            class="hidden-link"
            href="/2021/post/backup-avec-borg/schema.png"
            target="_blank"
    >
        <img
                src="/2021/post/backup-avec-borg/schema.png"
                 alt="Global schematics" 
                 title="Global schematics" 
        />
    </a>
     <figcaption>Global schematics</figcaption> 
</figure>
<h5 id="borg-server">Borg server</h5>
<p>I have a server dedicated to receive borg backup. It&rsquo;s a Virtual Machine in my case, but it could easily be a raspberry pi.
The disk size is the most important aspect of it. It must be big enough to received all my backups.</p>
<p>I reserved 1TB on a <a href="https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5">RAID 5</a> disk array. If I need more one day
I&rsquo;ll have to buy new hard drives, or do some cleaning.</p>
<p>Remember that I do  incremental backups. This ensures I keep a history of my files though their life. If I delete a file
it will not be deleted from backups for a long time (configurable)</p>
<p>I created one borg repository for each server and computer I wish to backup.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-2-1"><a class="lnlinks" href="#hl-2-1"> 1</a></span><span class="cl">root@borg:/backup# ls -la
</span></span><span class="line"><span class="ln" id="hl-2-2"><a class="lnlinks" href="#hl-2-2"> 2</a></span><span class="cl">total <span class="m">40</span>
</span></span><span class="line"><span class="ln" id="hl-2-3"><a class="lnlinks" href="#hl-2-3"> 3</a></span><span class="cl">drwxrwx--- <span class="m">10</span> locutus locutus <span class="m">4096</span> Nov  <span class="m">8</span> 01:57 .
</span></span><span class="line"><span class="ln" id="hl-2-4"><a class="lnlinks" href="#hl-2-4"> 4</a></span><span class="cl">drwxr-xr-x  <span class="m">4</span> root    root    <span class="m">4096</span> Jun <span class="m">19</span>  <span class="m">2020</span> ..
</span></span><span class="line"><span class="ln" id="hl-2-5"><a class="lnlinks" href="#hl-2-5"> 5</a></span><span class="cl">drwxrwx---  <span class="m">3</span> locutus locutus <span class="m">4096</span> Jul <span class="m">24</span>  <span class="m">2020</span> windows
</span></span><span class="line"><span class="ln" id="hl-2-6"><a class="lnlinks" href="#hl-2-6"> 6</a></span><span class="cl">drwxrwx---  <span class="m">3</span> locutus locutus <span class="m">4096</span> Nov <span class="m">19</span> 00:44 home
</span></span><span class="line"><span class="ln" id="hl-2-7"><a class="lnlinks" href="#hl-2-7"> 7</a></span><span class="cl">drwxrwx---  <span class="m">3</span> locutus locutus <span class="m">4096</span> Apr <span class="m">14</span> 06:18 knode01
</span></span><span class="line"><span class="ln" id="hl-2-8"><a class="lnlinks" href="#hl-2-8"> 8</a></span><span class="cl">drwxrwx---  <span class="m">3</span> locutus locutus <span class="m">4096</span> Apr <span class="m">14</span> 06:18 knode02
</span></span><span class="line"><span class="ln" id="hl-2-9"><a class="lnlinks" href="#hl-2-9"> 9</a></span><span class="cl">drwxrwx---  <span class="m">3</span> locutus locutus <span class="m">4096</span> Jun <span class="m">20</span>  <span class="m">2020</span> martine
</span></span><span class="line"><span class="ln" id="hl-2-10"><a class="lnlinks" href="#hl-2-10">10</a></span><span class="cl">drwxrwx---  <span class="m">3</span> locutus locutus <span class="m">4096</span> Nov  <span class="m">8</span> 01:52 pouet
</span></span><span class="line"><span class="ln" id="hl-2-11"><a class="lnlinks" href="#hl-2-11">11</a></span><span class="cl">drwxrwx---  <span class="m">3</span> locutus locutus <span class="m">4096</span> Apr <span class="m">13</span> 00:58 pouet-home
</span></span><span class="line"><span class="ln" id="hl-2-12"><a class="lnlinks" href="#hl-2-12">12</a></span><span class="cl">drwxrwx---  <span class="m">3</span> locutus locutus <span class="m">4096</span> Nov  <span class="m">8</span> 01:53 pouet-home-old
</span></span></code></pre></div><p>All my backup are accessible to one user <code>locutus</code>. This use is used to connect to the borg server via ssh. All my backup
computer and servers will have credentials to connect to it (one public ssh key per server)</p>
<p>All repository are encrypted and use a different key. Only the corresponding server and my self know the key.</p>
<h5 id="linux-server">Linux server</h5>
<p>On each of my VM I will to backup things, a script goes thought all my important folders and backups them.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-3-1"><a class="lnlinks" href="#hl-3-1"> 1</a></span><span class="cl"><span class="cp">#!/bin/bash
</span></span></span><span class="line"><span class="ln" id="hl-3-2"><a class="lnlinks" href="#hl-3-2"> 2</a></span><span class="cl"><span class="cp"></span><span class="nb">source</span> /root/.bashrc
</span></span><span class="line"><span class="ln" id="hl-3-3"><a class="lnlinks" href="#hl-3-3"> 3</a></span><span class="cl"><span class="nv">ARCHIVE_NAME</span><span class="o">=</span><span class="s2">&#34;kube&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-3-4"><a class="lnlinks" href="#hl-3-4"> 4</a></span><span class="cl"><span class="nv">CURRENT_DATE</span><span class="o">=</span><span class="k">$(</span>date +<span class="s2">&#34;%Y-%m-%d-%Hh%M&#34;</span><span class="k">)</span>
</span></span><span class="line"><span class="ln" id="hl-3-5"><a class="lnlinks" href="#hl-3-5"> 5</a></span><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Creating a backup archive of /riper/kube named &#39;</span><span class="nv">$ARCHIVE_NAME</span><span class="s2">-</span><span class="nv">$CURRENT_DATE</span><span class="s2">&#39;&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-3-6"><a class="lnlinks" href="#hl-3-6"> 6</a></span><span class="cl">borg create <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-3-7"><a class="lnlinks" href="#hl-3-7"> 7</a></span><span class="cl"><span class="se"></span> --checkpoint-interval <span class="m">600</span> <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-3-8"><a class="lnlinks" href="#hl-3-8"> 8</a></span><span class="cl"><span class="se"></span> --exclude-caches<span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-3-9"><a class="lnlinks" href="#hl-3-9"> 9</a></span><span class="cl"><span class="se"></span> --verbose <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-3-10"><a class="lnlinks" href="#hl-3-10">10</a></span><span class="cl"><span class="se"></span> -p <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-3-11"><a class="lnlinks" href="#hl-3-11">11</a></span><span class="cl"><span class="se"></span> -s ::<span class="nv">$ARCHIVE_NAME</span>-<span class="nv">$CURRENT_DATE</span> <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-3-12"><a class="lnlinks" href="#hl-3-12">12</a></span><span class="cl"><span class="se"></span> /riper/kube <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-3-13"><a class="lnlinks" href="#hl-3-13">13</a></span><span class="cl"><span class="se"></span>borg prune -v --list --keep-within<span class="o">=</span>10d --keep-weekly<span class="o">=</span><span class="m">4</span> --keep-monthly<span class="o">=</span><span class="m">12</span> --keep-yearly<span class="o">=</span>-1
</span></span></code></pre></div><p>I scheduled it using a <a href="https://fr.wikipedia.org/wiki/Cron">CRON</a></p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-4-1"><a class="lnlinks" href="#hl-4-1">1</a></span><span class="cl"><span class="m">18</span> <span class="m">6</span> * * * /root/borg-backup-volumes &gt;&gt; /var/log/backup-kube 2&gt;<span class="p">&amp;</span><span class="m">1</span>
</span></span></code></pre></div><p>In the root <code>.bashrc</code>, there is environment variables containing all details and secrets required by borg.
Do not forget to read protect it, otherwise the security key will not be secret.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-5-1"><a class="lnlinks" href="#hl-5-1">1</a></span><span class="cl"><span class="nv">BORG_OPTS</span><span class="o">=</span><span class="s2">&#34;&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-5-2"><a class="lnlinks" href="#hl-5-2">2</a></span><span class="cl"><span class="nv">BORG_SERVER</span><span class="o">=</span><span class="s2">&#34;ssh://locutus@norghost&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-5-3"><a class="lnlinks" href="#hl-5-3">3</a></span><span class="cl"><span class="nv">BORG_REPO_PATH</span><span class="o">=</span><span class="s2">&#34;/backup/knode01&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-5-4"><a class="lnlinks" href="#hl-5-4">4</a></span><span class="cl"><span class="nb">export</span> <span class="nv">BORG_REPO</span><span class="o">=</span><span class="s2">&#34;</span><span class="nv">$BORG_SERVER$BORG_REPO_PATH</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-5-5"><a class="lnlinks" href="#hl-5-5">5</a></span><span class="cl"><span class="nb">export</span> <span class="nv">BORG_PASSPHRASE</span><span class="o">=</span><span class="s2">&#34;redacted&#34;</span>
</span></span></code></pre></div><p>The last line of the script is here to do some cleanup of borg archives. I&rsquo;ve decided to keep files for a certain amount of times
in my backup.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-6-1"><a class="lnlinks" href="#hl-6-1">1</a></span><span class="cl">borg prune -v --list --keep-within<span class="o">=</span>10d --keep-weekly<span class="o">=</span><span class="m">4</span> --keep-monthly<span class="o">=</span><span class="m">12</span> --keep-yearly<span class="o">=</span>-1
</span></span></code></pre></div><ul>
<li>All archives are kept as is for 10 days (one per days via CRON)</li>
<li>After 10 days, only 4 archive per week are kept for 1 month</li>
<li>After one month, 12 archives are kept per month</li>
<li>After a year, everything is kept as is. (This will blow up some day)</li>
</ul>
<p>As you can read, there is an issue. After few years I might miss some space if I do not alter the last parameter. I&rsquo;m waiting
to have to do it before setting it, <code>-1</code> meaning <code>keep everything</code>.</p>
<h5 id="windows">Windows</h5>
<p>On Windows, I did not setup CRON and only do manual trigger.</p>
<p><a href="https://docs.microsoft.com/en-us/windows/wsl/install-manual">Once debian installed as WSL</a> ,
I did exactly the same thins as my linux servers. Windows mounting points allow to access
all drives, and we can backup them like any other folder.</p>
<p>As an example, I backup my pictures with this script</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-7-1"><a class="lnlinks" href="#hl-7-1"> 1</a></span><span class="cl"><span class="nv">ARCHIVE_NAME</span><span class="o">=</span><span class="s2">&#34;Photos&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-7-2"><a class="lnlinks" href="#hl-7-2"> 2</a></span><span class="cl"><span class="nv">CURRENT_DATE</span><span class="o">=</span><span class="k">$(</span>date +<span class="s2">&#34;%Y-%m-%d-%Hh%M&#34;</span><span class="k">)</span>
</span></span><span class="line"><span class="ln" id="hl-7-3"><a class="lnlinks" href="#hl-7-3"> 3</a></span><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Creating a backup archive of /mnt/s/photos named &#39;</span><span class="nv">$ARCHIVE_NAME</span><span class="s2">-</span><span class="nv">$CURRENT_DATE</span><span class="s2">&#39;&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-7-4"><a class="lnlinks" href="#hl-7-4"> 4</a></span><span class="cl">borg create <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-7-5"><a class="lnlinks" href="#hl-7-5"> 5</a></span><span class="cl"><span class="se"></span> --checkpoint-interval <span class="m">600</span> <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-7-6"><a class="lnlinks" href="#hl-7-6"> 6</a></span><span class="cl"><span class="se"></span> --exclude-caches<span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-7-7"><a class="lnlinks" href="#hl-7-7"> 7</a></span><span class="cl"><span class="se"></span> --verbose <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-7-8"><a class="lnlinks" href="#hl-7-8"> 8</a></span><span class="cl"><span class="se"></span> -p <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-7-9"><a class="lnlinks" href="#hl-7-9"> 9</a></span><span class="cl"><span class="se"></span> -s ::<span class="nv">$ARCHIVE_NAME</span>-<span class="nv">$CURRENT_DATE</span> <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-7-10"><a class="lnlinks" href="#hl-7-10">10</a></span><span class="cl"><span class="se"></span> /mnt/s/photos <span class="o">&amp;&amp;</span> <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-7-11"><a class="lnlinks" href="#hl-7-11">11</a></span><span class="cl"><span class="se"></span>borg prune -v --list --keep-within<span class="o">=</span>10d --keep-weekly<span class="o">=</span><span class="m">4</span> --keep-monthly<span class="o">=</span><span class="m">12</span> --keep-yearly<span class="o">=</span>-1
</span></span></code></pre></div><h5 id="raspberry-pis">raspberry PIs</h5>
<p>I stated it at the beginning of this article, 3 copies are needed with one elsewhere. For now, I only have</p>
<ul>
<li>The original copy</li>
<li>One copy on the borg server</li>
</ul>
<p>Both are physically located on the same place, at my apartment. I decided to use Raspberry pi to do the other copies.
I configured two of them (Raspberry pi 3)</p>
<p>On them, I installed the classical raspbian, and configured OpenVPN to access my backup network.
This VPN ensure once they are connected to it, they can only access to what&rsquo;s needed, meaning the Borg server.
I will probably write something about how I use OpenVpn (I use PfSense).</p>
<p>Each Raspberry pi has an usb hard drive attached. Each drives at least have as the same capacity as the Borg server.</p>
<p>Thanks to the VPN, I can use Raspberry Pi anywhere on the world as long as an internet access is available. Via Wifi or best, ethernet.</p>
<h6 id="borg-archive-in-borg-archive">borg archive in borg archive</h6>
<p>My first idea was to simply do an <code>rsync</code> of all borg&rsquo;s repository on each Raspberry pi.
To avoid losing my copy if I delete (willingly or not),the original source, I decided to avoid simple copy (with or without rsync).</p>
<p>Instead, I simply reused borg. For each borg repository, I create a corresponding repository on each Raspberry pi.
I simply create archive of my borg repository inside those.
I end up with a borg repository inside another borg repository.</p>
<p>I do it this way because I have the benefice of the history. If I do something wrong on my main server, I sil have old
copies available on each Raspberry pi.
As objects in borg archive are almost immutable, the deduplication process make those copies really space efficient.</p>
<p>To sum up:</p>
<ul>
<li>All my servers and computer create borg archive on the main Borg server.</li>
<li>The Borg server create archive copy on each Raspberry pi via ssh though the VPN</li>
<li>Borg repository on Raspberry pi are not encrypted as the original ones already are.</li>
</ul>
<p>I&rsquo;ve setup those cron to do copies automatically:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-8-1"><a class="lnlinks" href="#hl-8-1">1</a></span><span class="cl"><span class="m">57</span> <span class="m">13</span> * * * /home/locutus/borg/mirror-borg.sh IP-RASPBERRY-PI-1 &gt;&gt; /var/log/borg/IP-RASPBERRY-PI-1 2&gt;<span class="p">&amp;</span><span class="m">1</span>
</span></span><span class="line"><span class="ln" id="hl-8-2"><a class="lnlinks" href="#hl-8-2">2</a></span><span class="cl"><span class="m">57</span> <span class="m">13</span> * * * /home/locutus/borg/mirror-borg.sh IP-RASPBERRY-PI-2 &gt;&gt; /var/log/borg/IP-RASPBERRY-PI-2 2&gt;<span class="p">&amp;</span><span class="m">1</span>
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="ln" id="hl-9-1"><a class="lnlinks" href="#hl-9-1"> 1</a></span><span class="cl"><span class="cp">#!/bin/bash
</span></span></span><span class="line"><span class="ln" id="hl-9-2"><a class="lnlinks" href="#hl-9-2"> 2</a></span><span class="cl"><span class="cp"></span><span class="nb">export</span> <span class="nv">BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK</span><span class="o">=</span><span class="s2">&#34;yes&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-9-3"><a class="lnlinks" href="#hl-9-3"> 3</a></span><span class="cl"><span class="k">if</span> <span class="o">[</span> <span class="nv">$#</span> -eq <span class="m">0</span> <span class="o">]</span>
</span></span><span class="line"><span class="ln" id="hl-9-4"><a class="lnlinks" href="#hl-9-4"> 4</a></span><span class="cl">  <span class="k">then</span>
</span></span><span class="line"><span class="ln" id="hl-9-5"><a class="lnlinks" href="#hl-9-5"> 5</a></span><span class="cl">    <span class="nb">echo</span> <span class="s2">&#34;No arguments supplied, please specify hostname to mirror to&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-9-6"><a class="lnlinks" href="#hl-9-6"> 6</a></span><span class="cl"><span class="k">fi</span>
</span></span><span class="line"><span class="ln" id="hl-9-7"><a class="lnlinks" href="#hl-9-7"> 7</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-9-8"><a class="lnlinks" href="#hl-9-8"> 8</a></span><span class="cl"><span class="nv">TARGET</span><span class="o">=</span><span class="nv">$1</span>
</span></span><span class="line"><span class="ln" id="hl-9-9"><a class="lnlinks" href="#hl-9-9"> 9</a></span><span class="cl"><span class="nb">echo</span> <span class="s2">&#34;Create repository if they does not exist&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-9-10"><a class="lnlinks" href="#hl-9-10">10</a></span><span class="cl">ls -l /backup/ <span class="p">|</span> awk <span class="s1">&#39;{print $9}&#39;</span><span class="p">|</span>tail -n +2  <span class="p">|</span> xargs -I <span class="o">{}</span> -n <span class="m">1</span> /usr/local/bin/borg init --encryption<span class="o">=</span>none locutus@<span class="nv">$TARGET</span>:/backup/<span class="o">{}</span>
</span></span><span class="line"><span class="ln" id="hl-9-11"><a class="lnlinks" href="#hl-9-11">11</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-9-12"><a class="lnlinks" href="#hl-9-12">12</a></span><span class="cl"><span class="nv">LIST</span><span class="o">=</span><span class="k">$(</span>ls -l /backup/ <span class="p">|</span> awk <span class="s1">&#39;{print $9}&#39;</span><span class="p">|</span>tail -n +2<span class="k">)</span>
</span></span><span class="line"><span class="ln" id="hl-9-13"><a class="lnlinks" href="#hl-9-13">13</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-9-14"><a class="lnlinks" href="#hl-9-14">14</a></span><span class="cl"><span class="nv">ARCHIVE_NAME</span><span class="o">=</span><span class="s2">&#34;mirror&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-9-15"><a class="lnlinks" href="#hl-9-15">15</a></span><span class="cl"><span class="nv">CURRENT_DATE</span><span class="o">=</span><span class="k">$(</span>date +<span class="s2">&#34;%Y-%m-%d-%Hh%M&#34;</span><span class="k">)</span>
</span></span><span class="line"><span class="ln" id="hl-9-16"><a class="lnlinks" href="#hl-9-16">16</a></span><span class="cl"><span class="nb">declare</span> -a arrayList
</span></span><span class="line"><span class="ln" id="hl-9-17"><a class="lnlinks" href="#hl-9-17">17</a></span><span class="cl"><span class="k">while</span> <span class="nb">read</span> -r line
</span></span><span class="line"><span class="ln" id="hl-9-18"><a class="lnlinks" href="#hl-9-18">18</a></span><span class="cl"><span class="k">do</span>
</span></span><span class="line"><span class="ln" id="hl-9-19"><a class="lnlinks" href="#hl-9-19">19</a></span><span class="cl">    <span class="nv">arrayList</span><span class="o">+=(</span><span class="s2">&#34;</span><span class="nv">$line</span><span class="s2">&#34;</span><span class="o">)</span>
</span></span><span class="line"><span class="ln" id="hl-9-20"><a class="lnlinks" href="#hl-9-20">20</a></span><span class="cl"><span class="k">done</span> <span class="o">&lt;&lt;&lt;</span> <span class="s2">&#34;</span><span class="nv">$LIST</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-9-21"><a class="lnlinks" href="#hl-9-21">21</a></span><span class="cl">
</span></span><span class="line"><span class="ln" id="hl-9-22"><a class="lnlinks" href="#hl-9-22">22</a></span><span class="cl"><span class="k">for</span> REPO_NAME in <span class="s2">&#34;</span><span class="si">${</span><span class="nv">arrayList</span><span class="p">[@]</span><span class="si">}</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-9-23"><a class="lnlinks" href="#hl-9-23">23</a></span><span class="cl"><span class="k">do</span>
</span></span><span class="line"><span class="ln" id="hl-9-24"><a class="lnlinks" href="#hl-9-24">24</a></span><span class="cl">  <span class="nb">echo</span> <span class="s2">&#34;Creating a backup archive of </span><span class="nv">$REPO_NAME</span><span class="s2"> named &#39;</span><span class="nv">$ARCHIVE_NAME</span><span class="s2">-</span><span class="nv">$CURRENT_DATE</span><span class="s2">&#39;&#34;</span>
</span></span><span class="line"><span class="ln" id="hl-9-25"><a class="lnlinks" href="#hl-9-25">25</a></span><span class="cl">  /usr/local/bin/borg create <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-9-26"><a class="lnlinks" href="#hl-9-26">26</a></span><span class="cl"><span class="se"></span>   --checkpoint-interval <span class="m">600</span> <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-9-27"><a class="lnlinks" href="#hl-9-27">27</a></span><span class="cl"><span class="se"></span>   --exclude-caches<span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-9-28"><a class="lnlinks" href="#hl-9-28">28</a></span><span class="cl"><span class="se"></span>   --verbose <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-9-29"><a class="lnlinks" href="#hl-9-29">29</a></span><span class="cl"><span class="se"></span>   -p -x <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-9-30"><a class="lnlinks" href="#hl-9-30">30</a></span><span class="cl"><span class="se"></span>   -s locutus@<span class="nv">$TARGET</span>:/backup/<span class="nv">$REPO_NAME</span>::<span class="nv">$ARCHIVE_NAME</span>-<span class="nv">$CURRENT_DATE</span> <span class="se">\
</span></span></span><span class="line"><span class="ln" id="hl-9-31"><a class="lnlinks" href="#hl-9-31">31</a></span><span class="cl"><span class="se"></span>   /backup/<span class="nv">$REPO_NAME</span>
</span></span><span class="line"><span class="ln" id="hl-9-32"><a class="lnlinks" href="#hl-9-32">32</a></span><span class="cl"><span class="k">done</span> <span class="o">&lt;&lt;&lt;</span> <span class="s2">&#34;</span><span class="nv">$LIST</span><span class="s2">&#34;</span>
</span></span></code></pre></div><p>I end up with two Raspberry pi containing a copy of my central Borg server, only one day behind.</p>
<p>I keep one at my place (this is my second storage type), and I keep the other one at a family member&rsquo;s place (where Optical fiber connection is available). I have my &ldquo;elsewhere&rdquo; copy this way.</p>
<p>A Raspberry pi has a really low power consumption, and you can lower it more by hacking it to only power it once a day for the required time only.
It&rsquo;s also cheap, and the big budget are the usb drives.</p>
<h2 id="monitoring">Monitoring</h2>
<p>It&rsquo;s really cool to have automatic backup and stuff, except when you need it and discover all automatic stuffs did not worked for some days.
The best is to be warned when something is a bit off.</p>
<p>When a cron end up with an error, an alert email is enough.</p>
<p>I follow backup disk space using <a href="https://prometheus.io/">prometheus</a>. In fact, I have an ongoing alert I must resolve!</p>
<p><img src="/2021/post/backup-avec-borg/alert-grafana.png" alt="Disk space alert" title="Grafana representation of alerts, with one red indicating disk space is low for a month"></p>
<p>My backup disk space do not evolve a lot, here 14 days on borg, and the two Raspberry pi. (Raspberry pi drivers are 1.7T and 2.6TB against only 1TB for the borg server)</p>
<p><img src="/2021/post/backup-avec-borg/disk-space-used.png" alt="Disk space" title="Graphical representation of disk space, pretty flat over 14 days for all 3"></p>
<p>Recently, I moved the Raspberry pi synchronisation cron on <a href="https://www.gocd.org/">GoCD</a> for testing purpose. It works well, I will have a beautiful web interface to trigger synchronisation and see quickly if jobs are working well.
GoCd is in my ToolBox anyway, using it has no real cost.</p>
<p><img src="/2021/post/backup-avec-borg/gocd-borg-raspberry-sync.png" alt="GoCD dashboard" title="GoCD Dashboard with a green sycnrhonisation job"></p>
<h2 id="summary">Summary</h2>
<p>I use this setup for less than a year, and a lots of details are not perfect, however:</p>
<ul>
<li>It&rsquo;s cheap if you compare it to cloud solutions with 1TB or more</li>
<li>Free and Open source based</li>
<li>Borg allow to mount any archive and go through it like any folder allowing to recover files easily.</li>
<li>Security wise, it&rsquo;s good enough for my personal use cases.</li>
<li>Everything is automatic and no human intervention required once it&rsquo;s setup</li>
<li>A good monitoring is required, mostly on disk space, to know quickly when to do some cleaning or buy new drives.</li>
</ul>
<p>Thank you reading this,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item><item><title>Hello world</title><link>https://blog.ztec.fr/en/2021/post/hello-world/</link><pubDate>Wed, 14 Apr 2021 14:00:00 +0200</pubDate><guid>https://blog.ztec.fr/en/2021/post/hello-world/</guid><description><![CDATA[
                        
                        
                            
                            
                                
                                    
                                    
                                    <picture>
                                        <source srcset="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_de2cd626b2a31498.jpg 1x, https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_a1d74ba9cf5aa56e.jpg 2x">
                                        <img src="https://blog.ztec.fr/OG/BASE/OG-BASE-EMPTY_hu_de2cd626b2a31498.jpg"
                                             alt="OpenGraph preview"
                                             class="og-image-preview"/>
                                    </picture>
                                
                            
                        
                        <p>Hello world</p>
<p>Here I am. I finally decide to open a blog. I do so with a bit of apprehensiveness but ambitions too.
Let me explain.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2021/post/bonjour-monde/swetty.gif"
            target="_blank"
    >
        <img
                src="/2021/post/bonjour-monde/swetty.gif"
                 alt="Sweating" 
                 title="Sweating person ! GIF" 
        />
    </a>
     <figcaption>Sweating person ! GIF</figcaption> 
</figure>
<p>I read a lot on the internet. With my <a href="https://en.wikipedia.org/wiki/RSS">RSS reader</a> I try to stay out of socials bubble prisons.
I&rsquo;m aware I&rsquo;m only creating another one of my own, but this way I have the pretense of owning it myself instead of an algorithm
built to help somebody else making money on my behalf. Ny constantly profiting of others precious work I find everywhere
on the internet, I thought to my self I could try to contribute.</p>
<p>As a tech, I will probably cover more this field of expertise more than the rest. I&rsquo;m not sure I will be able to produce
quality content or event if it will be useful. Let&rsquo;s try and see.</p>
<p>Opening a blog is a rather old idea in my head, but I always had a final frontier I could not go over to make it real.</p>
<h3 id="spelling-grammar-">Spelling, grammar,&hellip; !!</h3>
<p>People knowing me knows it, I&rsquo;m unable to write with no errors in each and every word.
Event after careful proofreading, Spelling and grammar stays mysteries to me. As it was not enough, I also make a lots
of typo typing, and it&rsquo;s really hard for me to spot them. My past and present colleagues knows what I mean.</p>
<p>This issue it the same in my mother tong, French, and English.</p>
<p>Being incapacitated like that always prevent me going forward in public writing other than a few tweets. If you are reading
those lines, it mean I went over my fears. I don&rsquo;t know how long it&rsquo;ll last, A lot I hope.</p>
<p>I&rsquo;m convinced form should not block access to substance. Only the meaning of a text should matter. Obviously there are
limits where bother are intertwined, but as long as the original meaning is successfully transmitted it&rsquo;s ok.</p>









    




    





<figure class="illustration " >
    <a
            class="hidden-link"
            href="/2021/post/bonjour-monde/typo.gif"
            target="_blank"
    >
        <img
                src="/2021/post/bonjour-monde/typo.gif"
                 alt="Two people on their phone, writing each other texts. One made a typo, the other look at him astonished." 
                 title="When you realize you made a typo GIF" 
        />
    </a>
     <figcaption>When you realize you made a typo GIF</figcaption> 
</figure>
<p>I do not wish to deliver messages in a box broken by choice, but do my best to craft a beautiful enough box around my
messages. I&rsquo;m not an artist, I acknowledge some may not like my imperfect boxes. Too bade for them, but I have to play the game
by the rule, I have no choice.</p>
<p>I&rsquo;m completely open to criticism (with all my bias &#x1f609;, I can react badly sometimes). However, for all comment about form,
spelling, grammar, typos I will have only one answer:</p>
<blockquote>
<p>Spelling, grammar, typo errors on each word ? I&rsquo;m deeply sorry for that. Help me fix it.
At the bottom of each page a Github link is available. You can follow it to suggest corrections.
It&rsquo;ll be my pleasure to integrate it as long as it does not change the meaning of my message.
(Your name (from Github) may appear on the Post page as writing corrector)</p>
</blockquote>
<p>I know internet is a ruthless jungle, let&rsquo;s hope bad lions stays in their idea&rsquo;s desert.</p>
<p>Who knows, maybe it will help me improve myself.&#x1f937;</p>
<h3 id="substance">Substance</h3>
<p>I don&rsquo;t know if I will be able to produce enough content or event if it will have enough quality to be useful.
I don&rsquo;t know what I will publish exactly, but I want to start by this kind of things:</p>
<ul>
<li>Share links and reading I found useful or interesting</li>
<li>Share my opinion on music, fils, games, anything</li>
<li>A bit of political point of view</li>
<li>Technical tutorials</li>
</ul>
<h4><a href="https://www.mylife.com">www.mylife.com</a></h4>
<p>My opinions and preferences will be obviously purely personal.
Why share my opinion on a blog ? will you ask. Why not ?</p>
<p>Also, for me, big platforms should not be the only one to control advices, opinions and reviews</p>
<p>For example, today Amazon is almost a mandatory place to get review on &ldquo;things&rdquo;. Even I give too many credits to the
yellow stars of the website, and their corresponding reviews.
Steam concentrate most of the Video games reviews, Imdb for movies, Youtube also for movies, game, music, lifestyle, &hellip;</p>
<p>Af course there is specialized website doing a wonderful job.</p>
<p>Basically, everything that is hosted on a big platform is available to us on the conditions it makes money to the platform
it&rsquo;s on, it does not go against sacred TOS. As I already contributes enough to them, I wish to contribute to the free
internet.</p>
<p>I will write in English and / or in French. I may translate some posts. I do not wish tha impose rules on me on this
regard but on any request I will be happy to translate.</p>
<h4 id="tech">Tech</h4>
<p>As a developer, internet is my first technical information source. I spend my personal and professional life on blogs,
websites, and stackoverflow of course. I often find what I need, but rather often than never, I have to combine multiple
sources to get to the result I want.</p>
<p>I do not know  I will have always enough courage and time, but I wish to contribute by giving my take of the story.</p>
<p>I said &ldquo;tutorials&rdquo;, but I think it will take a lot of different forms. Sometimes real tutorials, sometimes simple pages
with what I find relevant information, what made me walk to the solution. I might even publish selfish posts to help my
futur self. I would be funny to find my blog during a search &#x1f602;</p>
<p>I&rsquo;m an unspecialized &ldquo;tech&rdquo; and like a lots of technologies and stuffs, here an incomplete list I think I will talk about.</p>
<ul>
<li>Linux / Windows (Gaming is still a Windows thing &#x1f62d;)</li>
<li>Développement Backend
<ul>
<li>PHP (Nut I think everything has already been told)</li>
<li>Go</li>
<li>GraphQL</li>
<li>TypeScript</li>
</ul>
</li>
<li>System administration <!-- raw HTML omitted -->(As a dev, not a real sysadmin)<!-- raw HTML omitted -->
<ul>
<li>Kubernetes</li>
<li>Proxmox</li>
<li>Raspbery Pi &amp; Arduino</li>
</ul>
</li>
</ul>
<p>Technical posts will be in english most of the time, and it is unlikely I will translate them without some one asking me
specifically.</p>
<h4 id="quicks">Quicks</h4>
<p>I also with to use this blog as a relay to my social media shares.
I&rsquo;m on <a href="https://twitter.com/ztec6/">Twitter - @ztec6</a> and <a href="https://mamot.fr/web/accounts/23814">Mastodon - @ztec@mamot.fr</a> (well, twitter mostly)</p>
<p>When I wish to comment an article I read I will publish it on the blog as a Quick. They will not be visible except via
their tags.</p>
<p>Quicks will be published to Twitter, and maybe Mamot too. I &ldquo;Just&rdquo; need to write a script that do that automatically.
I&rsquo;m too lazy to do it manually.</p>
<p>I&rsquo;ll be like public bookmarks.Like <a href="https://github.com/shaarli/Shaarli">Shaarli</a> for those who knows.</p>
<h3 id="the-blog">The blog</h3>
<p>I built this blog simply. No php, no devs to make it run. I used a static site generator called  <a href="https://gohugo.io/">Hugo</a>.</p>
<p>Sources are available on Github: <a href="https://github.com/ztec/blog/">https://github.com/ztec/blog/</a></p>
<p>I used the default hugo theme to build my onw. I&rsquo;m not 100% satisfied of the result, and the blog&rsquo;s visual will
definitely evolve a lot in futur.</p>
<p>Message to actual CSS developers :</p>
<blockquote>
<p>NO DO NOT LOOK AT HTML CODE &#x1f64f;</p>
</blockquote>
<h4 id="accessibility">Accessibility</h4>
<p>Even if I did not performed thorough tests, accessibility was important during the design.
For example, contrast, font size, and <a href="https://en.wikipedia.org/wiki/Screen_reader">screen reader</a> compatibility try to be good or best it can be.
I will probably write a blog post about that when I feel I reached the quality standard I have.</p>
<p>As I do not have reading disability, I&rsquo;m not in position to evaluate accessibility for real. I would be really happy if someone,
one day, give me feedbacks on this matter. Good, or manyly bad. If some thing is not accessible, it <strong>must</strong> become accessible, and I will to do my best for that.</p>
<h4 id="hosting">Hosting</h4>
<p>This blog is hosted on a server on top of my fridge. Probability I host it somewhere else is high.
In the meantime, it may be offline from time to time. I do not wish to put pressure on me about it&rsquo;s availability.
My server availability is high enough for me right now.</p>
<h3 id="conclusion">Conclusion</h3>
<p>This post is way longer than I anticipated first. Predominately after translating it &#x1f602;.
It helped me a lot clarifying my motivations and what I plan. Obviously, the futur is an unknown place, for now, and a lot
will change. I want this blog to be alive and a good representation of myself. It will evolve with me, I hope.</p>
<p>Thanks reading me,<br>
<a href="/en/page/bisoux/">Bisoux</a> &#x1f617;</p>
]]></description></item></channel></rss>