<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Thoughts</title>
    <link>https://blog.luismarques.me/</link>
    <description>How&#39;s this for a description?</description>
    <pubDate>Wed, 16 Sep 2026 02:40:43 +0200</pubDate>
    <item>
      <title>Experimenting with local LLMs</title>
      <link>https://blog.luismarques.me/experimenting-with-local-llms</link>
      <description>&lt;![CDATA[!-- This post has been review by Qwen3.8:27B --&#xA;&#xA;Can I run GenAI LLM models on local hardware, and if yes, at what cost? I had been asking myself this question for a long time, and thanks to a friend who kindly lent me an Asus Ascent GX10 machine, I was able to set up a more serious software stack compared to what I had on my personal computer.&#xA;&#xA;!--more--&#xA;&#xA;The reasons one might want to run an LLM model locally are numerous: no subscription, models can be changed easily thanks to Ollama, data remains private, etc. Thanks to the open source community, you can pretty much do everything you do with online providers, but with a local model on your machine. I identified only two drawbacks. First, you need some skills to set up the network if you want to deploy your models on a different machine than the one you work on; and second, the size of models you can run is greatly limited by the amount of RAM on your machine.&#xA;&#xA;On the latter point, the GX10 features a unified memory between CPU and GPU of 128 GB, which allows me to run models with around 120 billion parameters. However, I found that generation speed is only acceptable for models with less than 35 billion active parameters, regardless of whether they are dense or Mixture of Experts (MoE).&#xA;&#xA;When I first started testing, I had a list of many models I wanted to try, but in the end, I kept only a few for experimentation:&#xA;Qwen3.5:27B dense model.&#xA;Qwen3.5:122B A10B MoE model.&#xA;GLM-4.7-Flash, which is a 30B A3B MoE model.&#xA;&#xA;The objective was to deploy models as intelligent as Sonnet 4.6, and according to artificialanalysis.ai, no model that fits in the GX10 is as intelligent as Sonnet 4.6.&#xA;&#xA;Note: It seems that the recently released Qwen3.8:27B model is similarly intelligent to Sonnet 4.6, although it&#39;s far from the latest Sonnet 5.&#xA;&#xA;I ran a series of numeric tests, but I found that the numbers don&#39;t really yield meaningful insights. The most important metric is the number of tokens generated per second. This depends on the model and can go anywhere from 10 tokens/sec to 80 tokens/sec. Qwen3.5:27B averaged 12 tokens/sec and Qwen3.5:122B A10B averaged 24 tokens/sec. For a full message, expect somewhere between 30 seconds and a few minutes depending on the input.&#xA;&#xA;I then conducted some conversational testing, although I can only evaluate based on my interpretation of the output messages.&#xA;&#xA;From the three models tested, GLM-4.7-Flash was by far the worst, as it seemed to produce a great deal of hallucinated content. The only difference I saw between the two Qwen models was how each model asked questions to better understand what the user wanted. Qwen3.5:27B seemed closer to discussion, outputting only dry responses, whereas Qwen3.5:122B A10B asked many questions to keep the conversation going.&#xA;&#xA;As for source code, I tried creating two pieces of software, although I must admit those would also be difficult for humans: a Zotero plugin, and a Joplin plugin. Paired with OpenCode, none of the tested models managed to produce a working first version of those plugins. Sonnet 4.6 managed to produce the Zotero one, though it too fell short on the Joplin one.&#xA;&#xA;The main takeaway from these tests is that running LLMs locally takes a lot of time. I find it suitable for conversations where taking a few minutes to answer isn&#39;t an issue, but it borders on unusability for tasks such as coding (or vibe coding, as the youngsters call it).&#xA;&#xA;On the price side, I made a simple pessimistic estimate. As for upfront costs, the machine costs at most 4,000 EUR. On the operating costs, the included power supply delivers up to 240 W. This means the machine consumes at most 5.76 kWh per day. At 0.30 EUR per kWh, a pessimistic value in France, this means a cost of at most 1.73 EUR per day, or 52 EUR per month.&#xA;&#xA;With the obvious advantage that there&#39;s no usage limit, the investment may be worth it once you exceed the usage limits of the common 20 EUR subscriptions of popular online providers. The main drawback of this is that less and less open-weight models seem to be released nowadays, but given that Qwen3.8 has recently been released, the local-running LLM adventure might not be dead yet.&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[

<p>Can I run GenAI LLM models on local hardware, and if yes, at what cost? I had been asking myself this question for a long time, and thanks to a friend who kindly lent me an Asus Ascent GX10 machine, I was able to set up a more serious software stack compared to what I had on my personal computer.</p>



<p>The reasons one might want to run an LLM model locally are numerous: no subscription, models can be changed easily thanks to Ollama, data remains private, etc. Thanks to the open source community, you can pretty much do everything you do with online providers, but with a local model on your machine. I identified only two drawbacks. First, you need some skills to set up the network if you want to deploy your models on a different machine than the one you work on; and second, the size of models you can run is greatly limited by the amount of RAM on your machine.</p>

<p>On the latter point, the GX10 features a unified memory between CPU and GPU of 128 GB, which allows me to run models with around 120 billion parameters. However, I found that generation speed is only acceptable for models with less than 35 billion active parameters, regardless of whether they are dense or Mixture of Experts (MoE).</p>

<p>When I first started testing, I had a list of many models I wanted to try, but in the end, I kept only a few for experimentation:
– Qwen3.5:27B dense model.
– Qwen3.5:122B A10B MoE model.
– GLM-4.7-Flash, which is a 30B A3B MoE model.</p>

<p>The objective was to deploy models as intelligent as Sonnet 4.6, and according to <a href="artificialanalysis.ai">artificialanalysis.ai</a>, no model that fits in the GX10 is as intelligent as Sonnet 4.6.</p>

<p><strong>Note:</strong> It seems that the recently released Qwen3.8:27B model is similarly intelligent to Sonnet 4.6, although it&#39;s far from the latest Sonnet 5.</p>

<p>I ran a series of numeric tests, but I found that the numbers don&#39;t really yield meaningful insights. The most important metric is the number of tokens generated per second. This depends on the model and can go anywhere from 10 tokens/sec to 80 tokens/sec. Qwen3.5:27B averaged 12 tokens/sec and Qwen3.5:122B A10B averaged 24 tokens/sec. For a full message, expect somewhere between 30 seconds and a few minutes depending on the input.</p>

<p>I then conducted some conversational testing, although I can only evaluate based on my interpretation of the output messages.</p>

<p>From the three models tested, GLM-4.7-Flash was by far the worst, as it seemed to produce a great deal of hallucinated content. The only difference I saw between the two Qwen models was how each model asked questions to better understand what the user wanted. Qwen3.5:27B seemed closer to discussion, outputting only dry responses, whereas Qwen3.5:122B A10B asked many questions to keep the conversation going.</p>

<p>As for source code, I tried creating two pieces of software, although I must admit those would also be difficult for humans: a Zotero plugin, and a Joplin plugin. Paired with OpenCode, none of the tested models managed to produce a working first version of those plugins. Sonnet 4.6 managed to produce the Zotero one, though it too fell short on the Joplin one.</p>

<p>The <strong>main takeaway</strong> from these tests is that running LLMs locally takes a lot of time. I find it suitable for conversations where taking a few minutes to answer isn&#39;t an issue, but it borders on unusability for tasks such as coding (or vibe coding, as the youngsters call it).</p>

<p>On the price side, I made a simple <strong>pessimistic estimate</strong>. As for upfront costs, the machine costs at most 4,000 EUR. On the operating costs, the included power supply delivers up to 240 W. This means the machine consumes at most 5.76 kWh per day. At 0.30 EUR per kWh, a pessimistic value in France, this means a cost of at most 1.73 EUR per day, or 52 EUR per month.</p>

<p>With the obvious advantage that there&#39;s no usage limit, the investment may be worth it once you exceed the usage limits of the common 20 EUR subscriptions of popular online providers. The main drawback of this is that less and less open-weight models seem to be released nowadays, but given that Qwen3.8 has recently been released, the local-running LLM adventure might not be dead yet.</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/experimenting-with-local-llms</guid>
      <pubDate>Sat, 12 Sep 2026 07:26:01 +0000</pubDate>
    </item>
    <item>
      <title>The Spotlight of August: Bon Pote</title>
      <link>https://blog.luismarques.me/the-spotlight-of-august-bon-pote</link>
      <description>&lt;![CDATA[!-- This article has been reviewed by Qwen3.5:4b --&#xA;&#xA;What proportion of urban noise stems from transport? For some time now, I have wanted to do an article on this topic, in the spirit of articles of Our World In Data.&#xA;&#xA;But Bon Pote recently published an article remarkably close to the article I had in mind, so, instead of writing my own piece, I&#39;m spotlighting their work.&#xA;&#xA;!--more--&#xA;&#xA;Bon Pote is a French independent journalism website funded entirely by its readers. It also offers an English version for non-French readers, although it doesn&#39;t cover the same articles. Their focus spans climate change and biodiversity collapse, and they always try to strengthen their claims as much as possible by using credible, peer-reviewed resources, thus providing strongly-backed articles.&#xA;&#xA;All articles are public, free, of great quality, and with a computer-generated audio version for most of them. I recommend starting the discovery with two pieces from Sophie Kloetzli: Cars, planes, motorcycles… How noise is slowly killing us (French) and Ban on social media for under-15s: the end of online anonymity? (French). I don&#39;t think English versions by the author exist, but you can always translate the whole page with your browser.&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[

<p>What proportion of urban noise stems from transport? For some time now, I have wanted to do an article on this topic, in the spirit of articles of Our World In Data.</p>

<p>But <a href="https://bonpote.com/">Bon Pote</a> recently published an <a href="https://bonpote.com/voitures-avions-motos-comment-le-bruit-nous-tue-a-petit-feu/">article</a> remarkably close to the article I had in mind, so, instead of writing my own piece, I&#39;m spotlighting their work.</p>



<p>Bon Pote is a French independent journalism website funded entirely by its readers. It also offers an English version for non-French readers, although it doesn&#39;t cover the same articles. Their focus spans climate change and biodiversity collapse, and they always try to strengthen their claims as much as possible by using credible, peer-reviewed resources, thus providing strongly-backed articles.</p>

<p>All articles are public, free, of great quality, and with a computer-generated audio version for most of them. I recommend starting the discovery with two pieces from <a href="https://bonpote.com/auteurs/sophie-kloetzli/">Sophie Kloetzli</a>: <a href="https://bonpote.com/voitures-avions-motos-comment-le-bruit-nous-tue-a-petit-feu/"><em>Cars, planes, motorcycles… How noise is slowly killing us (French)</em></a> and <a href="https://bonpote.com/interdiction-des-reseaux-sociaux-aux-moins-de-15-ans-la-fin-de-lanonymat-en-ligne/"><em>Ban on social media for under-15s: the end of online anonymity? (French)</em></a>. I don&#39;t think English versions by the author exist, but you can always translate the whole page with your browser.</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/the-spotlight-of-august-bon-pote</guid>
      <pubDate>Sat, 29 Aug 2026 04:00:00 +0000</pubDate>
    </item>
    <item>
      <title>The Spotlight of July: &#34;Atomic Habits&#34; by James Clear</title>
      <link>https://blog.luismarques.me/the-spotlight-of-july-atomic-habits-by-james-clear</link>
      <description>&lt;![CDATA[!-- This post was review by Qwen3.6:35BA10B and Qwen3.8:27B --&#xA;&#xA;Welcome to the Spotlight series, a new series where I share with you one resource that I discovered recently and found particularly valuable, for instance a book, a video, a blog post, an author, or another medium that I find worth your time.&#xA;&#xA;In this month of July, I want to share with you a book that a dear friend lent me: Atomic Habits by James Clear. I know it&#39;s not an original recommendation and you often see this book recommended in many places, but perhaps my insights will be original enough to be worth your time.&#xA;&#xA;!--more--&#xA;&#xA;My initial impression of this book was that it worked by exploiting the placebo effect, but, as we left the introductory chapters to enter the more practical chapters, the book presented many methods to actually improve one&#39;s habits.&#xA;&#xA;Note: If you&#39;re like me and like your readings to be scientifically sourced, you may find that this book does not have many sources cited in the text. However, there is a long list of sources at the end of the book decomposed by chapter, which you can use along your reading of the book.&#xA;&#xA;The first chapters describe the theory behind habits, and although one can find them trivial, I think the identity part is very important due to the mental shift it induces on the reader, even though it boils down to pure self-motivation. They also explain the decomposition of habits into 4 steps, i.e., cue, craving, response, and reward.&#xA;&#xA;On the more practical side, the first step to integrate a new habit into our lifestyle is to make it obvious. For this, the author recommends maintaining a habit scorecard with all your habits, and stacking new habits with old ones, something he calls habit stacking. I found that, out of the 4 methods given in the book, this is the most impactful. Except for very rare and erratic holidays, I have not failed to execute the new habits I want to integrate in my routine. On this topic, I advise limiting to two new forming habits at a time until they become automatic, which can take up to 90 days.&#xA;&#xA;Another action the author advises to make the habit obvious is to prime your environment, as &#34;motivation is overrated&#34;. The author mainly talks about the physical environment, such as your office or your house, but I suppose that this can also work for your digital environment.&#xA;&#xA;My experience on the environment change is that changing my digital environment had a more meaningful impact than changing my physical environment. I mainly work on my computer, so having my projects and tasklists better organized should have a stronger impact than organizing the physical office I more rarely interact with.&#xA;&#xA;The second step to construct a new habit is to make it attractive. The main action to do this is called temptation bundling. As Mr. Clear says, the strategy is to do the thing you need to do first, then reward yourself with the thing you want to do.&#xA;&#xA;I haven&#39;t particularly tested this step, as the new habits I am constructing integrate well with the habit stacking method, and so I don&#39;t have any particular feedback on the temptation bundling method for now.&#xA;&#xA;The third step, make it easy, is for me the less useful one, or is at least one I don&#39;t really resonate with. The main takeaways I got from this part is that repetition and reduced friction make actions easier, which in turn make picking up new habits much easier.&#xA;&#xA;The last step is to make it satisfying. In this part, Mr. Clear mainly talks about how to ensure you keep a habit streak by suggesting having a habit tracker  and having an accountability partner. &#xA;&#xA;For the habit tracker, I cannot explain it better than Mr. Clear himself. As he says, &#34;habit tracking (1) creates a visual cue that can remind you to act, (2) is inherently motivating because you see the progress you are making and don’t want to lose it, and (3) feels satisfying whenever you record another successful instance of your habit.&#34;&#xA;&#xA;An accountability partner is someone with whom you write a habit contract. You promise to execute the habit, and have to do something in return if you do not execute it, such as giving money to the accountability partner for instance. The strategy is to create an immediate cost to not perform a certain habit. To be honest, I&#39;m not a fan of this punishment method at all. However, in the absence of the punishment, an accountability partner can still be useful, especially if it improves your social relationships.&#xA;&#xA;I&#39;ve written about the four major steps to construct new habits, but throughout the book, Mr. Clear also speaks about how to use the opposite of those steps to remove bad habits. I find the opposite of the third step particularly useful, i.e., making a habit difficult to perform greatly reduces the number of times you do it.&#xA;&#xA;Finally, the last part of the book talks about &#34;advanced tactics&#34; to &#34;go from merely good to being truly great&#34;, and is decomposed in three chapters. I suggest skipping Chapter 18, as I find it to be a defeatist perspective on genetics and &#34;born&#34; talent, although it still has some positive messages. Chapter 19 is a particularly good read on how to deal with the boredom of repeating habits. Chapter 20, the last of the book, enlightens the reader on habit mastery brought by the integration of automated habits and deliberate practice of even the smallest friction points.&#xA;&#xA;Overall, I find Atomic Habits to be a great book, and I recommend it to people who want or need a more methodical lifestyle.&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[

<p>Welcome to the Spotlight series, a new series where I share with you one resource that I discovered recently and found particularly valuable, for instance a book, a video, a blog post, an author, or another medium that I find worth your time.</p>

<p>In this month of July, I want to share with you a book that a dear friend lent me: <em>Atomic Habits</em> by James Clear. I know it&#39;s not an original recommendation and you often see this book recommended in many places, but perhaps my insights will be original enough to be worth your time.</p>



<p>My initial impression of this book was that it worked by exploiting the <a href="https://en.wikipedia.org/wiki/Placebo">placebo effect</a>, but, as we left the introductory chapters to enter the more practical chapters, the book presented many methods to actually improve one&#39;s habits.</p>

<p><strong>Note:</strong> If you&#39;re like me and like your readings to be scientifically sourced, you may find that this book does not have many sources cited in the text. However, there is a long list of sources at the end of the book decomposed by chapter, which you can use along your reading of the book.</p>

<p>The first chapters describe the theory behind habits, and although one can find them trivial, I think the identity part is very important due to the mental shift it induces on the reader, even though it boils down to pure self-motivation. They also explain the decomposition of habits into 4 steps, i.e., cue, craving, response, and reward.</p>

<p>On the more practical side, the first step to integrate a new habit into our lifestyle is to <em>make it obvious</em>. For this, the author recommends maintaining a habit scorecard with all your habits, and stacking new habits with old ones, something he calls <em>habit stacking</em>. I found that, out of the 4 methods given in the book, this is the most impactful. Except for very rare and erratic holidays, I have not failed to execute the new habits I want to integrate in my routine. On this topic, I advise limiting to two new forming habits at a time until they become automatic, which can take up to 90 days.</p>

<p>Another action the author advises to make the habit obvious is to prime your environment, as “motivation is overrated”. The author mainly talks about the <em>physical</em> environment, such as your office or your house, but I suppose that this can also work for your <em>digital</em> environment.</p>

<p>My experience on the environment change is that changing my digital environment had a more meaningful impact than changing my physical environment. I mainly work on my computer, so having my projects and tasklists better organized should have a stronger impact than organizing the physical office I more rarely interact with.</p>

<p>The second step to construct a new habit is to make it attractive. The main action to do this is called <em>temptation bundling</em>. As Mr. Clear says, the strategy is to do the thing you <em>need</em> to do first, then reward yourself with the thing you <em>want</em> to do.</p>

<p>I haven&#39;t particularly tested this step, as the new habits I am constructing integrate well with the habit stacking method, and so I don&#39;t have any particular feedback on the temptation bundling method for now.</p>

<p>The third step, <em>make it easy</em>, is for me the less useful one, or is at least one I don&#39;t really resonate with. The main takeaways I got from this part is that repetition and reduced friction make actions easier, which in turn make picking up new habits much easier.</p>

<p>The last step is to <em>make it satisfying</em>. In this part, Mr. Clear mainly talks about how to ensure you keep a habit streak by suggesting having a <em>habit tracker</em>  and having an <em>accountability partner</em>.</p>

<p>For the habit tracker, I cannot explain it better than Mr. Clear himself. As he says, “habit tracking (1) creates a visual cue that can remind you to act, (2) is inherently motivating because you see the progress you are making and don’t want to lose it, and (3) feels satisfying whenever you record another successful instance of your habit.”</p>

<p>An accountability partner is someone with whom you write a <em>habit contract</em>. You promise to execute the habit, and have to do something in return if you do not execute it, such as giving money to the accountability partner for instance. The strategy is to create an immediate cost to not perform a certain habit. To be honest, I&#39;m not a fan of this punishment method at all. However, in the absence of the punishment, an accountability partner can still be useful, especially if it improves your social relationships.</p>

<p>I&#39;ve written about the four major steps to construct new habits, but throughout the book, Mr. Clear also speaks about how to use the opposite of those steps to <em>remove</em> bad habits. I find the opposite of the third step particularly useful, i.e., making a habit difficult to perform greatly reduces the number of times you do it.</p>

<p>Finally, the last part of the book talks about “advanced tactics” to “go from merely good to being truly great”, and is decomposed in three chapters. I suggest skipping Chapter 18, as I find it to be a defeatist perspective on genetics and “born” talent, although it still has some positive messages. Chapter 19 is a particularly good read on how to deal with the boredom of repeating habits. Chapter 20, the last of the book, enlightens the reader on habit mastery brought by the integration of automated habits and deliberate practice of even the smallest friction points.</p>

<p>Overall, I find Atomic Habits to be a great book, and I recommend it to people who want or need a more methodical lifestyle.</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/the-spotlight-of-july-atomic-habits-by-james-clear</guid>
      <pubDate>Sat, 22 Aug 2026 09:05:11 +0000</pubDate>
    </item>
    <item>
      <title>My journey at KEDGE Business School</title>
      <link>https://blog.luismarques.me/my-journey-at-kedge-business-school</link>
      <description>&lt;![CDATA[  This post has been brought to you by the &#34;How&#39;s this for a work review?&#34; department.&#xA;&#xA;Can mathematical optimisation bridge the gap between last-mile logistics and sustainability? In two months, my contract with KEDGE Business School will be ending, finalising a postdoctoral research of one year in the ConStanCE project. The acronym means, in French, &#34;Contenants Standards pour une Cyclologistique Efficace&#34;.&#xA;&#xA;The subject of the project is the encapsulation of parcels in medium-sized containers for a more efficient modal shift between traditional last-mile logistics and cyclologistics.&#xA;&#xA;!--more--&#xA;&#xA;Prior to this postdoc, I had never worked in the domain of the supply chain.&#xA;&#xA;Chapter 1: The Discovery&#xA;&#xA;The discovery was quite the challenge, considering I had no real experience with supply chain problems, my main experiences were on more academic problems, and I still had my Ph.D. defense to prepare.&#xA;&#xA;Nonetheless, I think my transition was quite smooth. I quickly learned what the research was about and integrated well in this multiactor project.&#xA;&#xA;The team, CESIT, was nice, and the school building felt really modern compared to the old buildings of the University of Bordeaux.&#xA;&#xA;Chapter 2: The Work&#xA;&#xA;The work was the most difficult part. We were interested in computing, for each studied city, the optimal container capacity, measured in number of parcels, and the corresponding optimal territory design.&#xA;&#xA;Mathematical models&#xA;&#xA;Difficulties concerning this problem included the huge number of clients in the partner LSP&#39;s historical data, and thus how to model routing decisions, which are inherently operational decision, into a strategic decision model. We could either use routing algorithms from the literature and wait two millenia for the solution, or approximate the traveling costs via continuous approximations, methods based on demand density instead of accurate customer locations.&#xA;&#xA;We chose the second solution, which gave us a quite small model containing only the container capacity selection constraints, the territory design assignment and contiguity constraints, and some other constraints related to the computation of the objective function.&#xA;&#xA;However, this doesn&#39;t mean the problem was easy to solve. In fact, the continuous approximations and some other components of the objective function were non-linear and non-convex / non-concave. At first, I designed some ad-hoc primal and dual heuristic algorithms for the problem to obtain an initial feasible solution and an optimistic value for the objective function.&#xA;&#xA;My objective was to use those heuristic algorithms to warm start exact solvers, and that&#39;s were the struggle started. To be honest, SCIP is bad. It crashed on even the simplest instances, and struggle to progress even with a time limit of one hour.&#xA;&#xA;At the ROADEF conference in February 2026, Artelys told me to try Artelys Knitro, their in-house solver for non-linear programming. While it avoided crashes, results were only slightly better.&#xA;&#xA;The breakthrough came when I managed to implement the model using Gurobi, something I had previously failed because, for some reason, it doesn&#39;t allow square roots in the objective but it allows a variable v and a constraint v = equation with square roots. Gurobi was able to greatly improve the initial solution in a minute. However, from the first minute to the one hour time limit, it didn&#39;t do anything more. Aside from the simplest instances, it never improved the dual bound at all.&#xA;&#xA;Note: A Gurobi webinar highlighted that fixing an initial dual bound via a obj   = z constraint disrupts the variable selection algorithms. Although we didn&#39;t really confirm this was the reason, we confirmed that the added constraints did not help the solver.&#xA;&#xA;Cartography tools&#xA;&#xA;I also made a lot of cartography tools using MapBox, but I&#39;m not sure I can display images about those, so I will leave this section for private discussions.&#xA;&#xA;Synthesis and Reports&#xA;&#xA;Finally, one of my favorite parts was writing the feedback reports to the ADEME, the French agency for ecological transition, because this part felt like the conclusion of the different blocks of tasks of the project. So I wrote, a lot, about different subjects:&#xA;&#xA;Synthesis of current practices of encapsulation for cyclologistics.&#xA;Overview of container management and mutualisation questions for a system with multiple stakeholders.&#xA;Technical report and case study on the capacity sizing and territory designs we developed.&#xA;&#xA;All of those documents will be repackaged into a final report publicly available at the end of 2026. I will update this post once it&#39;s online!&#xA;&#xA;Chapter 3: The Future&#xA;&#xA;At the end of this project, I believed less in the potential of cyclologistics. While they offer clea environmental and social benefits in dense urban areas, their scalability is constrained by cargo bike capacities, human operational cycles, and geographic sparsity.&#xA;&#xA;In contrast, I now believe deliveries by autonomous vehicles during nighttime is the better solution, especially with the rising numbers of parcel lockers, which solve the problem of customers being present for the delivery.&#xA;&#xA;Although we already have very promising leads on autonomous vehicles of different sizes for this, the main bottlenecks are regulatory frameworks for sidewalks and multi-agent automatic synchronisation tools.&#xA;&#xA;Key takeaway: I’ll be launching my independent research &amp; optimization consultancy in October 2026. I’m particularly focused on autonomous last-mile logistics, network design, and large-scale mathematical programming, but remain open to projects in sustainable supply chains, operations research, or academic collaborations. Reach out at luismarques@luismarques.me.&#xA;&#xA;Bonus: During this project I presented at two different conferences, ROADEF 2026 and IPIC 2026. I don&#39;t have much to say about these, but if you&#39;re interested, I can provide you with the submitted abstracts and slides on demand.&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<blockquote><p>This post has been brought to you by the “How&#39;s this for a work review?” department.</p></blockquote>

<p>Can mathematical optimisation bridge the gap between last-mile logistics and sustainability? In two months, my contract with KEDGE Business School will be ending, finalising a postdoctoral research of one year in the ConStanCE project. The acronym means, in French, “Contenants Standards pour une Cyclologistique Efficace”.</p>

<p>The subject of the project is the encapsulation of parcels in medium-sized containers for a more efficient modal shift between traditional last-mile logistics and cyclologistics.</p>



<p>Prior to this postdoc, I had never worked in the domain of the supply chain.</p>

<h2 id="chapter-1-the-discovery">Chapter 1: The Discovery</h2>

<p>The discovery was quite the challenge, considering I had no real experience with supply chain problems, my main experiences were on more academic problems, and I still had my Ph.D. defense to prepare.</p>

<p>Nonetheless, I think my transition was quite smooth. I quickly learned what the research was about and integrated well in this multiactor project.</p>

<p>The team, CESIT, was nice, and the school building felt really modern compared to the old buildings of the University of Bordeaux.</p>

<h2 id="chapter-2-the-work">Chapter 2: The Work</h2>

<p>The work was the most difficult part. We were interested in computing, for each studied city, the optimal container capacity, measured in number of parcels, and the corresponding optimal territory design.</p>

<h3 id="mathematical-models">Mathematical models</h3>

<p>Difficulties concerning this problem included the <strong>huge</strong> number of clients in the partner LSP&#39;s historical data, and thus how to model routing decisions, which are inherently operational decision, into a strategic decision model. We could either use routing algorithms from the literature and wait two millenia for the solution, or approximate the traveling costs via <em>continuous approximations</em>, methods based on demand density instead of accurate customer locations.</p>

<p>We chose the second solution, which gave us a quite small model containing only the container capacity selection constraints, the territory design assignment and contiguity constraints, and some other constraints related to the computation of the objective function.</p>

<p>However, this doesn&#39;t mean the problem was easy to solve. In fact, the continuous approximations and some other components of the objective function were non-linear and non-convex / non-concave. At first, I designed some ad-hoc primal and dual heuristic algorithms for the problem to obtain an initial feasible solution and an optimistic value for the objective function.</p>

<p>My objective was to use those heuristic algorithms to warm start exact solvers, and that&#39;s were the struggle started. To be honest, SCIP is bad. It crashed on even the simplest instances, and struggle to progress even with a time limit of one hour.</p>

<p>At the ROADEF conference in February 2026, Artelys told me to try Artelys Knitro, their in-house solver for non-linear programming. While it avoided crashes, results were only slightly better.</p>

<p>The breakthrough came when I managed to implement the model using Gurobi, something I had previously failed because, for some reason, it doesn&#39;t allow square roots in the objective but it allows a variable <code>v</code> and a constraint <code>v = equation with square roots</code>. Gurobi was able to greatly improve the initial solution in a minute. However, from the first minute to the one hour time limit, it didn&#39;t do anything more. Aside from the simplest instances, it never improved the dual bound at all.</p>

<p><strong>Note:</strong> A Gurobi webinar highlighted that fixing an initial dual bound via a <code>obj &gt;= z</code> constraint disrupts the variable selection algorithms. Although we didn&#39;t really confirm this was the reason, we confirmed that the added constraints did not help the solver.</p>

<h3 id="cartography-tools">Cartography tools</h3>

<p>I also made a lot of cartography tools using MapBox, but I&#39;m not sure I can display images about those, so I will leave this section for private discussions.</p>

<h3 id="synthesis-and-reports">Synthesis and Reports</h3>

<p>Finally, one of my favorite parts was writing the feedback reports to the <a href="https://www.ademe.fr/en/frontpage/">ADEME</a>, the French agency for ecological transition, because this part felt like the conclusion of the different blocks of tasks of the project. So I wrote, a lot, about different subjects:</p>
<ul><li>Synthesis of current practices of encapsulation for cyclologistics.</li>
<li>Overview of container management and mutualisation questions for a system with multiple stakeholders.</li>
<li>Technical report and case study on the capacity sizing and territory designs we developed.</li></ul>

<p>All of those documents will be repackaged into a final report publicly available at the end of 2026. I will update this post once it&#39;s online!</p>

<h2 id="chapter-3-the-future">Chapter 3: The Future</h2>

<p>At the end of this project, I believed less in the potential of cyclologistics. While they offer clea environmental and social benefits in dense urban areas, their scalability is constrained by cargo bike capacities, human operational cycles, and geographic sparsity.</p>

<p>In contrast, I now believe deliveries by autonomous vehicles during nighttime is the better solution, especially with the rising numbers of parcel lockers, which solve the problem of customers being present for the delivery.</p>

<p>Although we already have very promising leads on autonomous vehicles of different sizes for this, the main bottlenecks are regulatory frameworks for sidewalks and multi-agent automatic synchronisation tools.</p>

<p><strong>Key takeaway:</strong> I’ll be launching my independent research &amp; optimization consultancy in October 2026. I’m particularly focused on autonomous last-mile logistics, network design, and large-scale mathematical programming, but remain open to projects in sustainable supply chains, operations research, or academic collaborations. Reach out at <a href="mailto:luismarques@luismarques.me">luismarques@luismarques.me</a>.</p>

<p><strong>Bonus:</strong> During this project I presented at two different conferences, ROADEF 2026 and IPIC 2026. I don&#39;t have much to say about these, but if you&#39;re interested, I can provide you with the submitted abstracts and slides on demand.</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/my-journey-at-kedge-business-school</guid>
      <pubDate>Sat, 08 Aug 2026 07:05:04 +0000</pubDate>
    </item>
    <item>
      <title>My first financial donations</title>
      <link>https://blog.luismarques.me/my-first-financial-donations</link>
      <description>&lt;![CDATA[I live in Bordeaux, in a region that was recently struck by wildfires. The fire didn&#39;t get to the city center, but the news coverage, the scale of the fires, the work of the firefighters, the number of relief shelters and volunteers finally inspired me to do something I had my mind on for a while: giving money to charity.&#xA;&#xA;And so I set up a monthly to donation to the French firefighters association, Oeuvre des Pupilles.&#xA;&#xA;!--more--&#xA;&#xA;Donating to charity, and also to open source projects in particular, is something that had been on my mind for years. In fact, I&#39;ve long believed that if more people adopted this business model, we could have a more robust open source ecosystem, and thus a safer and better world. However, I must admit that, deep ddown until this point, I still considered it as giving money away &#34;for nothing&#34;. Donating to the firefighters&#39; association was the breakthrough I needed.&#xA;&#xA;I&#39;ve since set up additional monthly donations to several projects that I find important and interesting: Joplin, KeePassXC, OrganicMaps, and OurWorldInData. In total, I am donating around 40 EUR per month. I call this contributing financial power, but I also contribute brain power (reporting issues, participating in discussions, writing code, etc.) and CPU power (running background tasks on idle devices like my computer when I&#39;m away or my home server). All details are available on my new &#34;Beyond billable hours&#34; page on my website.&#xA;&#xA;The main takeaway of this post is simple: I believe in an open source world where projects can be sustained through voluntary support, and I believe in a world where everyone benefits from those projects regardless of their ability to contribute or finance them. Last words are: small contributions can make a big difference in the life of an open source project, so if you have the means, please support your favorite projects to allow them to live longer.&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<p>I live in Bordeaux, in a region that was recently struck by wildfires. The fire didn&#39;t get to the city center, but the news coverage, the scale of the fires, the work of the firefighters, the number of relief shelters and volunteers finally inspired me to do something I had my mind on for a while: giving money to charity.</p>

<p>And so I set up a monthly to donation to the French firefighters association, <strong><a href="https://www.pompiers.fr/oeuvre-des-pupilles/">Oeuvre des Pupilles</a></strong>.</p>



<p>Donating to charity, and also to open source projects in particular, is something that had been on my mind for years. In fact, I&#39;ve long believed that if more people adopted this business model, we could have a more robust open source ecosystem, and thus a safer and better world. However, I must admit that, deep ddown until this point, I still considered it as giving money away “for nothing”. Donating to the firefighters&#39; association was the breakthrough I needed.</p>

<p>I&#39;ve since set up additional monthly donations to several projects that I find important and interesting: Joplin, KeePassXC, OrganicMaps, and OurWorldInData. In total, I am donating around 40 EUR per month. I call this <em>contributing financial power</em>, but I also contribute <em>brain power</em> (reporting issues, participating in discussions, writing code, etc.) and <em>CPU power</em> (running background tasks on idle devices like my computer when I&#39;m away or my home server). All details are available on my new <a href="https://luismarques.me/beyond.html">“Beyond billable hours”</a> page on my website.</p>

<p>The <strong>main takeaway</strong> of this post is simple: I believe in an open source world where projects can be sustained through voluntary support, and I believe in a world where everyone benefits from those projects regardless of their ability to contribute or finance them. Last words are: small contributions can make a big difference in the life of an open source project, so if you have the means, please support your favorite projects to allow them to live longer.</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/my-first-financial-donations</guid>
      <pubDate>Sat, 01 Aug 2026 08:04:45 +0000</pubDate>
    </item>
    <item>
      <title>The battle with music RSS</title>
      <link>https://blog.luismarques.me/the-battle-with-music-rss</link>
      <description>&lt;![CDATA[  This post has been brought to you by the “How&#39;s this for an open-source software review?” department.&#xA;&#xA;A few weeks ago, I had another go at sorting my musical library. My workflow for this is quite simple: download the music files, change metadata with MusicBrainz Picard, and use a homemade script to organize musics based on metadata. Playlist management was made using the Strawberry music player.&#xA;&#xA;!--more--&#xA;&#xA;Note: I have now set up MusicBrainz Picard to organize my library automatically, instead of using my homemade script. I don&#39;t know if this is a recent feature, but I don&#39;t remember Picard being able to do this before.&#xA;&#xA;Although I&#39;m quite happy with this workflow, there&#39;s a major problem that comes before the download step: I don&#39;t have a way to track new releases!&#xA;&#xA;You&#39;re starting to know me, I&#39;m a big fan of RSS feeds, and a big hater of having an uncountable number of accounts on non-open source websites. However, the most popular and complete services, i.e., Spotify and Deezer, do not provide RSS feeds, and creating an account for this purpose is completely out of question.&#xA;&#xA;I could always use YouTube channel feeds, but artists don&#39;t publish all their songs on YouTube, and albums are usually not categorized as releases either, so how can we use RSS (or other open-source software) to get new music releases?&#xA;&#xA;Well, the answer I&#39;ve found is &#34;nothing much&#34;. There exist a few promising solutions, but they either not work or feel really clunky.&#xA;&#xA;First of all, related to MusicBrainz, there is ListenBrainz. It seems to contain the newest releases per artist, but I didn&#39;t find a way to follow each artist independently.&#xA;&#xA;Second, I found a piece of software named Lidarr. Although it seemed good at first, I quickly hit configuration problems because the software is largely overfeatured for what I want.&#xA;&#xA;Finally, I found a website that allows the construction of RSS feeds from Deezer: releasefeed.elomatreb.eu. I see this as a workaround rather than a true solution, but at least it works as I want. I imagine that it polls Deezer website behind the scenes.&#xA;&#xA;Similarly, there exists RSS Bridge that seems to allow to construct RSS feeds from Spotify, but the configuration isn&#39;t straightforward. I didn&#39;t really experiment with it, so if you have, feel free to reach out and give your feedback!&#xA;&#xA;So to conclude, damn Spotify, Deezer, and other services for not allowing RSS feeds to artists pages (or any other page for that matter).&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<blockquote><p>This post has been brought to you by the “How&#39;s this for an open-source software review?” department.</p></blockquote>

<p>A few weeks ago, I had another go at sorting my musical library. My workflow for this is quite simple: download the music files, change metadata with MusicBrainz Picard, and use a homemade script to organize musics based on metadata. Playlist management was made using the <a href="https://www.strawberrymusicplayer.org/">Strawberry</a> music player.</p>



<p><strong>Note:</strong> I have now set up MusicBrainz Picard to organize my library automatically, instead of using my homemade script. I don&#39;t know if this is a recent feature, but I don&#39;t remember Picard being able to do this before.</p>

<p>Although I&#39;m quite happy with this workflow, there&#39;s a major problem that comes before the download step: I don&#39;t have a way to track new releases!</p>

<p>You&#39;re starting to know me, I&#39;m a big fan of RSS feeds, and a big hater of having an uncountable number of accounts on non-open source websites. However, the most popular and complete services, i.e., Spotify and Deezer, do not provide RSS feeds, and creating an account for this purpose is completely out of question.</p>

<p>I could always use YouTube channel feeds, but artists don&#39;t publish all their songs on YouTube, and albums are usually not categorized as releases either, so how can we use RSS (or other open-source software) to get new music releases?</p>

<p>Well, the answer I&#39;ve found is “nothing much”. There exist a few promising solutions, but they either not work or feel really clunky.</p>

<p>First of all, related to MusicBrainz, there is <a href="https://listenbrainz.org/">ListenBrainz</a>. It seems to contain the newest releases per artist, but I didn&#39;t find a way to follow each artist independently.</p>

<p>Second, I found a piece of software named Lidarr. Although it seemed good at first, I quickly hit configuration problems because the software is largely overfeatured for what I want.</p>

<p>Finally, I found a website that allows the construction of RSS feeds from Deezer: <a href="https://releasefeed.elomatreb.eu/">releasefeed.elomatreb.eu</a>. I see this as a workaround rather than a true solution, but at least it works as I want. I imagine that it polls Deezer website behind the scenes.</p>

<p>Similarly, there exists <a href="https://rss-bridge.org/">RSS Bridge</a> that seems to allow to construct RSS feeds from Spotify, but the configuration isn&#39;t straightforward. I didn&#39;t really experiment with it, so if you have, feel free to reach out and give your feedback!</p>

<p>So to conclude, damn Spotify, Deezer, and other services for not allowing RSS feeds to artists pages (or any other page for that matter).</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/the-battle-with-music-rss</guid>
      <pubDate>Sat, 18 Jul 2026 07:24:11 +0000</pubDate>
    </item>
    <item>
      <title>Vocabulary: AI, GenAI, algorithms</title>
      <link>https://blog.luismarques.me/vocabulary-ai-genai-algorithms</link>
      <description>&lt;![CDATA[  This post has been brought to you by the &#34;How&#39;s this for a rant?&#34; department.&#xA;&#xA;Today, I only want to make a small rant concerning artificial intelligence and the vocabulary trends I&#39;ve spotted in social media and company communications, especially on LinkedIn (Fuck LinkedIn by the way).&#xA;&#xA;!--more--&#xA;&#xA;What&#39;s the problem with using &#34;AI&#34; everywhere? The problem is that everything gets categorized in that umbrella category.&#xA;&#xA;In the 2010s, AI was not very known, and it specifically grouped deep and reinforcement learning, two very well known categories of algorithms.&#xA;&#xA;In the 2020s, ChatGPT was released, and the term AI shifted to now group generative text, then generative images and sound algorithms. All of those are now regrouped under the term &#34;GenAI&#34;.&#xA;&#xA;Until here, everything seems fine. The problem appears in the marketing departments of companies. Since those generative algorithms are new, and also quite spectacular in some cases, we often see &#34;AI-driven&#34; products that don&#39;t have anything in common with GenAI. This is the case in my field of work, combinatorial optimization, where AI is used vaguely to mention algorithms that we have known since the 1950s!&#xA;&#xA;So, this post is not adressed to the general public, but to the marketing departments that ride on the vague usual definition of AI: stop misleading people with AI-driven products simply because AI makes your spitch shiny. Use the correct terms where they apply.&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<blockquote><p>This post has been brought to you by the “How&#39;s this for a rant?” department.</p></blockquote>

<p>Today, I only want to make a small rant concerning artificial intelligence and the vocabulary trends I&#39;ve spotted in social media and company communications, especially on LinkedIn (Fuck LinkedIn by the way).</p>



<p>What&#39;s the problem with using “AI” everywhere? The problem is that everything gets categorized in that umbrella category.</p>

<p>In the 2010s, AI was not very known, and it specifically grouped deep and reinforcement learning, two very well known categories of algorithms.</p>

<p>In the 2020s, ChatGPT was released, and the term AI shifted to now group generative text, then generative images and sound algorithms. All of those are now regrouped under the term “GenAI”.</p>

<p>Until here, everything seems fine. The problem appears in the marketing departments of companies. Since those generative algorithms are new, and also quite spectacular in some cases, we often see “AI-driven” products that don&#39;t have anything in common with GenAI. This is the case in my field of work, combinatorial optimization, where AI is used vaguely to mention algorithms that we have known since the 1950s!</p>

<p>So, this post is not adressed to the general public, but to the marketing departments that ride on the vague usual definition of AI: stop misleading people with AI-driven products simply because AI makes your spitch shiny. Use the correct terms where they apply.</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/vocabulary-ai-genai-algorithms</guid>
      <pubDate>Sat, 11 Jul 2026 06:56:29 +0000</pubDate>
    </item>
    <item>
      <title>WriteFreely and my quest for a blogging engine</title>
      <link>https://blog.luismarques.me/writefreely-and-my-quest-for-a-blogging-engine</link>
      <description>&lt;![CDATA[  This post has been brought by the &#34;How&#39;s this for an open-source software review?&#34; department.&#xA;&#xA;Today, we talk about blogging using open-source software, comparing my previous workflow with the one I use today.&#xA;&#xA;!--more--&#xA;&#xA;Chapter 1: The problem&#xA;&#xA;When the blog consisted of nothing more than a single &#34;Hello, World!&#34; post, it was simply a static website stored in a git repository. Publishing a new post required many steps: cloning the repository, editing the source files, generate the static files, commit and push changes, and pull those changes in the server deploying the website.&#xA;&#xA;Although this worked, it was cumbersome, especially if you wanted to publish articles frequently. More importantly, it was impossible to write posts in devices that were not setup, e.g., computers with no git and no admin rights, mobile phones, etc.&#xA;&#xA;What I really wanted a web-based blogging engine easily deployable on my home server and satisfying a few modest requirements:&#xA;an online editor,&#xA;appearance customization,&#xA;automatic RSS generation,&#xA;integration with the Fediverse.&#xA;&#xA;After searching for engines like that, I narrowed the choices to three projects:&#xA;Wordpress with the ActivityPub plugin.&#xA;WriteFreely, the free and open-source version of Write.as.&#xA;Ghost with the promised ActivityPub integration.&#xA;&#xA;Chapter 2: The solution (or not)&#xA;&#xA;After studying each solution, I chose WriteFreely for my blog. Wordpress uses PHP and I don&#39;t want to deal with that, and Ghost&#39;s ActivityPub integration is still in development, although they have announced it for &#34;soon&#34;.&#xA;&#xA;The initial experience felt like a breeze. Writing drafts and posts from any device felt liberating. I also discovered that we could share link to drafts with other people, allowing them to see the draft, but not editing it.&#xA;&#xA;However, issues started appearing quickly. &#xA;&#xA;First issue: customizing the appearance. WriteFreely allows users to provide a CSS sheet, but it&#39;s slightly difficult and limited. In fact, there exists a theme website with beautiful themes, but if you look closely they all resemble each other.&#xA;&#xA;Going beyond CSS customisation is even more difficult. I believe I could modify the HTML and Javascript server-side, but that defeats the point of the tool. For instance, you can see in the footer of this post that the &#34;Copy Link&#34; button is disabled. That&#39;s because I couldn&#39;t make it work with the customisation tools given.&#xA;&#xA;Second issue: WriteFreely supports only basic markdown. Although that already allows a fair deal of formatting, I&#39;d love to have the colored quote blocks that GitLab uses with the   [!NOTE] or   [!WARN] syntax.&#xA;&#xA;Third issue: there is no comments section. I later saw that there is another software by the author, Remark.as, but it&#39;s another standalone service that does not embed in the same web page.&#xA;&#xA;Finally, fourth and last issue: there are lots of small, inconvenient bugs. Nothing that could erase all your data (at least I hope), but I find that they&#39;re really annoying and prove that WriteFreely is not deployment-ready:&#xA;There&#39;s no side by side editor and preview.&#xA;Navigation is broken, as in a subset of buttons in the navigation bar only works from a subset of pages that they should work on.&#xA;It&#39;s ugly, really ugly.&#xA;Planifying releases is not particularly difficult if one follows the documentation, but it&#39;s very inintuitive.&#xA;Fediverse handle is tied to the subdomain of the website, e.g., @luis@blog.luis.marques.me, whereas I&#39;d rather have @luis@luismarques.me on all my subdomains. I&#39;m not sure whether this is a WriteFreely or an ActivityPub limitation.&#xA;&#xA;For some of these problems, I have created issues in WriteFreely&#39;s GitHub, but for now I haven&#39;t received a single word in return.&#xA;https://github.com/writefreely/writefreely/discussions/1681&#xA;https://github.com/writefreely/writefreely/discussions/1682&#xA;https://github.com/writefreely/writefreely/discussions/1685&#xA;&#xA;Conclusion&#xA;&#xA;Despite these shortcomings, WriteFreely greatly improved my blog workflow, and I am now much more motivated to maintain the blog I have wanted to do for a long time.&#xA;&#xA;That said, the project feels more like a prototype then a mature blogging engine. It is certainly &#34;usable&#34;, but I am not entirely satisfied by it. If you know of another open-source blogging engine that meets my requirements while addressing these limitations, I&#39;d love to hear your recommendations by mail or over Mastodon!&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<blockquote><p>This post has been brought by the “How&#39;s this for an open-source software review?” department.</p></blockquote>

<p>Today, we talk about blogging using open-source software, comparing my previous workflow with the one I use today.</p>



<h2 id="chapter-1-the-problem">Chapter 1: The problem</h2>

<p>When the blog consisted of nothing more than a single “Hello, World!” post, it was simply a static website stored in a git repository. Publishing a new post required many steps: cloning the repository, editing the source files, generate the static files, commit and push changes, and pull those changes in the server deploying the website.</p>

<p>Although this worked, it was cumbersome, especially if you wanted to publish articles frequently. More importantly, it was impossible to write posts in devices that were not setup, e.g., computers with no git and no admin rights, mobile phones, etc.</p>

<p>What I really wanted a web-based blogging engine easily deployable on my home server and satisfying a few modest requirements:
– an online editor,
– appearance customization,
– automatic RSS generation,
– integration with the <a href="https://en.wikipedia.org/wiki/Fediverse">Fediverse</a>.</p>

<p>After searching for engines like that, I narrowed the choices to three projects:
– Wordpress with the ActivityPub plugin.
– WriteFreely, the free and open-source version of Write.as.
– Ghost with the promised ActivityPub integration.</p>

<h2 id="chapter-2-the-solution-or-not">Chapter 2: The solution (or not)</h2>

<p>After studying each solution, I chose WriteFreely for my blog. Wordpress uses PHP and I don&#39;t want to deal with that, and Ghost&#39;s ActivityPub integration is still in development, although they have announced it for “soon”.</p>

<p>The initial experience felt like a breeze. Writing drafts and posts from any device felt liberating. I also discovered that we could share link to drafts with other people, allowing them to see the draft, but not editing it.</p>

<p>However, issues started appearing quickly.</p>

<p>First issue: customizing the appearance. WriteFreely allows users to provide a CSS sheet, but it&#39;s slightly difficult and limited. In fact, there exists a <a href="https://write.as/themes/">theme website</a> with beautiful themes, but if you look closely they all resemble each other.</p>

<p>Going beyond CSS customisation is even more difficult. I believe I could modify the HTML and Javascript server-side, but that defeats the point of the tool. For instance, you can see in the footer of this post that the “Copy Link” button is disabled. That&#39;s because I couldn&#39;t make it work with the customisation tools given.</p>

<p>Second issue: WriteFreely supports only basic markdown. Although that already allows a fair deal of formatting, I&#39;d love to have the colored quote blocks that GitLab uses with the <code>&gt; [!NOTE]</code> or <code>&gt; [!WARN]</code> syntax.</p>

<p>Third issue: there is no comments section. I later saw that there is another software by the author, <a href="https://remark.as/">Remark.as</a>, but it&#39;s another standalone service that does not embed in the same web page.</p>

<p>Finally, fourth and last issue: there are lots of small, inconvenient bugs. Nothing that could erase all your data (at least I hope), but I find that they&#39;re really annoying and prove that WriteFreely is not deployment-ready:
– There&#39;s no side by side editor and preview.
– Navigation is broken, as in a subset of buttons in the navigation bar only works from a subset of pages that they should work on.
– It&#39;s ugly, really ugly.
– Planifying releases is not particularly difficult if one follows the documentation, but it&#39;s very inintuitive.
– Fediverse handle is tied to the subdomain of the website, e.g., <a href="https://blog.luismarques.me/@/luis@blog.luis.marques.me" class="u-url mention">@<span>luis@blog.luis.marques.me</span></a>, whereas I&#39;d rather have <a href="https://blog.luismarques.me/@/luis@luismarques.me" class="u-url mention">@<span>luis@luismarques.me</span></a> on all my subdomains. I&#39;m not sure whether this is a WriteFreely or an ActivityPub limitation.</p>

<p>For some of these problems, I have created issues in WriteFreely&#39;s GitHub, but for now I haven&#39;t received a single word in return.
– <a href="https://github.com/writefreely/writefreely/discussions/1681">https://github.com/writefreely/writefreely/discussions/1681</a>
– <a href="https://github.com/writefreely/writefreely/discussions/1682">https://github.com/writefreely/writefreely/discussions/1682</a>
– <a href="https://github.com/writefreely/writefreely/discussions/1685">https://github.com/writefreely/writefreely/discussions/1685</a></p>

<h2 id="conclusion">Conclusion</h2>

<p>Despite these shortcomings, WriteFreely greatly improved my blog workflow, and I am now much more motivated to maintain the blog I have wanted to do for a long time.</p>

<p>That said, the project feels more like a prototype then a mature blogging engine. It is certainly “usable”, but I am not entirely satisfied by it. If you know of another open-source blogging engine that meets my requirements while addressing these limitations, I&#39;d love to hear your recommendations by mail or over Mastodon!</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/writefreely-and-my-quest-for-a-blogging-engine</guid>
      <pubDate>Fri, 03 Jul 2026 15:42:17 +0000</pubDate>
    </item>
    <item>
      <title>Birding in Alsace</title>
      <link>https://blog.luismarques.me/birding-in-alsace</link>
      <description>&lt;![CDATA[  This post has been brought by the &#34;How&#39;s this for a holidays trip?&#34; department.&#xA;&#xA;End of April, my girlfriend and I went on holiday to the Alsace region in the North-East of France for a few days. Overall, we found it to be a magnificent region, even without the typical Christmas magic and its associated markets. &#xA;&#xA;!--more--&#xA;&#xA;Chapter I: The preparation&#xA;&#xA;The preparation tasks were carefully divided: my girlfriend, who had already been there during Christmas, prepared a list of locations to visit, and I supplemented it with natural parks and birds.&#xA;&#xA;As usual, we used oiseaux.net to research the regional birds, and after a few hours, we chose the one we wanted to photograph: the Eurasian golden oriole. With its vibrant colors and shy nature, photographing it felt like a challenging goal, especially given that it was still a bit early for all specimens to have migrated from Africa. We even trained to recognize its singing to improve our chances of finding one!&#xA;&#xA;Coincidentally, the day before departing, we met a painter at Run For Planet Bordeaux from whom we bought a magnificent golden oriole wood painting. Hopefully this would give us good luck for finding a living one!&#xA;&#xA;Chapter II: The voyage&#xA;&#xA;And so, armed with my Canon 5D Mark II, my Sigma 150-600mm and two smaller objectives, we finally departed from Bordeaux.&#xA;&#xA;In the first days, we sightsaw the smaller cities of the region: Ribeauvillé, Kaysersberg, Riquewihr, and some others. Riquewihr was definitely our favorite. There, we found two particularly interesting things to write about.&#xA;&#xA;First, we visited a huge, perhaps the largest of the region, Christmas-themed shop that happens to be open all-year long. The cozy ambiance and the large variety of products, colors, and styles would make even the most avid haters of Christmas love it.&#xA;&#xA;Second, the city had many birds flying around, supposedly due to the historic half-timbered houses and the plants crawling those.&#xA;&#xA;On the houses and hiding in plants, you could see birds commonly found in urban places: sparrows and blackbirds. You may have to zoom in to see some of those in the photos!&#xA;&#xA;First sparrow hiding in vegetation in Riquewihr&#xA;div style=&#34;color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;&#34;&#xA;First sparrow hiding in vegetation in Riquewihrbr/Canon 5D Mark II, Vivitar 19-35mm, 35mm, f/4.5, 1/40 sec, uneditedbr/© 2026 Luis Marques. All rights reserved.&#xA;/div&#xA;&#xA;Second sparrow hiding in vegetation in Riquewihr&#xA;div style=&#34;color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;&#34;&#xA;Second sparrow hiding in vegetation in Riquewihrbr/Canon 5D Mark II, Sigma 150-600mm, 150mm, f/5.0, 1/200 sec, uneditedbr/© 2026 Luis Marques. All rights reserved.&#xA;/div&#xA;&#xA;Blackbird on top of a house in Riquewihr&#xA;div style=&#34;color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;&#34;&#xA;Blackbird on top of a house in Riquewihrbr/Canon 5D Mark II, Sigma 150-600mm, 516mm, f/6.3, 1/3200 sec, uneditedbr/© 2026 Luis Marques. All rights reserved.&#xA;/div&#xA;&#xA;Flying in the sky, you could see dozens of swallows going to and fro their nests at high speed. At the moment, I did not have my telephoto lens, and we chose to comeback later. However, when we came back two days later, the nests had been removed from their lodgings, and although we could still see the birds flying, they were too far and too rapid.&#xA;&#xA;Not too far away, you can find the Mont Sainte-Odile and the Hohenburg Abbey on top of it. Together, they create a magically relaxing ambiance where one could spend hours looking at the surrounding forests or reading a book, or, maybe better, my blog!&#xA;&#xA;The place has large surrounding forests, and thus, many birds jumping from one branch to another, the most popular specimen found there being the Eurasian Chaffinch.&#xA;&#xA;Eurasian Chaffinch singing on a tree branch&#xA;div style=&#34;color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;&#34;&#xA;Eurasian Chaffinch singing on a tree branchbr/Canon 5D Mark II, Sigma 150-600mm, 600mm, f/6.3, 1/2000 sec, uneditedbr/© 2026 Luis Marques. All rights reserved.&#xA;/div&#xA;&#xA;Finally, the penultimate day was the most interesting for birding. We went to the Delta de la Sauer nature reserve (the French Wikipedia page details better the hosted species). Before detailing the experience, let me warn you to prepare yourself if you go in the morning, as April&#39;s temperatures can be quite low in the region.&#xA;&#xA;The reserve hosts many species of birds, and although we could hear singing and chirping, it was often difficult to see the birds. Sometimes they were too far, sometimes they were too high, but I did photograph some on a few occasions: an European Goldfinch, a Great Spotted Woodpecker, and a Eurasian blue tit.&#xA;&#xA;The goldfinch and the woodpecker were minding their own life and didn&#39;t seem bothered by my presence, maybe because I was at a distance of around 17 metres. The blue tit, on the other hand, was very curious and tried to approach me cautiously. The photograph shown below was taken at 23 metres of distance.&#xA;&#xA;European Goldfinch on a tree branch&#xA;div style=&#34;color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;&#34;&#xA;European Goldfinch on a tree branchbr/Canon 5D Mark II, Sigma 150-600mm, 600mm, f/7.1, 1/2000 sec, uneditedbr/© 2026 Luis Marques. All rights reserved.&#xA;/div&#xA;&#xA;Great Spotted Woodpecker standing right side up&#xA;div style=&#34;color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;&#34;&#xA;Great Spotted Woodpecker standing right side upbr/Canon 5D Mark II, Sigma 150-600mm, 600mm, f/6.3, 1/2000 sec, uneditedbr/© 2026 Luis Marques. All rights reserved.&#xA;/div&#xA;&#xA;Curious Eurasian blue tit&#xA;div style=&#34;color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;&#34;&#xA;Curious Eurasian blue titbr/Canon 5D Mark II, Sigma 150-600, 600mm, f/6.3, 1/3200 sec, uneditedbr/© 2026 Luis Marques. All rights reserved.&#xA;/div&#xA;&#xA;Chapter III: Conclusion and missed bits&#xA;&#xA;In the end, as you can see (or rather, not see), we did not find the golden oriole, but we visited amazing places and shot beautiful photographs.&#xA;&#xA;To be honest, we missed some parts of our travel. For instance, we completely missed the Route des Vins, even though we tried many things: going to the beginning and following signals, ask an LLM for a stop-decomposed route, etc., but ultimately all failed and we only saw roads and deserts. Therefore, our to-do list in Alsace is still far from empty, and we should go there again in the future.&#xA;&#xA;Bonus: Fast forward a week later, my girlfriend was in Toulouse and heard a familiar bird singing, so she fired up BirdNET on her phone. It was the singing of a golden oriole. Perhaps a sign that our next holiday should be spent in Occitania?&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<blockquote><p>This post has been brought by the “How&#39;s this for a holidays trip?” department.</p></blockquote>

<p>End of April, my girlfriend and I went on holiday to the Alsace region in the North-East of France for a few days. Overall, we found it to be a magnificent region, even without the typical Christmas magic and its associated markets.</p>



<h2 id="chapter-i-the-preparation">Chapter I: The preparation</h2>

<p>The preparation tasks were carefully divided: my girlfriend, who had already been there during Christmas, prepared a list of locations to visit, and I supplemented it with natural parks and birds.</p>

<p>As usual, we used <a href="https://oiseaux.net">oiseaux.net</a> to research the regional birds, and after a few hours, we chose the one we wanted to photograph: the <a href="https://en.wikipedia.org/wiki/Eurasian_golden_oriole">Eurasian golden oriole</a>. With its vibrant colors and shy nature, photographing it felt like a challenging goal, especially given that it was still a bit early for all specimens to have migrated from Africa. We even trained to recognize its singing to improve our chances of finding one!</p>

<p>Coincidentally, the day before departing, we met a painter at <a href="https://runforplanet.fr/bordeaux-inscriptions/">Run For Planet Bordeaux</a> from whom we bought a magnificent golden oriole wood painting. Hopefully this would give us good luck for finding a living one!</p>

<h2 id="chapter-ii-the-voyage">Chapter II: The voyage</h2>

<p>And so, armed with my Canon 5D Mark II, my Sigma 150-600mm and two smaller objectives, we finally departed from Bordeaux.</p>

<p>In the first days, we sightsaw the smaller cities of the region: Ribeauvillé, Kaysersberg, Riquewihr, and some others. Riquewihr was definitely our favorite. There, we found two particularly interesting things to write about.</p>

<p>First, we visited a huge, perhaps the largest of the region, Christmas-themed shop that happens to be open all-year long. The cozy ambiance and the large variety of products, colors, and styles would make even the most avid haters of Christmas love it.</p>

<p>Second, the city had many birds flying around, supposedly due to the historic half-timbered houses and the plants crawling those.</p>

<p>On the houses and hiding in plants, you could see birds commonly found in urban places: sparrows and blackbirds. You may have to zoom in to see some of those in the photos!</p>

<p><img src="https://photography.luismarques.me/uploads/medium/b9/99/f843635459a6fcac4fc09d067a04.jpg" alt="First sparrow hiding in vegetation in Riquewihr">
<div style="color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;">
First sparrow hiding in vegetation in Riquewihr<br/>Canon 5D Mark II, Vivitar 19-35mm, 35mm, f/4.5, 1/40 sec, unedited<br/>© 2026 Luis Marques. All rights reserved.
</div></p>

<p><img src="https://photography.luismarques.me/uploads/medium/dc/2c/abbc4d5b5e3f5d28bf27b7890a34.jpg" alt="Second sparrow hiding in vegetation in Riquewihr">
<div style="color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;">
Second sparrow hiding in vegetation in Riquewihr<br/>Canon 5D Mark II, Sigma 150-600mm, 150mm, f/5.0, 1/200 sec, unedited<br/>© 2026 Luis Marques. All rights reserved.
</div></p>

<p><img src="https://photography.luismarques.me/uploads/medium/8e/cb/665758ec567aee0cd2fe9b627f22.jpg" alt="Blackbird on top of a house in Riquewihr">
<div style="color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;">
Blackbird on top of a house in Riquewihr<br/>Canon 5D Mark II, Sigma 150-600mm, 516mm, f/6.3, 1/3200 sec, unedited<br/>© 2026 Luis Marques. All rights reserved.
</div></p>

<p>Flying in the sky, you could see dozens of swallows going to and fro their nests at high speed. At the moment, I did not have my telephoto lens, and we chose to comeback later. However, when we came back two days later, the nests had been removed from their lodgings, and although we could still see the birds flying, they were too far and too rapid.</p>

<p>Not too far away, you can find the <a href="https://en.wikipedia.org/wiki/Mont_Sainte-Odile">Mont Sainte-Odile</a> and the <a href="https://en.wikipedia.org/wiki/Mont_Sainte-Odile_Abbey">Hohenburg Abbey</a> on top of it. Together, they create a magically relaxing ambiance where one could spend hours looking at the surrounding forests or reading a book, or, maybe better, my blog!</p>

<p>The place has large surrounding forests, and thus, many birds jumping from one branch to another, the most popular specimen found there being the <a href="https://en.wikipedia.org/wiki/Eurasian_chaffinch">Eurasian Chaffinch</a>.</p>

<p><img src="https://photography.luismarques.me/uploads/medium/0b/59/99d502692be124cf020f73ffa62d.jpg" alt="Eurasian Chaffinch singing on a tree branch">
<div style="color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;">
Eurasian Chaffinch singing on a tree branch<br/>Canon 5D Mark II, Sigma 150-600mm, 600mm, f/6.3, 1/2000 sec, unedited<br/>© 2026 Luis Marques. All rights reserved.
</div></p>

<p>Finally, the penultimate day was the most interesting for birding. We went to the <a href="https://en.wikipedia.org/wiki/Delta_de_la_Sauer_National_Nature_Reserve">Delta de la Sauer</a> nature reserve (the French Wikipedia page details better the hosted species). Before detailing the experience, let me warn you to prepare yourself if you go in the morning, as April&#39;s temperatures can be quite low in the region.</p>

<p>The reserve hosts many species of birds, and although we could hear singing and chirping, it was often difficult to see the birds. Sometimes they were too far, sometimes they were too high, but I did photograph some on a few occasions: an <a href="https://en.wikipedia.org/wiki/European_goldfinch">European Goldfinch</a>, a <a href="https://en.wikipedia.org/wiki/great_spotted_woodpecker">Great Spotted Woodpecker</a>, and a <a href="https://en.wikipedia.org/wiki/Eurasian_blue_tit">Eurasian blue tit</a>.</p>

<p>The goldfinch and the woodpecker were minding their own life and didn&#39;t seem bothered by my presence, maybe because I was at a distance of around 17 metres. The blue tit, on the other hand, was very curious and tried to approach me cautiously. The photograph shown below was taken at 23 metres of distance.</p>

<p><img src="https://photography.luismarques.me/uploads/medium/ec/4c/8e690b1d3129f453587750e0a63a.jpg" alt="European Goldfinch on a tree branch">
<div style="color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;">
European Goldfinch on a tree branch<br/>Canon 5D Mark II, Sigma 150-600mm, 600mm, f/7.1, 1/2000 sec, unedited<br/>© 2026 Luis Marques. All rights reserved.
</div></p>

<p><img src="https://photography.luismarques.me/uploads/medium/6a/73/c77be7557072ae1ad137dfe8efdd.jpg" alt="Great Spotted Woodpecker standing right side up">
<div style="color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;">
Great Spotted Woodpecker standing right side up<br/>Canon 5D Mark II, Sigma 150-600mm, 600mm, f/6.3, 1/2000 sec, unedited<br/>© 2026 Luis Marques. All rights reserved.
</div></p>

<p><img src="https://photography.luismarques.me/uploads/medium/17/9c/ecfc9b306f2ddefcbc92015075cd.jpg" alt="Curious Eurasian blue tit">
<div style="color: gray; font-size: 0.8em; text-align: center; margin-top: -20px; margin-bottom: -20px;">
Curious Eurasian blue tit<br/>Canon 5D Mark II, Sigma 150-600, 600mm, f/6.3, 1/3200 sec, unedited<br/>© 2026 Luis Marques. All rights reserved.
</div></p>

<h2 id="chapter-iii-conclusion-and-missed-bits">Chapter III: Conclusion and missed bits</h2>

<p>In the end, as you can see (or rather, not see), we did not find the golden oriole, but we visited amazing places and shot beautiful photographs.</p>

<p>To be honest, we missed some parts of our travel. For instance, we completely missed the <em>Route des Vins</em>, even though we tried many things: going to the beginning and following signals, ask an LLM for a stop-decomposed route, etc., but ultimately all failed and we only saw roads and deserts. Therefore, our to-do list in Alsace is still far from empty, and we should go there again in the future.</p>

<p><strong>Bonus:</strong> Fast forward a week later, my girlfriend was in Toulouse and heard a familiar bird singing, so she fired up BirdNET on her phone. It was the singing of a golden oriole. Perhaps a sign that our next holiday should be spent in Occitania?</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/birding-in-alsace</guid>
      <pubDate>Mon, 25 May 2026 19:23:04 +0000</pubDate>
    </item>
    <item>
      <title>Hello</title>
      <link>https://blog.luismarques.me/this-is-the-first-post-on-my-new-blog</link>
      <description>&lt;![CDATA[This is the first post on my new blog. I plan to write about operational research, mixed integer linear programming, and the occasional reflection on academic life.&#xA;&#xA;Stay tuned for more content!&#xA;&#xA;div style=&#34;height: 20px;&#34;/div&#xD;&#xA;hr&#xD;&#xA;&#xD;&#xA;p class=&#34;post-signature&#34;Thank you for reading. Reach me for further discussion and updates!/p&#xD;&#xA;&#xD;&#xA;div class=&#34;post-share&#34;&#xD;&#xA;a class=&#34;btn btn--share&#34; title=&#34;Contact me&#34; href=&#34;mailto:luismarques@luismarques.me&#34;Email/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;https://mastodon.social/@luismarquesme&#34;Mastodon/a&#xD;&#xA;a class=&#34;btn btn--share&#34; href=&#34;../feed.xml&#34;RSS/a&#xD;&#xA;a class=&#34;btn btn--share btn--share-disabled&#34; href=&#34;#&#34; onclick=&#34;navigator.clipboard.writeText(window.location.href); this.textContent=&#39;Copied!&#39;; return false;&#34;Copy link/a&#xD;&#xA;/div]]&gt;</description>
      <content:encoded><![CDATA[<p>This is the first post on my new blog. I plan to write about operational research, mixed integer linear programming, and the occasional reflection on academic life.</p>

<p>Stay tuned for more content!</p>

<div style="height: 20px;"></div>
<hr>

<p class="post-signature">Thank you for reading. Reach me for further discussion and updates!</p>

<div class="post-share">
<a class="btn btn--share" title="Contact me" href="mailto:luismarques@luismarques.me">Email</a>
<a class="btn btn--share" href="https://mastodon.social/@luismarquesme">Mastodon</a>
<a class="btn btn--share" href="../feed.xml">RSS</a>
<a class="btn btn--share btn--share-disabled">Copy link</a>
</div>
]]></content:encoded>
      <guid>https://blog.luismarques.me/this-is-the-first-post-on-my-new-blog</guid>
      <pubDate>Mon, 25 May 2026 19:14:50 +0000</pubDate>
    </item>
  </channel>
</rss>